- Introduction
-
Getting Started
- Creating an Account in Hevo
- Subscribing to Hevo via AWS Marketplace
- Subscribing to Hevo via Snowflake Marketplace
- Connection Options
- Familiarizing with the UI
- Creating your First Pipeline
- Data Loss Prevention and Recovery
- Upgrading Pipeline from Standard to Edge
-
Data Ingestion
- Types of Data Synchronization
- Ingestion Modes and Query Modes for Database Sources
- Ingestion and Loading Frequency
- Data Ingestion Statuses
- Deferred Data Ingestion
- Handling of Primary Keys
- Handling of Updates
- Handling of Deletes
- Hevo-generated Metadata
- Best Practices to Avoid Reaching Source API Rate Limits
-
Edge
- Data Ingestion
- Core Concepts
-
Pipelines
- Familiarizing with the Pipelines UI
- Creating an Edge Pipeline
- Working with Edge Pipelines
- Pipeline Job History
- Pipeline Overview
- Needs Attention
- Object and Schema Management
- Activity Log
-
Sources
- Connect AI
- PostgreSQL
- Oracle
- MySQL
- SQL Server
- Troubleshooting Database Sources
- CockroachDB
- MongoDB
- SharePoint
- Salesforce Bulk API V2
- Ordergroove
- BambooHR
- Stripe
- NetSuite SuiteAnalytics
- Shopify
- Slack
- ClickUp
- Monday.com
- Pipedrive
- Workable
- Fathom
- HubSpot
- Salesforce Marketing Cloud
- Google Analytics 4
- Google Ads
- Facebook Ads
- Microsoft Ads
- LinkedIn Ads
- Xero
- Instagram Business
- Amazon Selling Partner
- TikTok Ads
- StackAdapt
- Amazon Ads
- Pinterest Organic
- Zendesk Support
- Snapchat Ads
- TikTok Organic
- Google Search Console
- Klaviyo v2
- Braintree Payments
- Facebook Pages
- Tempo
- PayPal
- Auth0
- Pinterest Ads
- Apple Search Ads
- Permit.io
- Amplitude Analytics
- Customer.io
- Paddle
- Jira Cloud
- Fullstory
- GitHub
- WorkOS
- ActiveCampaign
- Campaign Monitor
- Infobip
- Mailgun Send
- Metaplane
- Notion
- Recharge
- sevdesk
- Statuspage
- Teamwork.com
- Workday RaaS
- Yotpo
- TikTok Shop Partner Center
- Linear
- Microsoft Dynamics 365 Business Central
- Checkout.com
- Pylon
- Increase
- Microsoft Teams
- Rollbar
- Toggl Track
- QuickBooks Online
- Zoho Desk
- Livestorm
- Attentive
- SendGrid
- Bitly
- Shortcut
- Buzzsprout
- Persona
- Mailjet
- Open Exchange Rates
- PagerDuty
- CircleCI
- SonarQube
- Chargebee
- Bing Webmaster Tools
- Rundeck
- Cal.com
- Naming Conventions for Source Data Entities
- Destinations
- Transformations
- Alerts
- Activate
- Custom Connectors
-
Data Loading
- Loading Data in a Database Destination
- Loading Data to a Data Warehouse
- Optimizing Data Loading for a Destination Warehouse
- Deduplicating Data in a Data Warehouse Destination
- Manually Triggering the Loading of Events
- Scheduling Data Load for a Destination
- Loading Events in Batches
- Data Loading Statuses
- Data Spike Alerts
- Name Sanitization
- Table and Column Name Compression
- Parsing Nested JSON Fields in Events
-
Pipelines
- Data Flow in a Pipeline
- Familiarizing with the Pipelines UI
- Working with Pipelines
- Managing Objects in Pipelines
- Pipeline Jobs
-
Transformations
-
Python Code-Based Transformations
- Supported Python Modules and Functions
-
Transformation Methods in the Event Class
- Create an Event
- Retrieve the Event Name
- Rename an Event
- Retrieve the Properties of an Event
- Modify the Properties for an Event
- Fetch the Primary Keys of an Event
- Modify the Primary Keys of an Event
- Fetch the Data Type of a Field
- Check if the Field is a String
- Check if the Field is a Number
- Check if the Field is Boolean
- Check if the Field is a Date
- Check if the Field is a Time Value
- Check if the Field is a Timestamp
-
TimeUtils
- Convert Date String to Required Format
- Convert Date to Required Format
- Convert Datetime String to Required Format
- Convert Epoch Time to a Date
- Convert Epoch Time to a Datetime
- Convert Epoch to Required Format
- Convert Epoch to a Time
- Get Time Difference
- Parse Date String to Date
- Parse Date String to Datetime Format
- Parse Date String to Time
- Utils
- Examples of Python Code-based Transformations
-
Drag and Drop Transformations
- Special Keywords
-
Transformation Blocks and Properties
- Add a Field
- Change Datetime Field Values
- Change Field Values
- Drop Events
- Drop Fields
- Find & Replace
- Flatten JSON
- Format Date to String
- Format Number to String
- Hash Fields
- If-Else
- Mask Fields
- Modify Text Casing
- Parse Date from String
- Parse JSON from String
- Parse Number from String
- Rename Events
- Rename Fields
- Round-off Decimal Fields
- Split Fields
- Examples of Drag and Drop Transformations
- Effect of Transformations on the Destination Table Structure
- Transformation Reference
- Transformation FAQs
-
Python Code-Based Transformations
-
Schema Mapper
- Using Schema Mapper
- Mapping Statuses
- Auto Mapping Event Types
- Manually Mapping Event Types
- Modifying Schema Mapping for Event Types
- Schema Mapper Actions
- Fixing Unmapped Fields
- Resolving Incompatible Schema Mappings
- Resizing String Columns in the Destination
- Changing the Data Type of a Destination Table Column
- Schema Mapper Compatibility Table
- Limits on the Number of Destination Columns
- File Log
- Troubleshooting Failed Events in a Pipeline
- Mismatch in Events Count in Source and Destination
- Audit Tables
- Activity Log
-
Pipeline FAQs
- Can multiple Sources connect to one Destination?
- What happens if I re-create a deleted Pipeline?
- Why is there a delay in my Pipeline?
- Can I change the Destination post-Pipeline creation?
- Why is my billable Events high with Delta Timestamp mode?
- Can I drop multiple Destination tables in a Pipeline at once?
- How does Run Now affect scheduled ingestion frequency?
- Will pausing some objects increase the ingestion speed?
- Can I see the historical load progress?
- Why is my Historical Load Progress still at 0%?
- Why is historical data not getting ingested?
- How do I set a field as a primary key?
- How do I ensure that records are loaded only once?
- Why can't I see my Pipelines after logging in?
- Events Usage
-
Sources
- Free Sources
-
Databases and File Systems
- Data Warehouses
-
Databases
- Connecting to a Local Database
- Amazon DocumentDB
- Amazon DynamoDB
- Elasticsearch
-
MongoDB
- Generic MongoDB
- MongoDB Atlas
- Support for Multiple Data Types for the _id Field
- Example - Merge Collections Feature
-
Troubleshooting MongoDB
-
Errors During Pipeline Creation
- Error 1001 - Incorrect credentials
- Error 1005 - Connection timeout
- Error 1006 - Invalid database hostname
- Error 1007 - SSH connection failed
- Error 1008 - Database unreachable
- Error 1011 - Insufficient access
- Error 1028 - Primary/Master host needed for OpLog
- Error 1029 - Version not supported for Change Streams
- SSL 1009 - SSL Connection Failure
- Troubleshooting MongoDB Change Streams Connection
- Troubleshooting MongoDB OpLog Connection
-
Errors During Pipeline Creation
- SQL Server
-
MySQL
- Amazon Aurora MySQL
- Amazon RDS MySQL
- Azure MySQL
- Generic MySQL
- Google Cloud MySQL
- MariaDB MySQL
-
Troubleshooting MySQL
-
Errors During Pipeline Creation
- Error 1003 - Connection to host failed
- Error 1006 - Connection to host failed
- Error 1007 - SSH connection failed
- Error 1011 - Access denied
- Error 1012 - Replication access denied
- Error 1017 - Connection to host failed
- Error 1026 - Failed to connect to database
- Error 1027 - Unsupported BinLog format
- Failed to determine binlog filename/position
- Schema 'xyz' is not tracked via bin logs
- Errors Post-Pipeline Creation
-
Errors During Pipeline Creation
- MySQL FAQs
- Oracle
-
PostgreSQL
- Amazon Aurora PostgreSQL
- Amazon RDS PostgreSQL
- Azure PostgreSQL
- Generic PostgreSQL
- Google Cloud PostgreSQL
- Heroku PostgreSQL
- Upgrading Pipelines with PostgreSQL Sources to Use the pgoutput Plugin
-
Troubleshooting PostgreSQL
-
Errors during Pipeline creation
- Error 1003 - Authentication failure
- Error 1006 - Connection settings errors
- Error 1011 - Access role issue for logical replication
- Error 1012 - Access role issue for logical replication
- Error 1014 - Database does not exist
- Error 1017 - Connection settings errors
- Error 1023 - No pg_hba.conf entry
- Error 1024 - Number of requested standby connections
- Errors Post-Pipeline Creation
-
Errors during Pipeline creation
-
PostgreSQL FAQs
- Can I track updates to existing records in PostgreSQL?
- How can I migrate a Pipeline created with one PostgreSQL Source variant to another variant?
- How can I prevent data loss when migrating or upgrading my PostgreSQL database?
- Why do FLOAT4 and FLOAT8 values in PostgreSQL show additional decimal places when loaded to BigQuery?
- Why is data not being ingested from PostgreSQL Source objects?
- Troubleshooting Database Sources
- Database Source FAQs
- File Storage
- Engineering Analytics
- Finance & Accounting Analytics
-
Marketing Analytics
- ActiveCampaign
- AdRoll
- Amazon Ads
- Apple Search Ads
- AppsFlyer
- CleverTap
- Criteo
- Drip
- Facebook Ads
- Facebook Page Insights
- Firebase Analytics
- Freshsales
- Google Ads
- Google Analytics 4
- Google Analytics 360
- Google Play Console
- Google Search Console
- HubSpot
- Instagram Business
- Klaviyo v2
- Lemlist
- LinkedIn Ads
- Mailchimp
- Mailshake
- Marketo
- Microsoft Ads
- Onfleet
- Outbrain
- Pardot
- Pinterest Ads
- Pipedrive
- Recharge
- Segment
- SendGrid Webhook
- SendGrid
- Salesforce Marketing Cloud
- Snapchat Ads
- SurveyMonkey
- Taboola
- TikTok Ads
- Twitter Ads
- Typeform
- YouTube Analytics
- Product Analytics
- Sales & Support Analytics
- Source FAQs
-
Destinations
- Familiarizing with the Destinations UI
- Cloud Storage-Based
- Databases
-
Data Warehouses
- Amazon Redshift
- Amazon Redshift Serverless
- Azure Synapse Analytics
- Databricks
-
Google BigQuery
- Clustering in BigQuery
- Partitioning in BigQuery
- Structure of Data in the Google BigQuery Data Warehouse
- Loading Data to a Google BigQuery Data Warehouse
- Near Real-time Data Loading using Streaming
- Modifying BigQuery Destinations to Use Service Account Authentication
- Troubleshooting Google BigQuery
- Google BigQuery FAQs
- Hevo Managed Google BigQuery
- Snowflake
- Troubleshooting Data Warehouse Destinations
-
Destination FAQs
- Can I change the primary key in my Destination table?
- Can I change the Destination table name after creating the Pipeline?
- How can I change or delete the Destination table prefix?
- Why does my Destination have deleted Source records?
- How do I filter deleted Events from the Destination?
- Does a data load regenerate deleted Hevo metadata columns?
- How do I filter out specific fields before loading data?
- Transform
- Alerts
- Account Management
- Activate
- Glossary
-
Releases-
2026 Releases
- Release 2.53 (August 24 – September 21, 2026)
- Release 2.52 (July 27 – August 24, 2026)
- Release 2.51 (Jun 29 – July 27 , 2026)
- Release 2.50 (Jun 01–29, 2026)
- Release 2.49 (May 04-Jun 01, 2026)
- Release 2.48 (Apr 06-May 04, 2026)
- Release 2.47 (Mar 09-Apr 06, 2026)
- Release 2.46 (Feb 09-Mar 09, 2026)
- Release 2.45 (Jan 12-Feb 09, 2026)
-
2025 Releases
- Release 2.44 (Dec 01, 2025-Jan 12, 2026)
- Release 2.43 (Nov 03-Dec 01, 2025)
- Release 2.42 (Oct 06-Nov 03, 2025)
- Release 2.41 (Sep 08-Oct 06, 2025)
- Release 2.40 (Aug 11-Sep 08, 2025)
- Release 2.39 (Jul 07-Aug 11, 2025)
- Release 2.38 (Jun 09-Jul 07, 2025)
- Release 2.37 (May 12-Jun 09, 2025)
- Release 2.36 (Apr 14-May 12, 2025)
- Release 2.35 (Mar 17-Apr 14, 2025)
- Release 2.34 (Feb 17-Mar 17, 2025)
- Release 2.33 (Jan 20-Feb 17, 2025)
-
2024 Releases
- Release 2.32 (Dec 16 2024-Jan 20, 2025)
- Release 2.31 (Nov 18-Dec 16, 2024)
- Release 2.30 (Oct 21-Nov 18, 2024)
- Release 2.29 (Sep 30-Oct 22, 2024)
- Release 2.28 (Sep 02-30, 2024)
- Release 2.27 (Aug 05-Sep 02, 2024)
- Release 2.26 (Jul 08-Aug 05, 2024)
- Release 2.25 (Jun 10-Jul 08, 2024)
- Release 2.24 (May 06-Jun 10, 2024)
- Release 2.23 (Apr 08-May 06, 2024)
- Release 2.22 (Mar 11-Apr 08, 2024)
- Release 2.21 (Feb 12-Mar 11, 2024)
- Release 2.20 (Jan 15-Feb 12, 2024)
-
2023 Releases
- Release 2.19 (Dec 04, 2023-Jan 15, 2024)
- Release Version 2.18
- Release Version 2.17
- Release Version 2.16 (with breaking changes)
- Release Version 2.15 (with breaking changes)
- Release Version 2.14
- Release Version 2.13
- Release Version 2.12
- Release Version 2.11
- Release Version 2.10
- Release Version 2.09
- Release Version 2.08
- Release Version 2.07
- Release Version 2.06
-
2022 Releases
- Release Version 2.05
- Release Version 2.04
- Release Version 2.03
- Release Version 2.02
- Release Version 2.01
- Release Version 2.00
- Release Version 1.99
- Release Version 1.98
- Release Version 1.97
- Release Version 1.96
- Release Version 1.95
- Release Version 1.93 & 1.94
- Release Version 1.92
- Release Version 1.91
- Release Version 1.90
- Release Version 1.89
- Release Version 1.88
- Release Version 1.87
- Release Version 1.86
- Release Version 1.84 & 1.85
- Release Version 1.83
- Release Version 1.82
- Release Version 1.81
- Release Version 1.80 (Jan-24-2022)
- Release Version 1.79 (Jan-03-2022)
-
2021 Releases
- Release Version 1.78 (Dec-20-2021)
- Release Version 1.77 (Dec-06-2021)
- Release Version 1.76 (Nov-22-2021)
- Release Version 1.75 (Nov-09-2021)
- Release Version 1.74 (Oct-25-2021)
- Release Version 1.73 (Oct-04-2021)
- Release Version 1.72 (Sep-20-2021)
- Release Version 1.71 (Sep-09-2021)
- Release Version 1.70 (Aug-23-2021)
- Release Version 1.69 (Aug-09-2021)
- Release Version 1.68 (Jul-26-2021)
- Release Version 1.67 (Jul-12-2021)
- Release Version 1.66 (Jun-28-2021)
- Release Version 1.65 (Jun-14-2021)
- Release Version 1.64 (Jun-01-2021)
- Release Version 1.63 (May-19-2021)
- Release Version 1.62 (May-05-2021)
- Release Version 1.61 (Apr-20-2021)
- Release Version 1.60 (Apr-06-2021)
- Release Version 1.59 (Mar-23-2021)
- Release Version 1.58 (Mar-09-2021)
- Release Version 1.57 (Feb-22-2021)
- Release Version 1.56 (Feb-09-2021)
- Release Version 1.55 (Jan-25-2021)
- Release Version 1.54 (Jan-12-2021)
-
2020 Releases
- Release Version 1.53 (Dec-22-2020)
- Release Version 1.52 (Dec-03-2020)
- Release Version 1.51 (Nov-10-2020)
- Release Version 1.50 (Oct-19-2020)
- Release Version 1.49 (Sep-28-2020)
- Release Version 1.48 (Sep-01-2020)
- Release Version 1.47 (Aug-06-2020)
- Release Version 1.46 (Jul-21-2020)
- Release Version 1.45 (Jul-02-2020)
- Release Version 1.44 (Jun-11-2020)
- Release Version 1.43 (May-15-2020)
- Release Version 1.42 (Apr-30-2020)
- Release Version 1.41 (Apr-2020)
- Release Version 1.40 (Mar-2020)
- Release Version 1.39 (Feb-2020)
- Release Version 1.38 (Jan-2020)
-
2026 Releases
- Early Access New
Zendesk Support is a cloud-based customer service and support ticketing platform that helps businesses manage customer interactions across email, chat, voice, and social channels. It enables support teams to track, prioritize, and resolve customer issues through tickets, while also providing tools for self-service knowledge bases, automation of repetitive workflows, and reporting on support operations.
Hevo uses the Zendesk REST API to replicate data from your Zendesk Support account to the Destination of your choice.
Hevo supports the following authentication methods to connect to your Zendesk Support account:
-
Open Authorization (OAuth): Allows Hevo to connect to your account through an authorization flow, where you sign in to Zendesk and grant Hevo access to your account data.
-
OAuth app: Allows Hevo to connect to your account using the client ID, client secret, and refresh token of an OAuth client that you create in Zendesk.
Note: To create a Pipeline with Zendesk Support as the Source using an OAuth app, you must use the Create a Pipeline endpoint through the Hevo API. This method is not available in the Hevo UI. Read Creating a Pipeline with Hevo API for the steps to create the Pipeline.
Supported Features
| Feature Name | Supported |
|---|---|
| Capture deletes | Yes (for specific objects) |
| History mode | Yes (for the group_sla_policy_history and group_sla_policy_metric_history objects) |
| Custom data (user-configured tables & fields) | Yes (for the ticket, user, and organization objects, which include custom fields) |
| Priority-First Sync | Yes |
| Data blocking (skip objects and fields) | Yes |
| Resync (objects and Pipelines) | Yes (for parent objects) |
| API configurable | Yes |
Prerequisites
-
An active Zendesk Support account exists from which data is to be ingested.
-
You must be logged in as an Administrator in your Zendesk Support account.
Configure Zendesk Support as a Source in your Pipeline
Perform the following steps to configure your Zendesk Support Source:
-
Click Pipelines in the Navigation Bar.
-
Click + Create Pipeline in the Pipelines List View.
-
On the Select Source Type page, select Zendesk Support.
-
On the Select Destination Type page, select the type of Destination you want to use.
-
On the Select Pipeline Type page, click Edge, and then click Continue.

