# Switchboard

> Switchboard turns a plain-English request into a reviewed, signed, step-by-step change to an Ody phone system. Private preview, in the app only.

Source: https://dev.ody.co/switchboard/overview

> **Private preview:**
Switchboard is live for a small number of allowlisted workspaces. It runs **inside the Ody app** for workspace owners and admins. There's **no REST endpoint and no MCP tool** for it, and that's deliberate (see [Why there's no API](#why-there-s-no-api)). This page explains how it works, so builders know what it can change in an account and how that relates to the API.

**Switchboard** is Ody's AI setup operator. An admin describes a phone-system change in their own words, for example:

> *"After 6pm, ring the on-call tech for 30 seconds, then let the AI take a message."*

Switchboard replies with a **plan**: numbered steps, what each one changes, what it costs, and a before-and-after view of the account. The admin can talk the plan through ("make that 45 seconds", "I meant Jordan, not Luis"), approve or skip individual steps, run a check, and then have Ody **build** it, using the same code paths the Settings screens use.

## Where it fits

| | Settings screens | REST API / MCP | Switchboard |
|---|---|---|---|
| Who drives | A person, screen by screen | Your code, or an assistant with a key | An admin, in conversation |
| Granularity | One setting at a time | One resource call at a time | A whole multi-step change, planned together |
| Auth | App session | API key + scopes | App session, **admin or owner only** |
| Confirmation | Each save | Your code decides; MCP clients ask | Explicit per-step approval, then a signed plan |
| What it can change | Everything | Contacts, conversations, numbers, 10DLC, the agent, webhooks | Routing, hours, ring orders, call flows, voicemail, the agent (see [Actions](https://dev.ody.co/switchboard/actions)) |

All three end up calling the same domain functions, so a change Switchboard builds looks the same as one made by hand: same audit, same billing.

## The loop

```text
describe ─► plan ─► talk it through ─► approve steps ─► check ─► build
   │          │            │                 │             │        │
 "after     model       each message      per step,     catalog   runs only
  6pm…"    proposes,   re-plans; kept     then the      checks,    what was
           code        steps keep their   whole plan    no writes  signed
           validates   decisions          is signed
```

Details are in [Plans and the build loop](https://dev.ody.co/switchboard/plans).

## Why there's no API

A Switchboard build can rewire how every call into a business is answered. The design lets that happen only with a **signed-in human admin approving in the app**:

- The routes accept only an app session. A request carrying an `ody_live_` / `ody_test_` key gets `404`, as if the feature didn't exist.
- They are **not mounted** on `/v1/api` (an API key mustn't be able to approve a plan), `/v1/mcp` (a remote ChatGPT or Claude session mustn't be able to build), or any job or webhook route.

If you want to automate phone-system changes today, use the specific REST endpoints: [agent configuration](https://dev.ody.co/api/agent), [number routing](https://dev.ody.co/api/numbers#route-a-number-to-the-agent). They're scoped, rate-limited and logged per key.

## Learn more

- [**Plans and the build loop**](https://dev.ody.co/switchboard/plans) — Plan structure, revisions, approval, the signature, checks and builds.
- [**Actions**](https://dev.ody.co/switchboard/actions) — The catalog of changes Switchboard can make, with risk tiers and costs.
- [**Safety model**](https://dev.ody.co/switchboard/safety) — Signatures, risk caps, spend caps, concurrency and prompt-injection defences.
