Chatbots

Claim conversation

Claim a conversation for a given agent. To avoid taking over assigned conversations, set the force paremeter to false

SecurityApiKeyAuth
Request
path Parameters
conversationId
required
integer <int64>
Request Body schema: application/json
required
agentId
required
string <uuid>

The id of the agent who is claiming the conversation

force
boolean

Set as false to avoid taking over the conversation if it is already assigned to an agent

Responses
204

The conversation was successfully claimed

400

Invalid value for: path parameter conversationId, Invalid value extracted from request context, Invalid value for: body

404

An entity in this request could not be found

500

Internal failure during request processing

put/v1/conversations/{conversationId}/claim
Request samples
application/json
{
  • "agentId": "5a556159-9c21-4f3e-a44f-d323deb80d16",
  • "force": false
}
Response samples
application/json
{
  • "message": "Invalid value in request"
}

Close conversation

Mark a conversation as closed by providing its id.

SecurityApiKeyAuth
Request
path Parameters
conversationId
required
integer <int64>
Request Body schema: application/json
optional

An optional agent/admin to close the conversation

userId
string <uuid>
Responses
204

The conversation was successfully closed

400

Invalid value for: path parameter conversationId, Invalid value extracted from request context, Invalid value for: body, User not found, User is not agent/admin

404

An entity in this request could not be found

put/v1/conversations/{conversationId}/close
Request samples
application/json
{
  • "userId": "5a556159-9c21-4f3e-a44f-d323deb80d16"
}
Response samples
application/json
{
  • "message": "Decoding failure in request"
}

Create conversation

Create a conversation. For inbound messages the author is assumed to be the requester of the conversation (end user). For outbound messages the author is specified using the agentId field.

SecurityApiKeyAuth
Request
Request Body schema: application/json
required

The conversation to create

One of:
contactEndpointId
required
string
direction
required
string

values: [Inbound, Outbound]

queueId
required
string <uuid>
requesterId
required
string <uuid>
Responses
201

The id of the created conversation

400

Invalid value extracted from request context, Invalid value for: body, Invalid input for Message, Failure to download attachment, Duplicate externalId, Unsupported ConversationChannel

404

An entity in this request could not be found

500

Internal failure during request processing

post/v1/conversations
Request samples
application/json
{
  • "requesterId": "9c2a2cce-699f-4a72-89d9-fda5bc8dec8b",
  • "emailIntegrationId": "my-integration@email.dixa.io",
  • "subject": "order #123",
  • "message": {
    • "content": {
      • "value": "My order hasn't shipped",
      • "_type": "Text"
      },
    • "attachments": [ ],
    • "_type": "Inbound"
    },
  • "language": "en",
  • "_type": "Email"
}
Response samples
application/json
{
  • "data": {
    • "id": 100
    }
}

Create end user

Create an end user.

SecurityApiKeyAuth
Request
Request Body schema: application/json
required

The end user's details

additionalEmails
Array of strings unique

Additional email addresses for the contact

additionalPhoneNumbers
Array of strings unique

Additional phone numbers for the contact

avatarUrl
string

The url from which to load the contact's avatar

displayName
string

The contact's display name

email
string

The contact's primary email address

externalId
string

Custom external identifier for the contact

firstName
string

The contact's first name

lastName
string

The contact's last name

middleNames
Array of strings

The contact's middle names

phoneNumber
string

The contact's primary phone number

Responses
201

The created end user

400

Invalid value extracted from request context, Invalid value for: body, Validation failure during enduser creation

500

Internal failure during request processing

post/v1/endusers
Request samples
application/json
{
  • "displayName": "Alice Brown",
  • "email": "alice@brown.com",
  • "phoneNumber": "+551155256325",
  • "additionalEmails": [
    • "alice@secondary.email"
    ],
  • "additionalPhoneNumbers": [
    • "+5566778899"
    ],
  • "firstName": "Alice",
  • "lastName": "Brown",
  • "middleNames": [ ],
  • "avatarUrl": "http://avatar.url",
  • "externalId": "#12345678"
}
Response samples
application/json
{
  • "data": {
    • "id": "434ce9f5-14c8-4be1-a0a8-f755010deb9b",
    • "createdAt": "2020-12-16T09:41:43Z",
    • "displayName": "Alice Brown",
    • "email": "alice@brown.com",
    • "phoneNumber": "+551155256325",
    • "additionalEmails": [
      • "alice@secondary.email"
      ],
    • "additionalPhoneNumbers": [
      • "+5566778899"
      ],
    • "firstName": "Alice",
    • "lastName": "Brown",
    • "middleNames": [ ],
    • "externalId": "#12345678",
    • "customAttributes": [
      • {
        • "id": "4baa78bc-4815-4122-9c99-f71cd742d37b",
        • "name": "My Attribute",
        • "identifier": "my_attribute",
        • "value": "My Attribute Value"
        }
      ]
    }
}

