Get started with voice
Are you ready to serve your bot content over the phone? This guide takes you through taking your bot to the next level by adapting your messaging content for voice conversations.
This feature may not be included with your organization’s subscription package. For more information, see Ada’s Pricing page, or contact your Ada team.
Voice works by integrating a Twilio account with your bot.
-
If your Voice subscription package includes Twilio, skip ahead to Enable Voice in multiple languages. Your Ada team will set up your Twilio account for you.
-
If you’re using your own Twilio account, expand these instructions to prepare an account, phone number(s), SIP domain, or Twilio Application to use with your bot:
Set up your Twilio account
- If your organization doesn’t already have one, set up an account with Twilio. For more information, see View and Create New Accounts in Twilio Console at Twilio’s Help Center.
- Set up one or more phone numbers with Twilio, using one of the following options:
-
Purchase a phone number through Twilio. For more information, see How to Search for and Buy a Twilio Phone Number from Console at Twilio’s Help Center.
-
Port an existing phone number from another service provider to Twilio. For more information, see Porting a Phone Number to Twilio at Twilio’s Help Center.
- Submit your organization’s toll-free phone number(s) to Twilio for verification.
-
If you are using a toll-free number with your bot and you want to be able to send SMS messages from it during a phone conversation, you will need to submit a Toll-Free Message Verification request to Twilio. For more information, see Toll-Free Message Verification for US/Canada at Twilio’s Help Center.
-
If you are using a local number with your bot and you want to be able to send SMS messages from it during a phone conversation, you will need to submit an A2P (Application to Person) 10DLC (10 digit long code) registration request to Twilio. For more information, see Programmable Messaging and A2P 10DLC at Twilio’s Help Center.
- (Optional) Set up a SIP domain with Twilio.
- Add at least one IP Access Control List (ACL) or Credential List in Twilio
An Access Control List (ACL) is a security measure that manages who can access your network resources by specifying allowed IP addresses. In SIP communications, using an ACL enhances security by ensuring only trusted traffic can reach your Twilio SIP domain, preventing unauthorized access.
This procedure takes you through configuring an IP ACL in Twilio, so Twilio only accepts SIP traffic that originates from your specified IPs. You can also choose to configure credential lists instead, so it only accepts traffic from specific usernames and passwords. For more information, see Inbound - Sending SIP to Twilio at Twilio’s Help Center.
- Log into Twilio Console.
- In your Twilio account, go to Develop > Voice > Manage > IP access control lists, then click Create new Access Control List. The Create new Access Control List window opens.
- In the Create new Access Control List window, fill in the following fields:
- Under ACL Friendly Name, enter a descriptive name that represents the purpose of the list (e.g.,
My Contact Center Platform IP Address
). - Under IP Address Range Friendly Name, enter a name to help identify the IP Address range.
- Under CIDR Network Address and Range, enter the specific IP address range that should be allowed access.
- Click Create new ACL to save the list and close the window. Then, click Create new IP Address Range to add an additional IP range to the list. The Add IP Address Range window opens.
- Repeat the previous steps for adding an IP Address Range.
- Click Save.
- Create a new SIP domain.
- Go to Develop > Voice > Manage > SIP domains.
- Click the plus sign to create a new SIP domain.
- Create a SIP URI/domain name. This property allows you to specify a global unique SIP domain that is used to route SIP traffic from your infrastructure over the public internet to the correct server hosted by Twilio in the cloud. For more information on SIP domains, see SIP URI/domain names at Twilio’s Help Center.
- If you wish to manually connect to a specific geographic Edge Location that is closest to the location of your communications infrastructure, see Localized SIP URIs at Twilio’s Help Center. This can reduce latency and improve call audio quality.
- Under Voice Authentication, beside IP Access Control Lists, select both of the IP Access Control Lists you created.
- Under Secure Media, click the toggle so it says Enabled.
- Click Save.
Your bot can also receive calls from your contact center infrastructure, transferred over the public internet using Session Initiation Protocol (SIP). To do this, you first need to create a SIP domain in Twilio.
After getting your phone number and/or SIP domain set up with Twilio, you can connect it with your bot.
Connect your Twilio account with your Ada bot
In your Twilio account, you need to obtain your account string identifier (SID), and create an API key to use with Ada.
- On the Ada dashboard, go to Settings > Integrations.
- Under Channels Integrations, beside Voice, click Configure. Keep this window open as you go into your Twilio account to get your account details, so you can paste them in as you find them.
- In your Twilio console, in your account info, find your Account SID. Your Account SID is a unique identifier that acts like a username when you’re using Twilio’s API. For information on how to find it, see Auth Tokens and How to Change Them at Twilio’s Help Center.
- On the Ada dashboard, under Twilio Configuration, paste your Account SID into the Twilio Account SID field.
- In your Twilio console, create a new API key. Enter a name into the Friendly name field, set the Key Type to Main, and leave the other settings with their default values.
- For information on how to create an API key, see API Keys and How to Change Them at Twilio’s Help Center. When you create an API key, you get both a key and a secret. You can only view the secret once for security reasons, so make sure you save it in a safe place.
- On the Ada dashboard, under Twilio Configuration, paste the API key into the Twilio API Key SID field, and paste the secret into the Twilio API Key Secret field.
- Configure your bot to use a phone number, a SIP domain, or a Twilio Application to receive phone calls. Your bot can only use one of these methods to receive phone calls. Click a section to expand the full instructions.
For more information on how you can configure your bot with your contact center platform, see Integrate your voice bot with your contact center technology provider.
Configure your bot to receive phone calls using a phone number
- Select Phone Number.
- Under Default phone number, enter your Twilio phone number. This is the phone number your bot will use to receive phone calls.
- If required, you can add additional numbers if you want to use them to serve different audiences (e.g,. callers who want to speak in specific languages, or if your bot serves multiple brands). To do this, click Add another phone number, add the number, and select a default language for it.
- Under Fallback phone number, enter a fallback number. Ada will route calls to this phone number in the case of system downtime that prevents your bot from responding.
- If required, you can select Use a language-specific SMS number and enter a different phone number to send and receive SMS messages instead of your main phone number for that language.
- Click Save.
Configure your bot to receive phone calls using a SIP domain
- Select SIP domain.
- Enter a SIP domain. This should follow the format
your-domain-name.sip.twilio.com
and should be the global unique SIP domain that you previously created. - If you haven’t created a SIP domain yet, entering and saving a SIP domain here will create the domain in your Twilio account. You will then need to configure at least one IP Access Control List or Credential List in Twilio to use with this SIP domain.
- If required, you can add additional SIP domains that you created in Twilio if you want to use them to serve different audiences (e.g,. callers who want to speak in specific languages, or if your bot serves multiple brands). To do this, click Add another SIP domain, add the domain, and select a default language for it.
- Under Fallback SIP address, enter a fallback SIP address. Ada will route calls to this phone number in the case of system downtime that prevents your bot from responding.
- Under SMS phone number, enter your Twilio phone number, so your bot can use it to send and receive SMS messages, and so you can use it when you’re testing your bot.
- Click Save.
Configure your bot to receive phone calls using a Twilio Application
- Select Twilio Application. When you select this option, Ada prepares to create a new Ada Twilio Application which it uses to receive phone calls.
- Enter the phone numbers used to receive calls.
- Under Phone numbers used to receive calls, enter each phone number that your end users dial before the call is transferred to your Ada Twilio Application.
- For each phone number that is used to receive calls, select the default language for it. When Ada receives a call that was made to that phone number, the bot will default to the configured language.
- If there are multiple different phone numbers that end users dial before the call is transferred to Ada (ex. different phone numbers for different audiences, languages, or brands), click Add another phone number, enter the phone number, and select a default language for it.
- Note: If Ada’s Twilio Application receives an inbound call on a phone number that isn’t listed here, the bot defaults to English.
- Under Fallback phone number, enter a fallback phone number. Ada will route calls to this phone number if, for any reason, your bot becomes unresponsive and cannot answer calls.
- Under SMS phone number, enter a phone number from your Twilio account. Your bot will use this number to send and receive SMS messages, and you can also use it for testing outbound calls from Ada.
- Click Save.
- Ada creates the Twilio Application in your Twilio account.
- Once saved, the Twilio Application ID field appears. This is your Twilio App SID. Copy this value for use in your phone system or contact center platform.
After you have connected your bot, the Phone toggle automatically switches on.
The configuration section of your bot has some additional options you can set, but we’ll cover those and what they mean in later topics.
Your usage of Voice is subject to both applicable privacy and phone communication laws, and Twilio’s policies. These may vary based on your location and industry. If you have any questions, please contact Ada’s or Twilio’s support.
Before you begin
Before you get started with Voice, take a moment to learn some background information. Then, you need to set up an account and phone number with Twilio.
Understand Voice’s limitations
It’s important to understand some limitations with Voice. Generally, bots are designed to accommodate caller interruptions so they can connect callers with the information they need sooner. However, the caller and the bot speaking over each other can create a confusing experience, and can get in the way of a caller getting their intent resolved.
In some cases, like List Option blocks, we encourage interruptions so callers don’t have to listen to the entire lists. However, because Speak blocks (the voice equivalents of Text blocks) might contain crucial information for callers, we don’t allow callers to interrupt them.
Enable Voice in multiple languages
You can enable different languages for customers to speak with your bot with over the phone. For more information on enabling languages, see Support multiple languages in the same bot.
The following languages are available for voice:
- English
- French
- German
- Italian
- Spanish
- Swedish
- Dutch
If you enable any of the above languages in your bot, that language will be available in both messaging and voice - you can’t have any of these languages only enabled for one or the other.
We don’t recommend using automatic translations for response content, because translating content while the customer is on the phone can lead to unwanted pauses during the conversation. Instead, use manual translations wherever possible to keep your conversations flowing.
Choose regional dialects for your languages
Some of the languages available in Voice also have support for different regional dialects of those languages:
English
- Australia
- Canada
- United Kingdom
- United States
French
- Canada
- France
Spanish
- Spain
- United States
For each of the above languages, you can choose one dialect to use in your bot, which affects two things:
-
Speech transcription models
Your bot uses a speech transcription model to transcribe what callers say and convert it to text. Ada can use transcription models that are specifically trained using speaking data using a particular dialect to improve transcription accuracy.
-
Speaking voices
When you choose a dialect for your bot, your bot will automatically use the default speaking voice for that language and dialect. You can always go into your settings and choose a different voice for that dialect instead.
Here’s how you can change the dialects available for your bot:
-
On the Ada dashboard, go to Settings > Integrations.
-
Under Channels Integrations, beside Voice, click Configure. The Phone window opens.
-
On the Phone window, click the Dialects tab.
-
For each language that has dialects available, in the Dialect/region list, select an available dialect.
-
Click Save. Your bot immediately starts using the dialects you chose for all conversations in the corresponding languages, for both internal testing and for any live voice content in your bot.
Understand how your bot determines the caller’s language
Your bot determines the language to use with your caller based on the language
metavariable. There are a few ways you can set the caller’s language:
-
Set a default language for the phone number or SIP domain
When you were setting up your Twilio account with your bot, you might have set a default language for one or more phone numbers or SIP domains. If you did, all phone numbers to that number or SIP domain start with the
language
metavariable set to that language. -
Let callers select from a menu of enabled languages
You can choose to begin all of your bot’s calls with a menu that allows callers to select one of your enabled languages. If you turn on this menu, your bot will serve it to all callers before the Greeting, even if the number is associated with a specific dialect.
- On the Ada dashboard, go to Settings > Integrations.
- Under Channels Integrations, beside Voice, click Configure. The Phone window opens.
- On the Phone window, click the Language selection tab.
- To turn on the menu, select the Let callers select their own language checkbox. Your bot’s enabled languages appear.
- For each of your enabled languages:
-
Toggle the language On or Off to control whether it appears in the menu.
-
For languages you want to appear in the menu, drag them higher or lower in the list. Your bot will automatically assign each language a number that the caller than dial into their dialpad to select.
- Click Save. Your language selection menu becomes available immediately for all callers.
-
Use the End Users API
You can use the End Users API to update a user’s profile to set the
language
metavariable. -
Send language information in the SIP header
If you’re using a SIP domain for your bot to receive phone calls, you can include the language value in the user-to-user header.
-
Send language information as a Twilio Parameter
If you’re using a Twilio Application for your bot to receive phone calls, you can include the language value as a parameter when transferring a call to the Application.
Choose a speaking voice for your bot
Choosing a speaking voice for your bot is an important part of your bot’s branding. You can change your bot’s voice at any time to better fit your bot’s branding needs.
Not all speaking voices support SSML, which is the markup you can use to
control how your bot pronounces content in voice conversations. Voices that support SSML will have (SSML)
after the name of the voice (e.g., Erica (SSML)
).
-
On the Ada dashboard, go to Settings > Integrations.
-
Under Channels Integrations, beside Voice, click Configure. The Voice window opens.
-
In the Voice window, click the Speaking voice tab.
-
Under Speaking voice, select a voice for each language you have enabled in your bot.
-
Optionally, in the text field, you can type in a text sample, like a message from your bot, so you can hear your bot read out a specific piece of your bot content. Then, you can click the Play button beside a selected voice to play the sample.
-
Click Save. Your bot immediately starts using the voices you selected for both internal testing and for any live voice content in your bot.