request_kaicalls_update
ActiveTool of KaiCalls
Ask the KaiCalls on-behalf update broker to perform a scoped, governed mutation. Supported intents: phone.emergency_address.set, transcripts.sink.configure, agent.patch, numbers.purchase, agent.config.rollback. Prefer update_agent_config for prompt/voice/model edits, configure_agent_business_rules for a single named operational prompt section, upsert_lead for lead create/update, send_sms for outbound texts, configure_staff_alerts for alert recipients/rules, and configure_textable_links for send-link setup. Mutating requests need an idempotency_key; high-risk changes need human authority. The broker returns needs_user_input, needs_approval, pending_approval, executed, denied, or unsupported — never an unaudited side effect.
Parameters schema
{
"type": "object",
"required": [
"intent"
],
"properties": {
"actor": {
"type": "object",
"description": "Who is asking: { type: agent|human|system|integration, id, display_name }."
},
"intent": {
"type": "string",
"description": "Update intent: phone.emergency_address.set, transcripts.sink.configure, agent.patch, numbers.purchase, or agent.config.rollback"
},
"reason": {
"type": "string",
"description": "Required when changing raw vapi_config; recorded in the durable audit."
},
"target": {
"type": "object",
"description": "Target identifiers, e.g. { phone_number } for E911 or { agent_id } for agent.patch."
},
"dry_run": {
"type": "boolean",
"description": "Validate tenant, scope, schema, authority, and policy without executing."
},
"payload": {
"type": "object",
"description": "Intent payload. E911: address + disclosure_acknowledged=true. transcripts: webhook_url + events. agent.patch: name, inbound_prompt, outbound_prompt, sms_prompt, first_message, voice, model, max_duration, metadata, vapi_config, transfer_enabled, transfer_phone_number."
},
"authority": {
"type": "object",
"description": "How the change was authorized: { mode: none|agent_asserted|human_confirmed|dashboard_session|system_policy, confirmed_by, confirmed_at, confirmation_ref }. human_confirmed requires all three confirmation fields."
},
"requester": {
"type": "object",
"description": "Optional legacy requester metadata for audit trails (prefer actor)."
},
"source_ref": {
"type": "string",
"description": "External source reference, such as a Discord message or automation run ID."
},
"business_id": {
"type": "string",
"description": "Business ID. Required when the API key can access multiple businesses."
},
"idempotency_key": {
"type": "string",
"description": "Required for any mutating request. Repeating a key returns the original outcome instead of re-running provider side effects."
},
"queue_for_approval": {
"type": "boolean",
"description": "When authority is missing, create a pending dashboard approval instead of returning needs_approval."
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
KaiCalls
https://github.com/cgallic/kai_calls
1/7 registries