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, go to the Campaigns page on the Braze dashboard, under Engagement.
From the Create Campaign drop-down, select Webhook and name your campaign.

zd11

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:

  1. Create a key/value pair. Set Content-Type as the key and its value to application/json.

  2. 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.

    zendesk_step1

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.

zendesk_step2

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.

zdfinal

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.

WAS THIS PAGE HELPFUL?
New Stuff!