> For the complete documentation index, see [llms.txt](https://docs.getint.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.getint.io/guides/integration-synchronization/non-jira-connectors/zendesk-azure-devops-integration.md).

# Zendesk Azure DevOps integration

## Integrating Zendesk and Azure DevOps

Connecting Zendesk with Azure DevOps links customer support tickets to development work items, so support agents and engineering teams work from the same record. The integration keeps subjects, descriptions, statuses, assignees, comments, and attachments aligned between both platforms, removing manual copying between the help desk and the backlog. Support teams keep requesters updated while development teams track the work in their own boards.

### Zendesk Azure DevOps Licensing Model

The Getint licensing model for Zendesk and Azure DevOps focuses on predictable costs and scalability:

#### Standard Licensing

* This tier covers a direct integration between one Zendesk instance and one Azure DevOps instance for a fixed fee. It includes unlimited project and work item synchronization without hidden charges.

You can find more information about our pricing structure here: [Getint Pricing](https://www.getint.io/pricing).

#### Network License

* Designed for managed service providers or large organizations, this option supports three or more instances. It allows for a specific number of connections (e.g., up to 10 instances) and provides the flexibility to swap integrated tools while the license is active.

For more details on licensing, visit our [Licensing Page](https://docs.getint.io/billing-and-services/licensing).

### Requirements to Build Your Integration:

* **Deployment Options**: Getint provides two ways to host your integration: a managed [SaaS platform](https://app.live.getint.io/) or a self-hosted On-premise version. More information about Getint On-premise [here](https://docs.getint.io/getting-started-with-the-platform/deployment-options/on-premise-deployment).
* **Authentication**: Zendesk supports two authentication methods, an API token or OAuth, and both are configured in the Zendesk Admin Center. Azure DevOps requires a Personal Access Token. You can find the steps to generate the credentials for your connectors here: [Connection Guide](https://docs.getint.io/guides/quickstart/connection#zendesk).
* **Service Accounts**: Because the integration attributes comments to the user who created the connection, we recommend using dedicated Service Accounts for both instances to maintain a clear distinction between automated updates and individual user activity.

### Setting Up Your Zendesk Azure DevOps Integration

#### 1. Access the Getint App

* Log in at [app.live.getint.io](http://app.live.getint.io/). If you do not have an account, click **Sign up** to create one.
* Enter your details, select the apps you want to connect, and click **Create new workspace**.
* After you create the workspace, go to it to launch Getint.

#### 2. Create an Integration

* Go to **Workflows** (lightning bolt icon) and click **Create Integration**. From this menu, select **Continuous Sync** or **Data Migration**.

#### 3. Generate a Zendesk Credential

Zendesk supports an API token or OAuth. Both are created in the Admin Center, and you need administrator permissions in your Zendesk instance.

{% hint style="warning" %}
Zendesk is removing API tokens as an authentication method for the Ticketing, Help Center, and Voice APIs. Accounts created on or after July 28, 2026 cannot create API tokens; no account can create new API tokens after October 27, 2026, and all remaining tokens stop working on April 30, 2027. If you are creating a new Zendesk connection, use OAuth.
{% endhint %}

**Option A: API Token**

* Sign in to your Zendesk account, click the dropdown menu next to the Zendesk logo in the upper-left corner, and select **Admin Center**.
* In the left menu, select **Apps and Integrations**, then choose **API Tokens** from the secondary menu.
* Select the agreement checkbox, click **Get Started**, then click **Add API Token**. Enter a name for the token and save your changes to generate it.
* Open **API Configuration** from the secondary menu and enable **Allow API Token Access**.
* Copy the token and store it in a safe location, as it is displayed only once.

{% embed url="<https://www.loom.com/share/6d750e77cf8943d2aab572ea57339c68>" %}

**Option B: OAuth**

* Sign in to your Zendesk account and open the **Admin Center**.
* In the sidebar, click **Apps and integrations**, then select **APIs** > **OAuth clients**.
* Click **Add OAuth client** and complete the client details:
  * **Client name**: the name users see when they are asked to grant access.
  * **Unique identifier**: auto-filled from the client name and editable. This is the value Getint asks for as the client ID, so copy it exactly as displayed.
  * **Client kind**: select **Confidential**.
  * **Redirect URLs**: enter the Getint callback URL. The URL must be absolute and use HTTPS.
  * **Scopes**: select **read** and **write**.
* Click **Save**. The page refreshes, and a **Secret** field appears at the bottom of the form.
* Copy the **Secret** and store it in a safe location. The characters may extend past the width of the field, so select the full value before copying.
* Click **Save** again to return to the OAuth client list.

{% embed url="<https://www.loom.com/share/07afb47ca1f649be840142190303e157>" %}

#### 4. Generate an Azure DevOps Token

To integrate Azure DevOps (Server or Cloud), you must provide a token with the necessary permissions. Follow the steps below to generate one:

* Log in to your Azure DevOps organization.
* Open **User Settings** from the profile menu.
* Select **Personal Access Tokens** from the left sidebar.
* Click **New Token** and enter a name for the token.
* Set the expiration and select the appropriate scopes:
  * **Work Items**: Read & Write
  * **Project and Team**: Read & Write
  * **Graph**: Read (required for accurate user data retrieval)
* Click **Create**, then copy and securely store the generated token. This token authenticates and authorizes Getint to access your Azure DevOps organization.
* When configuring the Azure DevOps connection details in Getint, provide the generated token as the password.

{% embed url="<https://www.loom.com/share/de71aa8b806340039b5931b0c9c4c74d>" %}

#### 5. Connect to Zendesk

* In Getint, click on **Connect App**, choose Zendesk, and select **Create a new connection**. Enter your Zendesk instance URL in the **URL** field and click **Next**.
* Provide a name for the connection and enter your credentials. For an API token connection, enter the email address of the Zendesk account and the API token. For an OAuth connection, paste the unique identifier and the secret.
* Click **Add** to complete, then select the connection.
* Once the connection is established, select the Zendesk organization you want to synchronize and click **Connect**.

{% hint style="info" %}
If you do not own the Zendesk instance and were given Agent credentials, click **PROVIDE MANUALLY** and enter the **Organization ID** and **Organization Name** supplied by the instance owner. See [How to Manually Provide Zendesk Organization ID and Name](https://docs.getint.io/guides/integration-synchronization/jira-zendesk-integration/how-to-manually-provide-zendesk-organization-id-and-name).
{% endhint %}

#### 6. Connect to Azure DevOps

* Click on **Connect App** and choose Azure DevOps, then select **Create a new connection**. Enter the URL for the connection and click **Next**.
* Provide a name for the connection, enter your email, and paste the token generated in the previous steps. Click **Add** to complete.
* Once the connection is established, select the Azure DevOps project(s) you want to synchronize from the dropdown menu and click **Connect**.

#### 7. Configure Type Mapping

* **Quick Build**: Automatically map fields and types between applications with this feature.
* **Manual Mapping**: Use this feature for full control over the integration. Select **+ Add Type Mapping** to define how your types map between systems. This could include:
  * Zendesk *Ticket* to Azure DevOps *Bug*.
  * Zendesk *Task* to Azure DevOps *Task*.

#### 8. Item Routing

If you selected multiple projects on either or both sides, you must define Item Routing. All relevant information about defining conditions is here: [Syncing Many Projects](https://docs.getint.io/getintio-platform/syncing-many-to-many-projects#defining-conditions-in-items-routing).

#### 9. Field Mapping

* Review or manually map fields within mapped types, including **title**, **description**, and **assignees**.
* Map the Zendesk **Subject** field to the Azure DevOps **Title** field. Neither platform allows item creation with a blank title.
* Map the Zendesk **Description** field. Description is mandatory for Zendesk ticket creation, so the mapped Azure DevOps work items must carry data in the source field. Otherwise, the synchronization run can fail. You can also set a fixed value for the field, as described in the [Troubleshooting Guide](https://docs.getint.io/support-legal-and-others/troubleshooting-guide-for-getint-users#how-to-provide-a-fixed-value-for-a-field).
* Define the synchronization flow for each field, using the arrows in the middle and selecting **Apply**.

{% hint style="warning" %}
**Inline images** aren't supported for the **Description** field.
{% endhint %}

#### 10. Assignee Mapping

* Use the assignee mapping option to match Zendesk assignees to Azure DevOps assignees. For more details, visit our doc: [Assignees (users) mapping](https://docs.getint.io/getintio-platform/workflows/assignees-users-mapping).

#### 11. Status Mapping

* Map status fields to align between Zendesk and Azure DevOps. For example, Zendesk *Open* could be mapped to Azure DevOps *Active*, Zendesk *Solved* to Azure DevOps *Resolved*, and Zendesk *Closed* to Azure DevOps *Closed*.
* You can also configure the status direction to support unidirectional transitions instead of bidirectional updates.

#### 12. How to Manage Comments & Attachments

* Comments are enabled by default. You can configure these settings to match your organization's needs, such as selecting unidirectional or bidirectional sync and filtering by criteria like creation date, author, or visibility (public/private).
* To synchronize attachments, toggle on the **Synchronize attachments** setting and choose the sync direction.

{% hint style="info" %}
Zendesk separates public replies from internal notes. Use the visibility filter to decide whether internal notes reach Azure DevOps, and to control whether comments created in Azure DevOps land in Zendesk as public replies or as internal notes.
{% endhint %}

#### 13. Advanced Tab

* Enable **Customize create/update actions** to manage item synchronization. This allows for specific rules, such as one-way creation for the left application combined with bidirectional updates.

#### 14. Filtering

It is possible to filter the synchronization to have it customized for your needs and requirements. Please see the doc [Items Filtering](https://docs.getint.io/getintio-platform/workflows/items-filtering) for more details.

**UI Filtering Option:**

* Click on the filtering icon near the app icon in your integration. This will apply to that side of the integration.
* Select whether the filtering applies to *All*, *New*, and *Synced* items.
* Note that if the option **New items** is selected, the filtering will apply only to the new items, and the already synced items will continue to sync and update. If the option **Synced items** is selected, only the already synced items will be updated based on that filter.
* Choose the options and add the value for the filter. It is possible to filter more than one option for each field.
* Select **Apply** after creating the filters, and **Save** the integration.

#### 15. Test the Integration

* Create a test ticket in Zendesk and a test work item in Azure DevOps, then observe how they synchronize.
* Update a mapped field, add a comment, and attach a file on each side to confirm the direction and visibility settings behave as configured.
* Change the status on one side and confirm the linked item transitions on the other side.
* Monitor the integration status and the logs in Getint to verify that everything functions as expected.

### Conclusion

Following this guide lets you set up the Zendesk-Azure DevOps integration with Getint. This configuration keeps support tickets and development work items synchronized, so agents and engineers act on the same information without leaving their own tool.

For further assistance, please contact us at the [Support Center](https://getint.io/help-center) or [Schedule a Demo](https://calendly.com/d/cpws-jb2-8xx/demo-call-all-team).

<figure><img src="https://4106311246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR6Z9V8zLATPQPOGSDf%2Fuploads%2F9OSEDBl869gRue9mQAwv%2FGetint%20Yellow%20Banner.png?alt=media&amp;token=9cc42142-6e48-4931-8fd5-cbf7dcf4cdc1" alt=""><figcaption><p><a href="https://calendly.com/d/cpws-jb2-8xx/demo-call-all-team
">Start your integration journey. Schedule a free consultation with our Getint Integration Expert today!</a></p></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.getint.io/guides/integration-synchronization/non-jira-connectors/zendesk-azure-devops-integration.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
