Route calls dynamically using your business logic. HTTP transfers call your webhook with conversation context — your system decides the destination based on CRM data, availability, or skill requirements. What you’ll learn: Webhook configuration, request/response schemas, fallback handling, and dynamic routing patterns.Documentation Index
Fetch the complete documentation index at: https://docs.blackbox.dasha.ai/llms.txt
Use this file to discover all available pages before exploring further.
How HTTP Transfer Works
- Agent determines the caller needs transfer
- Agent calls your webhook endpoint with conversation context
- Your webhook returns routing decision: destination, type (warm/cold), and configuration
- Agent executes the transfer as specified by webhook response
- If webhook fails, the agent uses the fallback transfer
When to Use HTTP Transfer
Best for:- Dynamic routing based on agent availability
- Skill-based routing (route to agents with specific expertise)
- CRM-integrated routing (based on customer tier, history)
- Workload balancing across teams
- Complex business rules that change dynamically
- Geographic or language-based routing
- Static routing to fixed numbers
- Simple department routing
- No integration needs
Configuring HTTP Transfer
Step 1: Enable HTTP Transfer
- Open your agent’s configuration
- Navigate to the Features tab
- Scroll to Call Transfers section
- Select HTTP Transfer type
Step 2: Configure Transfer Description
Transfer Description- Guides the language model on when to use this transfer
- Example: “Transfer to the best available agent based on customer priority and issue type”
- Be specific about when this dynamic routing should be triggered
Step 3: Configure Webhook
Step 3: Configure Webhook
Webhook Endpoint
-
Your API URL:
https://api.yourcompany.com/routing-decision - Will be called when transfer is initiated
- GET or POST (POST recommended for complex data)
-
Authentication:
Authorization: Bearer your-api-token - API keys, custom metadata
-
Example:
- Static parameters passed with every request
- Example:
api_version=v1&source=voice_agent
Step 4: Webhook Request Format
Step 4: Webhook Request Format
Your webhook receives a
TransferWebHookPayload with conversation context:type: Always"TransferWebHookPayload"for transfer webhooksstatus: Always"running"(call is active)callId: Unique identifier for this callagentId: Your voice agent’s IDorgId: Your organization IDendpoint: Phone number or SIP address of the callertransferReason: AI-generated explanation of why transfer is neededtranscription: Full conversation history with speaker, text, and timestampscallAdditionalData: Custom data passed when the call was createdagentAdditionalData: Custom data configured on the agentsip: SIP headers for inbound calls (from, to, domain, diversion)
Step 5: Webhook Response Format
Step 5: Webhook Response Format
Your webhook returns a For a cold transfer response:To cancel the transfer and continue the conversation:
TransferWebhookResponse with routing instructions:isSuccess: Boolean - whether to proceed with transfertransfer: Transfer configuration object (required whenisSuccessis true)
type:"warm"or"cold"description: Description for logging/debuggingendpointDestination: Phone number or SIP URI to transfer to
sayToCustomer: What agent tells customer before transferoperatorInteraction: How agent briefs the operator (static phrase or smart mode)continueAfterOperatorDisconnect: Boolean - can agent resume if operator hangs up?
message: Context message for logging/debugging
Step 6: Configure Fallback Transfer
If webhook fails (timeout, error, unreachable), use fallback: Fallback Transfer Type- Warm or Cold
- Backup phone number:
+1-555-0100
- For warm: Operator message, customer message
- For cold: Customer message
- Continue Conversation: Agent resumes
- End Call: Call terminates gracefully
- System message for agent context
- Static phrase for caller
Configuration Example
Example: Complete HTTP Transfer Configuration
Example: Complete HTTP Transfer Configuration
This shows the
config.features.transfer object structure for HTTP transfer:Webhook Implementation Examples
Skill-Based Routing
Skill-Based Routing
Route to agents with specific expertise:
Priority-Based Routing
Priority-Based Routing
VIP customers get routed to senior agents:
Workload Balancing
Workload Balancing
Route to least busy agent:
Geographic Routing
Geographic Routing
Route to agents in customer’s region:
Use Cases
Skill-Based Routing
Route to agents with specific expertise (billing, technical, sales) based on conversation content. Your webhook analyzes the issue and matches with qualified available agents.Priority Routing
VIP customers get immediate routing to senior agents. Standard customers follow normal queues. Your webhook checks customer tier in CRM and routes accordingly.Geographic Routing
Route to agents in customer’s timezone or region. Your webhook uses caller location data to find local agents.Workload Balancing
Route to least busy available agent. Your webhook queries real-time agent workload and routes to maintain balance.Language Matching
Route to agents who speak customer’s language. Your webhook detects language from conversation and matches with agent skills.Business Hours Routing
Different routing during business hours vs. after hours. Your webhook checks time and routes to appropriate team or service.Troubleshooting
Problem: Webhook Times Out
Solution: Optimize webhook response time (target under 2 seconds). Add caching for common queries. Configure appropriate timeout and fallback transfer. Consider pre-computing routing decisions.Problem: Webhook Returns Errors
Solution: Check webhook logs for error details. Verify webhook signature/authentication. Ensure response format matches specification. Test webhook with sample payloads.Problem: Fallback Transfer Used Often
Solution: Investigate webhook reliability. Check webhook uptime and error rates. Verify network connectivity between Dasha BlackBox and webhook. Add monitoring and alerts.Problem: Wrong Agent Receives Transfer
Solution: Review webhook routing logic. Test with various conversation scenarios. Verify conversation_summary provides enough context. Add logging to debug routing decisions.Next steps
Warm Transfer
What HTTP transfer returns for warm routing
Cold Transfer
What HTTP transfer returns for cold routing
Call Transfers Overview
Compare all transfer types
Webhooks
Receive call events