Tips and FAQ

Zendesk - Incremental Export and Side-Loading

Cloud Elements is proud to support Zendesk's Incremental and Side-Loading functionality:

  • Incremental Export allows you to pull all records of a specified resource that have been changed since the provided start time
  • Side-loading allows you to load related resources on a given API request

With these two features, you will be able to leverage the Zendesk API to its fullest ability. This article covers more details on how to utilize this functionality.

Incremental Export

To use the incremental export you will have to pass in the incremental parameter, a boolean value, as part of the where clause. This alerts the CE platform that you are conducting an incremental export as opposed to a regular API request. You must also pass along a start_time parameter where the value is an epoch timestamp. The where clause will end up looking like the following:

where=incremental='true' and start_time='1571768014'

Side-Loading

Using the side-loading feature is relatively simple. You pass in an expand query parameterwhere the value is a list of related resources you would like to be returned on response. Here's an example: 

expand='identities,tickets'

Using the Features

It is possible to use both side-loading and incremental exports together, but is important to note that the expand parameter has to be outside of the where clause. Here's an example: 

expand=identities&where=incremental='true' and start_time='1332034771'

Bulk and Events

Both of these features are available to use with our bulk and events framework, although there are some limitations involved that you should be aware of. 

Side-loading with bulk is unable to return more than one related record through a CSV file. You can set the response type to JSON if you would like to return more than one related record. While you can maintain the the where clause as part of the bulk query, you will have to send the the expand parameter as part of the metadata object: 

{"expand":"identities","fileFormat":"json"}

 To use these features with the event polling framework, you need to use a specific URL as your polling URL:

/hubs/helpdesk/users?where=incremental='true'%20and%20start_time='${epoch:s}'%20and%20expand='identities'. 

In this example, the URL allows you to poll, using the incremental export endpoint, to retrieve all changed user records with the identities record side-loaded onto the users. A note about the epoch:s configuration value, epoch:s is calculated by our poller setting it to the last poll timestamp. 

For more information, please feel free to check out Zendesk's documentation: 

Side loading functionality

Side loading functionality is available for Zendesk /incidents, /users, /groups, /agents and /incident/{id}/comments. To utilize this functionality, send a where parameter of include = 'users,groups'.

Issue with elements-total-count value

To get information on the total number of records in the /incidents endpoint, you cannot rely on the elements-total-count as Zendesk does not guarantee the accuracy of this field. 

It is recommended that you use the elements-next-page-token to get the information where the API call can be iterated "n" number of times till an empty response is received.