Zendesk Connector can be used to integrate Zendesk REST API in your App / BI Tools. You can read/write data about Tickets, Activity, Users, Organizations and more. You can use this connector to integrate Zendesk data inside SSIS and SQL Server. Let's take a look at the steps below to see how exactly to accomplish that.
If you are new with SSIS and ZappySys SSIS PowerPack then check below links to get started.
How to get started with SSIS and SSIS PowerPack. it covers how to install necessary tools to design/debug SSIS Packages, deploy to SSIS catalog and last Schedule SSIS Package to run using SQL Agent. It will also cover how to secure SSIS package and Parameterize values (e.g. Password, Hostname, etc).
How to read data from Zendesk in SSIS (Export data)
In this section we will learn how to configure and use Zendesk Connector in the API Source to extract data from the Zendesk.
Begin with opening Visual Studio and Create a New Project.
Select Integration Service Project and in new project window set the appropriate name and location for project. And click OK.
In the the new SSIS project screen you will find the following:
SSIS ToolBox on left side bar
Solution Explorer and Property Window on right bar
Control flow, data flow, event Handlers, Package Explorer in tab windows
Connection Manager Window in the bottom
Note: If you don't see ZappySys SSIS PowerPack Task or Components in SSIS Toolbox, please refer to this help link.
Now, Drag and Drop SSIS Data Flow Task from SSIS Toolbox. Double click on the Data Flow Task to see Data Flow designer.
From the SSIS toolbox drag and drop API Source (Predefined Templates) on the data flow designer surface, and double click on it to edit it:
Select New Connection to create a new connection:
Use a preinstalled Zendesk Connector from Popular Connector List or press Search Online radio button to download Zendesk Connector. Once downloaded simply use it in the configuration:
Zendesk
Proceed with selecting the desired Authentication Type. Then select API Base URL (in most cases default one is the right one). Finally, fill in all the required parameters and set optional parameters if needed. You may press a link Steps to Configure which will help set certain parameters. More info is available in Authentication section.
Authenticate using Static Token instead of userid / password ([Token Access] option must be enabled under Admin Console > Channel > API > Settings and then Click [ADD API Token] to generate new token. These settings typically found here https://YOUR-SUB-DOMAIN.zendesk.com/agent/admin/api/settings
[Read more..]
Please refer to below API Reference (External Site) link for Token Authentication [Http]
OAuth App must be created under Admin Console > Channel > API > Settings. These settings typically found here https://YOUR-SUB-DOMAIN.zendesk.com/agent/admin/api/oauth_clients
[Read more..]
Please refer to below API Reference (External Site) link for OAuth Authentication [OAuth]
Authenticate using your userid / password (2FA must be OFF and [Password Access] option must be enabled under Admin Console > Channel > API > Settings. These settings typically found here https://YOUR-SUB-DOMAIN.zendesk.com/agent/admin/api/settings
[Read more..]
Please refer to below API Reference (External Site) link for UserID/Password Authentication (2FA must be OFF) [Http]
UserID/Password Authentication (2FA must be OFF) [Http]
https://[$Domain$].zendesk.com/api/v2
Required Parameters
Domain
Fill in the parameter...
UserName (2FA Must be OFF)
Fill in the parameter...
Password
Fill in the parameter...
Optional Parameters
RetryMode
Fill in the parameter...
RetryStatusCodeList
Fill in the parameter...
RetryCountMax
Fill in the parameter...
RetryMultiplyWaitTime
Fill in the parameter...
Select the desired endpoint, change/pass the properties values, and click on Preview Data button to make the API call.
API Source - Zendesk
Zendesk Connector can be used to integrate Zendesk REST API in your App / BI Tools. You can read/write data about Tickets, Activity, Users, Organizations and more.
That's it; we are done. In a few clicks we configured the call to Zendesk using ZappySys Zendesk Connector
Load Zendesk data in SQL Server using Upsert Destination (Insert or Update)
Once you read data from the desired source, now let's see how to Load Zendesk data in SQL Server using Upsert Destination.
Upsert Destination can Merge/Synchronize data from source to target for Microsoft SQL Server, PostgreSql and Redshift. It supports very fast Bulk Upsert (Update or Insert) operation along and Bulk delete.
From the SSIS toolbox drag and drop Upsert Destination on the dataflow designer surface
Connect our Source component to Upsert Destination
Double click on Upsert Destination component to configure it.
Select the desired Microsoft SQL Server/PostgreSql/Redshift Target Connection or click NEW to create new connection. Select Target Table or click NEW to create new table based on source columns. Configure SSIS Upsert Destination Connection - Loading data (REST / SOAP / JSON / XML /CSV) into SQL Server or other target using SSIS
Set Action to Upsert => (insert if not matching in target else update). Select Target Connection and Target Table. Check on Insert and Update. Click on Map All to Mappings all columns and check on Only Primary Key columns.
Click on OK to save Upsert Destination settings UI.
That's it; we are done. Run the SSIS Package and it will read the data from the Zendesk and load the the data in the SQL Server/PostgreSql/Redshift.
Video Tutorial - Write or lookup data to Zendesk using SSIS
This video covers following and more so watch carefully. After watching this video follow the steps described in this article.
How to download SSIS PowerPack for Zendesk integration in SSIS
How to configure connection for Zendesk
How to Write or lookup data to Zendesk
Features about SSIS API Destination
Using Zendesk Connector in SSIS
How to write or lookup data to Zendesk in SSIS (Import data)
In upper section we learned how to read data, now in this section we will learn how to configure Zendesk in the API Source to Post data to the Zendesk.
Read the data from the source, being any desired source component. In example we will use ZappySys Dummy Data Source component.
From the SSIS Toolbox drag and drop API Destination (Predefined Templates) on the Data Flow Designer surface and connect source component with it, and double click to edit it.
Select New Connection to create a new connection:
API Destination - Zendesk
Zendesk Connector can be used to integrate Zendesk REST API in your App / BI Tools. You can read/write data about Tickets, Activity, Users, Organizations and more.
Use a preinstalled Zendesk Connector from Popular Connector List or press Search Online radio button to download Zendesk Connector. Once downloaded simply use it in the configuration:
Zendesk
Proceed with selecting the desired Authentication Type. Then select API Base URL (in most cases default one is the right one). Finally, fill in all the required parameters and set optional parameters if needed. You may press a link Steps to Configure which will help set certain parameters. More info is available in Authentication section.
Authenticate using Static Token instead of userid / password ([Token Access] option must be enabled under Admin Console > Channel > API > Settings and then Click [ADD API Token] to generate new token. These settings typically found here https://YOUR-SUB-DOMAIN.zendesk.com/agent/admin/api/settings
[Read more..]
Please refer to below API Reference (External Site) link for Token Authentication [Http]
OAuth App must be created under Admin Console > Channel > API > Settings. These settings typically found here https://YOUR-SUB-DOMAIN.zendesk.com/agent/admin/api/oauth_clients
[Read more..]
Please refer to below API Reference (External Site) link for OAuth Authentication [OAuth]
Authenticate using your userid / password (2FA must be OFF and [Password Access] option must be enabled under Admin Console > Channel > API > Settings. These settings typically found here https://YOUR-SUB-DOMAIN.zendesk.com/agent/admin/api/settings
[Read more..]
Please refer to below API Reference (External Site) link for UserID/Password Authentication (2FA must be OFF) [Http]
UserID/Password Authentication (2FA must be OFF) [Http]
https://[$Domain$].zendesk.com/api/v2
Required Parameters
Domain
Fill in the parameter...
UserName (2FA Must be OFF)
Fill in the parameter...
Password
Fill in the parameter...
Optional Parameters
RetryMode
Fill in the parameter...
RetryStatusCodeList
Fill in the parameter...
RetryCountMax
Fill in the parameter...
RetryMultiplyWaitTime
Fill in the parameter...
Select the desired endpoint, change/pass the properties values, and go to the Mappings tab to map the columns.
API Destination - Zendesk
Zendesk Connector can be used to integrate Zendesk REST API in your App / BI Tools. You can read/write data about Tickets, Activity, Users, Organizations and more.
Finally, map the the desired columns:
API Destination - Zendesk
Zendesk Connector can be used to integrate Zendesk REST API in your App / BI Tools. You can read/write data about Tickets, Activity, Users, Organizations and more.
That's it; we successfully configured the POST API Call. In a few clicks we configured the Zendesk API call using ZappySys Zendesk Connector
Conclusion
In this article we discussed how to connect to Zendesk in SSIS and integrate data without any coding. Click here to DownloadZendesk Connector for SSIS and try yourself see how easy it is. If you still have any question(s) then ask here or simply click on live chat icon below and ask our expert (see bottom-right corner of this page).
Zendesk Connector support following actions for REST API integration. If some actions are not listed below then you can easily edit Connector file and enhance out of the box functionality.
Read Tickets (All)
Get a list of all tickets in your account
Parameter
Description
Sort By
Sort By field
Option
Value
id
id
assignee
assignee
assignee.name
assignee.name
created_at
created_at
group
group
locale
locale
requester
requester
requester.name
requester.name
status
status
subject
subject
updated_at
updated_at
Sort Order
Sort order
Option
Value
desc
desc
asc
asc
Extra Columns to Include
Option
Value
Default
comment_count
comment_count
External ID for Ticket
Read Tickets (Incremental)
Get a list of tickets changed after specified date/time
Parameter
Description
Start Time (e.g. yyyy-MM-dd -OR- yyyy-MM-ddTHH:mm:ss)
Start DateTime for data fetch. Tickets modified after this date/time is fetched. You can enter date in yyyy-MM-dd or yyyy-MM-ddTHH:mm:ss format. You can also use functions to get date. Supported functions now|today|yesterday|weekstart|weekend|monthstart|monthend|yearstart|yearend and supported intervals for add/subtract are ms|s|sec|min|h|hour|y|year|d|day|m|month|y|year. Example monthstart-3d (subtract 3days from month start)
Option
Value
today
today
yesterday
yesterday
monthstart
monthstart
monthend
monthend
yearstart
yearstart
yearend
yearend
weekstart
weekstart
weekend
weekend
yearstart-1y
yearstart-1y
yearend-1y
yearend-1y
monthstart-1d
monthstart-1d
monthend+1d
monthend+1d
2022-01-31
2022-01-31
2022-01-31 23:59:59
2022-01-31 23:59:59
Read Ticket(s) by ID
Get a list of all tickets in your account
Parameter
Description
Ticket ID(S) - Use Comma for multiple (e.g. 111,222)
Read User(s) by ID
Get a list of users in your account for specific id(s)
Parameter
Description
User ID(S) - Use Comma for multiple (e.g. 111,222)
Read Organization(s) by ID
Get a list of organizations in your account for specific id(s)
Parameter
Description
Organization ID(S) - Use Comma for multiple (e.g. 111,222)
Read Tickets for Organization
Get all tickets for specified organization_id
Parameter
Description
Organization ID
Read Tickets for User (Requested)
Get all requested tickets for specified user_id
Parameter
Description
User ID
Read Tickets for User (CCed)
Get all CCed tickets for specified user_id
Parameter
Description
User ID
Read Tickets for User (Assigned)
Get all assigned tickets for specified user_id
Parameter
Description
User ID
Read Tickets (Recent)
Get all recent tickets
Read Tickets Count (All)
Returns an approximate count of tickets in the account. If the count exceeds 100,000, it is updated every 24 hours. The count[refreshed_at] property is a timestamp that indicates when the count was last updated. Note: When the count exceeds 100,000, count[refreshed_at] may occasionally be null. This indicates that the count is being updated in the background, and count[value] is limited to 100,000 until the update is complete.
Read Tickets Count (for Organization)
Returns an approximate count of tickets for specified organization_id. If the count exceeds 100,000, it is updated every 24 hours. The count[refreshed_at] property is a timestamp that indicates when the count was last updated. Note: When the count exceeds 100,000, count[refreshed_at] may occasionally be null. This indicates that the count is being updated in the background, and count[value] is limited to 100,000 until the update is complete.
Parameter
Description
Organization ID
Read Ticket Metrics
Returns a list of tickets with their metrics..
Read Ticket Fields
Returns a list of all system and custom ticket fields in your account. For accounts without access to multiple ticket forms, positions can be changed using the Update Ticket Field endpoint or the Ticket Forms page in Zendesk Support (Admin > Manage > Ticket Forms). The Ticket Forms page shows the fields for the account. The order of the fields is used in the different products to show the field values in the tickets.
Parameter
Description
Read Ticket Forms
Returns a list of all ticket forms for your account if accessed as an admin or agent. End users only see ticket forms that have end_user_visible set to true.
Read Ticket Comments
Returns comments for specified ticket ID.
Parameter
Description
Ticket ID
Sort Order
Sort order
Option
Value
desc
desc
asc
asc
Include inline images
Default is false. When true, inline images are also listed as attachments in the response
Option
Value
false
false
true
true
Read Ticket Attachments
Returns attachments for the specified Ticket ID.
Parameter
Description
Ticket ID
Sort Order
Sort order
Option
Value
desc
desc
asc
asc
Include inline images
Default is false. When true, inline images are also listed as attachments in the response
Option
Value
false
false
true
true
Read Ticket ActivityStream
Lists ticket activities in the last 30 days affecting the agent making the request. The Ticket Activities API returns ticket activities by other people affecting the agent making the API request. Ticket activities include assigning a ticket to the agent, increasing the priority of a ticket assigned to the agent, or adding a comment to a ticket assigned to the agent. A possible use case for the API is building a personalized notification service for agents.
Parameter
Description
Since (ISO e.g. 2013-04-03T16:02:46Z)
return the activities since a specific date. The since parameter takes a UTC time in the ISO 8601 format. Example: '2013-04-03T16:02:46Z'.
Read Ticket ActivityStream Details
Lists ticket activity details.
Parameter
Description
activity_id
Search Records
Search for ticket, user, organization, or group for specified search criteria. Returns max 1000 records based on search criteria (i.e. query) you specify
Parameter
Description
Search Criteria
The search query based on this syntax https://support.zendesk.com/hc/en-us/articles/203663226
Option
Value
Example: Search by Ticket ID
112233
Example: Search by Ticket Status
status<solved
Example: Search by Some Text
SomeText
Example: Search By Status
SomeText
Example: Search by Type and Status
type:ticket status:open
Example: Search by Type and Name
type:user "Jane Doe"
Example: Search by Type and CreationDate
type:organization created< 2015-05-01
Example: Search organizations updated after some date
type:organization updated > 2015-05-01
Example: Search users updated after some date
type:user updated > 2015-05-01
Example: Search By Type and Tag
type:ticket tags:red tags:blue
Sort By
Option
Value
updated_at
updated_at
created_at
created_at
priority
priority
status
status
ticket_type
ticket_type
Sort Order
Option
Value
desc
desc
asc
asc
Extra Columns to Include
You can list email CCs by side-loading users.
Option
Value
Default
users
users
Read Organization Count
Get organizations count.
Read Organization Fields
Returns a list of custom Organization Fields in your account. Fields are returned in the order that you specify in your Organization Fields configuration in Zendesk Support. Clients should cache this resource for the duration of their API usage and map the key for each Organization Field to the values returned under the organization_fields attribute on the Organization resource.
Read Tags
Lists the 500 most popular tags in the last 60 days, in decreasing popularity. You must enable the tagging of users and organizations in Zendesk Support for the API calls to work. Select Manage > Settings > Customers, and enable the option.
Read Groups
Get information about groups.
Read User Fields
Returns a list of custom User Fields in your account. Fields are returned in the order that you specify in your User Fields configuration in Zendesk Support. Clients should cache this resource for the duration of their API usage and map the key for each User Field to the values returned under the user_fields attribute on the User resource.
Read Current User Info
Get information for current profile based on credentials you have used.
Read Brands
Get information about brands.
Read Views
Get information about views.
Read Macros
Get information about macros.
Read Sessions
Get information about Sessions.
Read User Sessions
Get information about user sessions.
Parameter
Description
user_id
Read Requests
Returns a list of requests.
Parameter
Description
Sort By
Sort By field
Option
Value
updated_at
updated_at
created_at
created_at
Sort Order
Sort order
Option
Value
desc
desc
asc
asc
Status
Sort order
Option
Value
new
new
open
open
pending
pending
solved
solved
closed
closed
Read Requests Search
Returns a requests using search criteria.
Parameter
Description
Sort By
Sort By field
Option
Value
updated_at
updated_at
created_at
created_at
Sort Order
Sort order
Option
Value
desc
desc
asc
asc
Search Criteria
The search query based on this syntax https://support.zendesk.com/hc/en-us/articles/203663226
Option
Value
Example: Search by Ticket ID
112233
Example: Search by Ticket Status
status<solved
Example: Search by Some Text
SomeText
Example: Search By Status
SomeText
Example: Search by Type and Status
type:ticket status:open
Example: Search by Type and Name
type:user "Jane Doe"
Example: Search by Type and CreationDate
type:organization created< 2015-05-01
Example: Search organizations updated after some date
type:organization updated > 2015-05-01
Example: Search users updated after some date
type:user updated > 2015-05-01
Example: Search By Type and Tag
type:ticket tags:red tags:blue
Status
Sort order
Option
Value
new
new
open
open
pending
pending
solved
solved
closed
closed
organization_id
cc_id
Read Attachment
Read attachment information
Parameter
Description
Attachment ID
Delete Attachment
Delete attachment
Parameter
Description
Attachment ID
Upload Attachment (Single file)
Upload files to Zendesk which can be used as attachment later.
Parameter
Description
File Name
File name for display purpose
File Path (Local)
Token for exising Upload Session
Blank if creating a new upload
Delete Upload Session
Delete upload session and all its attachments.
Parameter
Description
Token for exising upload
Create Ticket (Single)
Creates one ticket at a time and wait until its created. Use BULK Table instead of this one to create multiple tickets.
Create Tickets (Bulk)
Create tickets in bulk (job is queued) and wait until done. This is faster than one request at a time
Delete Tickets (Bulk)
Delete multiple tickets in a single request. This is faster than row by row operation.
Parameter
Description
Ticket ID(S) - Use Comma for multiple (e.g. 111,222)
Update Tickets (Bulk)
Update tickets in bulk (job is queued) and wait until done. This is faster than one request at a time
Update Ticket (Single)
Update single ticket. Use bulk operation if you pfrefer to update multiple tickets. If you like to set additional_tags or remove_tags then use BULK Table (Tickets)
Parameter
Description
Ticket ID to Update
Delete Ticket
Delete ticket by id.
Parameter
Description
Ticket ID for Delete
Read Users (All)
Get a list of all users in your account
Parameter
Description
Role
Option
Value
agent
agent
admin
admin
end-user
end-user
permission_set
External ID for Ticket
Read Organizations (All)
Get a list of all organizations in your account
Generic Request
This is generic endpoint. Use this endpoint when some actions are not implemented by connector. Just enter partial URL (Required), Body, Method, Header etc. Most parameters are optional except URL.
Parameter
Description
Url
API URL goes here. You can enter full URL or Partial URL relative to Base URL. If it is full URL then domain name must be part of ServiceURL or part of TrustedDomains
Body
Request Body content goes here
IsMultiPart
Check this option if you want to upload file(s) (i.e. POST RAW file data) or send data using Multi-Part encoding method (i.e. Content-Type: multipart/form-data). Multi-Part request allows you to mix key/value and upload files in same request. On the other hand raw upload allows only single file upload (without any key/value)
==== Raw Upload (Content-Type: application/octet-stream) =====
To upload single file in raw mode check this option and specify full file path starting with @ sign in the Body (e.g. @c:\data\myfile.zip )
==== Form-Data / Multipart Upload (Content-Type: multipart/form-data) =====
To treat your Request data as multi part fields you must specify key/value pairs separated by new lines into RequestData field (i.e. Body). Each key value pair is entered on new-line and key/value are separated using equal sign (=). Preceding and trailing spaces are ignored also blank lines are ignored.
If field value has some any special character(s) then use escape sequence (e.g. For NewLine: \r\n, For Tab: \t, For at (@): \@). When value of any field starts with at sign (@) its automatically treated as File you want to upload. By default file content type is determined based on extension however you can supply content type manually for any field using this way [ YourFileFieldName.Content-Type=some-content-type ]. By default File Upload Field always includes Content-Type in the request (non file fields do not have content-type by default unless you supply manually). For some reason if you dont want to use Content-Type header in your request then supply blank Content-Type to exclude this header altogather [e.g. SomeFieldName.Content-Type= ]. In below example we have supplied Content-Type for file2 and SomeField1, all other fields are using default content-type.
See below Example of uploading multiple files along with additional fields. If some API requires you to pass Content-Type: multipart/form-data rather than multipart/form-data then manually set Request Header => Content-Type: multipart/mixed (it must starts with multipart/ else will be ignored).
file1=@c:\data\Myfile1.txt
file2=@c:\data\Myfile2.json
file2.Content-Type=application/json
SomeField1=aaaaaaa
SomeField1.Content-Type=text/plain
SomeField2=12345
SomeFieldWithNewLineAndTab=This is line1\r\nThis is line2\r\nThis is \ttab \ttab \ttab
SomeFieldStartingWithAtSign=\@MyTwitterHandle
Filter
Enter filter to extract array from response. Example: $.rows[*] --OR-- $.customers[*].orders[*]. Check your response document and find out hierarchy you like to extract
Headers
Headers for Request. To enter multiple headers use double pipe or new line after each {header-name}:{value} pair