Zendesk plugins

Introduction

The Zendesk plugins can be used to read one or more Zendesk objects from your Zendesk account. This can allow you to get deeper insights into your customer success by enriching Zendesk data with other data sources.

Use case(s)

User Storie(s)

  • As a pipeline developer, I would like to fetch a single object from Zendesk, so that I can get deeper insights into my customer success stories.
  • As a pipeline developer, I would like to fetch multiple objects from Zendesk, so that I do not have to create multiple source nodes merely to replicate all objects to a destination.
  • As a pipeline developer, I would like to fetch all objects apart from a blacklist from Zendesk, so that I can skip a few objects, but don't have to specify all the remaining ones explicitly.

Plugin Type

  • Batch Source
  • Batch Sink 
  • Real-time Source
  • Real-time Sink
  • Action
  • Post-Run Action
  • Aggregate
  • Join
  • Spark Model
  • Spark Compute

Configurables

This integration should be built using two plugins:

Zendesk single object

Used when you want to pull only a single object from Zendesk

SectionUser Facing NameTypeDescriptionOptionalConstraints
BasicAdmin EmailtextZendesk's admin email.NoShould validate email.

API TokentextZendesk's API token. Can be obtained from the Zendesk Support Admin interface. Check out Zendesk's documentation for API Token generation.No

SubdomainscsvList of Zendesk's Subdomains to read object from.NoCan have multiple values.

Object to PullselectSelect an object to pull from Zendesk: Comments, Groups, Organizations, Satisfaction Ratings, Tags, Ticket Fields, Ticket Metrics, Ticket Metrics Events, Tickets, Users.NoDefaults to all.







