> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getthread.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Forward your phone system to Voice AI

> Add Voice AI to an existing phone system with call forwarding: understand which Attendant or Overflow number to use, and the routing pattern for IVR, call-queue, after-hours, direct-dial and no-PBX setups.

Thread is not a phone system. Voice AI is an AI agent that has **its own phone number**, and it joins your call flow the way any other destination would — you **forward calls to it**. Your carrier, your DIDs, your licensing and your dial plan all stay exactly where they are.

So connecting Voice AI comes down to one decision, repeated once per call path: **at what point in my existing flow should the AI answer?** Everything on this page maps the common answers, and the [phone system forwarding directory](/ai-agents/phone-system-forwarding-directory) shows where that setting lives in around thirty phone systems.

<Note>
  Forward live calls only after you have tested the agent by calling its number directly and reviewing the transcripts and tickets it produced. See the testing steps in [Answer overflow & after-hours calls](/ai-agents/voice-ai-setup-phase-2-overflow-after-hours#test-your-agent) and [Replace your phone menu with the Auto-Attendant](/ai-agents/voice-ai-setup-phase-3-the-auto-attendant-walk-run).
</Note>

## Which Thread number goes where

Voice AI gives you two agents, each with **its own number**, requested under their respective tabs in **Voice → Agents**:

* The **Attendant** answers the call in order to pass it to your team. It runs in one of two modes, **Advanced AI** or **Minimal AI**, which decide how much the agent does before the transfer.
* The **Overflow** acts like an AI voicemail, when used in conjunction with Attendant the agent takes over when nobody picks up, and takes a message. Overflow can also be used solo as an AI voicemail that understand the issue, creates the ticket, and lets the caller know they will get a call back.  The **Overflow** agent acts like an AI voicemail. Paired with the Attendant it takes over when nobody picks up and takes a message; on its own it understands the issue, creates the ticket, and tells the caller they'll get a call back.

Which number you forward to, and which mode the Attendant is in, is what decides the caller's experience.

| You want…                                                                                                                                          | Forward to           | Set the forward on                                                                                                                 |
| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| The Attendant to greet the caller, gather the issue and identify them, then transfer to your team — **Advanced AI mode**                           | **Attendant** number | Your support DID — forward **immediately**, with no ring time                                                                      |
| The Attendant to route straight to your call queue without speaking to the caller, recording and ticketing in the background — **Minimal AI mode** | **Attendant** number | Your support DID — forward **immediately**, with no ring time                                                                      |
| The Attendant to try to pass the call to your technicians, but for AI to replace voicemail if no one is available                                  | **Attendant** number | Your support DID — forward **immediately**, with no ring time. Overflow forwarding on call time out is a setting inside Attendant. |
| The AI to pick up calls your team didn't answer, triage the issue and take a message                                                               | **Overflow** number  | Your queue or ring group's **no answer / maximum wait time** rule                                                                  |
| The AI to replace voicemail when you're closed                                                                                                     | **Overflow** number  | Your **after-hours / closed** answering rule                                                                                       |
| Nobody to answer live — every call becomes a ticket and a callback                                                                                 | **Overflow** number  | Your support DID — forward **immediately**                                                                                         |
| The Attendant to handle one branch of an existing menu (for example "press 1 for support")                                                         | **Attendant** number | That **menu option's** destination                                                                                                 |

The forward is identical for both Attendant modes — the mode is a setting on the agent, not a different number. See [Minimal vs Advanced AI mode](/ai-agents/voice-ai-attendant-modes).

## The standard setup: Attendant in front, Overflow behind

This is what most partners end up with, and it needs **one** forward in your phone system. The Attendant answers everything, creates the ticket, transfers to your team, and hands the call to Overflow if nobody picks up — so your PBX never needs a second rule.

```mermaid theme={null}
flowchart TD
  A[Caller dials your support number] --> B[Your phone system forwards immediately]
  B --> C[Attendant answers and creates the ticket, mapping the caller to a contact]
  C -->|Advanced AI mode| D[Greets the caller and asks what they need]
  C -->|Minimal AI mode| E[No conversation — listens and routes]
  D --> F[Attendant rings your call queue]
  E --> F
  F -->|A technician answers| G[Warm handoff — details already on the ticket]
  F -->|Ring time expires| H[Overflow triages, takes a message, adds it to the same ticket]
```

Three things about that flow are worth knowing before you build it:

* **The ticket exists before your team's phones ever ring.** The Attendant opens the ticket and attempts contact mapping the moment it answers, so a caller who gives up mid-transfer still leaves you a ticket.
* **The mode decides whether the Attendant speaks.** In **Advanced AI mode** it greets the caller, asks what they need and can run AI caller identification if not mapped by phone number. In **Minimal AI mode** it says nothing at all — it listens in and routes the call to your queue or ring group. See [Minimal vs Advanced AI mode](/ai-agents/voice-ai-attendant-modes).
* **In Minimal AI mode, the only conversation happens at Overflow.** If nobody picks up and the call rolls over, that's the point where Voice AI triages the caller and collects what your technician needs for the callback. Overflow adds it to the ticket the Attendant already opened rather than starting a second one.

<Steps>
  <Step title="Give the Attendant somewhere to transfer to">
    In **Voice → Agents → Attendant → Routing**, choose **Don't use menu options** and fill in **Call queue and extension** with the country code and phone number your technicians' queue or ring group answers on. An **extension** is optional — use `w` between digits (for example `www90`) for a half-second pause if the extension is nested behind a prompt.

    This destination has to be a number that can be dialed from the public phone network. An internal extension on its own won't work.
  </Step>

  <Step title="Turn on the fallback to Overflow">
    Under **Call time out**, set **Ring for** to how long your team normally needs to pick up, plus about 10 seconds, then enable **Use Overflow when no one is available**.

    Request the Overflow number first. Nothing stops you saving this toggle without one, but there's no agent for the call to land on — and in a menu option, **AI Transfer to Overflow** stays grayed out and labeled *(setup missing)* until that number exists.

    **Call time out** appears in both Minimal and Advanced AI mode, so a Minimal-mode Attendant can fall back to Overflow too.
  </Step>

  <Step title="Forward your support number to the Attendant">
    In your phone system, point your support DID at the **Attendant** number and forward **immediately** — the AI is the thing that should answer, so there's no reason to ring first. The [forwarding directory](/ai-agents/phone-system-forwarding-directory) names the setting for your platform.
  </Step>
</Steps>

<Warning>
  **Two ways to send a call round in circles.** Both produce symptoms that look like Thread's fault and aren't:

  * **Don't build the rollover twice.** If the Attendant already has **Use Overflow when no one is available** enabled, do **not** also point your PBX queue's no-answer rule at a Thread number. The unanswered call returns as a brand-new inbound call that Thread can't recognize as the same conversation — two tickets, and sometimes two agents on the line.
  * **Don't transfer back to the number you forwarded from.** Sending the Attendant's transfer destination to your main DID bounces the call straight back into the Attendant. Always transfer to the queue, ring group or technician DID.
</Warning>

## Map your existing setup

If your calls don't flow the way the standard setup assumes, open the pattern that matches how they flow today — each one names the Thread number to use and where the forward goes.

<AccordionGroup>
  <Accordion title="One support number that rings a queue, then drops to voicemail">
    The most common MSP setup, and the easiest place to start: leave business hours alone and **replace voicemail only**. Point the queue's no-answer or maximum-wait rule at the **Overflow** number, and every abandoned call becomes a ticket with the caller's issue in it.

    When that's proven, add the Attendant in front using the standard setup above.
  </Accordion>

  <Accordion title="An IVR menu in front of your support line">
    **Replacing the menu is the better end state**, and it's what Advanced AI mode is for. Forward the whole DID to the Attendant and rebuild your options in **Voice → Agents → Attendant → Routing → Use menu options**. Each option takes a digit, a label, a handling choice — **AI Transfer (Record & Transcribe)**, **AI Transfer to Overflow** or **Transfer only (no AI)** — and a destination number.

    The reason to prefer it is the caller's experience: one agent greets them, runs the menu, gathers the issue and either transfers them or takes a message — the same voice the whole way through. Keep your old menu in front and callers meet a recording first and an AI second, handed between two systems that know nothing about each other.

    **Keeping your menu is still a reasonable pilot.** Forward only the support option to the **Attendant** number and leave billing, sales and the rest untouched.

    <Note>
      Menu options require **Advanced AI mode** — switching an agent to Minimal turns them off. And if a Voice AI transfer lands in **another IVR**, turn **Technician briefing** off under **Call handoff**: it waits for a human to say their name, which a menu can't do, and the call breaks.
    </Note>
  </Accordion>

  <Accordion title="You want Voice AI without an Attendant at all">
    Overflow works on its own — no Attendant, no second number, one forward. Three shapes are common, and two of them are the patterns above: **replacing voicemail** on your queue's no-answer rule, and **covering after hours** on your closed rule.

    The third is the one nothing else on this page covers. **Run Overflow as the front desk:** forward your support number straight to it so nobody answers live. Every caller describes their issue, every call becomes a ticket, and technicians call back from the queue instead of being interrupted mid-task. Partners running a callback-first desk do this deliberately.

    Overflow can tell how the call reached it, so **Overflow Behavior** offers separate greetings for a transfer **from an IVR** and one due to **Call Time Out**, alongside the default a directly-forwarded caller hears.
  </Accordion>

  <Accordion title="A person answers your main line">
    Keep the receptionist on the main number and forward only the **support DID** to the Attendant. To keep one number instead, set the receptionist's no-answer destination to the **Overflow** number so those calls become tickets rather than voicemail.
  </Accordion>

  <Accordion title="Calls ring technicians directly, with no queue">
    The Attendant transfers to one destination, so point **Call queue and extension** at a single technician's DID to get started. A ring group or hunt group is the better answer though — it lets **Ring for** and the Overflow fallback work across the whole team, and most systems can create one in minutes.
  </Accordion>

  <Accordion title="You only want AI after hours and on call">
    Forward your **after-hours or closed** answering rule to the **Overflow** number and leave business hours untouched. Voice AI has no setting that answers during business hours *without* running the AI — business-hours routing belongs in your phone system.

    Voice AI does know when you're closed: **Voice → After hours** follows the business hours set in Messenger and plays a separate closed greeting, so a number forwarded to Overflow around the clock can greet out-of-hours callers differently. However, a better set up is often making two different agents and using your phone system to switch between them before and after hours. 
  </Accordion>

  <Accordion title="You don't have a support line yet">
    You don't need a PBX at all. Publish the **Attendant** number as your support number — there's nothing to forward.

    Use the Attendant number for this, not the Overflow one: Overflow's number is a routing destination, and Voice AI says as much in its own settings. For an agent that only takes messages, publish the Attendant number and point it at Overflow rather than handing out the Overflow number itself.

    For richer call metadata delivered to a PBX, see [SIP trunks and caller ID](/ai-agents/voice-ai-sip-trunks-and-caller-id).
  </Accordion>
</AccordionGroup>

## Make the forward in your phone system

Everything above decides *which* Thread number to forward to. This is the part you do in your own admin console — and it's the same job on every platform, which is why one set of click-by-click instructions can't cover them all.

### Find the rule

You're hunting for two things, on your call queue, ring group or hunt group:

| Look for                                         | Worded as                                                                                                                                              |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **The rule** that fires when nobody picks up     | no answer · no agents · all members busy · maximum wait time reached · timeout · overflow · queue full                                                 |
| **The destination** it sends the call to instead | forward · redirect · divert · transfer · route to · send caller to — and it must accept an **external number**, not only an extension or voicemail box |

Some systems keep both on the group itself, others on a separate answering-rules or call-handling tab. An after-hours forward works the same way: find the closed or after-hours rule and point it at the Overflow number.

The [phone system forwarding directory](/ai-agents/phone-system-forwarding-directory) names that setting and links the vendor's own documentation for around thirty platforms, and covers what to do when your phone system isn't listed by name.

### Check your system allows it

Forwarding to Thread is an **external** forward, which is the one thing many phone systems restrict by default. If the destination options are all internal — extensions and voicemail only — that's your blocker, and it's a question for your phone system provider rather than for Thread.

* **External forwarding is permitted** on the object you're editing — the queue, ring group, auto attendant or resource account. Depending on the platform this is a license, a permission, a class of service, or a global toggle, and it's the single most common reason a forward silently fails.
* **The number is in the format your system expects** — usually E.164 (`+15551234567`) or your carrier's dialing format, digits only. Dashes and spaces break some systems.
* **Your transfer destination is reachable from the public phone network**, because Voice AI dials it as a normal call.
* **Caller ID is passed through.** If your system replaces the caller's number with its own, Voice AI can't match the caller to a PSA contact automatically. See [Voice AI contact mapping](/ai-agents/contact-mapping) for what to do about it.

### Watch out for voicemail answering the call

No phone system can tell a person picking up from a voicemail box picking up — to the carrier both are an answered call. That's why so many offer a press-a-key-to-accept option on external forwards: **Confirm Calls** in FreePBX, **Confirm call pickup** in GoTo Connect, **Required key press on answer** in Ooma Office.

Voice AI hits the same problem in reverse when *it* transfers to your team. If a technician's voicemail answers, the ring timer stops applying and the caller is stuck with it instead of falling through to Overflow. Turn on **Technician briefing** under **Call handoff**: a voicemail can't say its name, so the handoff never completes and the fallback runs. See [Technician Handoff](/ai-agents/voice-ai-setup-phase-3-the-auto-attendant-walk-run#technician-handoff) — and leave it off if the transfer lands in another IVR.

## Verify before you go live

<Steps>
  <Step title="Call your real support number">
    Dial the number your clients use, from an outside line. The AI should answer within a couple of rings, or the call should reach your team as it always did if you only changed the no-answer path.
  </Step>

  <Step title="Let the transfer happen">
    Confirm the call reaches the right queue and that a technician's phone rings.
  </Step>

  <Step title="Let it time out on purpose">
    Don't answer. After **Ring for** expires, Overflow should pick up, take the message and end the call.
  </Step>

  <Step title="Check what landed in Thread and your PSA">
    You should have a ticket on the board and source you configured, with a transcript, a recording and an AI call recap. If tickets aren't appearing, see [Voice AI troubleshooting](/ai-agents/voice-ai-troubleshooting).
  </Step>

  <Step title="Test out of hours">
    If you configured After hours, repeat the call outside your Messenger business hours and confirm the closed greeting plays.
  </Step>
</Steps>

## Next

<CardGroup cols={2}>
  <Card title="Phone system forwarding directory" icon="list" href="/ai-agents/phone-system-forwarding-directory">
    The setting to look for and the vendor's own documentation, for around thirty phone systems.
  </Card>

  <Card title="Voice AI troubleshooting" icon="wrench" href="/ai-agents/voice-ai-troubleshooting">
    What to check when calls don't arrive, transfers fail, or tickets don't appear.
  </Card>
</CardGroup>

Still stuck? Contact Thread support at [help.getthread.com](https://help.getthread.com) with the name of your phone system and which rule you're trying to change.


## Related topics

- [Phone system forwarding directory](/ai-agents/phone-system-forwarding-directory.md)
- [Troubleshoot Voice AI](/ai-agents/voice-ai-troubleshooting.md)
- [Replace your phone menu with the Auto-Attendant](/ai-agents/voice-ai-setup-phase-3-the-auto-attendant-walk-run.md)
