Where automation meets judgment.

Switchboard is the control plane between your automated workflows and the phone calls they place to real people.

Built against the live API. Verified with real calls.

25Automated tests
4Policy checks before every dial
0Calls needed to evaluate it
3Platform gaps documented
What switchboard controls

One gate. Three controls.

Hold the token, move the call in time, cap what it costs.

token held approve reject

Approve

CALL-E issues a one-time confirm token. Switchboard keeps it out of your workflow and releases it only when a person says so.

Today 16:20 · queued Tomorrow 10:00 · scheduled Not planned yet

Schedule

A scheduled call is not prepared until it falls due, so nothing has been sent and cancelling it genuinely cancels. CALL-E ships no cancel tool.

Monday collections3 / 5

Budget

Per-campaign call caps, checked again at dial time. A runaway loop stops at the cap instead of at your invoice.

Token custody

The gate nobody is standing at.

CALL-E built a confirm token. Workflow hosts pass it straight through.

token held

Placing a call is irreversible. CALL-E's own tooling flags it as destructive, and issues a one-time token to gate it. But in a workflow that token travels from one step to the next in milliseconds, so no person is ever involved. Switchboard takes custody of it.

Plans without dialing Policy runs first: region, blocklist, quiet hours, rate limit. A call that fails any of them never reaches CALL-E.
Holds the confirm token The token is written to the local store and never emitted into workflow data. Your pipeline sees a flag, not a credential.
Releases it when you do On approval, policy is re-checked and the token's expiry verified. It is spent once, then destroyed.
Read the findings
n8n community node

Four operations. One canvas.

Drop it into a workflow and the calls stop being automatic.

The CALL-E Switchboard node on an n8n canvas

The node plans the call and stops. Your workflow gets a job id and a flag, never the token. Await Result blocks until a person decides, then dials and polls to completion.

Queue, Await, Status, Cancel Cancel is the only stop that exists anywhere. CALL-E ships no cancel tool.
Dry run costs nothing Build the whole workflow without spending a call. The preview shows the exact command that would be sent.
Branch on the outcome Route on taskCompleted and a confidence score rather than on prose.
Dify Zapier Make HubSpot

Not built yet. The policy, scheduling and budget logic is a plain Node module with no n8n dependency, so porting it is mostly adapter work.

What we learned building it

Four gaps, found the hard way.

Every one of these came out of a live run against the API, and every one of them is why a Switchboard feature exists.

01 There is no cancel tool

The MCP surface is plan_call, run_call, get_call_run and track_ui_events. Once a run is submitted, nothing stops it.

So Switchboard holds scheduled jobs itself and never hands CALL-E a future time.
02 No caller-defined result schema

result.extracted always returns the same six keys. CALL-E does the extraction you ask for, then flattens it into prose.

So we validate what came back and report the gap instead of claiming structured output.
03 It asks for a human, with nowhere to send them

next_step.action can be ask_user_for_missing_info. In a headless workflow that request is simply swallowed.

So the console is the inbox for it, with the question rendered and an answer box.
04 The region list is prose, not data

calle regions list returns a documentation URL. There is no programmatic way to know whether a number is callable.

So our list is a dated snapshot you can override, and it says so when it blocks you.
FAQ

Everything you need to know.

Questions about Switchboard, CALL-E and running it yourself.

What is Switchboard?

A control plane for CALL-E phone calls. It plans a call, keeps the confirm token, and refuses to spend it until a person approves. It also batches, schedules, enforces policy and caps spend per campaign.

Do I need a phone number to try it?

No. Dry run mode builds and displays the exact command that would be sent without contacting CALL-E at all. CALL-E also publishes a US test hotline, so you can run the whole loop end to end without involving a real person.

Does it replace the official CALL-E node?

No. Use @call-e/n8n-nodes-calle to place calls. Switchboard decides whether they happen. It is a custody layer, not a calling node.

What happens if I cancel a call?

Before it dials, the token is discarded and no call is ever placed. After run_call has been sent, Switchboard stops tracking the job but the call may still happen. CALL-E ships no cancel tool, so nothing can recall it.

Where is the confirm token stored?

In a local JSON file, deliberately inspectable. It is never emitted into workflow data, and it is destroyed the moment it is spent. Your pipeline sees hasConfirmToken: true, never the value.

Does it scale to high-volume calling?

No, and it is not meant to. A human gate costs latency, and by the hundredth call someone will approve without reading. CALL-E targets low-frequency personalised phone tasks. At ten calls a day a gate is affordable. At ten thousand, use auto mode with tight policy limits instead.

Nothing dials until a person says so.

Open source, no dependencies, and free to evaluate without spending a single call.

View the code Read the findings