Integration with a Chatbot using 3rd party WebChat Widget as Front-End
Introduction
Description: This section details how to build a chatbot application by using a third-party WebChat widget that represents the user interface for the end-customer to interact with the chatbot or Sangoma CX Agent. We will use the Sangoma Digital Interactions API to handle the logic to communicate/integrate with the chatbot or 3rd party WebChat widget.
scope: cx.digital-interactions
Integration Flow
Note: In the API Request sections, replace <YOUR_ACCESS_TOKEN>
your Access Token obtained from the Requesting Access Token authentication step detailed in API Authentication .
1. Create a Webhook
To receive events from Sangoma CX, you need to set up a webhook. This requires a publicly accessible FQDN. For development purposes, you can use a tool like ngrok.
API Request
curl -XPOST --location 'https://cpaas.sangoma.com/cx/api/v1/digital-interactions/webhooks/' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
--data '{
"tenant_domain": "acme.cx.sangoma.com",
"url": "<your webhook fqdn>",
"subscriptions": [
"conversation_created",
"message_created"
]
}'
2. Choosing an Inbox
You can choose which inbox your chatbot is “assigned” to. In order to list the inboxes you can use the following request.
API Request
curl --location 'https://cpaas.sangoma.com/cx/api/v1/digital-interactions/inboxes/' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>'
3. Create a Contact for Your Customer
With the inbox ID, and before initiating the Chat Conversation create a contact for the customer after collecting basic data such as name, email, and phone number.
API Request
curl -XPOST --location 'https://cpaas.sangoma.com/cx/api/v1/digital-interactions/contacts/' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
--data '{
"tenant_domain": "acme.cx.sangoma.com",
"name": "My Customer Name",
"email": "my@customer.email",
"inbox_id": <inbox_id>,
"phone_number": "+199999999"
}'
4. Start the Conversation
After creating the contact, initiate a conversation on the platform.
API Request
5. Sending Messages
Once the conversation is created, you can start sending messages.
API Request
Note: If the message_type
is outgoing
, it will be presented as a bot message; if incoming
, it will be a customer message. The default value is outgoing
.
6. Redirect to a Customer Representative
If the customer needs human assistance, redirect the conversation to an inbox customer representative.
API Request
7. Finish the Conversation
When the customer is satisfied with the bot or representative's assistance, finish the conversation using the API.