# Zendesk

## Overview

The Zendesk Integration enables seamless connectivity between your platform and Zendesk to synchronize and manage customer support, CRM data, and content workflows. By integrating Zendesk, organizations can centralize ticketing operations, improve response efficiency, and maintain a unified view of customer interactions across multiple capabilities including **Helpdesk**, **CRM**, and **Content Management**.

### Prerequisites

Ensure the following requirements are fulfilled before initiating the integration:

* An active **Zendesk Admin account** with appropriate permissions.
* Valid **Zendesk domain URL** and login credentials.
* Access to the **TheLoops** platform with **Admin role** privileges.

### Capability-Specific Notes <a href="#capability-specific-notes" id="capability-specific-notes"></a>

* **Helpdesk Capability:**\
  Requires complete configuration including domain, “Pull Record By” selection, and all mandatory fields.
* **CRM Capability:**\
  Configuration is identical to Helpdesk.
  * The only difference is selecting **CRM** as the capability in the **Basic** tab.
* **Content Management Capability:**\
  Requires minimal configuration.
  * Only the **Zendesk Domain** field is required.
  * Select **Content Management** as the capability in the **Basic** tab.

### Best practices

* **Leverage Browser Session Authentication:**\
  If you are already logged into Zendesk in the same browser, authentication may be completed automatically without re-entering credentials due to session caching.
* **Ensure Proper Domain Format:**\
  Always enter the Zendesk domain in the correct format (core domain only) to avoid connection failures.
* **Use Appropriate Permissions:**\
  Ensure the Zendesk account has sufficient access rights for the selected capability.
* **Select Correct Data Sync Option:**\
  For Helpdesk and CRM, choose between **Created Time** or **Updated Time** based on your synchronization needs.
* **Validate Integration Post-Setup:**\
  Always perform a **Test Connection** to confirm successful configuration.
* **Proactive Token Management:**\
  Monitor token expiration and refresh it proactively to prevent disruptions.
* **Maintain Security Compliance:**\
  Protect credentials and follow organizational security policies at all times.

## Setup instructions <a href="#setup-instructions" id="setup-instructions"></a>

### Access integration module

{% stepper %}
{% step %}
Log in to **TheLoops** platform using an **Admin** account.
{% endstep %}

{% step %}
Navigate to **Settings → Integrations** module.
{% endstep %}

{% step %}
Click on the **“+ Add Integration”** button to view available integrations.
{% endstep %}

{% step %}
Search for **Zendesk** and open the integration setup.
{% endstep %}
{% endstepper %}

### Basic configuration

{% stepper %}
{% step %}
In the **Basic** tab, enter a suitable name for the integration.
{% endstep %}

{% step %}
Select the required **Capability** based on your use case:

* **Helpdesk**
* **CRM**
* **Content Management**
* Click **Next** to proceed.
  {% endstep %}
  {% endstepper %}

### Authentication & configuration <a href="#authentication-setup" id="authentication-setup"></a>

#### **Common Configuration (Helpdesk & CRM):**

{% stepper %}
{% step %}
In the **Zendesk Domain** field, enter your domain in the required format:

* Remove prefixes (e.g., `https://`) and suffixes (e.g., `.zendesk.com`).
* Provide only the **core domain name**.
  {% endstep %}

{% step %}
Select the appropriate option from **“Pull Record By”**:

* Created Time
* Updated Time
  {% endstep %}

{% step %}
Fill in all mandatory fields.
{% endstep %}
{% endstepper %}

#### **Content Management Configuration:**

{% stepper %}
{% step %}
Select **Content Management** as the capability in the **Basic** tab.
{% endstep %}

{% step %}
In the Authentication section, only the **Zendesk Domain** field is required (as per the specified format).
{% endstep %}
{% endstepper %}

#### For Content management capability:

{% stepper %}
{% step %}
Select the preferred **Environment**.
{% endstep %}

{% step %}
Enter your **Salesforce domain URL**.

