The bot detail page is where you review a single bot’s configuration, edit it, test it, clone it, or delete it. Open it by clicking a bot on the Bot list, or go directly to /dashboard/bots/[bot_id]. The page has three tabs:

Details

The bot’s full configuration, shown read-only.

Integration

Variables and copy-paste code snippets for triggering this bot from a CRM.

Web Widget

Enable a website voice widget, restrict it to your domains, and copy the embed code.
This page covers all three tabs and both view and edit modes. The Test Call and Test in Browser buttons each open a dialog that is documented on its own page — see Test calls.

View mode

When you open a bot you land in view mode on the Details tab. Everything here is read-only — to change a setting you click Edit (see Edit mode).

Top-bar buttons

These buttons sit at the top of the page in every tab.
ButtonWhat happens when you click
Back to botsReturns you to the Bot list.
Test CallOpens the Test Call dialog to place a real test call to the bot. See Test calls.
Test in BrowserOpens the Test in Browser dialog to talk to the bot live through your computer’s microphone. See Test calls.
CloneAsks you to confirm, then creates a duplicate of the bot and opens the new bot’s detail page. See Clone below.
EditSwitches the page into edit mode — the same step-by-step wizard you used to build the bot, pre-filled with its current settings.
DeleteAsks you to confirm, then permanently removes the bot and returns you to the Bot list. See Delete below.
If the bot is in use by one or more running campaigns, a warning banner appears at the top of the page listing those campaigns, and the bot’s configuration is locked. You cannot edit or delete it while a campaign that uses it is running. Stop the campaign first, then return here. The campaign names in the banner link to their campaign pages.

What you see on the Details tab

The bot’s configuration is grouped into read-only cards:
SectionWhat it shows
HeaderThe bot name and an Active / Inactive badge.
Post-Call CacheThe cache status and controls — see Post-call cache below.
Core ConfigurationThe voice stack (Speech-to-Text engine, language model, and voice engine), the system prompt, the opening message, and the conversation policy if one is enabled.
Behavior & RuntimeMaximum call duration, re-engagement gap and retry count, voice-activity (VAD) settings, the minimum words needed to interrupt the bot, and the re-engagement messages.
Advanced FeaturesOnly shown when configured: tools, transfer-call targets, allowed SIP headers, analysis and QC prompts, CRM pre-fetch, and post-call push.
The voice stack shows the engines as chips. For privacy, these name the engine type — Speech-to-Text (STT), language model (LLM), and voice / Text-to-Speech (TTS) — rather than exposing internal vendor details to customers. If a WebSocket connection URL is available for the bot, it is displayed with a Copy button.
ButtonWhat happens when you click
Copy (WSS URL)Copies the bot’s WebSocket connection URL to your clipboard and briefly shows a “Copied” confirmation.

Status badges

BadgeMeaning
Active (green)The bot is enabled and can take calls.
Inactive (grey)The bot is disabled and will not take calls.
Post-Call Cache enabled / disabledWhether post-call analysis caching is currently on for this bot.

Post-call cache

The Post-Call Cache section controls whether the bot reuses a cached version of its post-call analysis and quality-control (QC) prompts. Caching lowers the cost and speeds up the analysis that runs after each call, without changing the result. It applies only to post-call analysis — never to the live conversation. The section shows:
DetailWhat it shows
Analysis PromptWhether a post-call analysis prompt is set (Configured) or not (--).
QC PromptWhether a quality-control prompt is set.
Version OverrideThe cache version currently in use.
Refreshed ByWho last refreshed the cache.
ButtonWhat happens when you click
EnableTurns post-call caching on for this bot. Shows a success message.
DisableTurns post-call caching off for this bot. Shows a success message.
RefreshRebuilds the cache so it picks up the latest analysis and QC prompts. Shows a success message. Disabled if the bot has no analysis or QC prompt configured — there is nothing to cache.
Use Refresh after you edit a bot’s analysis or QC prompt while caching is on, so the next call’s analysis uses the new wording. If a bot has no post-call analysis, leave caching off — the Refresh button stays greyed out.

Clone

Cloning makes a duplicate of the bot — its prompts, voice pipeline, behavior, tools, and integrations.
1

Click Clone

Click Clone in the top bar.
2

Confirm

A confirmation dialog appears:
Create a clone of “[bot name]” with the same settings? Calls, campaigns, and DID mappings will not be copied.
Confirm to proceed, or dismiss to cancel.
3

Edit the new bot

Ori creates the duplicate and opens its detail page so you can rename it and adjust its settings.
A clone does not copy past calls, campaigns, or DID (phone number) mappings. The new bot starts with a clean call history and no numbers attached.

Delete

Deleting a bot removes it permanently.
1

Click Delete

Click Delete in the top bar.
2

Confirm

A confirmation dialog appears:
Are you sure you want to delete this bot?
Confirm to delete, or dismiss to cancel.
Deletion is permanent and cannot be undone. If the bot is used by a running campaign, the page is locked and you must stop the campaign first. To stop a bot temporarily instead of deleting it, set it to Inactive in edit mode.

