This documentation is built and maintained by the Flireo AI team to help you create, launch, and scale intelligent phone agents. Access the dashboard here.
tool-calls
is sent to your external server. This allows you to run custom logic, access databases, or trigger workflows—anything you want!{
"eventTime": 1756278882619,
"callId": "875573b5-4458-45be-bac2-4d2b869f8297",
"eventType": "tool-calls",
"fromCaller": "+31601234567",
"toAssistant": "+31850123456",
"tasksInitiated": [
{
"taskId": "call_kLsrB3eFvT6bvo67BqTv7iXc",
"taskName": "send_task",
"taskPayload": {
"message": "Bericht voor het team: Jonas wil graag teruggebeld worden op telefoonnummer 06 01 23 45 67."
}
}
],
"userMetadata": null
}
tasksInitiated
: An array of tasks (tools) the agent wants your server to execute.taskId
, the function name (taskName
), and the function arguments (taskPayload
, a JSON object).tasksInitiated
:taskName
and taskPayload
.toolCallId
(from taskId
) and a result
string.{
"results": [
{
"toolCallId": "call_kLsrB3eFvT6bvo67BqTv7iXc",
"result": "Bericht succesvol ontvangen, het team zal Jonas terugbellen."
}
]
}
results
: An array matching the tasks initiated.toolCallId
: The original taskId
from the request.result
: Any message or context the AI should use to continue the conversation.{
"results": [
{
"toolCallId": "call_abc123",
"result": "Slot found: 2025-09-01 14:00"
},
{
"toolCallId": "call_def456",
"result": "Email sent to jonas@example.com"
}
]
}
toolCallId
present in the request.result
field should give the AI context to keep the conversation flowing naturally.result
.{
"results": [
{
"toolCallId": "call_xyz123",
"result": "Beschikbare tijdslots: 14:00, 15:00, 16:30"
}
]
}
toolCallId
in your reply, the AI will not know which tool was completed, and the workflow may break.