Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.burki.dev/llms.txt

Use this file to discover all available pages before exploring further.

For built-in tools, quick scenarios, and API links, see Tools & Custom Actions.

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.

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)
Test your endpoint tools thoroughly. Failed API calls can interrupt conversations.

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.