# Zendesk

> Connect Zendesk to sanda: what to prepare, the fields the connection form asks for, and how its data lands in your warehouse.

## Connect Zendesk

:::steps
1. **Open the catalogue.** In the console, go to **Data · Connections** and press **New connection**.
2. **Choose Zendesk.** It is listed under crm and support; you can also search for it by name.
3. **Fill in the form.** Enter the fields below. Credentials go straight to sanda’s sync engine and are never stored in sanda’s database.
4. **Choose what to sync.** Pick the tables you want, and a sync mode for each. See [choose what to sync](https://docs.sanda-os.com.au/connections/choose-tables).
5. **Run the first sync.** sanda tests the connection, then lands each table you chose in your warehouse.
:::

## Configuration fields

What the connection form asks for. Required fields are marked; the rest are optional.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| **Subdomain** | string | Yes | This is your unique Zendesk subdomain that can be found in your account URL. For example, in https://MY_SUBDOMAIN.zendesk.com/, MY_SUBDOMAIN is the value of your subdomain. |
| **Authentication** | one of 3 options | No | Zendesk allows three authentication methods. |
| **Start Date** | string | No | The UTC date and time from which you'd like to replicate data, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated. |
| **Number of concurrent threads** | integer | No | The number of worker threads to use for the sync. Higher values can improve sync throughput on large workspaces; lower values reduce load on the source. The minimum is 2 so that another stream keeps emitting while the `tickets` stream reads. Default `4`. |
| **Page Size (ticket_comments)** | integer | No | The number of records per page for the ticket_comments stream API requests. Lower values may help prevent timeouts on large datasets. The maximum value is 1000. Default `100`. |
| **Tickets Search Lookback Window (days)** | integer | No | Only applies to the optional `tickets_search` stream. Number of days to re-scan before the last saved cursor on each incremental sync. This helps catch late or out-of-order `updated_at` changes. Note: it does NOT recover automation/macro/system updates (those never change `updated_at`). Use the default `tickets` stream if you need complete change tracking. Default `0`. |

### Authentication

Zendesk allows three authentication methods.

Choose one of the following. Each asks for its own fields.

**OAuth2.0 with Refresh Token**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| **Access Token** | string, secret | No | Access Token for making authenticated requests. |
| **Client ID** | string, secret | Yes | The OAuth client's ID. |
| **Client Secret** | string, secret | Yes | The OAuth client secret. |
| **Refresh Token** | string, secret | Yes | The refresh token used to obtain new access tokens. Note that Zendesk uses rotating refresh tokens. Each refresh will return a new refresh token and invalidate the previous one. |
| **Token Expiry Date** | string | No | The date-time when the access token should be refreshed. |

**API Token**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| **API Token** | string, secret | Yes | The value of the API token generated. |
| **Email** | string | Yes | The user email for your Zendesk account. |

**OAuth2.0 (Legacy)**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| **Access Token** | string, secret | Yes | The OAuth access token. |
| **Client ID** | string, secret | No | The OAuth client's ID. |
| **Client Secret** | string, secret | No | The OAuth client secret. |


## Related

:::links
- [Sync modes](https://docs.sanda-os.com.au/connections/sync-modes): How sanda reads each table on every run.
- [Sync schedules](https://docs.sanda-os.com.au/connections/schedules): How often a connection runs.
- [Allowlist sanda’s address](https://docs.sanda-os.com.au/connections/allowlist): For a system behind a firewall.
- [Troubleshoot connections](https://docs.sanda-os.com.au/connections/troubleshooting): What an error means and how to fix it.
:::
