Make an outbound call
Pass the registeredfrom_number and the destination to_number. Use variables to inject per-call context (e.g., the customer’s name or order ID) into the agent’s first message and system prompt.
Receive inbound calls
When someone dials your registered number, OneInbox routes the call to your agent automatically — no extra API call needed. The call record appears in your account just like an outbound call, with the samestatus, outcome, transcript, and recording_url fields.
To enable inbound on a number, set inbound_routing when you register or purchase it:
Stop a call
Send a stop request to end the session. If the agent already ended the call via theend_call tool, this is a no-op.
Read the results
After the call ends, fetch the full record to get the transcript, outcome, and summary. Wait 2–3 seconds after stopping — the transcript and analysis are written asynchronously.messages and analysis are only populated after the call ends. Stop first, wait 2–3 seconds, then fetch.
List calls
Returns your most recent calls. Default order is newest first.List calls — cursor pagination
For large result sets, use cursor-based pagination. Pass thecursor token from the previous response to get the next page.
cursor token. When cursor is null, you have reached the last page.
Delete a call
Permanently deletes a call record.Manually set a call outcome
After a call ends you can override the AI-assigned outcome — useful when your CRM or a human reviewer has classified the call differently.outcome value is immediately reflected in GET /v1/calls/<call_id> and in webhook payloads for that call.
What is an outcome?
An outcome is a label assigned to a completed call that summarises its result. It’s the top-leveloutcome field on the call record, set automatically after the call ends. analysis is a separate object holding the AI-generated summary — it does not contain outcome. You can also set or override outcome manually, and you can create your own custom outcome labels for your workspace.
Built-in outcome labels
OneInbox ships with a set of platform-level outcomes available to every account.GET /v1/workspace/call-outcomes returns their snake_case identifiers; the outcome field on a call record stores the human-readable Title Case form:
How auto-classification works
After every call ends, OneInbox reads the transcript and assigns an outcome automatically. No configuration needed. A few things to know:- Classification happens post-call.
outcomeisnullduring an active call. Fetch the record after the call ends. ai_summaryexplains the reasoning. If an outcome looks wrong, read the summary to understand what the model saw in the conversation.- Custom outcomes are also used. If you have created custom outcome labels (see below), the agent uses those in addition to the built-in set when classifying calls.
Custom outcome labels
You can create custom outcome labels specific to your workspace. The agent uses these alongside the built-in labels when classifying calls — so if you add “Hot Lead” as a custom outcome, the AI will start assigning it when a call matches that description.List call outcomes
Returns both the built-in platform labels (always available) and any custom labels you have created for your workspace.Create a custom outcome
Add a new outcome label to your workspace. Any casing is accepted — e.g."Hot Lead" or "demo_scheduled". Once created, the agent starts using it automatically when classifying future calls.
Update a custom outcome
Rename a label or deactivate it. Deactivating (is_active: false) hides the outcome from future auto-classification but preserves it on historical call records — no data is lost.