# Add a second phone number

A second line is four decisions rather than a migration. The carrier has to point the number at Connect, Connect has to hold a `channel_routes` row for it, the line needs a purpose, and it needs its own autonomy. Voice then follows from the purpose or from the number itself, so a service line and an outbound line can sound different without running a second engine.

- **Status:** Available
- **Audience:** both
- **Channels:** phone
- **In the app:** #/calls, #/phone-advanced
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/how-to/connect-a-second-number/

## What has to be true before you claim it

Two of the four things live outside Connect, and getting them the wrong way round is the usual reason a new line answers with silence. The number must exist on the carrier account, and the carrier must be sending its calls to Connect rather than to voicemail or to an old destination.

- The number is on the carrier account you already use for the first line — a number bought elsewhere has to be ported or pointed before anything here applies.
- Carrier verification for the number has passed. An unverified number can dial and be refused by the receiving network, which reads as a Connect fault and is not one.
- The voice worker is checked in and has capacity. A second line does not get its own worker; it shares the fleet, and `ring` refuses `not_ready` when every live worker is over the busy load.

> **Note** A line is not a workspace. Two numbers in one workspace share relationships, memory, knowledge and the follow-up queue. If you want two businesses that cannot see each other's records, you want two workspaces, and that is a different job.

## Claiming it in Connect

1. Open Phone and go to Setup. Add the number in full international form, the way the carrier holds it.
   - Result: Connect writes a `channel_routes` row binding that number to this workspace. Until that row exists an inbound call has nowhere to land, because routing is by number and nothing else.
2. Give the line a purpose: `inbound`, `service`, `transactional` or `promotional`.
   - Result: The purpose is what voice settings, and the behaviour text that goes with them, resolve against. There is no campaign object here — per campaign means per purpose.
3. Set autonomy for the line at endpoint scope on What Connect May Do.
   - Result: Endpoint scope is one mailbox or one phone number, and it beats the channel-wide rule. A new sales line can stay on `ask_before_send` while the established service line runs autonomously.
4. Set business hours for the line if they differ from the workspace's.
   - Result: Out-of-hours calls are handled by the after-hours behaviour rather than answered as though somebody were there.

## What each line owns and what it borrows

| Setting | Scope | Notes |
|---|---|---|
| Number and route | The line | One `channel_routes` row per number. |
| Purpose | The line | Decides which voice profile and behaviour block resolve. |
| Autonomy mode | Endpoint, falling back to channel | Narrowest applicable scope wins. |
| Voice profile | Line, then purpose, then workspace | See the resolution order on the per-line voice guide. |
| Business hours | The line, falling back to the workspace | After-hours behaviour is per line. |
| Relationships, memory, knowledge | The workspace | Shared. A caller known on one line is known on both. |
| Worker capacity | The fleet | Shared, and admission control is fleet-wide. |

## Proving the second line before you publish it

Do not put the number on a website until three separate segments have each been shown to work: the carrier leg, the worker and model session, and the record that comes out at the end. A single call that felt fine proves only the part of the path it happened to touch.

1. Place an outbound call from Connect to a phone you hold.
   - Result: That proves the carrier accepts the new number as a caller identity and that a session starts. It does not prove inbound routing at all.
2. Ring the new number from that same phone.
   - Result: That is the inbound leg, and it is the one the `channel_routes` row governs. If it reaches nothing, the row or the carrier destination is wrong.
3. Open the call record afterwards and read the transcript, the outcome and the hang-up attribution.
   - Result: A call that connected and produced no record is a different fault from one that never rang, and the two are fixed in different places.

**The line says ready and nothing rings** — The carrier is not sending the number to Connect. The Phone screen can only report what it knows; it cannot see a call that never arrived.
**Calls arrive on the wrong behaviour** — The purpose is unset or wrong, so resolution fell back to the workspace default.
**The line refuses to place calls** — Either the fleet is at capacity or every live worker is over the busy load. Both drain by themselves and both appear in Needs You.
**The number works but is silent for a few seconds** — That is greeting latency rather than routing. It is a Voice Lab question, not a setup one.

## Questions

### How many numbers can one workspace hold?

The model does not fix a count — each number is one `channel_routes` row. What does bound you in practice is worker capacity, which is shared across every line in the fleet, and your plan's allowance for call minutes.

### Can two lines answer with different names?

Yes. The behaviour text that carries the opening, the role and the closing resolves per purpose and can be pinned per line, so a service line and a sales line can introduce themselves differently over the same engine.

### Does adding a line change anything about the first one?

No. Routing is per number, autonomy resolves narrowest-first, and the existing line keeps whatever was set on it. The one shared resource is worker capacity, which both lines draw on.

## Related

- [Your business number in Connect](https://connectbyjbrh.com/docs/phone/business-number/)
- [Configuring a phone line](https://connectbyjbrh.com/docs/phone/line-configuration/)
- [How a call reaches your workspace](https://connectbyjbrh.com/docs/phone/carrier-routing/)
- [Use a different voice for each line](https://connectbyjbrh.com/docs/how-to/use-a-different-voice-per-line/)
- [Check a phone number before you go live](https://connectbyjbrh.com/docs/how-to/check-a-number-before-going-live/)
- [Autonomy scopes](https://connectbyjbrh.com/docs/autonomy/scopes/)

## What this page is based on

- Connect source pack: phone (docs-source/sources/PHONE.md §5)
- Connect source pack: overview (docs-source/sources/GENERAL.md §5)
- Connect capability registry (docs-source/facts.py)
