Skip to content

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. Zendesk offers a streamlined ticketing system that values tracking and prioritizing interactions, allowing businesses to have a unified historical view of their customers.

The Braze and Zendesk server-to-server integration allows you to utilize Braze webhooks 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 an integration, Braze can create a support ticket from a user answering negatively to an “Enjoying our App?” in-app message, allowing your support team to follow up with the customer.

Prerequisites

Requirement Description
Zendesk account A Zendesk admin account is required to take advantage of this partnership.
Zendesk API token A Zendesk API token is required to send requests from Braze to the Zendesk ticket endpoint.
Common identifier (recommended) A common identifier between Braze and Zendesk is recommended.

Integration

Step 1: Create your Braze webhook

To create a webhook:

  • Campaigns: Go to the Campaigns page in the Braze dashboard. Click Create Campaign and select Webhook.
  • Canvas: From a new or existing Canvas, create a full or message step in the Canvas builder. Next, click Messages and then select Webhook from the message options.

In your Webhook, fill out the following fields:

  • Webhook URL: <your-zendesk-instance>.zendesk.com/api/v2/tickets.json
  • Request Body: Raw Text

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.

Request header and method

Zendesk requires an HTTP Header for authorization and an HTTP method. In the Settings tab, replace the with your Zendesk admin email and with your Zendesk API token.

  • HTTP Method: POST
  • Request Headers:
    • Authorization: Basic {{ '<email_address>/token:<api_token>' | base64_encode }}
    • Content-Type: application/json

Request body

Define the ticket details like type, subject, and status in your webhook payload. Ticket details are extensible and customized based on the Zendesk ticket API. Use the following example to help structure your payload and enter your desired fields.

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 }}"
  }
}

Step 2: Preview your request

Your raw text will automatically highlight if it is an applicable Braze tag.

Preview your request in the Preview panel or navigate to the Test tab, where you can select a random user, an existing user, or customize your own to test your webhook.

Lastly, check if the ticket has been created on the Zendesk side.

Common identifier

If you have a common identifier between Braze and Zendesk, it is recommended to utilize this as the requester_id, this will help unify the two sets of users. Alternatively, if this is not the case, we recommend passing a set of identifying attributes such as name, email address, phone number, or others.

WAS THIS PAGE HELPFUL?
New Stuff!