llm_config.tools[]| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Unique tool name (used by LLM) |
description | string | Yes | What the tool does (helps LLM decide when to use it) |
url | string | No | Per-tool webhook URL (overrides agent's webhook_url) |
async | boolean | No | Fire-and-forget mode (default: false) |
asyncResponse | string | No | Response for async tools |
parameters | object | No | JSON Schema for tool inputs |
{
"name": "check_inventory",
"description": "Check product availability and stock levels. Use when customer asks if a product is in stock or available. Returns quantity available and location."
}{
"name": "create_support_ticket",
"description": "Create a support ticket for issues that cannot be resolved during the call. Use only when you cannot help the customer directly. Requires a description of the issue."
}{
"name": "lookup",
"description": "Looks up data"
}{
"message": {
"type": "tool-calls",
"toolCallList": [
{
"id": "tool_abc123",
"type": "function",
"function": {
"name": "lookup_customer",
"arguments": {
"phone": "+31612345678"
}
}
}
]
}
}{
"results": [
{
"toolCallId": "tool_abc123",
"result": {
"found": true,
"name": "Jan de Vries",
"email": "jan@example.com",
"account_type": "premium",
"member_since": "2020-03-15"
}
}
]
}{
"tools": [
{
"name": "lookup_customer",
"description": "...",
"url": "https://crm.example.com/api/lookup"
},
{
"name": "book_appointment",
"description": "...",
"url": "https://calendar.example.com/api/book"
}
]
}{
"name": "log_interest",
"description": "Log that the customer expressed interest in a product for follow-up",
"async": true,
"asyncResponse": "Interest noted for follow-up.",
"parameters": {
"type": "object",
"properties": {
"product": { "type": "string" },
"notes": { "type": "string" }
}
}
}{
"type": "endCall"
}{
"type": "transferCall",
"destinations": [
{
"type": "number",
"number": "+31612345678",
"description": "Sales team - for pricing questions and quotes",
"message": "Ik verbind u door met sales."
},
{
"type": "number",
"number": "+31687654321",
"description": "Technical support - for product issues",
"message": "Ik verbind u door met technische support."
}
]
}{
"name": "Customer Service Agent",
"webhook_url": "https://api.example.com/webhooks/flireo",
"webhook_secret": "secret123",
"webhook_events": ["tool-calls", "end-of-call-report"],
"llm_config": {
"provider": "openai",
"model": "gpt-4o-mini",
"messages": [
{
"role": "system",
"content": "Je bent een klantenservice medewerker. Gebruik de beschikbare tools om klanten te helpen."
}
],
"tools": [
{
"name": "lookup_customer",
"description": "Look up customer by phone number",
"parameters": {
"type": "object",
"properties": {
"phone": { "type": "string" }
},
"required": ["phone"]
}
},
{
"name": "check_order_status",
"description": "Check the status of a customer order",
"parameters": {
"type": "object",
"properties": {
"order_id": { "type": "string" }
},
"required": ["order_id"]
}
},
{ "type": "endCall" },
{
"type": "transferCall",
"destinations": [
{
"type": "number",
"number": "+31612345678",
"description": "Human support for complex issues"
}
]
}
]
}
}