Skip to main content

llm.tool_call_completed

A tool call reaches a terminal outcome, including a rejected or timed-out approval.

Owner: Delegation and approvals. Direction: Travila → your endpoint (outgoing).

The receiver gets an HTTP POST webhook request whose body is the event payload itself. JSON uses protobuf field names (snake_case). See delivery headers and signature verification before accepting it.

Operations that can produce this event​

These operations can start the generation workflow that emits this event. Receiving a successful API response does not establish that every event will be produced or delivered.

Payload fields​

FieldTypePresenceMeaning
event_contextEventContextOptionalEvent provenance and routing metadata associated with the emitted event.
tool_callToolCallOptionalFinal tool call: status is terminal (SUCCESS|FAILED|CANCELLED|TIMED_OUT), result_json populated.
execution_time_msinteger (int32)OptionalWall-clock execution time in milliseconds (0 when unknown, e.g. dispatch error). Minimum: -2147483648. Maximum: 2147483647.

Full payload model: ToolCallCompletedEvent.

Example​

Illustrative payload, not a captured delivery. Identifiers, tool names and outcomes are examples; omitted fields depend on the event.

{
"event_context": {
"event_name": "llm.tool_call_completed",
"version": "1.0",
"event_id": "d3b842c8-b19a-4205-a06f-c57cbf313585",
"correlation_id": "9d4c2e1f-27b1-4304-ae54-af7fe876df31",
"emitted_at": "2026-09-16T12:00:00Z",
"caller_key": "tenant-demo:b81d5345-c1f9-4fb9-b558-a6327c75b842",
"tenant_id": "tenant-demo",
"project_id": "default"
},
"execution_time_ms": 240,
"tool_call": {
"id": "call_123",
"name": "send_briefing",
"server_id": "briefing-tools",
"arguments_json": {
"conversation_id": "b81d5345-c1f9-4fb9-b558-a6327c75b842"
},
"status": "TOOL_EXECUTION_STATUS_COMPLETED",
"result_json": {
"accepted": true
}
}
}

Download the public reference contract for this event schema and its named example.

Document: DOC-API-EVENT-llm-tool-call-completed.