Overview
IPscape supports Zendesk integration. Once configured you will see a 'softphone' within Zendesk from which you can make and receive calls.
1. Get the app
-
Log into Zendesk
-
Click the Admin icon () in the sidebar, then select Apps > Marketplace.
-
Search for “IPscape” and find the ipSCAPE V8 CTI Adapter app
-
Click “Install”
2. Configure the app
-
Install the app
-
Enter a Name for the app.
-
Fill out the settings detailed in the table below
-
Click Update
|
Setting name |
Value |
|---|---|
|
Title |
Title identifying the CTI adapter app |
|
Tenant |
Your tenant URL. For example: http://mytenant.ipscape.com.au |
|
Integration Key |
The Integration API Key created in the Workspace.
|
|
Width |
Set the CTI Adapter widget width (px) |
|
Height |
Set the CTI Adapter widget height (px) |
|
Enable role restrictions |
Use this to restrict access to this app to certain Zendesk Roles |
|
Enable group restrictions |
Use this to restrict access to this app to certain Zendesk Groups |
3. Zendesk Configuration JSON
The Zendesk integration is constructed using the Talk Partner Edition API to use as a CTI toolkit, and the Zendesk Apps framework to extend the agent interface in Support.
A telephony event triggers one or more actions in Zendesk Support. For example, when an agent answers a call, the telephony system can create and display a ticket in Zendesk Support. Read more about the Zendesk Talk Partner Edition.
Setup Dependencies
To connect with your Zendesk instance and configure the ipSCAPE CTI to react and perform in the way you wish, you will need to configure both the users and the tickets configurations in the options configuration.
Users
{
"users": {
"addNewUser": true,
"defaultName": "Phone: {{customer_line}}",
"map": [
{
"name": "customer_line",
"type": "phone",
"format": "local",
"path": "interaction.activity.customerCli"
}
]
},
...
}
|
Parameter |
Type |
Description |
|---|---|---|
|
|
boolean |
If a match is not found when searching for a user, should a new user be created? |
|
|
string |
This is the name used by the CTI to create a new user. You can use merge fields to make this name unique. In the example, described in the |
|
|
Array |
This map is used to provide merge fields for the |
Tickets
{
"tickets": {
"public": false,
"type": "incident",
"subject": "{{callType}} call: {{campaign}} ",
"priority": "urgent",
"useCallNote": true,
"closeTicketOnWrap": true,
"custom_fields": [
{
"InteractionID": "interactionId"
},
{
"Campaign": "campaign"
},
{
"ActivityID": "activityId"
},
{
"Customer ID": "customerId"
}
],
"map": [
{
"name": "interactionId",
"type": "number",
"path": "interaction.agentInteractionId"
},
{
"name": "activityId",
"type": "number",
"path": "interaction.activity.activityId"
},
{
"name": "campaign",
"type": "string",
"path": "interaction.campaign.title"
},
{
"name": "callType",
"type": "string",
"path": "interaction.interactionType"
},
{
"name": "customerId",
"type": "string",
"path": "interaction.activity.ivrData.key=digits[value]"
}
]
}
},
...
}
|
Parameter |
Type |
Description |
|---|---|---|
|
|
boolean |
Is true if any comments are public, false otherwise |
|
|
string |
The type of this ticket. Allowed values are "problem", "incident", "question", or "task". |
|
|
Array |
The value of the subject field for this ticket. Merge fields are available to help create a meaningful subject line. * Merge fields must be added to the |
|
|
string |
The urgency with which the ticket should be addressed. Allowed values are "urgent", "high", "normal", or "low". |
|
|
boolean |
If true, comments entered into the call note in the CTI adaptor are also added to the ticket. |
|
|
boolean |
If true the ticket status is set to |
|
|
Array |
Custom fields for the ticket. Collection of key:value pairs where the |
|
|
Array |
This map is used to provide merge fields and values for the |
Screen Pop
Screen pop can be set by call sub-type or a default * required. The subtypes are: manual , inbound, preview, outbound, default
-
{ "screenPop": { "default": { "map": [ { "name": "phone", "type": "phone", "format": "local" "map": "interaction.activity.customerCli" } ] }, "rules": [ { "callType": [ "preview" ], "searchOnly": true, "map": [ { "name": "customerKey", "type": "string", "path": "interaction.leadData.customData.key=customer_key[value]" }, { "name": "phone1", "type": "phone", "format": "local", "path": "interaction.leadData.phones.index=1[phone]" } ] } ] } }
The default map provides the fallback behaviour for all calls provided there is no matching rule for the given callType. In the example provided we are creating a parameter phone of type phone which will search through the IpSCAPE call data for the parameter named customerCli found at the path interaction => activity => customerCli The phone number will then be used in our search params with the specified formatting, in this case as a local phone number.
Phone numbers can be formatted as:
-
local-(02) 8999-9999 -
national-0289999999 -
international-+61 2-8999-9999 -
E164phone-+61289999999