* *(Note: Only these two fields are required for this capability.)*
  {% endstep %}
  {% endstepper %}

### Connection & authorization

{% stepper %}
{% step %}
Click on the **Connect** button.
{% endstep %}

{% step %}
An authentication window will appear.
{% endstep %}

{% step %}
Enter your Zendesk credentials and click **Sign in**.
{% endstep %}

{% step %}
Complete the **Two-Factor Authentication (2FA)** process:

* Enter the verification code received on your registered email.
* Click **Verify**.
  {% endstep %}

{% step %}
An access permission window will appear.

* Click on **Allow** to grant required permissions.
  {% endstep %}
  {% endstepper %}

### Validation & verification <a href="#validation-and-verification" id="validation-and-verification"></a>

{% stepper %}
{% step %}
Upon successful authentication:

* The integration will be added successfully.
* A confirmation message will be displayed.
  {% endstep %}

{% step %}
Navigate back to the **Integrations** tab and verify that the newly added integration appears at the top of the list.
{% endstep %}

{% step %}
Click on the **Test Connection** icon (next to the delete option):

* A success message confirms that the integration is configured correctly.
  {% endstep %}
  {% endstepper %}

## Webhook Setup (Zendesk) <a href="#webhook-setup-zendesk" id="webhook-setup-zendesk"></a>

### Overview

Webhooks in Zendesk enable real-time event synchronization between Zendesk and the platform. They ensure that ticket creation and updates are instantly reflected without relying solely on scheduled data pulls. The platform automatically creates the required webhook via backend APIs during integration setup. However, manual verification is recommended to ensure correct configuration.

### Verification  <a href="#token-regeneration-steps" id="token-regeneration-steps"></a>

{% stepper %}
{% step %}
Log in to your Zendesk domain using **Admin credentials**.
{% endstep %}

{% step %}
Navigate to the **Admin Center** from the left-side panel.
{% endstep %}

{% step %}
In the **Search Admin Center** search box, search for **“Webhooks”** and open the Webhooks section.
{% endstep %}

{% step %}
Locate the webhook created with your **integration instance ID**.
{% endstep %}

{% step %}
Click on the **three dots (options menu)** corresponding to the webhook and select **View Details**.
{% endstep %}

{% step %}
Navigate to the **Event Subscriptions** section and verify that the following events are configured:

* Ticket Created
* Ticket Updated
  {% endstep %}

{% step %}
Successful verification confirms that the webhook is properly configured for real-time synchronization of ticket events.
{% endstep %}
{% endstepper %}

## Token Management (OAuth Integration) <a href="#token-regeneration-steps" id="token-regeneration-steps"></a>

### Overview

For OAuth-based integrations, access tokens are time-bound and expire after a defined duration. Once expired, the **Test Connection** will fail, indicating that re-authentication is required. TheLoops system provides a mechanism to regenerate the token without reconfiguring the integration.

### Token regeneration

{% stepper %}
{% step %}
Navigate to the **Integrations** module.
{% endstep %}

{% step %}
Click the **Test Connection** icon; if it fails, it indicates that the token has expired.
{% endstep %}

{% step %}
Click on the **Edit** icon (beside the delete icon) for the integration requiring token refresh.
{% endstep %}

{% step %}
Go to the **Authentication** tab.
{% endstep %}

{% step %}
Click on the **“Re-generate Token”** button.
{% endstep %}

{% step %}
The authentication window (same as initial setup) will appear.
{% endstep %}

{% step %}
Enter your Zendesk credentials and complete sign in (including 2FA if prompted).
{% endstep %}

{% step %}
Upon successful authentication:

* The token will be refreshed.
* A success message will be displayed.
  {% endstep %}

{% step %}
Return to the **Integrations** list and click on **Test Connection**.

* A successful response confirms that the token has been refreshed correctly.
  {% endstep %}
  {% endstepper %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kb.theloops.io/cxplatform/ifs-loops-cx-platform/integrations/zendesk.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
