add_address | safe | Add a postal/physical address to a contact (e.g., shipping or billing). |
add_channel | safe | Add a new communication channel (phone, email, WhatsApp, etc.) to an existing contact. |
add_contact_tags | safe | Add one or more tags to a contact (e.g., ‘VIP’, ‘q2-leads’). |
add_contact_to_list | safe | Add a single contact to a contact list (e.g., a campaign target list). |
answer_call | safe | Answer a ringing call simulation. |
answer_live_question | safe | Answer, skip, or defer a question one of the CURRENT user’s live calls is waiting on (listed in your context under ‘Questions from the user’s live calls’). |
billing.auto_recharge_get | safe | Returns the workspace’s current auto-recharge configuration: enabled flag, threshold (credits), top-up amount (cents — 2000/10000/50000 for $20/$100/$500), f… |
billing.list_purchases | safe | Cursor-paginated history of the workspace’s payments (topup, subscription) and credit grants (grant). |
billing.list_usage | safe | Cursor-paginated list of recent usage_events rows. |
billing.open_portal | safe | Create a Stripe Customer Portal session URL — used when the customer needs to update their card, view invoices, or manage billing email. |
billing.outstanding_balance | safe | Returns the workspace’s current outstanding (unpaid) balance from Stripe — the amount of credit grants reserved against unbilled usage, plus a blocked flag… |
billing.set_auto_recharge | spends_money | Enable/disable auto-recharge OR change its threshold + top-up amount. |
billing.start_subscription | spends_money | Start a Stripe Checkout Session for first-time subscribers. |
billing.summary | safe | Returns the workspace’s current billing snapshot: credit balance (and paid-vs-cycle-bonus split), suspension state with reason, plan + subscription status, a… |
billing.topup | spends_money | Top up the workspace’s credit balance. |
billing.usage_breakdown | safe | Per-surface usage aggregate for the workspace’s current billing cycle — answers ‘where did my credits go this month?’. |
billing.usage_chart_daily | safe | Per-(day, surface-category) credit totals for the usage chart. |
bulk_add_to_list | safe | Add many contacts to a contact list in one call. |
bulk_remove_from_list | safe | Remove many contacts from a contact list in one call. |
bulk_tag_contacts | safe | Add tags to many contacts in one call. |
bulk_untag_contacts | safe | Remove tags from many contacts in one call. |
can_send_instagram_message | safe | Check whether an Instagram DM can be sent to someone RIGHT NOW, and get the token needed to send it. |
cancel_campaign | safe | Cancel a campaign permanently. |
cancel_campaigns | safe | Cancel MANY in-flight campaigns at once — stops all their pending messages. |
comment_automation.cancel_rehearsal | safe | Close an open Instagram rehearsal window immediately, before it expires on its own. |
comment_automation.check_rehearsal | safe | Report what a rehearsal of an Instagram comment automation actually did — whether the test comment was seen, whether the keyword matched, whether the public … |
comment_automation.get_results | safe | Get results for Instagram comment automations: how many comments matched, how many DMs were sent, how many people tapped the button, and how many clicked a t… |
comment_automation.list_leads | safe | List the individual people who engaged with an Instagram comment automation, with how far each got (DM sent, tapped, replied) and whether they can still be m… |
comment_automation.start_rehearsal | destructive | Open a bounded, expiring rehearsal window so the operator can test an Instagram comment automation for real, by commenting the keyword on their OWN post from… |
configure_channel | mutates_live_deployment | Configure a messaging channel for the organization. |
configure_email_channel | mutates_live_deployment | Update an email channel’s settings: default reply mode (autonomous / draft / human_only), agent binding, signature, or name. |
conversation.mark_request_handled | safe | Mark a customer’s request on a Live signal handled — e.g. |
define_custom_field | safe | Register a new custom field definition for the workspace (e.g., ‘shirt_size’ as a select with options). |
describe_email_channel | safe | Describe one email channel in detail: provider_kind (gmail | microsoft), mailbox address, inbox type, alias / group / delegated-mailbox / connected-user-addr… |
dialog_insight.analyze_batch | spends_money | Run a Dialog Insight over many existing conversations in the background. |
dialog_insight.attach | mutates_live_deployment | Attach a Dialog Insight to an agent (its DEFAULT — used by inbound calls and by outbound calls with no campaign override) or to a campaign (an OVERRIDE that … |
dialog_insight.batch_status | safe | Show the progress of a Dialog Insight batch job started with dialog_insight.analyze_batch, or by attaching an insight to an agent with the option to analyse … |
dialog_insight.create | safe | FIRST: if the user wants to capture something MORE from an agent that already has a Dialog Insight, do NOT use this — an agent runs only ONE, so attaching a … |
dialog_insight.delete | destructive | Permanently delete a Dialog Insight. |
dialog_insight.generate | safe | Read an agent’s system prompt and PROPOSE Dialog Insight fields from the questions it asks. |
dialog_insight.get | safe | Fetch one Dialog Insight with its full field definitions (key, label, type, allowed values, extraction guidance, whether the finding becomes a label) and its… |
dialog_insight.list | safe | List the Dialog Insights in this workspace. |
dialog_insight.set_live_signal | mutates_live_deployment | Turn Live detection on or off for ONE yes/no field of a Dialog Insight. |
dialog_insight.templates | safe | List the built-in Dialog Insight templates. |
dialog_insight.test | safe | Test a Dialog Insight against one real past conversation and show what it would extract. |
dialog_insight.update | safe | Update a Dialog Insight’s name, description, or fields. |
dismiss_duplicate_contacts | safe | Record that two contacts flagged as duplicates are NOT the same person. |
draft_call_plan | safe | Draft a Call plan: turn the user’s errand into a draft campaign that calls businesses and asks them questions, such as venue availability and price. |
draft_email_reply | safe | Save a draft reply to an email thread (does NOT send). |
end_voice_call | safe | End (hang up) an active voice call. |
extract_site_branding | safe | Fetch a website and extract its branding for widget setup — primary color, candidate brand colors, logo URL, site name, and language. |
find_businesses | safe | Find real businesses to call near a place (Google Places): name, phone, address, website, rating, distance, open now, time zone. |
find_contact_by_channel | safe | Look up an existing contact by an exact channel address (e.g. |
forget_fact | safe | Delete one About me fact of the CURRENT user (by id or key from list_my_facts). |
generate_icon | safe | Generate custom SVG icon variants for a webchat widget using AI. |
generate_preview_html | safe | Generate a downloadable HTML preview page that shows the webchat widget embedded on a simulated website. |
generate_test_link | safe | Generate a shareable test link for an agent. |
hangup_all | safe | Hang up all active calls in a session. |
hangup_call | safe | Hang up a single call by conversation ID. |
import_contacts | safe | Add contacts to an existing contact list, upserted by phone number (existing contacts are updated, new ones created). |
instagram.list_recent_media | safe | List the newest posts on the user’s connected Instagram account (newest first): caption snippet, comment count, post date, media type, permalink and a thumbn… |
integration.add_approved_address | mutates_live_deployment | Approve one more address an integration may send its key or signature to (its “Approved addresses”). |
integration.add_tool | safe | Add an API tool to an API integration (the agent can then use it once it is attached with update_agent integrationTools.add). |
integration.call | mutates_live_deployment | Run one of the workspace’s API tools now and return its answer (snake_case: ok, data, truncated, error, call_id). |
integration.create | safe | Start a new integration. |
integration.describe | safe | Get one integration in detail by id (ig-…, an older cn-…, or UUID): status, attention codes, usedBy, approved origins, its credentials (label, isDefault, own… |
integration.import_openapi | safe | Import tools from an API’s OpenAPI (Swagger) file into an API integration. |
integration.list | safe | List the workspace’s integrations (Slack / Gmail sign-ins, HTTP and MCP services, workflow keys, signing secrets, model keys (LLM providers, or ElevenLabs fo… |
integration.refresh_mcp_tools | mutates_live_deployment | Read an MCP server integration’s tool list from the server again now, after the user confirms on a card. |
integration.remove_tool | destructive | Delete an API tool (tool: name or it-… id). |
integration.set_agent_access | mutates_live_deployment | Choose which key an agent uses for every tool of one integration: agent_id, integration_id, account (a key’s label from integration.describe; omit for the in… |
integration.set_tool_visibility | mutates_live_deployment | Choose who may use the tools of one integration: agents (AI agents can be given and offered the tool) and / or workflows (a workflow step can call it). |
integration.test | safe | Test an integration’s key with a live call to its provider and record the result. |
integration.test_tool | mutates_live_deployment | Check one of the workspace’s API tools and record the result on it (like Check on the dashboard). |
integration.update_tool | mutates_live_deployment | Change an API tool: pass tool (name or it-… id) and only the fields to change (title, description, method, path, query, headers, body, inputs, risk, channels… |
invite_workspace_member | mutates_live_deployment | Invite a user to the current workspace by email address. |
kb_add_manual | safe | Add a knowledge-base document by pasting Markdown content directly. |
kb_delete_document | destructive | Permanently delete a knowledge-base document. |
kb_delete_gap | destructive | Dismiss (delete) a knowledge-base ingestion gap — the reminder for a URL/file that couldn’t be extracted. |
kb_delete_source | destructive | Permanently delete a KB source AND all of its documents and ingest gaps (cascades). |
kb_get_document | safe | Fetch a single knowledge-base document in full, including its markdown content, quality flags, and metadata. |
kb_ingest | mutates_live_deployment | Ingest selected web pages and/or uploaded files into an agent’s knowledge base. |
kb_list_documents | safe | List the documents in an agent’s knowledge base (newest first), or just the documents from a single source. |
kb_list_site_urls | safe | List a website’s sitemap URLs ranked by likely knowledge-base value (high-value pages like /docs, /pricing, /faq first; blog/tag/dated pages demoted), groupe… |
kb_list_sources | safe | List the sources (crawled sites, uploaded files, manual text) in an agent’s knowledge base, with a per-source document count and how many of those documents … |
kb_recrawl | safe | Re-crawl a website source — re-fetches and re-extracts each previously-discovered page, REPLACING the source’s existing documents with the fresh result (so a… |
kb_recrawl_document | safe | Re-crawl a SINGLE knowledge-base document — re-fetch and re-extract just its source URL, replacing that one document. |
kb_review_quality | safe | Review the quality of an agent’s knowledge base: a summary of how many documents are clean vs. |
kb_search | safe | Search an agent’s knowledge base for passages relevant to a query (PGroonga full-text over per-document chunks, ranked by relevance, deduplicated by chunk co… |
kb_update_document | safe | Edit a knowledge-base document — change its title and/or replace its markdown body. |
llm.check_budget | safe | Inspect the current workspace’s monthly LLM budget and month-to-date spend. |
llm.list_usage | safe | List LLM usage breakdown by provider+model for a given month (defaults to current month). |
llm.set_budget | safe | Set or clear the workspace’s monthly LLM budget. |
manage_notification_prefs | safe | Get or change the CALLING user’s own proactive-notification preferences for this workspace (digest cadence/channel, alert channel, quiet hours, timezone, web… |
merge_contacts | destructive | Merge two contact records that are the same person. |
merge_safe_duplicates | destructive | Merge every duplicate pair the platform itself verified — the same phone number that sent a message on two records (for example a WhatsApp message from a num… |
messages.search | safe | Postgres FTS keyword search over conversation message content using PGroonga (CJK-friendly: handles English, Chinese, Japanese, Korean transparently). |
mute_voice_call | safe | Mute or unmute the agent’s microphone on an active voice call. |
octo.get_channels | safe | Read how the user can reach Octo from OUTSIDE the app: Octo’s own email address for this workspace (derived per environment — use it verbatim, never type an … |
octo.link_slack | safe | Build the Slack install link — the SH-11 ‘Add to Slack’ chip. |
octo.link_whatsapp | destructive | Mint the user’s WhatsApp connect link — the SH-11 ‘Link my WhatsApp’ chip. |
onboarding.session_receipt | safe | Build the SH-10 Session Receipt for the user’s current session as finished markdown, from real records only, and (by default) email a copy to them from Octo’… |
outbound_compliance | safe | Read or record this workspace’s Outbound Calling Compliance acknowledgment — the one-time attestation an owner/admin must accept before the workspace places … |
pause_campaign | safe | Pause a running campaign. (on /mcp: the API tool) |
prepare_attachment | mass_message | Reshape messy data into something target accepts, by writing and running a small Python script over it. |
preview_image_crop | safe | Make a preview of an image from THIS conversation, prepared for the workspace logo or the webchat widget icon. |
preview_whatsapp_campaign | safe | Preview a WhatsApp campaign before launching. |
propose_fact | mutates_live_deployment | Propose saving a fact about the CURRENT user to About me (e.g. |
publish_widget_image | mutates_live_deployment | Publish an image as the chatbot widget’s icon or avatar on a PUBLIC URL and set it on the widget in the same confirmed step — no update_widget call is needed… |
read_attachment | safe | Preview an uploaded attachment by its object path (from the attachment manifest). |
register_webhook | mutates_live_deployment | Register the webhook URL with the messaging platform so it sends inbound messages to our server. |
remove_address | safe | Remove a postal/physical address from a contact. |
remove_channel | safe | Remove a channel from a contact. |
remove_contact_from_list | safe | Remove a single contact from a contact list. |
remove_contact_tag | safe | Remove a single tag from a contact. |
remove_workspace_member | destructive | Remove a member from the current workspace. |
reply_to_email_thread | mass_message | Reply to an existing email thread. |
respond_to_input | safe | Respond to a pending input request from an agent during a voice call. |
respond_to_voice_input | safe | Send an operator’s response to a pending input_request from the voice agent. |
resume_campaign | mass_message | Resume a previously paused campaign. (on /mcp: the API tool) |
return_conversation_to_ai | mutates_live_deployment | Hand a paused (handed_off) conversation back to the AI — exactly what the inbox’s “Return to AI now” button does. |
save_my_phone_number | safe | Save a phone number on the CURRENT USER’s own profile — the person you are talking to. |
save_voicemail_recording | safe | Save an uploaded audio file (mp3/m4a/ogg — NOT wav) as a reusable voicemail recording (vm-…) for voice campaigns. |
set_custom_field | safe | Set or update a single custom field value on a contact (e.g., ‘shirt_size’). |
set_dnc | safe | Mark a contact’s channel as opted-out (do-not-contact). |
set_email_thread_ai_paused | safe | Pause or unpause AI replies on a single email thread. |
set_phone_number_limits | safe | Set a phone number’s outbound sending rate limits (per-number override). |
set_primary_channel | safe | Mark one of a contact’s channels as primary. |
set_workspace_logo | mutates_live_deployment | Set the WORKSPACE logo (shown in the dashboard) to a preview you made with preview_image_crop(target: ‘workspace_logo’). |
sms.get_number_requests | safe | List this workspace’s requests for an SMS (texting) number, newest first: status (new = request received, contacted = the team is in touch and has sent the p… |
sms.request_number | mass_message | Ask the Omni Octo team for an SMS (texting) number — the same request as Phone numbers → ‘Request an SMS number’. |
start_campaign | mass_message | Launch a draft campaign. (on /mcp: the API tool) |
start_simulation | safe | Start a text-based call simulation for a voice agent. |
start_voice_call | mass_message | Place an outbound voice call. |
summarize_email_thread | safe | Return the rolling LLM summary stored on the email thread, plus participants and message count. |
support.request_help | mass_message | Route a request to the Omni Octo team — ONLY at the two moments the copy names: SH-04’s $150 concierge at the Meta business verification wall (`concierge_met… |
switch_workspace | safe | Switch which workspace the user’s WhatsApp line operates in. |
sync_whatsapp_templates | safe | Pull all WhatsApp templates from Meta for a channel and upsert them into our DB. |
test_channel | mass_message | Send a test message through a configured channel to verify it works end-to-end. |
triage_conversations | safe | Trigger auto-triage of conversations using LLM analysis. |
trial.bind_agent | mutates_live_deployment | Turn on the SHARED Omni Octo trial number for this workspace’s outbound calls, naming the DEFAULT agent (the one that dials when start_voice_call gets no `… |
trial.check_call_quota | safe | Read the workspace’s TRIAL CALLING allowance: how many calls it has made today, how many it has made in total, and how many of each remain. |
trial.get_number | safe | Check whether this workspace can use a SHARED TRIAL PHONE NUMBER for outbound calls, and which agent (if any) is its default caller. |
trial.release_number | mutates_live_deployment | Stop this workspace’s agent from placing outbound calls from the shared Omni Octo trial number. |
undeploy_agent | mutates_live_deployment | Remove an agent’s deployment from a channel. |
undeploy_agents | mutates_live_deployment | Remove MANY agent deployments at once — the affected agents stop receiving messages from those channels. |
unmerge_contacts | destructive | Undo a contact merge. |
unset_dnc | safe | Remove a do-not-contact mark from a contact’s channel (mark as opted-in). |
validate_channel | safe | Test that a configured channel’s credentials are valid by making a health-check API call to the platform. |
vector.search | safe | Cosine-similarity ANN search over the workspace’s pgvector store. |
vector.store | safe | Store a text + metadata vector in the workspace-scoped pgvector store. |
verify_email_channel | safe | Run the email channel’s round-trip verification probe. |
view_attachment | safe | Look again at an image or PDF from THIS conversation — one the person sent earlier, or a preview you made with preview_image_crop. |
voice.check_minute_budget | safe | Inspect the workspace’s DAILY voice-minute budget: the cap, minutes already used, minutes HELD by queued or scheduled campaigns (and which ones), and minutes… |
voice.set_minute_budget | safe | Set the workspace’s DAILY voice-minute cap (cost safety). |
whatsapp.get_status | safe | Read the WhatsApp lane’s facts in one call: connected numbers and whether each is ANSWERING (answering — a channel with no deployment is connected and mute… |
whatsapp.record_verification_event | destructive | Record what happened to this workspace’s Meta business check. |
workflow.add_step | safe | Insert a new step into an existing workflow’s blueprint at the requested position. |
workflow.archive | safe | Archive a workflow. |
workflow.draft | safe | Draft a workflow blueprint from a natural-language intent using the validator-driven LLM loop. |
workflow.dry_run | safe | Simulate a workflow run end-to-end with a sample trigger payload. |
workflow.get | safe | Fetch a single workflow with its active blueprint and a plain-English summary. |
workflow.get_run | safe | Fetch a single workflow run with its trigger payload, status, run-level error (if any), and the per-step trace (started/completed/failed/skipped events with … |
workflow.ingest_openapi | safe | Parse an OpenAPI 3.0 spec and persist a generated step-kind catalog to an integration (integration takes its ig-… / cn-… id or UUID). |
workflow.list | safe | List workflows in the current workspace. |
workflow.list_runs | safe | List recent runs for a workflow. |
workflow.pause | safe | Pause a workflow. |
workflow.remove_step | safe | Remove a step from an existing workflow’s blueprint. |
workflow.reorder_steps | safe | Reorder the top-level steps in an existing workflow’s blueprint. |
workflow.resume | safe | Resume a paused workflow back to active. |
workflow.run_once | mass_message | Run a saved workflow once, now, with a trigger payload you give or the payload of an earlier run of it. |
workflow.save | safe | Persist a validated blueprint as a new workflow OR as the next version of an existing workflow. |
workflow.stop | safe | Cancel every currently-running run for the given workflow via Temporal cancellation. |
workflow.update_field | safe | Surgically update a single field in an existing workflow’s blueprint. |