Channels are ways to communicate with your customers. Zendesk Support has many different built-in channels, including email, web forms, Twitter, and Facebook. However, Zendesk can't cover every channel where customers ask for help.
You can use the Zendesk Channel framework to build your own channel to where your customers ask for help. In this five-part project, you'll learn how to build a simple channel to a community in Zendesk Help Center.
The new channel will create a ticket in Zendesk Support for each post a customer creates in your community. When the agent in Zendesk Support replies to the ticket, the reply will be shared as a comment to the original post in the community.
Help Center managers can currently create a ticket from a post by clicking Create a ticket in a menu on the post. However, the new channel will create the tickets automatically so that questions don't fall through the cracks. Also by sharing an answer in the original post rather than in a private ticket conversation, the channel allows other users to benefit from the answer and potentially reduce the number of tickets.
Topics covered in this article:
This is the first part of the project:
- Part 1: Getting started - YOU ARE HERE
- Part 2: Creating the integration service
- Part 3: Connecting to the community
- Part 4: Building the admin interface
- Part 5: Deploying the channel
To download the source code for the completed project, click the following link: Channel project.
To consult the developer docs as you work through the project, bookmark Channel framework.
Understanding the user experience
When the channel is in place, the experience for customers and agents will look as follows.
A customer with a question starts by creating a post in the Help Center community:
The post is published in the community:
After a moment, the post becomes a ticket in the agent interface:
The agent adds a comment to the ticket and saves it:
After a moment, the agent's comment appears as a reply to the original post in the community:
Setting up your development environment
If you just want to follow along with the tutorial and don't want to build the community channel yourself, you can skip this section.
If you want to build the community channel in this project, you'll need the following:
You'll need access to a Zendesk account on the Zendesk Suite Professional plan or above. You can get a free, 15-day trial account. If you're interested in becoming a Zendesk developer partner, you can convert your trial account into a sponsored Zendesk Support account.
You'll also need agent or admin permissions in the account to use the API.
Zendesk Gather, the community forum component of your Help Center. Zendesk Guide customers who were subscribed to Guide Professional or Enterprise before October 3, 2019, are on the Gather Legacy plan, which meets this requirement. For more information, see About Gather plan types.
If you don't have Gather, you can get a free trial.
Python 3.6 or higher
The channel in this project is built using Python. To install the latest version, see http://www.python.org/download/.
Download and install the Requests library for Python. The Requests library simplifies making HTTP requests in Python. To install it, run the following command in the Terminal on the Mac or the command prompt in Windows:
$ pip3 install requests
Download and install the Arrow library for Python. Arrow provides a friendlier, more streamlined way of working with dates and times. To install it, run the following command in the Terminal on the Mac or the command prompt in Windows:
$ pip3 install arrow
Bottle is a minimalist web framework for building web applications with Python. You'll use it in this tutorial to build and test your integration service. Bottle includes a built-in development server that you can use to test your changes locally. To install Bottle, run the following command:
$ pip3 install bottle
Zendesk Apps Tools (ZAT)
You'll use ZAT to create a Zendesk app to install your channel in Zendesk Support. To install ZAT, see Installing and using the Zendesk apps tools.
Next part: Creating the integration service