On by default for new bots (ruled 13 Aug 2026). With this off, the LLM has no transfer_to_owner tool and the Live tab's Patch to me fails with transfer is not enabled for this bot. The destination is never configured here — Django dials the owner's own user.phone (#CL-35-14, so no prompt can redirect a patch).
What the bot says when the real reply is slow. Off by default for fresh bots (doc 44 decision). The pool rotates and never repeats the last-used line within a call; an empty pool falls back to the single line. The 10 s stuck-tier backstop always speaks the single line, even with this off. Every line here is pre-synthesized into the audio cache on Save.
Django stages the user's saved instructions that could not bind by number (staged.instructions in the pack). Scoreboard by default for new bots (ruled 13 Aug 2026; off = instant rollback). The tool gives the model fetch_context (cascaded form only); the watcher matches every committed caller turn engine-side and pushes on a clean match; both share one matcher: keyword tier first, LLM tier on a miss. scoreboard is the doc-49 context engine — deterministic commit-path matching with same-turn injection and gap questions, plus the promoted fetch_context as the post-settle door. The prompt carries name+topic labels only — content never rides the prompt.
On by default. Runs only when a PINNED location instruction rides the call's pack; off = the bot only ever speaks the address aloud. Grace covers a "Hi" that arrives after the call ends.
On by default. A separate cheap LLM side-lane summarizes after committed caller turns and streams call.summary to the live card. Fire-and-forget: it can never delay a turn. Global kill: VOICEBOT_ROLLING_SUMMARY_ENABLED.
Per HTTP tool declared on this bot: where its wait line comes from, the static line, and the time-progress ladder. Progress signals are local-tools-only in v1 (fetch_context above) — an HTTP tool is one POST, one response, so it gets the time ladder only.
Each rail is one block of the screened-call prompt. Uncheck to drop it from THIS bot (conditional rails then never arm); edit the text to override it. Text identical to the shipped default is stored as "no override", so default-text bots keep tracking code updates. The backend save-time scans (sensitive-info flag, profanity block) are a separate floor these switches do not touch.
Every instruction the system itself teaches or speaks on this bot's calls — engine addenda (end-call, transfer), screening teachings, assistant-mode prompts, wrap-up nudges and the abuse warn/close lines. These are not part of the persona prompt above; they are the machinery's own words. Edit to override for THIS bot; text identical to the shipped default is stored as "no override", so default-text bots keep tracking code updates. Some texts carry machine tokens (<<END_CALL>>, {line}, tool names) — a save that drops a required token is rejected.
Delivery is confirmed on the stream as message.status: delivered → acting → done/failed.
Only works while the call is live in THIS process (the barge gate and endpointing engage normally).
Pre-answer branches on status alone: 200 = connect to the bot, 409 = ring through untouched.
The 3-button ring door is the app plane (needs impersonation); receipts ride the same ladder id.
Switchman answers "should this call continue?" after the first applet exits; the Connect payload carries the ring cap, hold tone and record flag. The re-fetch carries DialCallStatus — it must never offer a second destination, and it settles the patch so the failure branch owns the call.
Everything here is the app plane (/api/v1/calls/context) — it needs VOICEBOT_CONSOLE_IMPERSONATION=true on the voicebot. This tab renders ONLY contract fields; tokens/questions are engine internals and never on the wire.
A save whose text contains any of these words is refused outright (422), before the LLM pass — not confirmable, unlike the sensitive-info flag. The list is deployment-wide, takes effect on the very next save, and also blocks instructions that merely mention a listed word — the save-pass prompt clause handles wording the list misses.
Every call on this tab is the app plane — it needs VOICEBOT_CONSOLE_IMPERSONATION=true on the voicebot.
All three refuse loudly when the call_outbound kill switch is off — that refusal IS the test.