Zendesk

Connect & Ingest data from Zendesk

Zendesk is a customer service platform that provides support ticketing, knowledge management, and customer communication tools. The Sling Zendesk connector extracts data from the Zendesk REST API, supporting tickets, users, organizations, satisfaction ratings, and configuration data.

circle-check

Setup

The following credentials and inputs are accepted:

Secrets:

  • subdomain (required) -> Your Zendesk subdomain (the first part of your Zendesk URL, e.g., mycompany from mycompany.zendesk.com)

  • oauth_token (optional) -> OAuth Bearer token for authentication (starts with Bearer )

  • email (optional) -> Email address for Basic Auth (required if using API token instead of OAuth)

  • api_token (optional) -> API token for Basic Auth (required if using email instead of OAuth)

Inputs:

  • anchor_date (optional) -> The starting date for historical data extraction on first sync (default: 1 year ago). Format: YYYY-MM-DD

circle-info

Authentication Methods: You can authenticate using either OAuth Bearer token OR Basic Auth (email + api_token). At least one method must be configured.

Getting Your Credentials

OAuth is the recommended authentication method for Zendesk:

  1. Go to Apps and integrations > OAuth clients

  2. Click Create OAuth client (or use an existing one)

  3. Under Authorized redirect URIs, add your application's redirect URI

  4. Copy your OAuth token from the client details

  5. Format it as: Bearer <your_token>

Basic Auth with API Token

For Basic Auth using an API token:

  1. Go to Settings > API and webhooks > API tokens

  2. Click + Add API token to create a new token

  3. Copy the API token (you'll only see it once)

  4. Use your account email address and the API token for authentication

circle-exclamation

Using sling conns

Here are examples of setting a connection named ZENDESK. We must provide the type=api property:

With OAuth Bearer token:

With Basic Auth (email + API token):

Environment Variable

With OAuth:

With Basic Auth:

Sling Env File YAML

See here to learn more about the sling env.yaml file.

With OAuth Bearer token:

With Basic Auth (email + API token):

With anchor date for historical data:

Replication

Here's an example replication configuration to sync Zendesk data to a PostgreSQL database:

Sync all endpoints:

Full refresh example for configuration data:

Endpoints

Core Support Data

Endpoint
Description
Incremental

tickets

Support tickets

Yes (cursor-based)

ticket_comments

Comments on tickets (child endpoint)

No

satisfaction_ratings

Customer satisfaction ratings

Yes (time-based)

Users & Organizations

Endpoint
Description
Incremental

users

Support agents and end-users

Yes (cursor-based)

organizations

Customer organizations

Yes (time-based)

group_memberships

Membership of users in groups

No

organization_memberships

Membership of users in organizations

No

Ticket Configuration

Endpoint
Description
Incremental

ticket_fields

Custom ticket field definitions

No

ticket_forms

Ticket form configurations

No

ticket_metrics

Ticket statistics and metrics

No

Groups & Routing

Endpoint
Description
Incremental

groups

Support agent groups

No

views

Saved ticket views/filters

No

Organization Configuration

Endpoint
Description
Incremental

brands

Account brands

No

custom_roles

Custom role definitions

No

SLAs & Schedules

Endpoint
Description
Incremental

sla_policies

Service level agreements

No

schedules

Business hour schedules

No

Automation

Endpoint
Description
Incremental

triggers

Automation triggers

No

automations

Automation workflows

No

macros

Quick action macros

No

Tags & Metadata

Endpoint
Description
Incremental

tags

Available tags

No

To discover available endpoints:

Incremental Sync

The Zendesk connector supports incremental sync for the following endpoints:

Cursor-based Incremental Sync

  • tickets - Uses cursor pagination for large result sets

  • users - Uses cursor pagination for large result sets

First run fetches all records, subsequent runs only fetch records created or modified after the last sync.

Time-based Incremental Sync

  • organizations - Filters by updated_at timestamp

  • satisfaction_ratings - Filters by created_at timestamp

Anchor Date

On the first sync, incremental endpoints use the anchor_date input (default: 1 year ago) as the starting point. Subsequent syncs only fetch records modified after the last sync timestamp.

Child Endpoints

The ticket_comments endpoint uses a queue-based pattern:

  1. First, the tickets endpoint runs and collects ticket IDs

  2. Then, the ticket_comments endpoint iterates through the queue to fetch comments for each ticket

This means you should run the tickets endpoint before ticket_comments in your replication.

Rate Limiting

The Zendesk API has rate limits:

  • Standard accounts: 10 requests per second

  • Enterprise accounts: May have higher limits

The connector automatically:

  • Uses conservative rate limiting (5 requests/second)

  • Retries with exponential backoff on rate limit responses

To check your rate limits, refer to the Zendesk Rate Limiting documentationarrow-up-right.

Common Use Cases

Sync Core Support Tickets

Sync Users and Organizations

Configuration and Reference Data

Support Analytics with SLA Tracking

If you are facing issues connecting, please reach out to us at [email protected]envelope, on discordarrow-up-right or open a Github Issue herearrow-up-right.

Last updated

Was this helpful?