notice
This is unreleased documentation for Rasa Documentation Main/Unreleased version.
For the latest released documentation, see the latest version (3.x).
Twilio
You can use the Twilio connector to deploy an assistant that is available over text message.
Getting Credentials
You first have to create a Twilio app to get credentials.
Once you have them you can add these to your credentials.yml
.
How to get the Twilio credentials: You need to set up a Twilio account.
Once you have created a Twilio account, you need to create a new project. The basic important product to select here is
Programmable SMS
.Once you have created the project, navigate to the Dashboard of
Programmable SMS
and click onGet Started
. Follow the steps to connect a phone number to the project.Now you can use the
Account SID
,Auth Token
, and the phone number you purchased in yourcredentials.yml
.Configure your webhook URL by navigating to Phone Numbers in the Twilio dashboard and selecting your phone number. Find the
Messaging
section and add your webhook URL (e.g.https://<host>:<port>/webhooks/twilio/webhook
, replacing the host and port with the appropriate values from your running Rasa server) to theA MESSAGE COMES IN
setting.
For more information, see the Twilio REST API.
Connecting to WhatsApp
You can deploy a Rasa assistant to WhatsApp through Twilio. However, to do so, you have to have a WhatsApp Business profile. Associate your Whatsapp Business profile with the phone number you purchased through Twilio to access the Twilio API for WhatsApp.
According to the Twilio API documentation,
the phone number you use should be prefixed with whatsapp: in the credentials.yml
described below.
Running on Twilio
Add the Twilio credentials to your credentials.yml
:
Restart your Rasa server to make the new channel endpoint available for Twilio to send messages to.
Receiving Location Data from Whatsapp with Twilio connector
This is how you can receive location data (WhatsApp Location) from a user on this channel:
- Create an intent named "locationData" and define two entities and slots for Latitude and Longitude respectively.
- When the user sends a location message, the locationData intent will be triggered and the slots will be set from the entities. Note that you do not need to provide training data for the entities as they are handled by the channel.