Skip to main content

Tool Types Overview

Burki Voice AI supports three main categories of tools:

🔧 Built-in Tools

Ready-to-use actionsCall transfers, graceful endings, and essential call management features.

🛠️ Custom Tools

Your integrationsConnect to APIs, run Python code, or trigger Lambda functions during calls.

📚 Tool Library

Reusable & ShareableCreate once, use across multiple assistants. Build your organization’s tool ecosystem.

Built-in Tools

What it does: Allows the assistant to end calls automatically when appropriate.Configuration:
  • Enable/Disable: Toggle the tool on or off
  • Scenarios: Define when the assistant should end calls
  • Custom Message: What to say before ending the call
Example Scenarios:
  • “Customer says goodbye”
  • “Issue resolved”
  • “Request completed”
  • “Complaint escalated”
What it does: Transfers calls to human agents or other phone numbers.Configuration:
  • Enable/Disable: Toggle the tool on or off
  • Transfer Numbers: List of phone numbers to transfer to
  • Scenarios: Define when transfers should happen
  • Custom Message: What to say before transferring
Example Transfer Numbers:
  • +1234567890 (Sales team)
  • +0987654321 (Technical support)
  • +1122334455 (Manager)
Example Scenarios:
  • “Technical issue beyond AI capability”
  • “Billing inquiry”
  • “Escalation request”
  • “Customer requests human agent”
What they are: Powerful, reusable integrations that extend your assistant’s capabilities.Three Types Available:
  1. Endpoint Tools: Call external APIs during conversations
  2. Python Function Tools: Execute custom Python code with full library access
  3. AWS Lambda Tools: Trigger serverless functions for scalable processing
Key Benefits:
  • Reusable: Create once, use across multiple assistants
  • Secure: Built-in sandboxing and input validation
  • Flexible: Support any API, database, or business logic
  • Scalable: From simple lookups to complex workflows

How to Configure Tools

  1. Go to your assistant’s configuration
  2. Navigate to the Tools section
  3. Enable the tools you want to use
  4. Configure each tool’s settings
For End Call Tool:
  • List specific situations when calls should end
  • Be clear about completion criteria
  • Consider both successful and unsuccessful outcomes
For Transfer Call Tool:
  • Define when human intervention is needed
  • Specify different transfer destinations for different scenarios
  • Include escalation triggers
Example Scenarios Format:
customer says goodbye, issue resolved, request completed, complaint escalated
End Call Messages:
  • Professional and friendly
  • Confirm completion of the interaction
  • Leave a positive impression
Transfer Messages:
  • Explain what’s happening
  • Set expectations for wait time
  • Reassure the customer
Examples:
  • End Call: “Thank you for calling! I’ve helped resolve your issue. Have a great day!”
  • Transfer: “I’m connecting you with a specialist who can better assist you. Please hold for just a moment.”

Best Practices

  • Test thoroughly: Try different scenarios to ensure tools work as expected
  • Keep scenarios specific: Vague scenarios lead to unpredictable behavior
  • Monitor usage: Track when and why tools are being used
  • Update regularly: Refine scenarios based on real call data
  • Train your team: Ensure human agents are prepared for transfers

Tool Usage Examples

Setup:
  • End Call Tool: Enabled
  • Transfer Call Tool: Enabled
  • Transfer Numbers: Support team, billing department
Scenarios:
  • End Call: “issue resolved, customer satisfied, information provided”
  • Transfer: “billing question, technical problem, escalation requested”
Result: AI handles simple inquiries but transfers complex issues to appropriate teams.
Setup:
  • End Call Tool: Enabled
  • Transfer Call Tool: Enabled
  • Transfer Numbers: Sales team, manager
Scenarios:
  • End Call: “information provided, not interested, callback scheduled”
  • Transfer: “ready to purchase, complex pricing question, wants to speak to sales”
Result: AI qualifies leads and transfers hot prospects to sales team.

Troubleshooting

  • Tools not triggering: Check scenario definitions are specific enough
  • Wrong transfers: Verify phone numbers are correct and active
  • Premature call endings: Refine end call scenarios to be more specific
  • Failed transfers: Ensure target numbers can receive calls
  • Unclear messages: Test custom messages with real users

Custom Tools Deep Dive

Creating Custom Tools

Custom tools are created and managed through the Tools Library in your dashboard. Each tool is independent and can be assigned to multiple assistants.
  • Endpoint Tools
  • Python Functions
  • AWS Lambda

What are Endpoint Tools?

Endpoint tools allow your assistant to make HTTP requests to external APIs during conversations. Perfect for:
  • CRM lookups
  • Database queries
  • Order status checks
  • User authentication
  • Third-party integrations

Configuration

