> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hightouch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Zendesk

> Deliver better support by making user events and attributes available inside Zendesk

Zendesk is a customer service platform for managing support tickets and customer profiles. Hightouch syncs users, organizations, tickets, custom objects, and organization memberships from your warehouse to Zendesk, so agents work with customer data that's current and complete.

## Supported syncing

| Sync Type | Description | Supported Sync Modes | API Reference |
| :- | :- | :- | :- |
| [**Users**](#users) | Create and update end users and agents | Upsert, Update | [Create or update many users →](https://developer.zendesk.com/api-reference/ticketing/users/users/#create-or-update-many-users) |
| [**Organizations**](#organizations) | Create and update the organizations your users belong to | Upsert, Update | [Create or update organizations →](https://developer.zendesk.com/api-reference/ticketing/organizations/organizations/) |
| [**Tickets**](#tickets) | Create and update support tickets | Upsert, Update | [Create and update many tickets →](https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/) |
| [**Organization Memberships**](#organization-memberships) | Add users to organizations | Upsert | [Create many memberships →](https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/) |
| [**Custom objects**](#custom-objects) | Create and update records of the custom objects defined in your account | Upsert, Update | [Manage custom object records →](https://developer.zendesk.com/api-reference/custom-data/custom-objects/custom_object_records/) |
| [**Legacy custom objects**](#legacy-custom-objects) | Create and update records of legacy (Sunshine) custom objects | Upsert, Update | [Manage legacy object records →](https://developer.zendesk.com/api-reference/custom-data/custom-objects-api/resources/) |

For more information about sync modes, refer to the [sync modes](https://docs.hightouch.com/syncs/types-and-modes.md#sync-modes) docs.

## Connect to Zendesk

Connect with **Sign in with Zendesk** (OAuth, recommended) or a Zendesk API token.

> [!WARNING]
>
> Zendesk is [retiring API token
> authentication](https://support.zendesk.com/hc/en-us/articles/10851263566234-Announcing-the-removal-of-API-tokens-as-an-authentication-method-for-API-requests):
> new API tokens can't be created after October 27, 2026, and all remaining
> tokens stop working on April 30, 2027. If your destination uses an API token,
> [migrate to OAuth](#migrate-from-api-token-to-oauth) before then to keep your
> syncs running.

### Sign in with Zendesk (recommended)

Select **Sign in with Zendesk**, enter your Zendesk subdomain—for example, `mycompany` if your Zendesk URL is `mycompany.zendesk.com`—and complete the sign-in. The account you sign in with must be a Zendesk admin, since the connection needs read and write access to the API.

![](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-zendesk-oauth.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=925cfb8a90616e3033a5087c09500927)

> [!NOTE]
>
> Zendesk issues Hightouch short-lived access tokens that refresh automatically.
> You don't need to rotate any credentials.

### API token

Zendesk is retiring this method; use [Sign in with Zendesk](#sign-in-with-zendesk-recommended) instead.

In Zendesk, go to **Admin Center** > **Apps and integrations** > **Zendesk API** and add a new API token for Hightouch. Make sure **Token access** is enabled.

![](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-zendesk-api-token.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=67d5ec290e750bee47e2e755ffe0ee1f)

Copy the API token and fill in the fields in the Hightouch destination setup:

* **API token:** the token from Zendesk
* **Email:** the email you use to log in to Zendesk
* **Support URL:** the URL of your Zendesk support site, including `https://`—for example, `https://hightouch.zendesk.com`

### Migrate from API token to OAuth

Open the destination's **Configuration** tab in Hightouch, select **Sign in with Zendesk**, and complete the sign-in as a Zendesk admin. Your syncs and field mappings don't change.

## Sync configuration

### Users

Use **Upsert** when Hightouch should create missing users and update existing ones. Use **Update** when Hightouch should only modify users that already exist.

Zendesk may send a verification email when a sync creates a user, depending on your workspace settings. To suppress it, keep the default option that marks created users as verified; choose **Use the Zendesk default behavior** if you want Zendesk to decide whether to send verification emails.

#### Record matching

Match rows from your model to Zendesk users on external ID, Zendesk ID, email, or a custom field.

![](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-zendesk-matching.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=580a94edab714c3ca50d7009fc16f9a3)

#### Field mappings

Map columns to Zendesk's default user fields or to custom fields. To add custom fields to users, refer to the [Zendesk docs](https://support.zendesk.com/hc/en-us/articles/203662066).

![](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-zendesk-mapping.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=63f22ae6bd2442659623b8a145b81e24)

### Organizations

Use **Upsert** to create and update organizations, or **Update** to only modify existing ones. Match on external ID, Zendesk ID, or a custom field, and map columns to default or custom organization fields.

### Tickets

Use **Upsert** to create and update tickets, or **Update** to only modify existing ones. Match on external ID, Zendesk ID, or a custom field, and map columns to default or custom ticket fields.

### Organization Memberships

Organization memberships add users to organizations, so records are matched by both the `user_id` *and* `organization_id`.

![](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-zendesk-org-membership-id.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=03896bdf2859e669628479152c21ce3b)

The matching field should combine the user and organization columns you use in the field mappings. For example, if you match users by `email` and organizations by `external_id`, this field should be `user_email:org_externalId`. Your model should look similar to this:

![](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-zendesk-org-membership-query-ex.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=ce6fd8e70b0697032269517040945138)

> [!WARNING]
>
> Don't edit the user or organization value of an existing membership row. To
> change a membership, remove the old row from your model and add a new one.

### Custom objects

If your Zendesk account has [custom objects](https://support.zendesk.com/hc/en-us/articles/5914453843994-Understanding-custom-objects), they appear in the object dropdown with the prefix **(Custom)**.

![](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-zendesk-custom-objects.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=4f00f8e768973ef243ba7a681e47d99f)

Map columns to any property in the object's schema.

![](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-zendesk-custom-mapping.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=7c4a83bcccfb1371e81e93f0a9691194)

You can also create associations between existing object records using a predetermined relationship type; the associations appear in the field mappings. For more details, refer to the [Zendesk docs](https://developer.zendesk.com/api-reference/custom-data/custom-objects-api/relationships/).

### Legacy custom objects

[Legacy custom objects](https://support.zendesk.com/hc/en-us/articles/4408834725402) appear in the object dropdown with the prefix **(Legacy custom)**. Zendesk is sunsetting legacy custom objects in favor of the current custom objects framework, so prefer [custom objects](#custom-objects) for new syncs.

### Configure delete behavior

In **Upsert** mode, you can delete the Zendesk record or clear its synced fields when a row leaves your model. In **Update** mode, clearing synced fields is the only delete option. Organization membership syncs can delete the membership.

### Configure search batch size

Zendesk's search API can return up to 1,000 results, but by default Hightouch searches for 100 records at a time. You can increase this up to 500 for a faster sync.

Larger batches increase the risk of a [`414 - Long URI`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/414) error. If you see these errors, lower the batch size.

![Setting batch size in the Hightouch UI](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-zendesk-batch-form.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=3c6a61e61e41ab4366c53687857bb7d4)

## Tips and troubleshooting

To see the exact API requests and responses from each sync run, use the [live debugger](https://docs.hightouch.com/syncs/debugger.md). To get notified by Slack, PagerDuty, SMS, or email when a sync fails, set up [sync alerts](https://docs.hightouch.com/syncs/alerting.md). If you run into an issue this page doesn't cover, [contact support](#pylon-chat).

> [!NOTE]
>
> For Hightouch platform error codes related to Zendesk, see [Error codes: other
> destinations](https://docs.hightouch.com/developer-tools/error-codes.md#other-destinations).

### Validate your setup

Synced users and organizations appear in Zendesk under **Customers** and **Organizations** in the agent workspace, and a user's organization memberships appear on their profile. Custom object records appear in **Admin Center** > **Objects and rules** > **Custom objects**.
