VoiceLayer
Dashboard

Ship / Numbers

Phone numbers

A number is how the outside world reaches an agent. Buy one, point it at an agent, and inbound calls route to it — no trunk configuration on your side.

Getting a number onto an agent

  1. 1

    Search

    Numbers → Buy a number. Search by country and area code to see what’s available from the carrier right now.

  2. 2

    Buy

    Pick one and confirm. The number is provisioned and appears in your Numbers list within a few seconds.

  3. 3

    Assign it to an agent

    The Agent column on each row. Choosing an agent wires the telephony route end to end — no other configuration.

  4. 4

    Call it

    Dial the number from a phone. The assigned agent answers and runs its flow.

☝️

One number, one agent. A number routes to exactly one agent at a time. Reassigning takes effect on the next call — you don’t need to re-publish anything. To test a second agent, either reassign or buy a second number.

Bringing your own number

Already own numbers with a carrier? Import pulls the numbers on your connected carrier account into the dashboard so you can assign them like any other. Connect the carrier under Connections first — the credentials stay in the vault and are never exposed to an agent.

Outbound calls

A number is also the identity your outbound calls dial from, so the person you call sees a number they can ring back. Outbound is started by your systems — an API call or a trigger — not by the agent deciding to call someone.

What each column means

NumberThe E.164 number itself — this is what callers dial.
Friendly nameYour label. Purely for you; “Support line” beats remembering digits.
AgentWho answers. Unassigned numbers ring with nothing behind them.
EnvironmentWhich environment’s agents this number can point at, so a test number can’t accidentally serve production traffic.

By API

Everything above is also an API call, which is how you’d provision numbers per customer in a multi-tenant product.

numbers API
# Buy a number you searched for
curl -X POST https://api.vlayers.ai/v1/numbers \
  -H 'authorization: Bearer vl_...' \
  -H 'content-type: application/json' \
  -d '{ "e164": "+14155550100", "friendlyName": "Support line" }'

# Point it at an agent (null unassigns)
curl -X PATCH https://api.vlayers.ai/v1/numbers/<id>/agent \
  -H 'authorization: Bearer vl_...' \
  -H 'content-type: application/json' \
  -d '{ "agentId": "<agent-id>" }'

Before you go live

  • Call the number yourself first — see Testing. It’s the only check that proves the whole path.
  • Confirm the number is assigned to the agent you think it is — an unassigned number just rings.
  • If the agent transfers, make sure the destination is reachable — see Transfers.
  • Telephony is regulated and rules vary by country: registration for business calling, caller-ID rules, and consent requirements for outbound. Check what applies to you before dialling people at volume.
🧾

Numbers carry a monthly cost and calls are billed per minute, so release numbers you aren’t using. Numbers is the full list of what you’re paying for.