Example Tool Definition
{
  "name": "get_customer_info",
  "display_name": "Customer Information Lookup",
  "description": "Look up customer information by phone number or email",
  "parameters": {
    "type": "object",
    "properties": {
      "phone_number": {
        "type": "string",
        "description": "Customer's phone number"
      },
      "email": {
        "type": "string", 
        "description": "Customer's email address"
      }
    },
    "required": ["phone_number"]
  }
}

Endpoint Configuration

  • URL: https://api.yourcompany.com/customers/lookup
  • Method: GET, POST, PUT, DELETE
  • Headers: Authentication, Content-Type, etc.
  • Authentication: API keys, Bearer tokens, Basic auth
  • Timeout: Maximum execution time (default: 30 seconds)

Tool Testing & Validation

Before deploying tools to production:
  1. Parameter Validation:
    • Test with valid parameters
    • Test with invalid/missing parameters
    • Verify parameter type conversion
  2. Error Handling:
    • Network timeouts
    • API errors (4xx, 5xx)
    • Invalid responses
    • Service unavailability
  3. Performance:
    • Response times under load
    • Timeout scenarios
    • Rate limiting behavior
  4. Security:
    • Input sanitization
    • Authentication validation
    • Data privacy compliance

Best Practices

Keep It Simple:
  • One tool, one purpose
  • Clear, descriptive names
  • Minimal required parameters
Handle Errors Gracefully:
  • Return meaningful error messages
  • Provide fallback responses
  • Log errors for debugging
Optimize Performance:
  • Cache frequently accessed data
  • Use efficient APIs
  • Set appropriate timeouts
Security First:
  • Validate all inputs
  • Use secure authentication
  • Follow data privacy rules
  • Audit tool usage regularly

Tool Assignment & Management

Tool Library Workflow:
  1. Create tools in the Tools Library
  2. Test tools with sample data
  3. Assign tools to specific assistants
  4. Monitor usage and performance
  5. Update tools as needed
Assignment Benefits:
  • Reusability: Use the same tool across multiple assistants
  • Consistency: Standardize integrations across your organization
  • Maintenance: Update tools in one place, apply everywhere
  • Governance: Control which assistants can use specific tools
Usage Analytics:
  • Track tool execution frequency
  • Monitor success/failure rates
  • Analyze performance metrics
  • Identify optimization opportunities

Tool Integration Examples

CRM Integration

{
  "name": "lookup_customer",
  "tool_type": "endpoint",
  "endpoint_url": "https://api.salesforce.com/services/data/v52.0/query",
  "description": "Look up customer information from Salesforce CRM"
}
Use Case: Assistant can instantly access customer history, preferences, and previous interactions during calls.

Order Status Check

def get_order_status(order_number):
    """Look up order status from internal database"""
    import requests
    
    response = requests.get(f"https://internal-api.company.com/orders/{order_number}")
    order_data = response.json()
    
    return {
        "status": order_data["status"],
        "estimated_delivery": order_data["delivery_date"],
        "tracking_number": order_data["tracking"]
    }
Use Case: Customers can get real-time order updates without transferring to human agents.

Lead Scoring

{
  "name": "calculate_lead_score",
  "tool_type": "lambda",
  "function_name": "lead-scoring-ml-model",
  "description": "Calculate lead score using ML model"
}
Use Case: Assistant gathers information and provides real-time lead scoring to prioritize follow-ups.

Product Recommendations

def get_product_recommendations(customer_profile, budget):
    """Generate personalized product recommendations"""
    # Business logic for recommendations
    recommendations = analyze_customer_preferences(customer_profile, budget)
    
    return {
        "recommended_products": recommendations,
        "reasoning": "Based on your preferences and budget",
        "next_steps": "Schedule a demo call"
    }
Use Case: Provide personalized product suggestions during sales calls.

System Status Check

{
  "name": "check_system_status",
  "tool_type": "endpoint", 
  "endpoint_url": "https://status-api.company.com/health",
  "description": "Check if customer's systems are experiencing issues"
}
Use Case: Proactively identify system issues before customers report them.

Troubleshooting Assistant

def diagnose_connectivity_issue(ip_address, error_code):
    """Diagnose network connectivity issues"""
    import subprocess
    import json
    
    # Run network diagnostics
    ping_result = subprocess.run(['ping', '-c', '3', ip_address], 
                               capture_output=True, text=True)
    
    return {
        "connectivity": "good" if ping_result.returncode == 0 else "poor",
        "recommended_action": get_action_for_error(error_code),
        "escalate_to_tech": ping_result.returncode != 0
    }
Use Case: Provide first-level technical diagnostics and troubleshooting.

API Reference

For programmatic tool management, see the API documentation: