Outbound number pooling

View as Markdown

Outbound number pooling lets you assign multiple phone numbers to a single outbound agent, then choose which number to use when creating each call. This is useful when you route traffic by campaign, region, or brand while keeping one shared agent configuration.

Use this guide together with the agent endpoints in the API reference and make a call endpoint.

Inspect attached phone numbers on an agent

GET /v2/assistants/{model_id} now returns attached_phone_numbers in the assistant object:

1{
2 "attached_phone_numbers": [
3 {
4 "number": "+16286666348",
5 "sid": "PN9c8dba0c87f9173af8054d3ccedb8afd",
6 "slug": "16286666348"
7 }
8 ]
9}

Use slug when you need to detach one number, and use number when you want to set a specific caller ID in POST /v2/calls.

Attach multiple numbers to an outbound agent

Use PUT /v2/assistants/{model_id}/phone_numbers.

You can pass either:

  • phone_numbers (phone number values, for example +16286666348)
  • phone_number_slugs (internal slugs, for example 16286666348)

Attach using phone numbers

$curl --request PUT \
> --url https://api.synthflow.ai/v2/assistants/{model_id}/phone_numbers \
> --header 'Authorization: Bearer YOUR_API_KEY' \
> --header 'Content-Type: application/json' \
> --data '{
> "phone_numbers": ["+16286666348", "+12131231214"]
> }'

Attach using phone number slugs

$curl --request PUT \
> --url https://api.synthflow.ai/v2/assistants/{model_id}/phone_numbers \
> --header 'Authorization: Bearer YOUR_API_KEY' \
> --header 'Content-Type: application/json' \
> --data '{
> "phone_number_slugs": ["16286666348", "1231242151"]
> }'

Successful response:

1{
2 "status": "ok"
3}

Detach one attached number

Use DELETE /v2/assistants/{model_id}/phone_numbers/{phone_number_slug} to remove a single attached number:

$curl --request DELETE \
> --url https://api.synthflow.ai/v2/assistants/{model_id}/phone_numbers/{phone_number_slug} \
> --header 'Authorization: Bearer YOUR_API_KEY'

Successful response:

1{
2 "status": "ok"
3}

Select the outbound caller ID when creating a call

POST /v2/calls now accepts optional from_phone_number. Pass a phone number in the API body:

1{
2 "model_id": "0ae2859d-c25c-4d56-a9f3-809387b725ce",
3 "phone": "+14155550123",
4 "name": "John Doe",
5 "from_phone_number": "+16286666348"
6}

If omitted, Synthflow uses the agent’s default outbound number selection behavior. In the UI logs and call records, the original phone number that was used for each call is still shown so you can verify caller ID selection.

FAQ

No. Choose either one or the other.

No. These attach and detach endpoints are intended for outbound number pooling on outbound agents.

You can use any kind of phone number that you own like a custom phone number, phone numbers purchased inside Synthflow or phone numbers from your imported Twilio.