Edit mode

Click Edit to switch the page into the same multi-step wizard used to build the bot, pre-filled with its current settings. The steps are identical to creation: Identity, Instructions, Policy, Voice Pipeline, Behavior, and Tools & Integrations.
ButtonWhat happens when you click
Cancel editingDiscards your in-progress changes and returns to view mode.
PreviousMoves to the previous step.
ContinueMoves to the next step.
Save ChangesSaves all changes to the bot. If a field fails validation, a message appears and the wizard jumps to the first step that contains the error. On success, you return to view mode.
For a field-by-field walkthrough of each step, see:

Create a bot

The wizard header, the Identity step, and the Behavior step.

Prompts & variables

Instructions and Policy steps.

Voice pipeline

Speech-to-Text, language model, and voice engine.

Tools & integrations

Tools, transfers, voicemail, pre-call fetch, and post-call push.
Edit mode and create mode use the same wizard. Anything documented on the pages above applies to both — the only difference is that the fields here start filled with the bot’s saved values.

Integration tab

The Integration tab is a reference for connecting this bot to a CRM. It shows the variables the bot can receive and use, and gives you ready-made code snippets that trigger an outbound call to the bot through the dialout API. Everything on this tab is generated automatically from the bot’s prompts and configuration — there is nothing to fill in here.

Variable reference

This section lists the template variables available across each namespace, so you know exactly what you can send to the bot and what comes back afterward.
NamespaceWhat it holds
call.*Values about the call itself (for example the phone number and any SIP headers).
crm.*Customer data fields you send in, with examples pulled from this bot’s own prompts.
result.*Outcome values produced when the call finishes.
analysis.*Fields from the post-call analysis prompt.
qc.*Fields from the quality-control prompt.
system.*System-provided values such as timestamps.
ButtonWhat happens when you click
Collapse / ExpandShows or hides the variable list for a namespace.
For the full catalogue of variables and how they resolve, see Post-call variables.

Dialout endpoint and code snippets

This section shows the dialout API endpoint and method, followed by copy-paste code in three formats. Each snippet is pre-filled with this bot’s ID and its variables.
TabUse it for
curlA quick command-line test or a shell script.
PythonA Python integration.
Node.jsA JavaScript / Node integration.
ButtonWhat happens when you click
CopyCopies the selected snippet (curl, Python, or Node.js) to your clipboard.
Send a customer’s data in the variables field of the dialout request using the field names shown in the crm.* reference. For the full request format, authentication, and error codes, see Dialout API. To control what the bot sends back when the call ends, see Post-call webhook.

Web Widget tab

The Web Widget tab lets you put this bot on a website as a click-to-talk voice widget. From here you turn the widget on, restrict which websites can use it, manage its secret key, and copy the embed code.

Settings

FieldWhat to enterRequired
Widget enabledA toggle that turns the website voice widget on or off.No
Allowed website domainsThe domains where the widget is allowed to run (for example https://yourwebsite.com). Type a domain and press Enter to add it; each domain appears as a removable tag.No
Widget API keyThe secret key the widget uses to authenticate. Read-only — masked by default, with a button to reveal it. You can regenerate it.No
If you leave Allowed website domains empty, a yellow warning appears: “This widget can be embedded on any website. Add your domain to restrict it.” Always add your own domain(s) before going live so the widget cannot be embedded on sites you do not control.

Buttons

ButtonWhat happens when you click
Save settingsSaves the Widget enabled state and the allowed domains. Shows a success or error message.
Reveal / HideToggles between showing the full API key and the masked version.
RegenerateCreates a brand-new API key for the widget. Asks you to confirm first (see below). After rotation, the new key becomes visible.
CopyCopies the embed code snippet to your clipboard and briefly shows a “Copied” confirmation.

Regenerating the key

1

Click Regenerate

Click Regenerate in the Widget API key section.
2

Confirm

A confirmation dialog appears:
Regenerate the widget key? Existing embeds will stop working immediately.
Confirm to rotate the key, or dismiss to keep the current one.
3

Update your embeds

Copy the new embed code and replace it everywhere the old snippet is published. The old key stops working as soon as you regenerate.
Regenerating the key immediately breaks every page that still uses the old embed code. Only regenerate if a key has leaked or you are intentionally rotating it — and be ready to update your website right away.

Embed code

The Embed code section shows an auto-generated HTML snippet that already contains this bot’s ID and widget API key, plus short instructions.
1

Enable and restrict the widget first

Turn Widget enabled on and add your domain(s) under Allowed website domains, then Save settings.
2

Copy the snippet

Click Copy to copy the HTML snippet.
3

Paste it on your site

Paste the snippet just before the closing </body> tag on your website.
Before sharing the widget with customers, use Test in Browser in the top bar to talk to the bot through your own microphone and confirm it behaves as expected. See Test calls.