Flireo AI
WebsiteLinkedin
WebsiteLinkedin
  1. Guides
  • API Reference
    • Agents
      • List all agents
      • Create a new agent
      • Get an agent
      • Update an agent
      • Delete an agent
    • Tool Templates
      • List all tool templates
      • Create a new tool template
      • Get a tool template
      • Update a tool template
      • Delete a tool template
    • Numbers
      • List all phone numbers
      • Register a phone number
      • Get a phone number
      • Update a phone number
      • Delete a phone number
    • Calls
      • List calls
      • Get call by ID
      • Initiate outbound call
    • Call Control
      • Send control command to active call
    • Usage
      • Get usage logs
    • SIP Trunks
      • List SIP trunks
      • Create a SIP trunk
      • Get a SIP trunk
      • Delete a SIP trunk
    • Voices
      • List available voices
    • BYOK
      • Get BYOK configurations
      • Add BYOK configuration
      • Delete BYOK configuration
      • Get BYOK provider configurations
    • Domains
      • Get your domain
      • Add a domain
      • Delete your domain
      • List available Resend domains
      • Select and sync a Resend domain
      • Verify domain DNS records
      • Refresh domain status
    • Webhooks
      • Dynamic assistant configuration webhook
      • Tool/Function Call
      • Call Status Update
      • End of Call Report
    • Analysis Templates
      • List analysis templates
      • Create analysis template
      • Get analysis template
      • Update analysis template
      • Delete analysis template
    • Organization
      • Get organization information
    • Campaigns
      • List all campaigns
      • Create a campaign
      • Get a campaign
      • Update a campaign
      • Delete a campaign
      • List campaign leads
      • Add a lead
      • Remove a lead
  • Documentation
    • Get started
      • Quickstart
      • Introduction
      • Authentication
    • Core concepts
      • Agents
      • Phone numbers
      • Calls
      • Webhooks
    • Api's
      • Organization
      • Agents
      • Phone numbers
      • Sip trunks
      • Calls
      • Call control
      • Usage
      • Voices
      • BYOK
      • Domains
      • Analysis templates
      • Tool templates
    • Webhooks
      • Overview
      • Assistant request
      • Tool calls
      • Status update
      • End of call report
      • Security
    • Guides
      • BYOK Setup
      • Call analysis
      • Custom Tools
      • Call Transfers
      • xAI Realtime Integration
      • Analysis templates
      • Billing
      • Error codes
      • Rate limits
      • Sip Trunks
      • Tool templates
      • Troubleshooting
WebsiteLinkedin
WebsiteLinkedin
  1. Guides

Tool templates

Tool templates let you define reusable tool configurations that can be easily added to multiple agents. Instead of copying tool definitions, create templates and reference them when configuring agents.

What are Tool Templates?#

A tool template defines:
Tool type - Function, end call, or transfer
Name and description - For LLM understanding
Parameters - JSON Schema for inputs
Configuration - URLs, async settings, etc.

Creating a Tool Template#

Function Tool Template#

Response:
{
  "tool_template": {
    "id": "template-uuid",
    "name": "lookup_customer",
    "description": "Look up customer information...",
    "type": "function",
    "url": "https://api.example.com/webhooks/lookup",
    "async": false,
    "parameters": { ... },
    "created_at": "2025-12-13T10:00:00.000Z"
  }
}

End Call Tool Template#

Transfer Call Tool Template#

Template Fields#

FieldTypeRequiredDescription
namestringYesTool name (used by LLM)
descriptionstringYesWhat the tool does
typestringYesfunction, endCall, or transferCall
urlstringNoWebhook URL for function tools
asyncbooleanNoFire-and-forget mode (default: false)
asyncResponsestringNoResponse for async tools
parametersobjectNoJSON Schema for inputs
destinationsarrayNoTransfer destinations (for transferCall)

Using Templates with Agents#

When creating or updating an agent, reference tool templates by ID:
The tools from these templates will be added to the agent's llm_config.tools.

Template Examples#

Check Appointment Availability#

{
  "name": "check_availability",
  "description": "Check available appointment slots for a given date and service type. Use when customer wants to book an appointment.",
  "type": "function",
  "url": "https://api.example.com/webhooks/availability",
  "parameters": {
    "type": "object",
    "properties": {
      "date": {
        "type": "string",
        "description": "Date to check in YYYY-MM-DD format"
      },
      "service": {
        "type": "string",
        "description": "Type of service requested"
      }
    },
    "required": ["date"]
  }
}

Book Appointment#

{
  "name": "book_appointment",
  "description": "Book an appointment for the customer. Only use after confirming the date, time, and service with the customer.",
  "type": "function",
  "url": "https://api.example.com/webhooks/book",
  "parameters": {
    "type": "object",
    "properties": {
      "date": {
        "type": "string",
        "description": "Appointment date in YYYY-MM-DD format"
      },
      "time": {
        "type": "string",
        "description": "Appointment time in HH:MM format"
      },
      "service": {
        "type": "string"
      },
      "customer_name": {
        "type": "string"
      },
      "notes": {
        "type": "string"
      }
    },
    "required": ["date", "time", "customer_name"]
  }
}

Log Event (Async)#

{
  "name": "log_interest",
  "description": "Log that the customer expressed interest in a product for sales follow-up",
  "type": "function",
  "url": "https://api.example.com/webhooks/log",
  "async": true,
  "asyncResponse": "I've noted your interest for our team to follow up.",
  "parameters": {
    "type": "object",
    "properties": {
      "product": {
        "type": "string",
        "description": "Product the customer is interested in"
      },
      "notes": {
        "type": "string",
        "description": "Additional notes about the interest"
      }
    },
    "required": ["product"]
  }
}

Multi-Destination Transfer#

{
  "name": "transfer_call",
  "description": "Transfer the call to the appropriate department",
  "type": "transferCall",
  "destinations": [
    {
      "type": "number",
      "number": "+31612345678",
      "description": "Sales team - for pricing, quotes, and new business",
      "message": "Ik verbind u door met onze sales afdeling."
    },
    {
      "type": "number",
      "number": "+31687654321",
      "description": "Technical support - for product issues and troubleshooting",
      "message": "Ik verbind u door met technische support."
    },
    {
      "type": "number",
      "number": "+31698765432",
      "description": "Billing - for invoice and payment questions",
      "message": "Ik verbind u door met de facturatie afdeling."
    }
  ]
}

Listing Templates#

Updating a Template#

Deleting a Template#

Deleting a template does not affect agents currently using it. Tools are stored as objects in the agent configuration, not as references.

Related#

Custom Tools Guide
Tool Templates API
Tool Calls Webhook
Modified at 2025-12-31 12:09:50
Previous
Sip Trunks
Next
Troubleshooting
Built with