Get end user

Get an end user by id.

SecurityApiKeyAuth
Request
path Parameters
userId
required
string <uuid>

The end user id

Responses
200

The end user

400

Invalid value for: path parameter userId, Invalid value extracted from request context

404

An entity in this request could not be found

500

Internal failure during request processing

get/v1/endusers/{userId}
Request samples
Response samples
application/json
{
  • "data": {
    • "id": "434ce9f5-14c8-4be1-a0a8-f755010deb9b",
    • "createdAt": "2020-12-16T09:41:43Z",
    • "displayName": "Alice Brown",
    • "email": "alice@brown.com",
    • "phoneNumber": "+551155256325",
    • "additionalEmails": [
      • "alice@secondary.email"
      ],
    • "additionalPhoneNumbers": [
      • "+5566778899"
      ],
    • "firstName": "Alice",
    • "lastName": "Brown",
    • "middleNames": [ ],
    • "externalId": "#12345678",
    • "customAttributes": [
      • {
        • "id": "4baa78bc-4815-4122-9c99-f71cd742d37b",
        • "name": "My Attribute",
        • "identifier": "my_attribute",
        • "value": "My Attribute Value"
        }
      ]
    }
}

Get queue availability

Get availability of supported channels for a given queue. Currently supported channels are adachat, kindlychat, digitalgeniuschat.

SecurityApiKeyAuth
Request
path Parameters
queueId
required
string <uuid>
Responses
200

The availability of supported channels for a given queue

400

Invalid value for: path parameter queueId, Invalid value extracted from request context ,queue does not exist

409

The request could not be completed due to no supported channels configured for this organization

500

Internal failure during request processing

get/v1/queues/{queueId}/availability
Request samples
Response samples
application/json
{
  • "data": [
    • {
      • "channelAvailability": {
        • "genericChannelName": "adachat",
        • "availability": "NotAvailable",
        • "queueSize": 10,
        • "_type": "GenericChannel"
        },
      • "_type": "Success"
      },
    • {
      • "error": {
        • "channel": "kindlychat",
        • "message": "Could not get availability for channel",
        • "_type": "UnexpectedError"
        },
      • "_type": "Failure"
      }
    ]
}

Get the position of the conversation in its current queue

Get the approximate position of a given conversation in its current queue.

SecurityApiKeyAuth
Request
path Parameters
csid
required
integer <int64>
Responses
200

The position of the conversation in the queue

400

Invalid value for: path parameter csid, Invalid value extracted from request context

404

An entity in this request could not be found

500

Internal failure during request processing

get/v1/queues/conversation-position/{csid}
Request samples
Response samples
application/json
{
  • "data": {
    • "position": 10,
    • "queuedAt": "2021-12-01T13:00:00.003Z"
    }
}

Import conversation

Import a previously created conversation into Dixa. For inbound messages the author is assumed to be the requester of the conversation (end user). For outbound messages the author is specified using the agentId field.

SecurityApiKeyAuth
Request
Request Body schema: application/json
required

The type of conversation to import

One of:
object (Assignment)
createdAt
required
string <date-time>
direction
required
string

values: [Inbound, Outbound]

externalId
string
genericChannelName
required
string
Array of InboundImport (object) or OutboundImport (object) (ImportMessageInput)
requesterConnectionStatus
string

values: [Connected, Disconnected]

requesterId
required
string <uuid>
Responses
201

The id of the imported conversation

400

Invalid value extracted from request context, Invalid value for: body, Invalid input for Message, Failure to download attachment, Unsupported ConversationChannel, Requester does not exist, Agent does not exist

