Voxa does not resell phone minutes. You bring your own Twilio account, Voxa connects to it, and your calls bill to you at Twilio's rates with nothing added on top. The setup takes about five minutes and needs three pieces of information from your Twilio console.
This guide covers the whole path: what to collect, what Voxa builds inside your Twilio account, how to make the first call, and what the two common errors actually mean.
Before you start
You need:
- A Twilio account. A trial account is enough to test with. See the trial section below for its limits.
- A voice-capable phone number on that account. Buy one under Phone Numbers in the Twilio console if you do not have one yet.
- An admin role in Voxa. Connecting a provider needs the
org.settings.managepermission, which the Admin role has by default. Agents and managers will not see the page.
Step 1: collect three values from Twilio
Sign in to the Twilio console and copy:
| Value | Where it is | What it looks like |
|---|---|---|
| Account SID | Console dashboard, Account Info panel | Starts with AC, 34 characters |
| Auth Token | Same panel, hidden behind a Show button | A 32-character secret |
| Phone number | Phone Numbers, Manage, Active numbers | E.164 format, like +15551234567 |
Two things worth getting right here:
- Use the Account SID, not an API Key SID. API Keys start with
SK. Voxa validates that this field starts withACand will reject anSKvalue. - If the number lives on a subaccount, use that subaccount's own Account SID and Auth Token. Voxa checks that the number exists on the account whose credentials you entered.
Step 2: connect it in Voxa
- Open Settings, Telephony (
/settings/telephony). - Pick Twilio from the provider tabs.
- Paste the Account SID, the Auth Token and the phone number in E.164 format, including the leading
+. - Click Connect Twilio.
Voxa calls Twilio's API while you wait. If both checks pass, the page flips to a Connected badge showing the provider and the number, and calling turns on for every agent in your organization.
Step 3: what Voxa creates in your Twilio account
This is the part you would otherwise do by hand in Twilio's console. Voxa does it through the REST API using the credentials you just entered:
| What | Why it exists |
|---|---|
| An API Key named after your organization | Used to mint short-lived Access Tokens for each agent's browser. Your Auth Token never reaches the browser. |
| A TwiML Application named after your organization | Holds the Voice URL and status callback URL that point back at Voxa, so Twilio knows what to do when a browser client dials. |
There is no manual TwiML App configuration step, and no webhook URL for you to paste anywhere. If you look in your Twilio console after connecting, you will find both objects there under your organization's name.
Webhooks coming back from Twilio are signature-verified against your own Auth Token, not a shared platform secret. Every organization on Voxa has independent Twilio credentials, so one tenant's keys can never validate another tenant's traffic.
Step 4: place a test call
- Open any lead and click Call, or start a dialer session.
- Your browser will ask for microphone permission the first time. Allow it.
- The call places through Twilio and connects in the browser. No softphone, no desk phone, no download.
If you are on a Twilio trial account, two limits apply and neither is a Voxa problem:
- You can only call numbers you have verified in the Twilio console.
- Twilio prepends a short trial notice to the start of every call.
Upgrading the Twilio account removes both.
The two errors people hit
"Could not authenticate with Twilio using this Account SID and Auth Token."
Voxa could not fetch the account. Usual causes: a typo or trailing space in the token, an SK API Key SID pasted into the Account SID field, a rotated Auth Token, or a suspended Twilio account.
"This phone number was not found on the provided Twilio account."
The credentials worked, but the number did not match anything on that account. Usual causes: the number is written without the + or with spaces or dashes, it belongs to a different subaccount, or it was released and repurchased under a different account.
Script audio goes into the call, not just your headset
When your agent plays an AI voice line or a quick response from the Triage panel, the clip has to reach the customer, not only the agent's speakers. On Twilio, Voxa uses the Voice SDK's audio processor hook to replace the outbound microphone stream with a live mix of the agent's mic and the clip bus.
In Recorded mode the agent's mic is muted while a clip is playing, so you never get the agent's breathing layered under the AI voice. In Live mode nothing plays and the script is just an on-screen guide. An agent can take over a call at any moment with one click, and the next call starts back in whatever mode they normally work in.
Switching or disconnecting later
Disconnect removes the TwiML Application and the API Key from your Twilio account, then clears the stored credentials on Voxa's side. Your agents fall back to manual call logging. The phone number itself stays yours; Voxa never buys, releases or transfers numbers.
Switching providers to SignalWire or Vonage disconnects Twilio first. An organization runs one live calling provider at a time, so there are never two sets of credentials sitting around half-configured.
What you pay
Twilio bills you directly for numbers and minutes at your own rates. Voxa adds no per-minute markup and takes no cut of your carrier spend. The same applies to the other integrations: Google Places searches bill to your Google Cloud project, and AI features run on your own Anthropic or OpenAI key.
Compliance still applies on every call
Connecting a carrier does not change what Voxa checks before a call rings:
- The number is checked against your do-not-call list and your blacklist.
- Calls outside 8am to 9pm in the lead's own time zone are blocked by default, and leads with no known time zone are held back. Admins can adjust the window.
- Exceptions need an override request that a manager approves, with a reason on record.
Voxa enforces your own internal lists, not the National Do Not Call Registry, so keep scrubbing against the registry through a registry service if you call consumers. For the rules behind that, read internal do-not-call lists and do you have to tell callers they're hearing an AI voice?.
Prefer a different carrier?
The same bring-your-own-account setup works with SignalWire and Vonage. Each one takes its own credentials and Voxa provisions the rest the same way.