As more and more information flows through organizations, teams working on different platforms can benefit hugely by sharing this data. What to share and when to share it are at times tough to figure out, and filtering the correct data is also a challenge. Fortunately, integrating systems is the right way to solve these problems. In this blog post, we’re going to show you how to set up a Zendesk Azure DevOps integration, helping your Zendesk and Azure DevOps teams work together seamlessly.
Here’s what we’re going to cover in this blog post:
- Why Integrate Zendesk and Azure DevOps?
- Choosing the Right Technology for a Zendesk Azure DevOps Integration
- How to Set up a Zendesk Azure DevOps Integration (the Step-by-Step Process)
- Common Use Cases
- Frequently Asked Questions
Why Integrate Zendesk and Azure DevOps?
What is Zendesk?
Zendesk is a customer support platform offering features galore. It handles all forms of communication with your customers and lets you monitor and record everything. You can easily track all the information and generate metrics, helping you build and strengthen relationships.
What is Azure DevOps?
Azure DevOps is a platform for managing every aspect of the software development process. It covers version control, builds automation, and integrates these with comprehensive project management features. It is especially well-integrated with Microsoft Visual Studio, but can easily be used with other platforms.
Why Integrate Zendesk with Azure DevOps?
Teams that work separately often have information that is useful to each other. A development team using Azure DevOps can benefit from customer feedback collected by a team using Zendesk. The customer support team can also benefit from talking to developers to help solve customer issues.
Some of this mutually beneficial information can be shared manually, but that is error-prone and slow. An automated solution can exchange data regularly and reliably, making sure all items that match the right conditions are exchanged.
With the right setup, you can help your teams make the best use of the data available within the organization and can do so with minimal effort. Once an automated system is in place it will carry on doing your job without getting in your way.
Choosing the Right Technology for a Zendesk Azure DevOps Integration
There are a few criteria you should take into consideration when picking an integration solution.
Teams will benefit from decentralized integration and be able to have full control over what data they want to share with the other side without having to leave their familiar environment.
The integration also needs to have advanced security mechanisms in place. This is important to maintain the integrity of the data at rest and in transit.
The integration has to be reliable as well. Sometimes downtime will happen, but if so the system should be robust enough to recover. Errors on either end should not cause problems on the other.
Flexibility is yet another important factor. Teams should be able to define how they want to share data and set the conditions that trigger data exchange. This makes the way data is exchanged customizable for each side.
The solution we use for the Zendesk Azure DevOps integration here is called Exalate. Exalate was designed with these criteria in mind and aims to provide the most flexible sync between teams across companies. Once you’ve set it up, it can sit in the background and do the hard work for you.
How to Set up a Zendesk Azure DevOps Integration (the Step-by-Step Process)
Now, let’s set up the integration. You’ll start by installing Exalate on both platforms. Then, you’ll create a connection. Finally, you’ll configure the connection to share what you want, and decide on the conditions that trigger sharing.
Note: You can refer to the Getting Started Guide on Exalate documentation for a step-by-step procedure to set up a connection between other applications it supports. You can also refer to the Exalate academy videos.
Step 1: Install Exalate on Zendesk
In Zendesk, click the cog icon in the left-side menu. That takes you to the admin screen. Click on “Marketplace” in the “Apps” menu.
Type “Exalate” into the marketplace search field and you’ll see the app appear.
Click on the icon, then click the install button on the next screen.
You’ll see a popup asking you to enter your Zendesk instance URL. Do so, then click “Install”.
Next, you’ll be taken back to your Zendesk account. You can change the app title, and enable restrictions if necessary, or you can just accept the defaults.
Either way, click the blue “Install” button to continue. After Exalate installs, you’ll see its icon in the left-side menu at the bottom. Click the icon now.
When you first use Exalate, you need to grant it permission to access your data. Click “Allow” to do so.
After that, there’s a registration screen where you need to enter your email address and other details. After clicking the button to submit them, you’ll be sent a verification mail. Click the link in it.
You’ll be taken back to Zendesk and should now be successfully verified. You’re free to use Exalate for 30 days before deciding whether to continue with it.
Click “Continue”, and you’re done.
Step 2: Install Exalate on Azure DevOps
Next, you’ll install Exalate on Azure DevOps via the marketplace. It is also possible to do this via docker, so please check out the documentation if you prefer to do that.
Log in to Azure as an admin, then look at the icons at the top right of the screen.
Click the one that looks like a shopping bag, and select “Browse marketplace”. In the marketplace, search for “Exalate”.
Click the app when it appears, then click “Get”. On the next screen, confirm your organization is listed correctly, then click the blue “Install” button. When it’s ready, click “Proceed to organization”.
You can now reach Exalate from within Azure DevOps by clicking the marketplace icon, and selecting “Manage extensions”.
You’ll see Exalate listed in the left-hand menu towards the bottom.
The first time you access Exalate, you need to provide a personal access token. To create one, open the settings menu at the top right and click “Personal access tokens”.
Click the “New Token” button.
On the form that appears, you need to make sure “Read, write & manage” in the “Work items” section is ticked. It should be by default. You might want to extend the expiration date too, otherwise, you’ll have to create a new token every 30 days.
Click the “Create” button. When the token is created, you need to copy and paste it somewhere straight away, as there is no way to access it if you don’t. Click “Close” after doing so.
Now, back in the Exalate screen, paste in your token. As with Zendesk, enter your email and other details, click the “Agree and submit” button, and wait until you receive an email.
Click the verification link, and you are set up in Azure DevOps.
Step 3: Connect Zendesk and Azure DevOps
Now that Exalate is installed on both platforms, you can create a connection between them. You can do this from either side. I’ll use Zendesk in this guide.
Click “Connections” in Exalate’s left-side menu. Then click the green “Initiate connection” button.
On the next screen, enter your destination instance’s URL in the text field. Since I’m using Zendesk, that’s the URL of my Azure DevOps instance. After you enter the URL, Exalate will check that it can reach the destination instance. If it can, more fields will appear.
Now you need to decide whether to set up the connection with basic, visual, or scripting mode. Basic mode allows you to set up a connection in an easy manner and is useful for basic synchronization needs. Visual mode allows you to easily configure the connection using a drag-and-drop interface. Scripting mode is more advanced and needs you to work with the ‘Groovy’ scripting language, but it allows you more control.
Choose the mode and then look at steps 4 and 5 to see how you can configure what your connection shares, and when synchronization happens.
Continue with the Basic Mode
Click “Next”. You will now need to verify if you have admin access on the Azure DevOps side.
Click “Yes, I have admin access” since we already have access. In case you don’t have access, you will be asked to manually copy-paste a code on the Zendesk side.
After this, click “Initiate”. This will redirect you to the Azure DevOps side automatically.
You will be asked to select the project from a drop-down list. This will be a project on the Azure DevOps side.
Your connection is now successfully established and you can start syncing your first ticket right away.
Enter the work item key and click “Exalate”.
It takes a while for the work item to be synced. Once done, you will see the status of your synchronization as “synchronized”.
Continue with the Visual Mode
For the visual mode, we start initiating the connection from the Azure DevOps instance. Click the “Initiate Connection” button under the “Connections” tab in the Exalate console.
After clicking “Next” for the visual mode, you can name each side of the connection. Exalate will combine the names into an overall connection name that you can optionally edit. You can also add a description. It’s a very good idea to do, as it will help your team keep track of things if they create multiple connections.
Click “Next” and then “Verify admin access” to ensure Exalate can access the other side.
Now that the connection has been successfully established, you can start to configure the connection directly by clicking on the “Configure Sync” button or by editing the connection later.
After clicking the button, you’ll see the “Scope” screen. Here you can choose the project for synchronization on Azure DevOps.
Here you can also choose which entities are synced. If you click on the filter buttons on either side of the connection, another popup will appear. The above screen is for Zendesk. You will see a similar screen for Azure DevOps.
On this popup, you can specify the properties of items you want to synchronize. These include tags, status, type, priority, and many more. Click “Save” when you’re ready.
You can also choose the “Sync method” in each direction using the drop-down boxes in the middle of the popup. Synchronization can be manual, automatic, or disabled. That lets you make the connection uni- or bi-directional.
Click “Next” when you’re finished and you’ll be taken to the “Rules” screen. Here you can see how various attributes on synced entities map to each other. If you don’t want an attribute mapped, click its delete icon, and that mapping will be removed. You can also click the edit icon to change which attributes are mapped to each other.
You can also create a new mapping for the attributes. Click the “Add mapping” button, select the fields on both sides, give additional information if needed, and click “Add”.
You will be able to see the new mapping on the “Rules” screen.
Sometimes for complex use cases, you might need more than the default mappings. You can handle such cases with the help of scripts. Click the arrow next to the “Add mapping” button and then hit the “Add script” button.
There is a sample script already present for you but you can change it according to your synchronization requirement.
When you’ve finished here, click “Publish”. You’ll see your new connection listed on the connections screen.
Continue with the Script Mode
If you choose the Script mode rather than Visual mode, then the first thing you need to do is give a name to the connection just like you did for the Visual mode. After that, select the project on the Azure DevOps side from the drop-down list.
After you click “Initiate”, Exalate will generate an invitation code.
Click the “Copy invitation code” button to copy it to your clipboard and paste it somewhere safe. Then, click the “Done” button.
In Zendesk, click the “Accept invitation” button, then paste the code into the field provided and click “Next”.
The connection will now be created. You can click the “Configure Sync” button to proceed to the next steps or edit the connection later.
Step 4: Configure Your Connection to Determine What Information Gets Shared
To edit a connection, click the edit button on its entry in the connections list. You’re then taken to the “Rules” screen. There you’ll see a list of incoming and outgoing sync rules.
These define what fields are mapped to one another when items are synchronized. If you don’t want to sync a particular field, just delete its line. You can also edit these lines to route fields differently, for example, you might want the ‘type’ in Azure DevOps to match the status in Zendesk.
You can also set specific values for fields. For example, the description could be set as
issue.description = “Synced from Zendesk”.
Step 5: Set Up Automated Synchronization Triggers
From the edit connection screen, click the “Triggers” heading. Here you can set the conditions for synchronization. Items that match these rules are copied between platforms.
You can also create triggers by navigating to the “Triggers” tab in the left-hand Exalate menu. But in this approach, you will need to select the name of the connection you want to create the trigger for. We will follow this approach in the below section.
Click the “Create trigger” button to get started. You’ll see the “Add trigger” screen. There’s a drop-down box at the top to choose the entity type the trigger applies to. Below that is the query field. This is the important bit. You need to write a query that picks out the entities you want.
In the “Notes” box, you can write text describing what your trigger does and why. That can be a big help if there are lots of connections and triggers in your setup.
There’s also a switch at the bottom, which you’ll need to set to active for the connection to work. That helps you switch triggers on and off as needed. Click the “Add” button when you’re done.
The trigger is now listed, and can be edited, deleted, or switched on and off easily.
Step 6: Start Synchronizing Tickets
Now that your connection is set up, you can sit back and wait for tickets to be synchronized. Synchronization happens regularly, but not immediately, so make a coffee and wait before checking back in.
Common Use Cases
Customer Support and Engineering
Developers working in Azure DevOps will use it to assign issues and track progress. Customer support operatives will talk to customers, and log bugs in Zendesk. The customer support team can mark issues to be sent to engineering, and Exalate can detect these and synchronize them.
The synchronization will be selective and only pass on the info developers need to work on the problem. When an issue is fixed, it can be marked as such, and Exalate can automatically send the solution back from Azure DevOps to Zendesk.
Marketing and R&D
A marketing team might use Zendesk to track their interactions with customers and use analytics (especially marketing data analytics) to tally the most requested features. Exalate can synchronize these with an Azure DevOps system used by an R&D department.
The R&D department can investigate the customer needs, and see how they can be worked into new or existing products. Their suggestions can be automatically synced back with Zendesk, and the Marketing team can see how the customer base reacts to their ideas.
In this blog post, we walked you through a step-by-step process of setting up a Zendesk Azure DevOps integration. Now that your platforms are synchronized, you can enjoy the benefits of information sharing without further work. If either of your teams wants to make a change, they can do so quickly and easily. You can also edit and refine the synchronization further, and create more connections for different tasks if needed.
Frequently Asked Questions
Why Integrate Azure DevOps and Zendesk?
Integrating Azure DevOps and Zendesk enables development teams to track and manage customer issues in Zendesk directly within their development workflow in Azure DevOps. The support team will also have full visibility of important customer tickets improving transparency and cross-team collaborations.
Can I connect Zendesk and Azure DevOps?
Yes, you can connect Zendesk and Azure DevOps to automate information exchange. Connectors that third-party plugins offer can be used to connect Zendesk with Azure DevOps. You can explore the options on their respective marketplaces.
Exalate is an integration solution that allows you to connect Zendesk with Azure DevOps in a flexible manner.
Does Azure DevOps have a service desk?
No, Azure DevOps does not have a service desk feature. That’s why you need to integrate it with a customer service desk platform like Zendesk.
Is Azure DevOps similar to Zendesk?
Azure DevOps is not similar to Zendesk. Despite both being work management systems, Azure DevOps provides a functioning DevOps ecosystem, while Zendesk focuses on service and customer experience.
What can I sync between Azure DevOps and Zendesk?
You can sync the following between Zendesk and Azure DevOps:
- Sync comments and updates between these platforms to get the progress on tickets or workflows.
- Keep the status and assignee information consistent between Azure DevOps and Zendesk.
- Sync attachments to enable teams to share relevant files, screenshots, or logs associated with tickets or work items.
- Create, update, or link work items in Azure DevOps based on ticket events in Zendesk.
- Send notifications or alerts from Azure DevOps to Zendesk or vice versa to keep the team members informed about important changes or updates.
- Map and sync custom fields tailored to your workflow and requirements.
Can I integrate Azure DevOps and Zendesk for free?
No, integrating Azure DevOps and Zendesk requires a paid plan or subscription for both platforms. Free plans may offer limited functionality and might not include the necessary (or customized features you’re looking for).
It’s better to review pricing and feature details of third-party integration solutions to determine the costs associated with integrating the two systems.