Transfer agent nodes hand off the conversation to a different Hamsa AI agent within your workspace. Unlike transfer call nodes that connect to external phone numbers, transfer agent nodes keep the conversation within your AI ecosystem with optional context preservation.Key characteristic: Transfer agent nodes maintain the call connection while switching which AI agent is handling the conversation—no phone system transfer needed.
Transfer Agent Node: Transfer_To_Tech_Support agentId: "tech_support_agent" Transfer Message: message: "I'm connecting you with our technical specialist who can better assist you." messageType: static
Transfer Agent Node: Transfer_To_Billing agentId: "billing_agent" Transfer Message: message: "Explain to the user that you're transferring them to a billing specialist who can help with their specific question about invoices." messageType: prompt
AI might say:
“Let me connect you with our billing team who specializes in invoice questions.”
“I’m getting you to someone in billing who can review your invoices.”
Transfer Agent Node: Transfer_Premium_Support agentId: "premium_support_agent" Transfer Message: message: "Thank you {{customer_name}}. As a {{tier}} member, I'm connecting you with our premium support specialist." messageType: static
Transfer agent nodes can optionally pass context to the receiving agent. Both options are off by default — enable them when the new agent needs prior context.
When enabled, the full conversation history (user inputs and agent responses) is transferred to the new agent. The receiving agent can reference what was discussed without asking the user to repeat themselves.
Transfer Agent Node: Transfer_To_Billing agentId: "billing_agent" handoffConversation: true # New agent sees full chat history
When enabled, all extracted variables from the current flow are passed to the new agent and available in its prompts.
Transfer Agent Node: Transfer_To_Specialist agentId: "specialist_agent" handoffVariables: true # New agent has access to {{customer_name}}, {{account_id}}, etc.
For a seamless handoff where the new agent has complete context:
Transfer Agent Node: Transfer_Premium_Support agentId: "premium_support_agent" handoffConversation: true handoffVariables: true transferMessage: "I'm connecting you with a specialist who has your full details."
The receiving agent can immediately reference previous conversation and extracted data — no repeated questions.
Both handoffConversation and handoffVariables default to false. If you need the new agent to have context, you must explicitly enable them.
Scenario: Basic support agent transfers complex technical issues.
Conversation Node: Diagnose_Issue message: "Can you describe the technical problem you're experiencing?" Extract Variables: - issue_description: "Description of the issue" - issue_complexity: "Rate complexity: simple, moderate, complex" transitions: - Equation: {{issue_complexity}} == "complex" → Transfer_Tech_Specialist - Always → Attempt_Basic_SupportTransfer Agent Node: Transfer_Tech_Specialist agentId: "advanced_tech_support_agent" Transfer Message: message: "This sounds like a complex issue. Let me connect you with one of our senior technical specialists who can help." messageType: static
Scenario: Press 9 anytime to speak with a supervisor agent.
Transfer Agent Node: Supervisor_Transfer # Global configuration isGlobal: true globalConditionType: dtmf globalDtmfKey: 9 # Transfer configuration agentId: "supervisor_agent_id" Transfer Message: message: "I'm transferring you to a supervisor now." messageType: static
Transfer Agent Node: Global_Supervisor isGlobal: true globalConditionType: dtmf globalDtmfKey: 9 agentId: "supervisor_agent_id" transferMessage: "Connecting you with a supervisor."
Transfer Agent Node: Global_Specialist_Request isGlobal: true globalConditionType: prompt globalCondition: "User asks for a specialist or expert" agentId: "specialist_agent_id" transferMessage: "I'm connecting you with a specialist."