Buni.aiDocs
Chatbot
Chatbot

Live chat handoff

Hand a chatbot conversation to a person on your team in the Inbox, what the customer sees at each step, and how the chat returns to the bot.

When the bot cannot help, a Live Chat node passes the conversation to a person on your team. The agent answers from the Inbox, the customer keeps writing in the same chat, and when the agent is done they resolve the chat or pass it back to the bot.

This page follows one conversation from the bot to an agent and back.

Before you start

  • Invite the people who will answer chats to your organization. Each agent is an organization member.
  • Decide which requests should reach a person. Usually that is an intent such as TalkToPerson ("I want to speak to someone", "agent", "human") and sometimes your fallback.

1. Set up agents and groups

Agents and agent groups live in two organization-wide system data stores that the Live Chat node creates for you. You manage them from the node itself.

  1. Add a Live Chat node and connect the intent that should hand over to it.
  2. Double-click the node. On the Agent Setup tab, under Data Stores, both stores are selected automatically. If they are missing, select Create New.
  3. Select Add Agent Group to create a group, such as "Support".
  4. Select Add Human Agent. In Select Organization Member, pick the person, then set their group, Status, Skills and Max Concurrent Chats.
The Live Chat node's Agent Setup tab with the Data Stores section, an agent group selected, and the Round Robin, Availability Based and Skill Based strategy cards
Agent Setup on the Live Chat node.

See Assignments and routing for managing agents from the Inbox.

2. Configure the Live Chat node

Agent Setup tab

FieldWhat it does
Select Agent GroupWhich agents can take the chat: one group, All Agent Groups, or a Custom Group name. Required.
Assignment StrategyHow an agent is picked. Round Robin spreads chats evenly. Availability Based picks the agent with the fewest chats. Skill Based matches the skills listed in {{state.requiredSkills}} to agents' skills.

Messages tab

FieldWhat it does
Transfer MessageSent to the customer when an agent is assigned. Supports variables, including the agent's name as {{agent.name}}. Required.
Agent Note (Optional)Context for the agent, such as {{state.orderId}}. The customer never sees it.

Fallback tab

FieldWhat it does
Fallback MessageSent to the customer when no agent can be assigned.
Wait Reminder (optional)Sent if a customer who is already waiting writes again, at most once every 5 minutes. Leave it empty to repeat the fallback message.
Other languagesTranslations of the three messages above. Set Language comes from to an expression such as ${state.lang}, then Add language for each language code. See Advanced chatbot features.

Settings that do not change routing yet

Priority Level, Max Wait Time, Include conversation history and Fallback Action are saved with the node, but the runtime does not act on them today. Whichever Fallback Action you pick, the customer gets the Fallback Message when no agent is free; the choice is only recorded in {{state.fallbackAction}}.

A Live Chat node has no output handle. It is the last step of the bot's part of the flow.

3. What happens when the flow reaches the node

Buni.ai looks for an agent in the chosen group who is online or available, has room under their Max Concurrent Chats, and has not already declined this chat.

An agent is found

  1. The chat is assigned to them and the customer receives the Transfer Message.
  2. The agent gets a New chat assigned to you card in the Inbox with Accept, Open and Decline.
  3. When the agent selects Accept, the customer receives "You are now chatting with" followed by the agent's first name.
  4. From then on, the customer's messages go to the agent, not the bot.

No agent is free

The customer receives the Fallback Message. If business hours are on and the team is closed, they receive your out-of-hours message instead.

The agent declines

The chat goes to the next available agent. If nobody is free, the chat is marked Waiting and the customer is told they are in the queue. Waiting chats are handed to the next agent who frees a slot, oldest first.

The Inbox showing a New chat assigned to you card with Accept, Open and Decline buttons
What an agent sees when the bot hands over a chat.

How agents are alerted

  • In the Inbox: the assignment card appears straight away for agents who have the Inbox open. To skip it, an agent can turn on Auto-accept new assignments in the Inbox Settings.
  • By email or WhatsApp: if a chat stays assigned but not accepted for a while (2 minutes by default), the agent gets an email, and a WhatsApp message if they turned on WhatsApp Alerts and have a phone number on their agent profile. Each agent sets this under Inbox Settings › Notifications, including quiet hours.

4. The agent takes over from the Inbox

Agents can also take a chat the bot is still handling. A bot-handled conversation shows Bot is handling this conversation with a Take Over button, and the conversation menu has Assign to Me and a list of teammates. Taking over sends the customer the same "You are now chatting with" message.

See Replying for working in the conversation.

5. Ending the handoff

An agent ends their part of the conversation in one of two ways.

ActionWhereWhat happens
Resolve conversationConversation footerOpens Resolve Conversation. The customer gets the Resolution Message (you can edit it), and a satisfaction survey if Request Customer Feedback (CSAT) is on. The chat is marked Resolved.
Pass to BotConversation menuThe bot answers the customer's next message. No message is sent to the customer when you pass the chat back.

In both cases the agent's slot is freed and the oldest waiting chat, if any, is assigned.

The flow does not resume where it left off. The customer's next message is handled like any new message: it is matched to an intent from the Trigger. If a customer writes again after a chat was resolved, the bot answers and the agent who resolved it is notified in the Inbox.

See Resolving conversations and CSAT.

Timeouts

SituationAfterWhat happens
An accepted chat has no activity30 minutesThe chat is resolved automatically and the agent's slot is freed. The customer is not sent a message.
An assigned chat has no activity and the customer writes again30 minutesThe chat goes back to the bot.
A chat is waiting in the queueNeverWaiting chats do not expire.

Business hours

In project Settings › Hours, set the team's Time zone and Opening hours, and turn on Tell people when nobody is available. Outside those hours, when no agent can be assigned, the customer gets your What to say outside these hours message instead of the fallback message. Write {{nextOpen}} in it to include the next opening time, such as "Monday at 09:00".

Business hours do not stop Buni.ai from assigning an agent who is online outside those hours. Republish the project after changing them. See Business hours.

Test the handoff

  1. Add yourself as a human agent in an agent group, with status Available.
  2. Publish the project and open the Inbox in another tab.
  3. From your web chat widget or a connected channel, send a message that matches your handoff intent.
  4. Accept the chat in the Inbox, reply, then select Pass to Bot or Resolve conversation.
  5. Set your agent status to something other than available and try again to see the Fallback Message.
Last reviewed 25 September 2026

On this page