Skip to main content

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.

Talkdesk

Digital Connect Integration

First we need to setup an integration in Builder / Integrations.

info

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.

Integrations

Settings

Now that we have the auvious client credentials, we need to setup the connection with auvious.

Base Path
Set this value as the base path.

https://auvious.video/api/digital-connect/talkdesk/conversations/events

Authentication Type

Select OAuth2 Client Credentials as the authentication type.

Client ID and Client Secret

Set the values we got from the previous step, the client credentials pair we created in auvious settings.

Access Token URL
Set this value as the token URL

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 Talkdesk

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 Talkdesk

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 optionvalue
dc-touchpoint-idSet the touchpoint ID you just created in the step above
chat-modeSet it to talkdesk-digital-connect
customer-subjectThe digital connect requires a subject. Set one.
customer-emailThe digital connect also requires an email. Set one.