Zendesk Connector JSON Guide

Another option to update/add Zendesk connector is through the JSON editor. Here is a quick guide on how to add and update the connector

Add a connector

  • Connector name - Set the name of the connector, please note that this cannot be changed.
  • Destination warehouse - Choose the destination warehouse from the drop down
  • subdomain: only the subdomain portion of your FQDN.
  • token: API token, go to UI Setup Guide > Prerequisites > Generate Zendesk API keys for details
  • chat_api_token: Chat API token, go to UI Setup Guide > Prerequisites > Generate Zendesk Chats API access token for details
  • user: The username you've used to login to Zendesk, and appending /token to it (ex: team@company.co/token)
  • user custom fields: List of custom fields for users in a comma separated format.

Updating the connector

Step 1: Update the connector

Click on update in the top right corner of the loadunit list page

Step 2: Edit the configuration

You will be redirected to the JSON editor page. Here is a guide on how to edit this file.

A loadunit can be updated in one of the two ways

1) Extraction configuration 2) Load configuration

Use cases for configuration

Use caseExtract modeLoad mode
Need only the latest dataSnapshotReplace
Need all instances of past dataSnapshotAppend
Need all the data for analysisIncrementalAppend
Need all the data with the latest changesIncrementalMerge
note
  • Extraction modes can be paginated in case of higher volumes of data.
  • Merge load mode will necessarily need a primary key, but its recommended to provide the timestamp column as well
  • If the table is high volume with frequent syncs, snapshot is not a feasible option

Extract configuration:

This pertains to the extraction mode, the frequency of extraction and pagination. The extraction configuration of the loadunit is found in inputParams > loadunits

The following parameters can be added or edited. The extractionmode parameter can take two values - snapshot and incremental

ParameterDescriptionSS(P)II(P)
timestampColTimestamp column namemm
scheduleParameter will take input in cron format, setoooo
parentTakes the name of the parent loadunit is a mandatory field for all child loadunits
ignoreScheduleis set as true when the connector schedule should be ignored at the loadunit
paginateTakes boolean input, true when paginatingmm
lagInMinutesLag in minutes before starting the loading of dataoooo

Legend:

  • S - snapshot mode
  • S(P) - snapshot mode with pagination
  • I - incremental mode
  • I(P) - incremental mode with pagination
  • m - mandatory parameter
  • o - optional parameter
note
  • Changing the schedule is likely to impact downstream dependencies
  • It is recommended to move to incremental mode from snapshot paginate in case the data volume increases
  • It is recommended to keep lagInMinutes as a multiple of schedule interval
  • syncToS3Only parameter is in the extraction configuration of chats and chats_visitor loadunit, the data sync is from the source till the s3 bucket

Load configuration:

This pertains to load configuration onto the warehouse. The load configuration of the loadunit is found in loaderConfig > loadunit

The following parameters can be added or edited. There are three load modes : merge, replace and append to learn more please visit features and capabilities tab.

ParameterDescriptionMerge/UpdateReplaceAppend
DataFormatFormat of the loaded data, ex:parquet, json, avro, orc, csv (warehouse specific)ooo
copyOptionsClick redshift, snowflake to learn moreooo
TruncateTargetTableTakes boolean input to indicate load mode. It is true for replace,false for append and merge modesmmm
IsUpdateBoolean, Only for merge load modem
PrimaryKeyColPrimary key of the sourcem
UpdateTSColTimestamp column which captures the updated timem

Legend:

  • m - mandatory parameter
  • o - optional parameter
note
  • List of supported loadunits is in the Overview tab
  • Timestamp column should be indexed and auto incremented, except for ticket_audits all timestampCol will take "dummy" for all other loadunits

Adding Chat Objects in JSON Editor

  1. Please refer to Prerequisites step in the Zendesk Connector UI Setup Guide to generate the chat api token.
  2. Click on Update in the loadunits page of your connector
  3. Add Chat api token in the below format, "Update" button will be disabled in case of a syntax error.
"chat_api_token":
{"encrypt": true,
"key": "vbBTHaq39tb7NdvussE3DFehujs3GWzrUq40VNq00XWOVVq621RzOhON0"
},
  1. Click on Update and wait for the connector to be active. Go to the loadunits page and click Update again on the top right, the access code will be encrypted in the JSON editor
  2. Now add the loadunits mapped to all chat objects in both extract and load configuration and click Update, once the connector is activated the data will get synced from chat objects as well.

Here is a guide for default extact and load configuration for all the chat objects

  • The extraction configuration of the loadunit should be pasted in inputParams > loadunits
  • The load configuration of the loadunit should be pasted in loaderConfig > loadunit
Chat objectExtract configurationLoad configuration
agent"agent": { "executionMode": "snapshot", "paginate": true }"agent": { "TruncateTargetTable": true }
agent metrics"agent_metrics":{``"executionMode": "incremental",``"timestampCol": "dummy",``"paginate": true``}"agent_metrics": {}
chats"chats": {``"executionMode": "incremental",``"timestampCol": "dummy",``"paginate": true,``"syncToS3Only": true``}NA
chat"chat": {``"ignoreSchedule": true,``"parent": "chats",``"executionMode": "incremental",``"timestampCol": "dummy",``"paginate": true``}"chat": {}
chat agent"chat_agent": {``"ignoreSchedule": true,`` "parent": "chat",``"executionMode": "incremental",``"timestampCol": "dummy",``"paginate": true``}"chat_agent": {}
chat history"chat_history": {``"ignoreSchedule": true,``"parent": "chat",``"executionMode": "incremental",``"timestampCol": "dummy",``"paginate": true``}"chat_history": {}
chat vistors"chat_visitors": {``"ignoreSchedule": true,``"parent": "chat",``"executionMode": "incremental",``"timestampCol": "dummy",``"paginate": true,``"syncToS3Only": true``}NA
chat vistor"chat_visitor": {``"ignoreSchedule": true,``"parent": "chat_visitors",``"executionMode": "incremental",``"timestampCol": "dummy",``"paginate": true``}"chat_visitor": {}
chat webpath"chat_webpath": {``"ignoreSchedule": true,``"parent": "chat",``"executionMode": "incremental",``"timestampCol": "dummy",``"paginate": true }"chat_webpath": {}

Ask a question

If you have questions or feedback, feel free to reach out at hello@datacoral.co or Request a demo