White Paper
Integrating Zendesk into
Cisco Finesse
White Paper
© 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public Information.
Page 1 of 10
Providing an integrated customer service experience combining the Cisco Finesse
agent desktop with the Zendesk service solution arms your agents with a powerful
omnichannel support and ticket management tool to best service customer
engagements.
This paper will:
●
Provide a general overview of Zendesk and Cisco Finesse
●
Define three Zendesk integration alternatives within Cisco Finesse
●
Provide links to the Cisco Developer website that hosts sample gadget code
●
Provide links to the Zendesk site that hosts the Zendesk API’s
© 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public Information.
Page 2 of 10
Contents
About Zendesk ......................................................................................................................................................... 4
About Cisco Finesse Desktop ................................................................................................................................ 4
Benefits of Integrating the Zendesk Support Tool within the Finesse Desktop ................................................. 4
Prerequisites ............................................................................................................................................................ 4
Three Zendesk Integration Alternatives within Cisco Finesse ............................................................................ 5
1. Embed Zendesk Interface into Finesse as a Simple Gadget ............................................................................ 5
2. Use the Zendesk Core API’s to Allow for Ticket Creation within Finesse ......................................................... 6
3. Populate Call Variables and Automatically Insert into Them as Necessary into Zendesk Requests ................. 8
Closing Thoughts .................................................................................................................................................... 9
References ............................................................................................................................................................... 9
© 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public Information.
Page 3 of 10
About Zendesk
Zendesk, Inc. is a software development company based in San Francisco, California. The company provides a
cloud-based customer service platform, also called Zendesk, that includes ticketing, self-service options, and
customer support features. With more than 64,000 paid customer accounts, Zendesk’s products are used by
organizations in 150 countries and territories to provide support in more than 40 languages. Founded in 2007 and
headquartered in San Francisco, Zendesk has operations in the United States, Europe, Asia, Australia and South
America.
About Cisco Finesse Desktop
The Cisco Finesse Desktop is the agent-facing front end to Cisco’s Customer Care solutions. Through their
desktop, their phone or both, customer care representatives control their work status which is used by the router,
reporting engine and supervisors to manage contact requests and real-time performance indicators.
Benefits of Integrating the Zendesk Support Tool within the Finesse Desktop
Finesse is extensible, supporting plug-ins called “gadgets” to embed other applications in a unified desktop. Agents
can switch between multiple business applications while centrally managing their work status for routing and
reporting.
Creating an integrated Finesse and Zendesk solution:
●
Provides centralized state management for Cisco’s customer care solutions, Zendesk and potentially other
third-party or custom applications.
●
Takes advantage of Cisco’s scripted treatment and precision routing engines.
●
Uses predictive analytics to manage average wait time and meet service level agreements with adaptive
and precision routing scripts.
●
Eliminates the need to bounce between browser tabs to access both Zendesk and the Finesse agent
desktop.
●
Screens will pop into the Finesse desktop as the call is delivered, providing the relevant information needed
to further enable excellent customer service.
●
Provides for a single cockpit view for the agent to receive the contact, view their customer details, and
interact with Zendesk case tool.
●
Reduces call resolution time and allows for increased calls per hour per agent.
Prerequisites
This documents assumes that the reader understands the basics of:
●
Zendesk support tool
●
Cisco Contact Center
●
Cisco Finesse
●
HTML
●
Java (sample code provided is in Java, but could be implemented in any language in which the reader
is comfortable.)
© 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public Information.
Page 4 of 10
●
Be sure you have access to the Zendesk cloud and that you have a user id. (Any customer who has
purchased Zendesk will have a Zendesk account. You will have yourcompany.zendesk.com as a login for
example.)
Three Zendesk Integration Alternatives within Cisco Finesse
1.
Embed the Zendesk interface into Finesse as a simple gadget
2.
Use the Zendesk core API’s to allow for ticket creation within Finesse
3.
As a call comes in, populate call variables and automatically insert them as necessary into Zendesk requests
to pop the correct customer data onto the agent desktop
1. Embed Zendesk Interface into Finesse as a Simple Gadget
This first integration option allows you to integrate the full Zendesk interface into Finesse as a simple gadget. There
are lots of samples in https://developer.cisco.com/site/finesse/downloads/sample-gadgets/ that show how a web
based application (such as the Zendesk interface) can be presented inside an iFrame within Finesse. The code
provided within the sample gadgets there is pretty straightforward, and there are examples within those samples
that will show you how to properly implement them.
***
You can use this reference code linked here as “Embedded WebApp Sample Gadget 10.5.1” to embed your
Zendesk portal into Finesse. ***
This basically just shows you how to load the Zendesk user interface into Finesse. The really interesting part
comes in step 3 as we use the Zendesk API’s, call variables and Finesse’s ability to invoke API’s on an as needed
basis, such as when a call comes in for the agent. When an agent is not serving the customer, the agent could
access the tickets that they are assigned from within Cisco Finesse. This provides the agent a single user interface
to access various applications.
© 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public Information.
Page 5 of 10
2. Use the Zendesk Core API’s to Allow for Ticket Creation within Finesse
Zendesk provides and updates a list of core API’s that will allow 3rd party vendors and applications (such as Cisco
Finesse) to interface into their cloud-based case creation tool.
You can invoke any of the API’s listed in the Zendesk core API document. You must be able to send requests to
these API’s by referencing the sample java code. https://communities.cisco.com/docs/DOC-65785
This second integration option shows how you can initiate a new ticket from within any other Finesse gadget. For
ticket creation, you will use the Zendesk gadget to send an HTTP request to
https://{subdomain1}.zendesk.com/api/v2/tickets.json API to create a new ticket.
Note:
A subdomain is created by Zendesk when you purchase Zendesk services. For example,
if company ‘abc’ signs up with Zendesk, they will be given a subdomain like https://abc.zendesk.com to
access their data.
The information needed for ticket creation (eg. name, email of the customer, title of the ticket, description etc.) can
be provided by call variables in Finesse, which will be passed to the Zendesk ticket creation API within the request.
Ultimately, an API request is sent to api/v2/tickets.json in the Zendesk cloud, thereby creating a ticket with the
information provided by the agent during the call with a customer.
But How Do We Build the API Request?
Here we have a sample gadget showing a button to create a new Zendesk ticket.
The gadget is defined within the Finesse default layout or within a Team layout if this is specific to certain Teams.
© 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public Information.
Page 6 of 10
Then the XML file references an HTML file.
The example HTML code below shows how the request is sent to the Zendesk gadget code when the button is
clicked.
So when we click on the button, it sends a request to the Zendesk gadget code. It’s saying that the action is to
“create”, and you can give any number of parameters (via call variables) that you want to include, such as: name,
email, case title, etc.
Creating a ticket is as simple as creating a web request to the cloud-based Zendesk site with a specific json.
By leveraging the sample code snippet below, you can add a button or link in your Zendesk gadget to create a
case. Upon clicking this button or link, the java script (above) sends a HTTP request to the Zendesk gadget code
(code snippet shown below).
public void createTicket() {
//This function needs information of your Zendesk host
(subdomain.zendesk.com), user id and password.
String sUrl = "https://" + m_sZendeskHost + "/api/v2/tickets.json";
URL url = new URL(sUrl);
HttpURLConnection connection = (HttpURLConnection)
url.openConnection();
CertMgr.relaxHostChecking(connection);
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestProperty("Content-Type", "application/json");
© 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public Information.
Page 7 of 10
connection.setRequestProperty("charset", "utf-8");
connection.setRequestProperty("Accept", "application/json");
String sAuthStr = m_sUserid + ":" + m_sPasswd;
sAuthStr = Base64.encodeBase64String(sAuthStr.getBytes());
connection.setRequestProperty("Authorization", "Basic " + sAuthStr);
String requestBody = getTicketJson();
connection.setRequestProperty("Content-Length",
String.valueOf(requestBody));
DataOutputStream wr = new DataOutputStream(connection.getOutputStream
());
wr.write(requestBody.getBytes());
wr.flush();
wr.close();
connection.connect();
int respCode = connection.getResponseCode();
}
You must first load the Zendesk gadget onto a webserver, leveraging the sample code snippet below, which will
ultimately place a request to the create-ticket API at Zendesk.
Note:
To pass call variables to the Zendesk gadget, your request should contain call variable mappings
similar to the example below:
http://web.cc.com:8080/zdesk/zdesk?action=create&name=callvar1&email=callvar2
The variables can perhaps come from IVR interactions where the user puts in his/her account number, and from
that account number you could access a database to extract the users name, their email address etc. as call
variables.
The agent can also pass additional information, such as ticket description, where the information is directly fed by
the agent into the gadget (via a text box, pull down selection, etc.).
At this moment, we invoke the Zendesk gadget with the variables automatically inserted and we get a response.
3. Populate Call Variables and Automatically Insert into Them as Necessary into
Zendesk Requests
This third integration option will show what to configure to populate the Zendesk interface within Finesse with
customer case information retrieved from the Zendesk cloud, if this customer has already been defined within the
system and has open cases.
When a call comes into the contact center, we will use information provided during the call (such as an ANI
number, a customer account number, or other) to do a database lookup and then populate call variables based on
the information provided and the database lookup. We’ll then pass the variable information along to the Zendesk
gadget. Then the Zendesk gadget sends the request to the Zendesk ‘Voice Integration API’ which loads the
appropriate information to the user.
© 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public Information.
Page 8 of 10
This whitepaper shows two usages of voice integration API’s:
●
Open a user's profile in an agent's browser:
(/api/v2/channels/voice/agents/{agent_id}/users/{user_id}/display.json)
●
Open a ticket in an agent's browser:
(/api/v2/channels/voice/agents/{agent_id}/tickets/{ticket_id}/display.json)
In this case, when a call comes in the Cisco Finesse gadget, we will use the Zendesk voice integration API to open
the customer information and ticket information. This ensures that the agent has all the information about the
customer and also gives insight into the context of what case the customer is calling about. Similar to how we had
code for “create ticket”, refer to the sample code https://communities.cisco.com/docs/DOC-65785 and follow the
viewTicket and viewCustomer functions to get a detailed understanding of how to use the voice integration API.
So the flow is similar to what we saw with the ticket create API:
●
Retrieve the call variables
●
Pass them to your Zendesk gadget
●
The Zendesk gadget forms the json file (simple structure string variable)
●
The Zendesk gadget then sends that request along to Zendesk to the appropriate API for a response
Note:
Be sure you have access to the Zendesk cloud and that you have a user id. Any customer who has
purchased Zendesk will have a Zendesk account. You will have yourcompany.zendesk.com as a login for
example
You could integrate your corporate login to the Zendesk login. You have to create your repository of agents,
with userid’s for each agent.
Zendesk exposes API’s to enable single-sign on. You can leverage the capabilities of single-sign on without
having the user to have to worry about logging into two places. Integration of single sign-on is outside the
scope of this document.
Closing Thoughts
As you can see, integrating the Zendesk interface within Finesse and attaching call variables to the content posts
and request is as easy as 1, 2, 3.
The net result will be a more fully integrated omni-channel customer service, ticket creation and ticket retrieval
experience for your customer service representatives, helping them service your customers more quickly and
efficiently.
References
●
Sample code
●
Zendesk core API
●
Zendesk voice integration API
●
Cisco Finesse
●
Finesse sample gadgets
© 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public Information.
Page 9 of 10
Printed in USA
© 2016 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public Information.
C11-736564-00 02/16
Page 10 of 10
© Copyright 2026 Paperzz