Start Datetextbox(required by some Zendesk's API Endpoints)

The date in format YYYY-MM-DDThh:mm:ssZ, starting from which the data is requested.
NoDepends on list of the selected objects.

Zendesk multi-object

Used when you want to pull multiple objects from Zendesk

SectionUser Facing NameTypeDescriptionOptionalConstraints
BasicAdmin EmailtextZendesk's admin email.NoShould validate email.

API TokentextZendesk's API token. Can be obtained from the Zendesk Support Admin interface. Check out Zendesk's documentation for API Token generation.No

SubdomainscsvList of Zendesk's Subdomains to read objects from.NoCan have multiple values.

Objects to Pullmulti-selectSelect a list of objects to pull from Zendesk: Comments, Groups, Organizations, Satisfaction Ratings, Tags, Ticket Fields, Ticket Metrics, Ticket Metrics Events, Tickets, UsersYesDefaults to all.

Objects to Skipmulti-selectSelect a list of objects to skip from Zendesk. All other objects will be pulled.YesOnly used when Objects to pull is not specified







Start Datetextbox(required by some Zendesk's API Endpoints)

The date in format YYYY-MM-DDThh:mm:ssZ, starting from which the data is requested.
NoDepends on list of the selected objects.

The plugin should output one record per row in Zendesk, with an additional field specifying the object where the record came from. Refer to the Salesforce multi-objects plugin for examples

Design / Implementation Tips

  • v2 is current version of supported Zendesk's API.
  • Zendesk API has support of Incremental Exports. The API lets export data from specified start_time till end_time.
  • Plugin will be implemented using Zendesk Java Client by Cloudbees.
  • Authentication will be performed using Admin Email and API Token.
  • Output schema will be automatically generated from selected fields.

References

Object Reference

ObjectAPI ReferenceIncremental Exports

API Permissions (Allowed For)

Constraints
Comments

Article Commentshttps://developer.zendesk.com/rest_api/docs/help_center/comments#list-commentsNo
  • Agents
  • End-users


Post Commentshttps://developer.zendesk.com/rest_api/docs/help_center/post_comments#list-commentsNo
  • Agents
  • End-users


Ticket Commentshttps://developer.zendesk.com/rest_api/docs/support/ticket_comments#list-commentsYes
  • Admins


Requests Commentshttps://developer.zendesk.com/rest_api/docs/support/requests#listing-commentsNo
  • End-users

Groupshttps://developer.zendesk.com/rest_api/docs/support/groups#list-groupsNo
  • Admins
  • Agents

Organizationshttps://developer.zendesk.com/rest_api/docs/support/organizations#list-organizationsYes
  • Agents

Satisfaction Ratingshttps://developer.zendesk.com/rest_api/docs/support/satisfaction_ratings#list-satisfaction-ratingsNo
  • Admins

Tagshttps://developer.zendesk.com/rest_api/docs/support/tags#list-tagsNo
  • Admins
Lists the 500 most popular tags in the last 60 days, in decreasing popularity.
Ticket Fieldshttps://developer.zendesk.com/rest_api/docs/support/ticket_fields#list-ticket-fieldsNo
  • Agents

Ticket Metricshttps://developer.zendesk.com/rest_api/docs/support/ticket_metrics#list-ticket-metricsYes
  • Agents

Ticket Metrics Eventshttps://developer.zendesk.com/rest_api/docs/support/ticket_metric_events#list-ticket-metric-eventsYes
  • Admins

Ticketshttps://developer.zendesk.com/rest_api/docs/support/tickets#list-ticketsYes
  • Admins

Usershttps://developer.zendesk.com/rest_api/docs/support/users#list-usersYes
  • Admins
  • Agents
  • Light Agents

Object Description

Field NameType

Comments

Article Comments

idnumber
urlstring
bodystring
author_idnumber
source_idnumber
source_typestring
localestring
html_urlstring
created_atdatetime
updated_atdatetime
vote_sumnumber
vote_countnumber

Post Comments

idnumber
urlstring
bodystring
author_idnumber
post_idnumber
officialboolean
html_urlstring
created_atdatetime
updated_atdatetime
vote_sumnumber
vote_countnumber

Ticket Comments

idnumber
typestring
bodystring
html_bodystring
plain_bodystring
publicboolean
author_idnumber
attachments

list[attachment]

Field NameType
attachment
idnumber
file_namestring
content_urlstring
urlstring
mapped_content_urlstring
content_typestring
widthnumber
heightnumber
sizenumber
thumbnails

list[photo]

Field NameType
photo
idnumber
file_namestring
content_urlstring
urlstring
mapped_content_urlstring
content_typestring
widthnumber
heightnumber
sizenumber
inlineboolean
deletedboolean
inlineboolean
deletedboolean
via

via_object

Field NameType
via_object
channelstring
sourcemap[string,object]
metadata

metadata_object

Field NameType
metadata_object
flagslist[number]
flags_optionsmap[string,object]
created_atdatetime

Requests Comments

idnumber
typestring
request_idnumber
bodystring
html_bodystring
plain_bodystring
publicboolean
author_idnumber
attachments

list[attachment]

Field NameType
attachment
idnumber
file_namestring
content_urlstring
urlstring
mapped_content_urlstring
content_typestring
widthnumber
heightnumber
sizenumber
thumbnails

list[photo]

Field NameType
photo
idnumber
file_namestring
content_urlstring
urlstring
mapped_content_urlstring
content_typestring
widthnumber
heightnumber
sizenumber
inlineboolean
deletedboolean
inlineboolean
deletedboolean
created_atdatetime

Groups

idnumber
urlstring
namestring
descriptionstring
deletedboolean
created_atdatetime
updated_atdatetime

Organizations

idnumber
urlstring
external_idstring
namestring
created_atdatetime
updated_atdatetime
domain_nameslist[string]
detailsstring
notesstring
group_idnumber
shared_ticketsboolean
shared_commentsboolean
tagslist[string]
organization_fieldsmap[string,object]

Satisfaction Ratings

idnumber
urlstring
assignee_idnumber
group_idnumber
requester_idnumber
ticket_idnumber
scorestring
created_atdatetime
updated_atdatetime
commentstring
reasonstring
reason_codenumber

Tags

namestring
countnumber
Ticket Fields
idnumber
urlstring
typestring
titlestring
raw_titlestring
descriptionstring
raw_descriptionstring
positionnumber
activeboolean
requiredboolean
collapsed_for_agentsboolean
regexp_for_validationstring
title_in_portalstring
raw_title_in_portalstring
visible_in_portalboolean
editable_in_portalboolean
required_in_portalboolean
tagstring
created_atdatetime
updated_atdatetime
system_field_options

list[field_object]

Field NameType
field_object
idnumber
namestring
positionnumber
raw_namestring
urlstring
valuestring
defaultboolean
custom_field_options

list[field_object]

Field NameType
field_object
idnumber
namestring
positionnumber
raw_namestring
urlstring
valuestring
defaultboolean
sub_type_idnumber
removableboolean
agent_descriptionstring
Ticket Metrics
idnumber
ticket_idnumber
urlstring
group_stationsnumber
assignee_stationsnumber
reopensnumber
repliesnumber
assignee_updated_atdatetime
requester_updated_atdatetime
status_updated_atdatetime
initially_assigned_atdatetime
assigned_atdatetime
solved_atdatetime
latest_comment_added_atdatetime
first_resolution_time_in_minutes

time_in_minutes_object

Field NameType
time_in_minutes_object
calendarnumber
businessnumber
reply_time_in_minutes

time_in_minutes_object

Field NameType
time_in_minutes_object
calendarnumber
businessnumber
full_resolution_time_in_minutes

time_in_minutes_object

Field NameType
time_in_minutes_object
calendarnumber
businessnumber
agent_wait_time_in_minutes

time_in_minutes_object

Field NameType
time_in_minutes_object
calendarnumber
businessnumber
requester_wait_time_in_minutes

time_in_minutes_object

Field NameType
time_in_minutes_object
calendarnumber
businessnumber
created_atdatetime
updated_atdatetime
Ticket Metrics Events
idnumber
ticket_idnumber
metricstring
instance_idnumber
typestring
timedatetime
sla

sla_object

Field NameType
sla_object
targetnumber
business_hoursboolean
policy

policy_object

Field NameType
policy_object
idnumber
titlestring
descriptionstring
status

status_object

Field NameType
status_object
calendarnumber
businessnumber
deletedboolean
Tickets
idnumber
urlstring
external_idstring
typestring
subjectstring
raw_subjectstring
descriptionstring
prioritystring
statusstring
recipientstring
requester_idnumber
submitter_idnumber
assignee_idnumber
organization_idnumber
group_idnumber
collaborator_idslist[number]
collaborators

list[collaborators_object]

Field NameType
collaborators_object
namestring
emailstring
email_cc_idslist[number]
follower_idslist[number]
forum_topic_idnumber
problem_idnumber
has_incidentsboolean
due_atdatetime
tagslist[string]
via

via_object

Field NameType
via_object
channelstring
sourcemap[string,object]
custom_fields

list[custom_fields_object]

Field NameType
custom_fields_object
idnumber
valuestring
satisfaction_rating

satisfaction_rating_object

Field NameType
satisfaction_rating_object
idnumber
urlstring
assignee_idnumber
group_idnumber
requester_idnumber
ticket_idnumber
scorestring
created_atdatetime
updated_atdatetime
commentstring
reasonstring

reason_id

number
sharing_agreement_idslist[number]
followup_idslist[number]
via_followup_source_idnumber
macro_idslist[number]
ticket_form_idnumber
brand_idnumber
allow_channelbackboolean
allow_attachmentsboolean
is_publicboolean
created_atdatetime
updated_atdatetime
Users
idnumber
emailstring
namestring
activeboolean
aliasstring
chat_onlyboolean
created_atdatetime
custom_role_idnumber
role_typenumber
detailsstring
external_idstring
last_login_atdatetime
localestring
locale_idnumber
moderatorboolean
notesstring
only_private_commentsboolean
organization_idnumber
default_group_idnumber
phonestring
shared_phone_numberboolean
photo

attachment

Field NameType
attachment
idnumber
file_namestring
content_urlstring
urlstring
mapped_content_urlstring
content_typestring
widthnumber
heightnumber
sizenumber
thumbnails

list[photo]

Field NameType
photo
idnumber
file_namestring
content_urlstring
urlstring
mapped_content_urlstring
content_typestring
widthnumber
heightnumber
sizenumber
inlineboolean
deletedboolean
inlineboolean
deletedboolean
restricted_agentboolean
rolestring
sharedboolean
shared_agentboolean
signaturestring
suspendedboolean
tagslist[string]
ticket_restrictionstring
time_zonestring
two_factor_auth_enabledboolean
updated_atdatetime
urlstring
user_fieldsmap[string,object]
verifiedboolean
report_csvboolean

Design

Approach(s)

Properties

Security

Limitation(s)

Future Work

  • Some future work – HYDRATOR-99999
  • Another future work – HYDRATOR-99999

Test Case(s)

  • Test case #1
  • Test case #2

Sample Pipeline

Please attach one or more sample pipeline(s) and associated data. 

Pipeline #1

Pipeline #2



Table of Contents

Checklist

  • User stories documented 
  • User stories reviewed 
  • Design documented 
  • Design reviewed 
  • Feature merged 
  • Examples and guides 
  • Integration tests 
  • Documentation for feature 
  • Short video demonstrating the feature