Import methods
Twilio
Sync a number already provisioned in your Twilio account. Requires your Account SID and Auth Token.
SIP Trunk
Register any SIP-capable number manually. Requires outbound SIP address and optional inbound config.
Import a Twilio number
Click Import Twilio
Select Import Twilio Number and fill in the form:
| Field | Description |
|---|---|
| Phone number | E.164 format, e.g. +12025550100 |
| Label | A friendly name shown in the UI |
| Account SID | Your Twilio Account SID (ACxxxxxxxx) |
| Auth Token | Your Twilio Auth Token |
Import a SIP trunk number
Configure outbound trunk
The outbound config is required:
| Field | Description |
|---|---|
| Address | SIP server address (e.g. sip.carrier.example) |
| Transport | auto, udp, tcp, or tls |
| Media encryption | allowed, required, or disabled |
| Custom headers | Optional name/value pairs |
| Credentials | Optional SIP username and password |
Configure inbound trunk (optional)
Inbound config allows you to control which addresses and numbers can send calls to this number:
| Field | Description |
|---|---|
| Media encryption | allowed, required, or disabled |
| Allowed addresses | IP addresses permitted to send calls |
| Allowed numbers | Phone numbers allowed to send calls |
| Remote domains | SIP domains to allow |
| Credentials | Optional SIP auth credentials |
Syncing numbers
Use the Sync button to pull the current state of all phone numbers from ElevenLabs and update the local database. Sync preserves Twilio credentials and SIP trunk configs — it does not overwrite them.The sync and import routes share the
quota.check:phone_numbers middleware. Sync does not consume additional quota slots; only initial imports do.Assigning a number to an agent
A phone number can be assigned to one agent at a time. The agent handles all inbound calls received on that number.
To unassign a number, open the detail page and remove the assigned agent. Pass
null for agent_id in the update request.
Making outbound calls from the softphone
You can initiate an outbound call directly from the UI using a phone number that is already assigned to an agent.- Twilio numbers →
POST /v1/convai/twilio/outbound-call - SIP trunk numbers →
POST /v1/convai/sip-trunk/outbound-call
conversation_id and callSid.
Checking number usage before deletion
Before deleting a number, verify it is not actively assigned:assignment_type values: agent, softphone, or null (unassigned).
Deleting a number
Phone number data model
| Field | Type | Description |
|---|---|---|
phone_number_id | string | ElevenLabs phone number ID (pn_...) |
phone_number | string | E.164 number (e.g. +12025550100) |
label | string | Friendly display name |
provider | string | twilio or sip_trunk |
customer_id | integer | User ID of the importing account |
assigned_agent_id | string|null | ElevenLabs agent ID |
assigned_agent_name | string|null | Agent display name |
twilio_sid | string|null | Twilio Account SID (Twilio only) |
twilio_token | string|null | Twilio Auth Token (Twilio only) |
inbound_trunk_config | object|null | SIP inbound config JSON (SIP trunk only) |
outbound_trunk_config | object|null | SIP outbound config JSON (SIP trunk only) |