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 case | Extract mode | Load mode |
---|---|---|
Need only the latest data | Snapshot | Replace |
Need all instances of past data | Snapshot | Append |
Need all the data for analysis | Incremental | Append |
Need all the data with the latest changes | Incremental | Merge |
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
Parameter | Description | S | S(P) | I | I(P) |
---|---|---|---|---|---|
timestampCol | Timestamp column name | m | m | ||
schedule | Parameter will take input in cron format, set | o | o | o | o |
parent | Takes the name of the parent loadunit is a mandatory field for all child loadunits | ||||
ignoreSchedule | is set as true when the connector schedule should be ignored at the loadunit | ||||
paginate | Takes boolean input, true when paginating | m | m | ||
lagInMinutes | Lag in minutes before starting the loading of data | o | o | o | o |
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 ofchats
andchats_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.
Parameter | Description | Merge/Update | Replace | Append |
---|---|---|---|---|
DataFormat | Format of the loaded data, ex:parquet, json, avro, orc, csv (warehouse specific) | o | o | o |
copyOptions | Click redshift, snowflake to learn more | o | o | o |
TruncateTargetTable | Takes boolean input to indicate load mode. It is true for replace,false for append and merge modes | m | m | m |
IsUpdate | Boolean, Only for merge load mode | m | ||
PrimaryKeyCol | Primary key of the source | m | ||
UpdateTSCol | Timestamp column which captures the updated time | m |
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
- Please refer to Prerequisites step in the Zendesk Connector UI Setup Guide to generate the chat api token.
- Click on Update in the loadunits page of your connector
- Add Chat api token in the below format, "Update" button will be disabled in case of a syntax error.
- 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
- 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 object | Extract configuration | Load 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