This page appears only if the selected Destination type is supported in Edge and your Team has an existing Zendesk Support Pipeline with the same Destination type. Otherwise, you can proceed to create an Edge Pipeline.
-
In the Configure Source screen, specify the following:

-
Source Name: A unique name for your Source, not exceeding 255 characters. For example, Zendesk Support Source.
-
In the Connect to your Zendesk Support account section:
-
Subdomain: The unique identifier for your Zendesk Support account. For example, if your Zendesk URL is https://xyz.zendesk.com, the subdomain is xyz.
-
Click Authenticate and perform the following steps to allow Hevo to connect to your account:
-
If you are not already signed in to your Zendesk Support account, sign in as a user with the Administrator role when prompted. Otherwise, proceed to step 2.

-
Review the requested access, and then click Allow to authorize Hevo to access your Zendesk Support account data.

You are redirected to the Configure Source screen.
-
-
Historical Sync Duration: The duration for which you want to ingest existing data from the Source. This setting cannot be changed after the Pipeline is created. Default value: All time.
This setting applies to the following objects:
Parent Object Child Objects satisfaction_rating Not applicable ticket - alert_recipient
- ticket_alert
- ticket_attribute
- ticket_chat
- ticket_chat_event
- ticket_collaborator
- ticket_comment
- ticket_comment_attachment
- ticket_email_cc
- ticket_field_history
- ticket_follower
- ticket_macro_reference
- ticket_schedule
- ticket_tag
- ticket_tag_history
Note: This setting also applies to the tables created in the Destination for the multiselect custom fields of the ticket object.For these objects, once the historical load is complete, Hevo ingests only the incremental data. For all other objects, Hevo ingests the entire data during each Pipeline run.
Note: For objects that support resync, Hevo recalculates the sync window from the date of the resync. For example, if a Pipeline was created on April 10, 2026, with a 2-year historical sync duration, and any of these objects is resynced on April 20, 2026, Hevo ingests data from April 20, 2024, to April 20, 2026.
-
-
-
Click Test & Continue to test the connection to your Zendesk Support Source.
When you click this button, Hevo makes an API call to retrieve the details of the authenticated Zendesk user.
- If the API call is successful and the authenticated user has the Administrator role, the connection test is marked as successful. You can then proceed to set up your Destination.
- If the authenticated user does not have the Administrator role, the connection test fails. In this case, click Reauthorize and sign in with an account that has the Administrator role.
Configure Zendesk Support as a Source Using the Hevo API
You can connect Hevo to your Zendesk Support account with an OAuth client created in your Zendesk account. This method is available only through the Hevo API. Specify the credentials of the client in the request that creates the Pipeline, and Hevo uses them to authenticate with your account.
The following credentials from your OAuth client are required to authenticate the connection:
-
Client ID: The unique identifier of your client. In Zendesk, this identifier is the unique identifier that you specify when you create the client.
-
Client Secret: The private key of your client. Hevo sends it with the client ID to authenticate the request. In Zendesk, this key is the Secret, and it is displayed in full only once, so save it securely like any other password.
-
Refresh Token: A long-lived token that your client receives the first time a Zendesk user authorizes it. Hevo exchanges this token for a short-lived access token when the Pipeline is created, and refreshes that token automatically, so the connection keeps working without anyone signing in again. Read Working with OAuth refresh tokens for the steps to generate it.
Note: Zendesk generates a refresh token only for an OAuth client that issues access tokens with an expiry. Ensure that your client is set to do this before you create the Pipeline. Read Creating the access token for more information.
Create the OAuth client in your Zendesk account and request the read scope. Read Creating an OAuth client for the steps to create it.
Prepare the Source Configuration
Before you build your request, retrieve the settings that the Zendesk Support connector currently accepts. Refer to Read the Connector Configuration for the steps to retrieve them, and Using your own OAuth app for the keys that this method accepts.
In the response, the auth object describes the credentials of your own OAuth app. In the connector configuration response, Hevo returns the auth object under data.schema.properties.auth, and the connector settings under data.schema.properties.config. Only a connector that accepts an OAuth app has an auth property. Each credential carries "type": "string". Every credential except client_id also carries "format": "password" and "writeOnly": true. The following example shows part of the auth object:
{
"auth": {
"required": [
"client_access"
],
"properties": {
"client_access": {
"required": [
"client_id",
"client_secret"
],
"properties": {
"client_id": {
"title": "Client ID"
},
"client_secret": {
"title": "Client Secret"
}
}
},
"refresh_token": {
"title": "Refresh Token"
},
"access_token": {
"title": "Access Token"
}
},
"anyOf": [
{
"required": [
"refresh_token"
]
},
{
"required": [
"access_token"
]
}
]
}
}
The anyOf block in the schema accepts either refresh_token or access_token, because that part of the schema is the same for every connector. For a Zendesk Support Source, send refresh_token. Hevo needs the refresh token to keep the Source authorized, so a request that sends only an access token fails while the Pipeline is being created.
Hevo uses the refresh token once, when it creates the Source, and keeps the new refresh token that Zendesk returns in its place. Use a refresh token for one request only. If the request fails, or if you want to create another Pipeline, authorize the app again to get a new refresh token.
To move the Source to another Zendesk subdomain, send the new config.domain value along with new credentials in auth, in the same request. Hevo tests a request that changes only the domain with the token you already have, and that test fails, because the stored token keeps refreshing against the subdomain it was created with.
Specify the credentials of your client in the auth object. Use domain to specify the subdomain of your Zendesk account, which Hevo uses to access the Zendesk API. For example, if your Zendesk URL is https://xyz.zendesk.com, specify xyz. The following example shows the source object for a Zendesk Support Source:
{
"name": "<source_name>",
"connector_id": "zendesk_support",
"type": "ZENDESK_SUPPORT",
"config": {
"domain": "<subdomain>",
"historical_sync_timeframe": "ALL_TIME"
},
"auth": {
"client_access": {
"client_id": "<client_id>",
"client_secret": "<client_secret>"
},
"refresh_token": "<refresh_token>"
}
}
Note: Replace the placeholder values in the example with your own. For example, <source_name> with My Zendesk Support Account.
Specify this source object in the request that creates your Pipeline. Read Creating a Pipeline with Hevo API for the complete request and the remaining steps.
Hevo validates the credentials and tests the Source and Destination connections before it saves anything. To test the Source connection, Hevo uses the credentials in the auth object to generate an access token. If a credential is rejected or a test fails, the request returns an error, and no Pipeline is created. Hevo also deletes the access token that it generated.
Note: Hevo does not store these credentials in the Source configuration. It exchanges them for a token when the Pipeline is created and refreshes that token from then on. Hevo does not return them if you retrieve the Source configuration later. If you revoke the credentials in Zendesk, Hevo cannot authenticate with the Source. As a result, all active jobs for the Pipeline fail, and no data is replicated. To resume data replication, send the new credentials using the Modify Source Configuration in a Pipeline endpoint. Read Modifying the Source Configuration for the steps to send them.
Data Replication
Hevo replicates data for all the objects selected on the Configure Objects page during Pipeline creation. By default, all supported objects and their available fields are selected. However, you can modify this selection while creating or editing the Pipeline.
Hevo ingests the following types of data from your Source objects:
-
Historical Data: The first run of the Pipeline ingests all available historical data for the selected objects and loads it into the Destination. Hevo uses priority-first sync to first load the data created in the last 15 days for a defined set of objects, and then loads the older data, starting in the same run and continuing in the next runs if needed.
Note: For objects that support the Historical Sync Duration setting, Hevo ingests data only for the duration you specify while configuring your Source.
-
Incremental Data: Once the historical load is complete, new and updated records for objects are ingested as per the sync frequency. Hevo ingests incremental data in subsequent Pipeline runs using timestamp fields such as updated and updated_at.
Note: The timestamp used to detect incremental changes may differ from the Updated At value displayed in your Zendesk account.
Zendesk enforces API rate limits on the number of calls that can be made in a given time period. If this limit is exceeded, a rate limit exception occurs. To understand how Hevo handles such scenarios, read Handling Rate Limit Exceptions.
Note: Hevo supports the History Tracking load mode for the group_sla_policy_history and group_sla_policy_metric_history objects. For all objects, the Merge load mode is supported. The Append mode is not supported for any object.
Immutable Objects
Some Zendesk Support objects cannot be updated after they are created. Once a record is created, Zendesk does not allow any modifications to it. Since updates for these objects are not possible, Hevo ingests only new records for them during incremental Pipeline runs.
The following objects are immutable:
- ticket_comment
- ticket_field_history
- ticket_tag_history
Schema and Primary Keys
Hevo uses the following schema to upload the records in the Destination. For a detailed view of the objects, fields, and relationships, click the ERD.
Data Model
The following is the list of tables (objects) that are created at the Destination when you run the Pipeline:
| Object | Description |
|---|---|
| Addresses | Contains the business addresses configured for your Zendesk Talk account, including the address name, street, city, and country code. |
| Agent Attributes | Contains the attributes assigned to agents, such as skills. |
| Agent Status Types | Contains the agent status types available across Support, Talk, and Messaging channels, including the status name and which channels it applies to. It includes a child object, Agent Status Type Group. |
| Articles | Contains Help Center knowledge base articles, including the title, body, author, and whether the article is a draft. It includes the following child objects: - Article Content Tag - Article Label Name - Article Outdated Locale |
| Article Comments | Contains comments left by users on Help Center articles, including the comment body and author. |
| Audit Logs | Contains a record of configuration and account changes made in your Zendesk account, including the actor, action, and affected resource. |
| Automations | Contains business rules that perform actions after a ticket has been in a given state for a period of time, including the automation title and status. It includes the following child objects: - Automation Action - Automation Condition |
| Brands | Contains the customer-facing identities configured for your account, including the brand name, subdomain, and whether it has an associated Help Center. |
| Call Legs | Contains details of each participant’s connection within a Zendesk Talk call, including the participant type, duration, and completion status. It includes a child object, Call Leg Quality Issue. |
| Call Metrics | Contains aggregated call metrics, including call direction, duration, wait time, and talk time. |
| Categories | Contains the top-level organizing containers of your Help Center knowledge base, including the category name, description, and locale. |
| Content Subscriptions | Contains user subscriptions to Help Center sections, articles, and community content for notification purposes. |
| Content Tags | Contains tags that can be assigned to Help Center articles and community posts to group related content. |
| Custom Roles | Contains custom agent roles available on Enterprise plans and above, including the role name and its granular configuration permissions. |
| Forum Topics | Contains community topics, which are collections of related community posts, including the topic name and description. |
| Greetings | Contains default and custom voice greetings played to callers, including the greeting name and audio file details. It includes a child object, Greeting IVR. |
| Greeting Categories | Contains categories used to group voice greetings. |
| Groups | Contains collections of agents that tickets can be assigned to, including the group name, description, and visibility. |
| Group Members | Links an agent to a group. |
| Group SLA Policy History | Contains group-level SLA policies that define target response and resolution times for tickets assigned to specific groups, including the policy title, description, and filter conditions. It includes a child object, Group SLA Policy Metric History. |
| IVRs | Contains Interactive Voice Response (IVR) menus, available on the Talk Professional and Enterprise plans, including the IVR name. It includes the following child objects: - IVR Menu - IVR Menu Route - IVR Menu Route Option |
| Lines | Contains the phone numbers and digital lines available in your Zendesk Talk account, including the line nickname, number, and enabled capabilities. It includes the following child objects: - Line Categorised Greeting - Line Greeting - Line Group |
| Locales | Contains the languages supported by your Zendesk Support account, including the locale code and native name. |
| Macros | Contains predefined sets of actions that agents can apply to a ticket to update its fields in one step, including the macro title and description. It includes a child object, Macro Action. |
| Organizations | Contains groupings of users, typically by company, including the organization’s name, notes, and custom field values. It includes the following child objects: - Domain Name - Organization Tag |
| Organization Members | Links a user to an organization. |
| Posts | Contains content shared by users in the community, including the post title, details, and status. |
| Post Comments | Contains comments left by users on community posts, including the comment body and author. |
| Satisfaction Ratings | Contains customer satisfaction ratings submitted for tickets, including the score, comment, and associated ticket. |
| Schedules | Contains business hours schedules used to define your support team’s availability, including the schedule name and time zone. It includes a child object, Schedule Holiday. |
| Sections | Contains sections that group related articles within a category, including the section name and position. |
| SLA Policy History | Contains account-level SLA policies, which define target response and resolution times for tickets, including the policy title and description. It includes a child object, SLA Policy Metric History. |
| Suspended Tickets | Contains incoming emails that Zendesk flagged as spam or could not process into a ticket, including the sender, subject, and content. Zendesk automatically and permanently deletes a suspended ticket that is not reviewed within 14 days. It includes a child object, Suspended Ticket Attachment. |
| Tickets | Contains customer support requests, including subject, description, priority, status, type, and the assigned agent, group, and organization. It includes the following child objects: - Alert Recipient - Ticket Alert - Ticket Attribute - Ticket Chat - Ticket Chat Event - Ticket Collaborator - Ticket Comment - Ticket Comment Attachment - Ticket Email CC - Ticket Field History - Ticket Follower - Ticket Macro Reference - Ticket Schedule - Ticket Tag - Ticket Tag History Note: The Ticket Comment Attachment object contains only file metadata, including the file name, size, content type, and URL. The actual file content is not replicated. |
| Ticket CSAT Surveys | Contains the Customer Satisfaction (CSAT) survey sent for a ticket, including its state and expiry. It includes the following child objects: - CSAT Survey Answer - CSAT Survey Closed Ended Option - CSAT Survey Question - CSAT Survey Rating Option |
| Ticket Custom Fields | Contains system and custom fields available on tickets, including the field key, type, title, and whether it is required. It includes a child object, Ticket Field Option. |
| Ticket Custom Statuses | Contains custom ticket sub-statuses mapped to Zendesk’s system status categories, including the agent-facing and end-user-facing labels. |
| Ticket Form History | Contains ticket forms, which define the subset of ticket fields shown to agents and end users, including the form name and visibility settings. It includes the following child objects: - Agent Condition - Agent Condition Required Status - End User Condition - Ticket Form Field - Ticket Form Restricted Brand |
| Ticket Side Conversations | Contains side conversations started by agents to loop in people outside the main ticket conversation, including the subject and current state. It includes the following child objects: - Ticket Side Conversation Event - Ticket Side Conversation Recipient |
| Ticket SLA Policies | Contains the account-level Service Level Agreement (SLA) policy applied to a ticket, including the policy and the time it was applied. It includes a child object, Ticket Group SLA Policy. |
| Time Zones | Contains the list of time zones and their standard UTC offsets that Zendesk supports for schedules and user profiles. |
| Translations | Contains translated content for articles, categories, and sections in each supported locale, including the translated title and body. |
| Triggers | Contains business rules that automatically perform actions when a ticket is created or updated and certain conditions are met, including the trigger title and whether it is active. It includes the following child objects: - Trigger Action - Trigger Condition |
| Users | Contains people who interact with your Zendesk account, including agents, administrators, and end users, along with their name, email, role, and status. It includes the following child objects: - User Identity - User Tag |
| User Segments | Contains user segments, which define who can view the content of a Help Center section or community topic, including the segment name and user type. It includes the following child objects: - User Segment Added User - User Segment Group - User Segment Organization - User Segment Tag |
| User Votes | Contains up or down votes cast by users on Help Center articles, article comments, posts, and post comments. |
Additional Information
Read the detailed Hevo documentation for the following related topics:
Handling of Deletes
For the ticket object, Zendesk marks deleted records by setting the status field to deleted. For all other objects, when a record is deleted, it is no longer returned in subsequent API responses.
Hevo uses a full data refresh approach to capture delete actions. During each Pipeline run, Hevo compares the data fetched from the Source object with the data present in the Destination table. If a record exists in the Destination but is no longer returned by the Source, the record is marked as deleted by setting the value of the metadata column __hevo__marked_deleted to True. This applies only to the following objects, for which the complete data is ingested during each sync:
| Object Category | Objects |
|---|---|
| Brand and Groups | - brand - group - group_member |
| Business Rules | - custom_role - sla_policy_history |
| Community | - forum_topic - post |
| Help Center | - content_tag |
| Organizations | - organization_member |
| Schedules | - schedule - schedule_holiday |
| Talk (Voice) | - address - agent_status_type - agent_status_type_group - greeting - greeting_category - greeting_ivr - ivr - ivr_menu - ivr_menu_route - ivr_menu_route_option - line - line_categorised_greeting - line_greeting - line_group |
| Ticket Forms | - agent_condition - agent_condition_required_status - end_user_condition - ticket_form_field - ticket_form_history - ticket_form_restricted_brand |
| Tickets | - suspended_ticket - suspended_ticket_attachment |
| User Segments | - user_segment - user_segment_added_user - user_segment_group - user_segment_organization - user_segment_tag |
For the following child objects, if a record is deleted at the Source and no longer appears in its parent object’s data, Hevo automatically removes the deleted record from the Destination:
-
sla_policy_metric_history
-
trigger_action, trigger_condition
-
automation_action, automation_condition
-
macro_action
-
article_label_name, article_content_tag, article_outdated_locale
-
user_tag, organization_tag, domain_name
-
ticket_tag, ticket_collaborator, ticket_email_cc, ticket_follower, ticket_attribute
-
agent_attribute
-
call_leg_quality_issue
-
user_vote
For all other objects, Hevo does not capture deletes. If a record is deleted in Zendesk, it remains in the Destination unless you resync the object with the Drop and load option enabled.
Source Considerations
-
The ticket_side_conversation object and its child objects require the Collaboration add-on to be enabled on your Zendesk account. If it is not, these objects have no data to sync.
-
The audit_log object is available only on the Zendesk Enterprise plan. If your account is on a lower plan, it does not contain any data to sync.
-
The ticket object supports multiselect custom fields. For each such field configured in your Zendesk account, Hevo creates a separate table in the Destination.
Revision History
Refer to the following table for the list of key updates made to this page:
| Date | Release | Description of Change |
|---|---|---|
| Oct-30-2026 | 2.54 | Updated sections, Supported Features and Data Replication to add information about priority-first sync. |
| Oct-19-2026 | 2.54 | Added section, Configure Zendesk Support as a Source Using the Hevo API. |
| Sep-23-2026 | 2.54 | New document. |