Zendesk is a customer service and support platform that provides businesses with tools and features to manage and resolve customer inquiries and issues. It offers a ticketing system, knowledge base, live chat, and other customer engagement tools, enabling businesses to deliver efficient and effective customer support, build stronger customer relationships, and enhance overall customer satisfaction.
Refer to our website for the list of metrics and attributes available in Dataddo.
Refer to Zendesk's official documentation to see all available endpoints from the Zendesk API.
Authorize Connection to Zendesk
In Zendesk
To authorize your Zendesk account, you will need your subdomain name, Zendesk username, and an API token.
- In your Zendesk account, navigate to the Admin Center.
- Under APIs, select Zendesk API.
- Navigate to the Settings tab to enable token access.
- Go back to the Zendesk API page and click on Add API token.
- Copy the value.
In Dataddo
- On the Authorizers page, click on Authorize New Service and select Zendesk.
- Fill in the following fields:
- Subdomain: Your Zendesk subdomain name which is the first part of your Zendesk URL (e.g.
mycompanyfrommycompany.zendesk.com). - Username: Your email associated with Zendesk account.
- API Token: Zendesk API key.
- Subdomain: Your Zendesk subdomain name which is the first part of your Zendesk URL (e.g.
- Rename your authorizer for easier identification and click on Save.
Data Coverage
Zendesk exposes the following datasets. Each dataset maps to a table you can extract. Example fields are a representative sample; each dataset returns more columns.
| Dataset | Description | Example fields | Date range |
|---|---|---|---|
| Accounts | Get account information. | Owner ID, Multiproduct, Name, Sandbox, Subdomain, Time Format (+2 more) | No |
| Agents | Get agent information. | ID, Active, Alias, Created At, Custom Role ID, Default Group ID (+25 more) | No |
| Article comments | Article comments data | ID, Article ID, Author ID, Body, Created at, Html URL (+6 more) | No |
| Articles | Articles data | ID, Author ID, Body, Comments disabled, Created at, Draft (+14 more) | No |
| Audit logs | Audit logs data | ID, Action, Action label, Actor ID, Change description, Created at (+4 more) | No |
| Brands | Brands data | Ticket form IDs, Active, Brand URL, Created at, Default, Has help center (+8 more) | No |
| Calls | Calls data | ID, Agent ID, Call Channel, Call Charge, Call Group ID, Call Recording Consent (+40 more) | Yes |
| Categories | Categories data | ID, Created at, Description, Html URL, Locale, Name (+4 more) | No |
| Custom roles | Custom roles data | ID, Configuration - chat access, Configuration - end user list access, Configuration - end user profile access, Configuration - explore access, Configuration - forum access (+29 more) | No |
| Deleted tickets | Deleted tickets data | ID, Actor ID, Actor name, Deleted at, Description, Previous state (+1 more) | No |
| Deleted users | Deleted users data | ID, Active, Created At, Email, Locale, Name (+6 more) | No |
| Group memberships | Group memberships data | Group membership ID, Created at, Default, Group ID, Updated at, URL (+1 more) | No |
| Groups | Groups data | Group ID, Created at, Default, Deleted, Description, Name (+2 more) | No |
| Macros | Lists all shared and personal macros available to the current user. | Id, Actions Field, Actions Value, Active, Count, Created At (+8 more) | No |
| Organization fields | Organization fields data | ID, Active, Created at, Description, Key, Position (+6 more) | No |
| Organization memberships | Organization memberships data | ID, Organization ID, Created at, Default, Updated at, URL (+1 more) | No |
| Organization subscriptions | Organization subscriptions data | ID, Created at, Organization ID, User ID | No |
| Organizations | Organizations data | ID, Created At, Details, Domain Names, External ID, Group ID (+7 more) | No |
| Post comments | Post comments data | ID, Author ID, Body, Created at, Html URL, Official (+4 more) | No |
| Posts | Posts data | ID, Author ID, Closed, Comment count, Created at, Details (+10 more) | No |
| Requests | Requests data | Assignee ID, Can be solved by me, Channel, Created at, Description, Due at (+15 more) | No |
| SLA Policies | SLA policies data | ID, Created at, Description, Filter (all) - field, Filter (all) - operator, Filter (all) - value (+10 more) | No |
| Satisfaction ratings | Satisfaction ratings data | Assignee ID, Comment, Created at, Group ID, ID, Reason (+6 more) | No |
| Schedules | Schedules data | ID, Created at, Interval - end time, Interval - start time, Name, Time zone (+1 more) | No |
| Sections | Sections data | ID, Category ID, Created at, Description, Html Url, Locale (+9 more) | No |
| Sessions | Sessions data | ID, Authenticated at, Last seen at, User ID | No |
| Tags | Tags data | Name, Count | No |
| Targets | Targets data | ID, Active, Content type, Created at, Method, Password (+4 more) | No |
| Ticket audits - comments | Ticket audits comments data | ID, Author ID, Channel, Created at, Event body, Event ID (+7 more) | No |
| Ticket audits - status | Ticket audits status | Id, Created At, Event Id, Field Name, Previous Value, Ticket Id (+2 more) | No |
| Ticket comments | Ticket comments data | Ticket ID, Audit ID, Author ID, Body, Channel, Created at (+7 more) | No |
| Ticket counts | Total number of tickets of different types | Count, Status | No |
| Ticket fields | Ticket fields data | ID, Active, Agent description, Collapsed for agents, Created at, Custom field option - default (+17 more) | No |
| Ticket forms | Ticket forms data | ID, Active, Created at, Default, Display name, End user visible (+7 more) | No |
| Ticket metric events | Ticket metrics events data | ID, Instance ID, Metric, Ticket ID, Time, Type | Yes |
| Ticket metrics | Ticket metrics data | Ticket ID, Agent wait time in minutes - business, Agent wait time in minutes - calendar, Assigned at, Assignee stations, Assignee updated at (+21 more) | No |
| Ticket problems | Ticket problems data | ID, Allow attachments, Allow channelback, Assignee ID, Brand ID, Via channel (+23 more) | No |
| Tickets | Tickets data | ID, Allow attachments, Allow channelback, Assignee ID, Brand ID, Via channel (+24 more) | No |
| Tickets incremental | Tickets data | ID, Allow attachments, Allow channelback, Assignee ID, Brand ID, Via channel (+28 more) | Yes |
| Topics | Topics data | ID, community ID, Created at, Description, Follower Count, Html Url (+6 more) | No |
| User fields | User fields data | ID, Active, Created at, Description, Key, Position (+6 more) | No |
| User Segments | List user segments | ID, Added User IDs, Built In, Created at, Group IDs, Name (+5 more) | No |
| Users | Users data | ID, Active, Alias, Chat only, Created At, Custom Role ID (+20 more) | No |
| Users incremental | Users data | ID, Active, Alias, Chat only, Created At, Custom Role ID (+18 more) | Yes |
How Data Extraction Works
What each extraction pulls depends only on whether a dataset supports a date range (see the Date range column above):
- Date range supported (Yes): the source reads a relative window (for example "last 7 days"), and that window slides forward with the current date. Every run re-reads the window, so a range of "1 day ago" always pulls the previous day (D-1). Each run replaces the window's data rather than adding older history. To load records from before the window, run a full data re-sync with a wider range. See Data Backfilling.
- No date range (No): every run pulls all currently available data.
Set the relative date range when you create the source.
Metadata Columns
When you create a source, you can add these Dataddo metadata columns to the extracted data:
- dataddo_hash - a fingerprint built from each record's key fields. It works as a natural key, so it is ideal for upserts (updating existing rows in your destination instead of creating duplicates).
- dataddo_extraction_timestamp - the date and time the row was extracted. Use it to track how records change over time, for example to build slowly changing dimensions.
How to Create a Zendesk Data Source
Creating a data source takes you through six steps, shown in the progress bar at the top of the wizard. Each step is explained below.
1. Pick the connector
On the Sources page, click Create Source, then select the connector from the catalog. Use the search bar or the category tabs if you do not see it right away. You can rename the source at any time using the pencil icon next to its name.
2. Select the dataset
A dataset defines the shape of your data: which fields you get and how they relate. Select the dataset you want; you can still fine-tune the exact fields later.
- Each dataset has a short description of what it contains. Use the search box to find a dataset, attribute, or metric by name.
- The panel on the right previews the selected dataset's fields. For each field you can see its data type, whether it holds sensitive data (personal fields such as name or email are flagged), and which other datasets it links to, so you can see how the datasets relate.
3. Choose the account
This step selects what Dataddo reads from.
- Authorizer: Select an account you have already authorized from the drop-down. If you have none yet, choose Add new account and follow the prompts. If no authorizer is selected, Dataddo asks you to authorize before you continue.
- What to extract from: Select the exact entity you want to pull data from. Depending on the service this may be labelled an account, property, profile, workspace, or similar, sometimes with a sub-level to choose as well.
- Multiple accounts: To pull the same data from every entity you can access, turn on Automatically collect data from all .... This is multi-account extraction. Leave it off to choose them by hand.
4. Refine the attributes and metrics
The dataset already sets the structure. Here you fine-tune it: tick or untick the specific attributes and metrics you want to keep, and use the search box to find a field quickly. Click Test on Sample Data at any point to preview the result before you continue.
5. Add metadata columns (optional)
Two optional columns help your destination handle the data.
- Dataddo Hash (Include Row Hash): a fingerprint built from the columns you pick. It works as a natural key, so your destination can deduplicate rows and run upserts instead of creating duplicates. Turn it on, then select the columns that uniquely identify a row.
- Dataddo Extraction Timestamp: the time each row was extracted. Use it to watermark the data, for example to build slowly changing dimensions or to track when a value last changed.
6. Set the schedule
Decide how often Dataddo runs the extraction.
- Frequency: how often the pipeline runs, for example daily. Click Show advanced settings to also set the exact hour and minute (UTC).
- Date range: the relative window each run extracts, for example "Yesterday". The window moves forward on every run.
- Historical data: a new source starts from the current window. To load older data, run a full data re-sync after the source is created.
- Allow Empty Data Extractions: when on, a run that returns no data records zero rows instead of failing. Turn it on if the source can legitimately have periods with no data.
Click Save. Your data source is ready.
Limitations
Tickets Archivation
Tickets that have been closed for 120 days are archived. This means these tickets will not be returned by the Ticket metric endpoint
To avoid having your tickets archived, you can create a custom stage for resolved tickets.
Troubleshooting
Data Preview Unavailable
No data preview when you click on Test Data might be caused by an issue with your source configuration. The most common causes are:
- Date range: Try a smaller date range. You can load the rest of your data afterward via manual data load.
- Insufficient permissions: Please make sure your authorized account has at least admin-level permissions.
Related Articles
Now that you have successfully created a data source, see how you can connect your data to a dashboarding app or a data storage.
Sending Data to Dashboarding Apps
Sending Data to Data Storages
Other Resources