Some use cases are:
- Send a notification, like a delivery update
- Deflect a phone call to text messaging
- Bulk send a message to customers
What you need
To get started you’ll need the following:
- A Khoros instance that is connected to a phone number
- A registered bot user within the Khoros instance
- A Flow.ai account and organisation
Getting started
To start sending outbound messages you’ll need to connect Flow.ai with Khoros, configure the Flow.ai REST API and add a flow to trigger.
1. Connecting Flow.ai with Khoros
- Login into your Flow project
- Go to the Integration section
- Add a new Khoros integration within the customer service section
- Choose a bot name
- Provide the bot username and password (please contact Khoros support to create a bot user for your Khoros instance)
- Add your company key (check the Khoros developer settings to find the name)
- Choose the correct region (ask Khoros support if you do not know the region of your instance)
- Choose SMS as the channel
- Add the phone number connected to Khoros as the external ID
- Add the same phone number in the phone number field
- Add support@flow.ai as the contact email address
Please see the installation documentation for more information.
2. Configure the Flow.ai REST API
Using the REST API you can make a direct broadcast call to Flow.ai using a customer phone number (MSISN) that would trigger a specific flow.
That way you can send text messages to customers through the Khoros SMS integration.
- Go to the organisation settings screen (top right)
- Choose “API Keys”. If you do not see this item, you do not have sufficient permissions for the organisation. Please contact the owner of the Flow.ai organisation.
- Create a new API key (choose the default settings)
- Go back to the project and open up the integration overview.
- Add a new REST API integration
- Choose the API key from the dropdown and press save
- Copy the REST API token and store it for later usage
3. Creating a Flow to trigger
We have everything ready to trigger a flow that will send an outbound message to a user. The only thing missing is a flow to trigger. Simply add a new flow and make it start with an event. For example name the event: Send SMS
.
Below the event, drag and drop a text reply. Add some text like: This is a test message
Save the flow. Now we can test the entire setup!
Testing
You can test the broadcast using a CURL command to make a call to the REST API.
The following is an example of a CURL command:
curl --location --request POST 'https://api.flow.ai/rest/v1/broadcast/instant' \
--header 'Content-Type: application/json' \
--header 'Authorization: sk_ab12abcd9876543210abcdefgh012345' \
--data-raw '{
"audience": [{
"name": "John Doe",
"phoneNumber": "+1234567890"
}],
"channel": {
"channelName": "khoros",
"externalId": "+0987654321"
},
"payload": {
"type": "event",
"eventName": "Send SMS"
}
}
'
Replace the information:
Name | Description |
---|---|
API_TOKEN | Rest API token copied in step 2 |
CUSTOMER_NAME | Name of the customer (or anonymous ) |
CUSTOMER_MSISDN | Valid phone number in international format |
KHOROS_EXTERNAL_ID | Khoros external ID (phone number) |
EVENT_NAME | Event name of the flow to trigger |
curl --location --request POST 'https://api.flow.ai/rest/v1/broadcast/instant' \
--header 'Content-Type: application/json' \
--header 'Authorization: API_TOKEN' \
--data-raw '{
"audience": [{
"name": "CUSTOMER_NAME",
"phoneNumber": "CUSTOMER_MSISDN"
}],
"channel": {
"channelName": "khoros",
"externalId": "KHOROS_EXTERNAL_ID"
},
"payload": {
"type": "event",
"eventName": "EVENT_NAME"
}
}
'
Troubleshooting
- Check the notification overview in the top right for any errors
- Check the Flow chat logs, choose “All messages” to view any inbound and outbound REST API calls