Zendesk
Zendesk Support Suite (ZSS) offers businesses the ability to have natural conversations with their customers through omnichannel support using email, webchat, voice, or social messaging apps. ZSS values customer support through tracking and prioritizing interactions, allowing businesses to have a unified historical view of their customers. Powerful tools such as a streamlined ticketing system allow businesses to reach out directly to customers with a personalized approach.
Braze offers a server-to-server integration with Zendesk, allowing you to utilize the Braze webhooks that can sync support ticket data between Braze and Zendesk.
Requirements
Requirement | Origin | Access | Description |
---|---|---|---|
Zendesk Account & Account Information | Zendesk | https://<your-zendesk-instance> .zendesk.com/agent/admin |
An active Zendesk Account with admin privileges is required to utilize the Braze integration. The Zendesk API token is necessary to be able to send requests from Braze to the Zendesk Ticket endpoint. |
Common Identifier between Braze and Zendesk (Recommended) | Braze | For more information, see our User Profile Lifecycle docs. | A common identifier between Braze and Zendesk is recommended. |
Braze and Zendesk Integration
Create Zendesk tickets from Braze Campaigns/Canvases
The Braze and Zendesk integration allows you to automate the creation of support tickets in Zendesk as a result of message engagement in user journeys in Braze. For example, after successfully implementing and testing the integration, Braze can create a support ticket from a user answering negatively to an in-app message with the question “Enjoying our App?”, allowing your support team to reach out and offer assistance to the customer.
Complete the following steps to utilize the Braze webhook channel to send data to Zendesk.
Step 1: Create a Webhook Campaign or Canvas
To create a webhook, navigate to the Braze dashboard and select Campaigns
under Engagement
.
From the Create Campaign
drop-down, select Webhook
and name your Campaign.
To create a webhook, from a new or existing Canvas, create a full step or message step in the Canvas Builder. Next, click the green message icon that appears and then Webhook
from the message options.
Step 2: Webhook Settings
To set up the webhook, first, set the content type to JSON to communicate with Zendesk, as well as add in your Authorization information:
- Create a key/value pair. Set
Content-Type
as the key and its value toapplication/json
. - Set
Authorization
as another key/value pair and its value as:
Basic {{ '<email_address>/token:<api_token>' | base64_encode }}
Replace<email_address>
with your Zendesk Admin email and<api_token>
with the API token generated following these instructions. Please note that you must use Liquid syntax, therefore the email address and API token should be in curly brackets as shown below.
Step 3: Webhook URL
Next, tell Braze where to send the webhook. For this ticket use case, the Webhook URL would be:
<your-zendesk-instance>.zendesk.com/api/v2/tickets.json
.
Further use cases can be handled through Zendesk Support APIs, which would change the /api/v2/
endpoint accordingly at the end of the Webhook URL.
Step 4: Webhook Payload
Next, define the ticket details like type, subject, and status in your webhook payload. Ticket details are extensible and can be customized based on the Zendesk Ticket API. To start filling out your payload, set the request body to Raw Text
, then enter your desired fields. Please see below for an example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{% assign ticket_type = 'question/incident/task/problem' %} << Choose one >>
{% assign ticket_subject = '' %}
{% capture ticket_body %}
<< Your message here >>
{% endcapture %}
{% assign ticket_subject_tag = '' %}
{% assign ticket_status = 'New' %}
{
"ticket": {
"requester_id": "{{${user_id}}}",
"requester": { "name": "{{${first_name}}} {{${last_name}}}", "email": "{{${email_address}}}", "phone": "{{${phone_number}}}"},
"type": "{{ ticket_type }}",
"subject": "{{ticket_subject}}",
"comment": { "body": "{{ticket_body}}" },
"priority": "urgent",
"status": "{{ ticket_status }}"
}
}
In the example, you can see that the first part of this payload assigns the necessary variables, as well as the ticket type for the rest of the payload. The second part carries the specific information for the ticket.
Step 5: Test your Integration
In order to test your webhook, navigate to the Preview tab, and hit Send Test
. You will then see if the call has been successful. Lastly, check if the ticket has been created on the Zendesk side.
Common Identifier
Should you have a common identifier between Braze and Zendesk, it would be best practice to utilize this as the requester_id
. Alternatively, if this is not the case, pass on a set of identifying attributes such as name, email address, phone number, or others.