Actions
Actions are delivery instructions defined within a configuration. Each action specifies what to do when an operator produces a result, and fires independently — a configuration can hold any number of actions, each with its own target and optional condition.
Action types
webhook— deliver an HTTP POST to one of your endpoints.whisper— synthesise the output of atextoperator and inject it into the live call audio.
Conditions
By default an action fires on every operator result. A condition narrows it. The single-clause form names one operator and evaluates an expression against the result it produced:
{
"operator": "fraud-confidence",
"expression": "result.value > 80 AND confidence > 0.75"
}
Expressions read the typed result fields (result.value, result.tags, result.found) and the universal confidence field. Compound conditions combine clauses with all (every clause must be met) or any (any clause):
{
"all": [
{ "operator": "fraud-confidence", "expression": "result.value > 80" },
{ "operator": "fraud-indicators", "expression": "'safe_account_request' IN result.tags" }
]
}
When the same operator is deployed at more than one granularity, an action fires for results from either deployment; each result carries its granularity so you can tell them apart.
Suppressing repeats
By default an action fires every time its condition is met. Set once_per_session to fire at most once per session, suppressing later matches — useful for an alert you only want raised once per call.
Webhook delivery
A webhook action posts a consistent envelope to its webhook_url, with optional webhook_headers (for example, an authorization token). The envelope is the same shape for every delivery:
{
"session_id": "abc-123",
"configuration_id": "5f1c…",
"customer_metadata": { "your_ref": "xyz" },
"fired_at": "2026-06-17T10:30:00.000Z",
"type": "operator_result",
"action": { "index": 2, "once_per_session": true },
"data": { },
"evaluated": {
"fraud-confidence": { "result": { "value": 84 }, "confidence": 0.91, "call_elapsed_seconds": 42 }
}
}
data— the full operator result that triggered the action.evaluated— a per-operator summary of every operator the condition tested;nullfor an unconditional action.customer_metadata— echoed verbatim from the value you supplied when the session was created.action.index— the action's position in the configuration, so you can correlate deliveries when several actions share one URL.
For the full envelope, delivery and retry behaviour, and how to secure your endpoint, see Webhooks.
Whisper delivery
A whisper action references a text operator already in the configuration via content — { "operator": "<text-operator-name>" } — and a whisper_channel of caller or recipient. That operator's prompt and granularity determine what is generated; the action controls when it is voiced and into which side of the call. The same text operator result can be delivered as both a whisper and a webhook by defining both actions.