Phone Numbers and Caller ID

Buy or connect a number, set what recipients see when agents call out, allow inbound SMS, and see which agents use which line.

Phone Numbers and Caller ID

Phone numbers are the lines your voice and SMS agents answer and call from. They are workspace-level infrastructure, not part of an agent — one number can be referenced by a voice agent, an SMS agent and a task agent, and the page below is where you see who is using what.

What you'll need

Find the page

Settings (the gear icon) → Channels → Phone Numbers (/admin/tenants/settings/phone-numbers).

The page opens on a Default Country Code field, then a table of your numbers:

Column Shows
Phone Number The number in E.164 form
Termination URI The SIP endpoint the number terminates on
SIP Trunk User Name The trunk credential in use
Nickname Your own label — what shows in the agent form's dropdown
Used By Which agents currently reference this number
Actions Edit, delete and per-number tools

Read "Used By" before you change or delete anything. It is the only place that tells you what a number breaking would break.

Default Country Code

The country code at the top is applied when a number is entered without one — so a contact stored as 4165551234 is dialled correctly. Set it once, for the country you call most.

Add a number

Click Add Number. The form has two tabs.

Search & Purchase

The usual path — buy a number and have the SIP trunking configured for you.

  1. Search Available Numbers: choose a Country (United States or Canada), optionally an Area Code, and how many Results to show.
  2. Click Search Numbers.
  3. Under LiveKit Options, decide on Enable Krisp Noise Cancellation — AI noise cancellation on inbound calls. Leave it on unless you have a reason not to; call audio from mobiles and speakerphones is the main input your agent works from.
  4. Pick a number from Available Numbers and purchase it.

Manual Configuration

For a number you already own on a carrier you already have. You supply the SIP details yourself:

Get these from whoever holds the number. A wrong termination URI shows up as calls that ring and never connect.

Configure a number

Click Edit on a row. Phone Configuration holds the fields above plus:

Forwarded calls and caller ID

When a call reaches a Karmaflow number directly, the caller ID is the caller's own number and the agent uses it: it can save the caller as a contact with that number and text them a confirmation without asking. When a call is forwarded to a Karmaflow number from one of your own lines, many carriers and PBXs replace the caller ID with your line. The agent would then save your business number as the caller's phone, or text your own front desk.

To prevent that, click Edit on the number the calls are forwarded to, turn on Also receives forwarded calls, and list the lines that forward to it under Forwarded from, one per line with the country code. On every call landing on that number the agent then decides by the caller ID:

Caller ID What the agent does
One of the Forwarded from lines Treats it as your own line. Asks the caller which number to text, never uses the caller ID.
Any other number Treats it as the caller's own, a direct call.
The toggle is on but no lines are listed Cannot tell, so it confirms the number with the caller before texting, reading back only the last digits.

With the toggle off, every call on that number is treated as a direct call. Your Karmaflow numbers and verified caller IDs are always recognised as your own lines, so you do not need to list them. In every case the agent saves the caller as a contact with the name and email they give; only texting waits for a number.

Nothing else about the call changes. Transfers, the duty roster and the agent's answers work as before. The call's page shows how the caller ID was treated on its From row: From when it was used, From (your forwarding line) when it matched a listed line, From (caller ID not relied on) when it was uncertain.

Outbound Caller ID

The Outbound Caller ID card decides what a recipient sees when this number places a call. By default they see the number itself.

  1. Display as — leave it on Use this number itself (+1…), or pick a different number from the list of verified caller IDs.
  2. To use a number you have not verified yet, click Verify a new number and prove you own it. Until then it will not appear in the list — this is a carrier requirement, not a Karmaflow.ai one, and it exists to stop caller-ID spoofing.
  3. Display name (CNAM) — up to 64 characters, e.g. "Karmaflow.ai Sales". It is sent alongside whichever number is in use.

Two things worth knowing about CNAM:

Assign a number to an agent

Numbers are selected on the agent, not handed out from this page.

Agent type Where Field
Voice Telephony tab Voice Phone Number — the line it answers or calls from
Voice Telephony tab SMS Number — the number it texts from
SMS The agent's own settings Its primary texting number
Chat / Task The agent's own settings An optional text number

For a voice agent, assigning a Voice Phone Number is what flips the header badge from Not deployable yet to Approved · +1….

Inbound routing, and the one-agent rule

flowchart LR
    A["Caller dials<br/>+1 555 0100"] --> B["Number's routing<br/>record"]
    B --> C["The one PROMOTED<br/>inbound voice agent<br/>holding that number"]
    C --> D["Call is answered"]
    E["Draft agent<br/>with the same number"] -.->|"never receives<br/>a real call"| D

An inbound number can be live on only one production voice agent at a time. Promoting a second inbound agent that holds the same number is refused, with the conflict named — that is deliberate, because "which agent answers?" has to have exactly one answer.

Practical consequence: to hand a line from one agent to another, change the number on the old agent and promote that change, then assign it to the new one and promote.

Draft agents never receive real inbound calls at all, whatever number they hold. Test them with Talk to your agent or Simulate Call — see Testing, Drafts and Going Live.

Troubleshooting

Next steps