Zendesk offers popular cloud-based customer support software. With Zendesk Voice, customers can easily accept customer phone calls and track calls along with other interactions that occur over email, chat or social networks. By building Zendesk Voice on Twilio’s cloud communications platform, a small team of developers was able to create a beautifully simple user experience that’s affordable to companies of all sizes. They are also able to continue to improve the service by adding new features and incorporating cutting-edge technologies such as WebRTC.
Online customer service has long been celebrated for offering faster resolution to customers and greater transparency. But Zendesk realized people seeking support often wanted more human interaction. With Zendesk Voice, the company sought to integrate a voice channel into its cloud-based customer support solution that would combine Zendesk’s trademark ease of use with detailed call information. Companies who used Zendesk Voice would have the same insight into their phone support as they did for any online channel.
Two developers initially spent about two months building a prototype of Zendesk Voice using Twilio’s communications API platform. Steven Yan, a senior product manager who worked on the prototype, said only Twilio provided the global scale and flexibility Zendesk needed. Among other requirements, Zendesk wanted to be able to instantly provision local numbers around the world. The ability to separately track and bill for the voice usage of each of its 25,000 customers was also important.
Yan said the need to seamlessly integrate voice into Zendesk’s solution ruled out traditional telecommunications providers. “We knew we needed a platform with open APIs that we could use in a way that suited our needs,” he said.
To build the final product, Zendesk added two additional engineers to the team. When Zendesk Voice debuted five months later in September 2011, it let customers set up a call center in less than five minutes. With just a few clicks, customers could provision local numbers, equip agents with browser-based phones and start routing calls. The cost was rock bottom: Customers paid $1 per number and about 1.5 cents per minute for inbound calls.
Zendesk Voice includes core functionality of call center solutions that can cost hundreds of dollars per agent such as a unified agent desktop and enterprise feedback management. When a call comes in it is routed to the first available agent. If no agent is available, the call goes in to a queue or is converted into voicemail. For monitoring purposes, a built-in dashboard shows queue size as well as metrics around agent performance.
When a call is answered, the agent receives a screen pop with the customer’s picture and a link to their profile. Every call automatically creates a support ticket making it easy for agents to document their interactions. Calls are also recorded, and the recording is automatically added to the customer’s support ticket. Just like any other ticket in Zendesk, call information can be passed around a support organization.
How does Zendesk Voice stack up against other channels? t. The answer lies in Zendesk’s satisfaction ratings feature, which automatically sends a simple feedback survey to customers each time a ticket is solved. “It turns out voice is the happiest channel out there,” said Sam Boonin, vice president of product. “There is something fundamental to this core desire, people still like talking to other people.” Zendesk Voice’s satisfaction ratings are 93% across all customers and geographies—higher than email, chat and social channels like Facebook and Twitter.
The ability to measure an increase in happiness is crucial to Zendesk customers. Larger companies that spend more on support can now demonstrate the value of their investment in live agents and in premium Zendesk plans as well.
“We want our customers to love us and our customers’ customers to love them,” Boonin said.
One way Zendesk shows its appreciation for customers is by continuously improving its services. For example, in the spring of 2013, it added WebRTC, a collection of cutting-edge communications protocols that make it simpler to exchange audio, video and data using a browser.
Yan said WebRTC improves the experience for agents because it makes it easier for them to control their audio settings. WebRTC also led to an immediate boost in audio quality for some customers. And more customers are likely to benefit as the technology is incorporated into an increasing number of browsers. WebRTC is currently available in Chrome, as well as in a developer’s version of Firefox.
Zendesk was able to roll out WebRTC to its customers ahead of the rest of the industry because it was already incorporated into Twilio Client, which lets agents using Zendesk Voice make and receive calls directly from their browsers and allows call information to be incorporated directly into tickets. “We really appreciate the work Twilio did to proactively add WebRTC to Twilio Client,” Yan said. “That was a big win for us.”
Zendesk built its Twilio app using Ruby on Rails. Support agents using Zendesk Voice answer phone calls in an interface built using Ember.js. Node.js and websockets are used to send call events to an agent’s browser. In a basic workflow, incoming calls trigger the Zendesk Voice workflow, which notifies the agent of the call.
Building Zendesk Voice as a state machine was key to supporting complex call logic. Shajith Chacko, a senior engineer who worked on Zendesk Voice, advises anyone seeking to develop a similar app to model the workflow as state transitions. "All input should happen as events that get sent to your call objects," he explained. The logic of your work should occur almost entirely as the side effect of state transitions."
The approach has a couple of benefits. It's deterministic—a clean interface defines the states, making it possible to see at a glance what is happening at any particular time. It also lends itself to audits because each transition can be logged automatically providing a fingerprint of what happened in any particular call. And it facilitates analytic reports, since incidental information can easily be saved as part of the workflow.