Digital Connect
Auvious supports integration with Talkdesk digital connect. Implementing this integration will make the auvious widget available to be used along with Talkdesk and start a new conversation right from the widget.
Due to the nature of Talkdesk and what is already supported, the only way to start a video call from the auvious widget is to use the Conversation channel of Talkdesk. Using this channel, we can get in queue and once an available agent answers the conversation request, they can start a video call in auvious.
There are two main areas that you need to setup. A Digital Connect Integration and a Digital Connect Channel.
Auvious Client Credentials
Before we configure the Digital Connect Integration, you need to create a Client ID and Client secret in auvious. Once auvious is installed, open it and go to Settings.
Open the section Client Credentials. Give a name to your application (such as Talkdesk digital connect) and click Add.
A Client ID and secret pair will be created. Copy both the Client ID and Client Secret into a secure document, we will need them in the next step.
Digital Connect Integration
First we need to setup an integration in Builder / Integrations.
Please contact Talkdesk support to have the 'Digital Connect' integration enabled for your organization.
Once you have Digital Connect enabled, it should appear in the 'Integrations' list.
Settings
Now that we have the auvious client credentials, we need to setup the connection with auvious.
https://auvious.video/api/digital-connect/talkdesk/conversations/events
Select OAuth2 Client Credentials
as the authentication type.
Set the values we got from the previous step, the client credentials pair we created in auvious settings.
https://auvious.video/security/oauth/token
Actions
Now that we have setup a connection with auvious we need to setup some actions. These actions are required to propagate talkdesk conversation events to auvious digital connect service.
Actions that we need to setup:
- conversation_started
- conversation_assigned
- conversation_ended
- conversation_terminated
- message_created
Conversation started
Name: conversation_started
Relative path: POST
/conversation_started
Inputs schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "conversation_started",
"required": ["event_type", "conversation_id", "timestamp", "payload"],
"properties": {
"event_type": {
"type": "string",
"title": "Event Type"
},
"conversation_id": {
"type": "string",
"title": "Conversation Id"
},
"timestamp": {
"type": "string",
"title": "Timestamp"
},
"payload": {
"type": "object",
"title": "The Payload",
"required": ["contact_person", "user", "touchpoint"],
"properties": {
"contact_person": {
"type": "object",
"title": "contact to start the conversation with",
"required": ["email"],
"properties": {
"email": {
"type": "string",
"title": "contact email"
}
},
"additionalProperties": false
},
"user": {
"type": "object",
"title": "The user that initiated the chat from Talkdesk",
"required": ["name"],
"properties": {
"name": {
"type": "string",
"title": "the user name"
}
},
"additionalProperties": false
},
"touchpoint": {
"type": "object",
"title": "The touchpoint used to initiate the conversation",
"required": ["id"],
"properties": {
"id": {
"type": "string",
"title": "the touchpoint id"
}
},
"additionalProperties": false
},
"subject": {
"type": ["string", "null"],
"title": "subject on digital connect"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Conversation assigned
Name: conversation_assigned
Relative path: POST
/conversation_assigned
Inputs schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "conversation_assigned",
"required": [
"event_type",
"conversation_id",
"interaction_id",
"user_id",
"timestamp"
],
"properties": {
"event_type": {
"type": "string",
"title": "Event Type"
},
"conversation_id": {
"type": "string",
"title": "Digital connect provider conversation Id"
},
"interaction_id": {
"type": "string",
"title": "Interaction Id of the active conversation"
},
"user_id": {
"type": "string",
"title": "User Id of the agent that is assigned to this conversation"
},
"timestamp": {
"type": "string",
"title": "Timestamp"
},
"properties": {
"type": "object",
"title": "Properties"
}
},
"additionalProperties": false
}
Conversation ended
Name: conversation_ended
Relative path: POST
/conversation_ended
Inputs schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "conversation_ended",
"required": [
"event_type",
"conversation_id",
"timestamp"
],
"properties": {
"event_type": {
"type": "string",
"title": "Event Type"
},
"conversation_id": {
"type": "string",
"title": "Conversation Id"
},
"timestamp": {
"type": "string",
"title": "Timestamp"
}
},
"additionalProperties": false
}
Conversation terminated
When a conversation ends for any other reason other than what conversation_ended covers.
Name: conversation_terminated
Relative path: POST
/conversation_terminated
Inputs schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "conversation_terminated",
"required": [
"event_type",
"interaction_id",
"timestamp"
],
"properties": {
"event_type": {
"type": "string",
"title": "Event Type"
},
"interaction_id": {
"type": "string",
"title": "Interaction Id of the active conversation"
},
"timestamp": {
"type": "string",
"title": "Timestamp"
},
"properties": {
"type": "object",
"title": "Properties"
}
},
"additionalProperties": false
}
Message created
Name: message_created
Relative path: POST
/message_created
Inputs schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "message_created",
"required": [
"event_type",
"conversation_id",
"timestamp",
"payload"
],
"properties": {
"event_type": {
"type": "string",
"title": "Event Type"
},
"conversation_id": {
"type": "string",
"title": "Conversation Id"
},
"timestamp": {
"type": "string",
"title": "Timestamp"
},
"payload": {
"type": "object",
"title": "The Payload",
"required": [
"id",
"content",
"created_at",
"author"
],
"properties": {
"id": {
"type": "string",
"title": "Id"
},
"content": {
"type": "string",
"title": "Content"
},
"created_at": {
"type": "string",
"title": "Created at"
},
"author": {
"type": "object",
"title": "The Payload",
"required": [
"name",
"type"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"type": {
"type": "string",
"title": "Type"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Automations
Now that we have setup our actions we need to bind some of them to Talkdesk events that are not covered by the Digital Connect default events. That's where the automations come in.
Assigned
Enable or create the 'Assigned' automation
Configuration
In Talkdesk
when a messaging conversation assigned
then conversation_assigned
Now set the fields as the screenshot below
Terminated
Enable or create the 'Terminated' automation
Configuration
In Talkdesk
when a messaging conversation ends
then conversation_terminated
Now set the fields as the screenshot below
Digital Connect Channel
Now that we have setup the Digital Connect Integration we need to create a Channel. The channel is used by the auvious widget to create a conversation in Talkdesk.
Go to admin / Channels
. You should be able to see a channel called "Digital Connect".
Open the channel and create a new touchpoint by using the create touchpoint
button at the top right.
On the modal that is presented select the 'Digital Connect' as Connection. Also give a friendly name of your liking.
Now that you have created a touchpoint, click on it and on the details page click the edit
button.
Go to Additional information
and on 'Status' toggle on the switch.
Go to Routing information
and select the queue you would like to link to this channel. All new conversations will end up at the selected queue. If you want a more refined flow, change the routing type to studio flow and select one of the existing studio flows.
Currently we do not support attachments so leave the attachments disabled. Save and land back to the information page.
Copy the touchpoint ID and keep it somewhere. You will need to set it in the dc-touchpoint-id
widget parameter.
Widget configuration
To setup the widget to use the digital connect, you need to setup the below parameters
widget option | value |
---|---|
dc-touchpoint-id | Set the touchpoint ID you just created in the step above |
chat-mode | Set it to talkdesk-digital-connect |
customer-subject | The digital connect requires a subject. Set one. |
customer-email | The digital connect also requires an email. Set one. |