# Zendesk

The Zendesk destination syncs user data to your Zendesk customer support system.

## Destination Info

* Supports [Identify](https://documentation.freshpaint.io/reference/developer/freshpaint-sdk-reference#identify) calls
* Does not support [Track](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#track) track calls and will not appear as a destination option in the event library.
* Supports [HIPAA mode](https://documentation.freshpaint.io/hipaa-mode)
* Supported Connection Modes:

<table><thead><tr><th> </th><th data-type="checkbox">Client-side</th><th data-type="checkbox">Server-side</th></tr></thead><tbody><tr><td><strong>Web</strong></td><td>false</td><td>true</td></tr><tr><td><strong>Mobile</strong></td><td>false</td><td>true</td></tr><tr><td><strong>Server</strong></td><td>false</td><td>true</td></tr></tbody></table>

## Getting Started

To set up the Zendesk integration, follow these steps:

1. Go to the [Zendesk Configuration page](https://app.freshpaint.io/destinations/apps/zendesk) in Freshpaint and click "Configure"
2. Enter your Zendesk subdomain. Find this value in the address bar when you visit your zendesk portal. For example if your Zendesk portal URL is https\://**mycompany**.zendesk.com/agent/filters/1165384057000 then you would enter `mycompany`.
3. Enter the email address associated with your Zendesk account.
4. [Generate an API token](https://support.zendesk.com/hc/en-us/articles/4408889192858-Generating-a-new-API-token) that Freshpaint can use to access Zendesk and copy/paste it into Freshpaint.

<figure><img src="https://1666823438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MA7aDqsXMFbUsWVqonF%2Fuploads%2FTSd3WCscERXXYcfWHVtx%2FScreen%20Shot%202023-01-19%20at%2015.42.11.png?alt=media&#x26;token=905658de-8f95-4cb1-ac90-5bc679e53628" alt=""><figcaption></figcaption></figure>

## Identify

When you call [freshpaint.identify()](https://documentation.freshpaint.io/reference/developer/freshpaint-sdk-reference#identify), Freshpaint will create or update a user profile in Zendesk.

<figure><img src="https://1666823438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MA7aDqsXMFbUsWVqonF%2Fuploads%2F5Q392te7y8CIWVJGwUdv%2FScreen%20Shot%202023-01-13%20at%2016.10.50.png?alt=media&#x26;token=e6ad7fe7-6f9e-40c8-b7e1-2a48be793e6a" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The Zendesk destination uses the [Zendesk Create or Update User API](https://developer.zendesk.com/api-reference/ticketing/users/users/#create-or-update-user)
{% endhint %}

### Required Properties

Zendesk requires a user ID and the user's name. For example, using the Freshpaint Web SDK, you would call `freshpaint.identify("some_user_id", {"name": "Some User"})`. The user will not be synced to Zendesk if either the user ID or the user's name are not provided.

To send the user's **name** to Zendesk, you may either use

* the `name` user property, or
* both the `firstName` and `lastName` user properties

The following user properties, when included in the freshpaint.identify() call, will be sent to Zendesk:

| Property         | Type    |
| ---------------- | ------- |
| `email`          | string  |
| `organizationId` | integer |
| `timezone`       | string  |
| `phone`          | string  |

To send the user's **company name** to Zendesk, use the nested user property `company.name`. For example using the Freshpaint Web SDK you would call `freshpaint.identify({"company": {"name": "Acme, Inc"}})`

Additional user properties will be sent to Zendesk as **User Fields**. A Zendesk admin will need to [configure custom user fields](https://support.zendesk.com/hc/en-us/articles/4408822051866) for your account in order to use these.
