🇪🇸 Español 🇬🇧 English 🇧🇷 Português

Build a receptionist AI agent that routes to other AI agents

How to set up a "receptionist" AI agent that greets every incoming conversation and automatically hands it off to the right specialized AI agent (sales, support, etc.).

Jul 11, 2026

A receptionist agent doesn't solve cases: it greets the customer, figures out what they need, and hands the conversation to the right AI agent (or a human, when needed). It's the ideal pattern when you have several specialized agents (Sales, Support, Billing) and want a single entry point.

Requirements

  • At least two active AI agents in the same workspace: the receptionist and the specialized destination agents.
  • Destination agents need clear, distinct names (the receptionist references them by name).

Steps

  1. Create a new AI agent and name it, for example, "Front Desk".
  2. On the Prompt tab, use "Use template" and pick the Receptionist category as a starting point — it already includes a greeting + categorization flow.
  3. Adapt the categorization section to your own specialized agents, naming each one exactly as it's set up (e.g. "Sales Omnifox", "Support Omnifox").
  4. On the Custom actions tab, enable "Transfer to another AI agent" (transfer_to_ai_agent) alongside "Assign to person or team" (for cases that need a human directly).
  5. Connect the channel (WhatsApp, Webchat, etc.) so this Front Desk agent is the channel's primary AI agent.

How transfer_to_ai_agent works

  • The receptionist identifies the destination agent by name (target_agent_name, e.g. "Support") and can optionally pass a reason.
  • The destination agent takes over the conversation and answers the very next turn — the customer doesn't experience a manual transfer, just a different "voice" replying.
  • The customer's detected language is automatically carried over to the destination agent, so it replies in the same language from its first message.
  • Built-in anti-loop protection: every conversation has a 2-hop limit between AI agents. Once exceeded, the tool refuses to transfer again and the current agent must hand off to a human team with assign_to_user_or_team instead — this keeps a customer from bouncing between bots forever.
  • You can only transfer to another AI agent in the SAME workspace.

Example

A customer writes "I want to know how much the Pro plan costs". The receptionist identifies the "sales" category and runs !transfer_to_ai_agent target_agent_name="Sales Omnifox" reason="asking about Pro plan pricing". The Sales agent takes the next turn and replies directly with pricing, without the customer having to repeat the question.

Tips

  • Always make the prompt clear about when to use transfer_to_ai_agent (handing off to ANOTHER specialized BOT) versus assign_to_user_or_team (handing off to a HUMAN) — these are different cases and the model needs explicit criteria.
  • Keep your specialized agents' names stable; if you rename one, update the receptionist's prompt too.
  • Test the full journey in the Sandbox, including what happens if the customer asks something off-topic again after the first handoff (to avoid hitting the 2-hop limit).

Troubleshooting

  • "It can't find the destination agent": confirm the name matches (or is close to) the real agent name, and that agent is active.
  • "It stops transferring after the second handoff": that's the 2-hop anti-loop limit per conversation — from there, the conversation must go to a human team.
Was this helpful?

Related articles