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.

API Request

Return to Documentation Home I Return to Sangoma Support