404

An entity in this request could not be found

500

Internal failure during request processing

post/v1/conversations/import
Request samples
application/json
{
  • "genericChannelName": "MyCustomChat",
  • "requesterId": "9c2a2cce-699f-4a72-89d9-fda5bc8dec8b",
  • "requesterConnectionStatus": "Connected",
  • "direction": "Inbound",
  • "messages": [
    • {
      • "content": {
        • "value": "My order hasn't shipped",
        • "_type": "Text"
        },
      • "attachments": [ ],
      • "createdAt": "2021-12-01T13:00:00.003Z",
      • "_type": "InboundImport"
      },
    • {}
    ],
  • "createdAt": "2021-12-01T11:00:00.001Z",
  • "assignment": {
    • "agentId": "cd4ceb58-bb3a-443c-9cd8-4f088feafe5b",
    • "assignedAt": "2021-12-01T12:00:00.002Z"
    },
  • "_type": "GenericConversationImport"
}
Response samples
application/json
{
  • "data": {
    • "id": 100,
    • "partialErrors": [
      • {
        • "message": "The conversation could not be assigned"
        },
      • {
        • "message": "Invalid attachment url in message. externalId: 42"
        }
      ]
    }
}

List end user conversations

Lists conversations requested by an end user.
Note: Custom attributes are not part of the response at this point. If you need to get custom attributes for a conversation use the GET /conversations/{conversationId} endpoint

SecurityApiKeyAuth
Request
path Parameters
userId
required
string <uuid>
query Parameters
pageKey
string

Base64 encoded form of pagination query parameters. Do not try to construct or change programmatically as the internal structure may change without notice.

pageLimit
integer <int32>

Maximum number of results per page. May be used in combination with pageKey to change the number of results in between page requests.

Responses
200

The list of conversations requested by an EndUser

400

Invalid value for: path parameter userId, Invalid value extracted from request context, Invalid value for: query parameter pageLimit, Invalid value for: query parameter pageKey

404

An entity in this request could not be found

500

Internal failure during request processing

get/v1/endusers/{userId}/conversations
Request samples
Response samples
application/json
{
  • "data": [
    • {
      • "id": 1,
      • "requesterId": "9deb936b-52e5-4c44-828d-4c8d48fe0c7e",
      • "channel": "WidgetChat",
      • "createdAt": "2020-12-16T09:41:43Z",
      • "direction": "Outbound",
      • "state": "Open",
      • "stateUpdatedAt": "2020-12-16T09:41:43Z",
      • "assignment": {
        • "agentId": "0e4d0ead-dc69-470a-9b3a-e7eb16a56453",
        • "assignedAt": "2020-12-16T11:00:34Z"
        },
      • "queue": {
        • "id": "cd87b232-64c8-4ad5-b81a-6f9233352d97",
        • "queuedAt": "2020-12-16T10:40:40Z"
        },
      • "browserInfo": {
        • "name": "Chrome 9",
        • "version": "91.0.4472.114",
        • "ipAddress": "127.0.0.1",
        • "originatingUrl": "http://localhost:3000/"
        },
      • "language": "en",
      • "link": {
        • "parentId": 1234,
        • "_type": "SideConversation"
        },
      • "_type": "ChatConversation"
      }
    ]
}

Transfer conversation

Transfer a conversation to a target queue.

SecurityApiKeyAuth
Request
path Parameters
conversationId
required
integer <int64>
Request Body schema: application/json
required

Transfer conversation request

queueId
required
string <uuid>

The target queue for the conversation transfer

userId
string <uuid>

An optional agent/admin to originate the transfer of the conversation

Responses
204

The conversation was successfully transferred to the target queue

400

Invalid value for: path parameter conversationId, Invalid value extracted from request context, Invalid value for: body, User not found, User is not agent/admin, Queue does not exist

404

An entity in this request could not be found

500

Internal failure during request processing

put/v1/conversations/{conversationId}/transfer/queue
Request samples
application/json
{
  • "queueId": "92f8d193-b26f-4a62-86a3-bb03ee0915e9",
  • "userId": "a53b25da-f676-4c52-acac-58c9280aa23d"
}
Response samples
application/json
{
  • "message": "Decoding failure in request"
}