> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bestchatbot.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Human Handoff

> Let visitors talk to a real person on your team, live in the chat, and draft replies with AI grounded in your knowledge base.

# Human Handoff

Your bot handles most conversations on its own. But sometimes a visitor needs a real person: a tricky case, a sensitive question, or a deal worth closing in the moment. **Human handoff** lets a visitor pass the conversation to your team and chat with them live, right inside the widget.

<Note>Human handoff is available on **every plan, including Free**. As the workspace owner you're a **reserved operator** by default, so you can answer live chats without using a seat. Adding *more* operators uses **operator seats**, which scale with your plan. See [Pricing Plans](/billing/pricing-plans).</Note>

## How a Visitor Reaches Your Team

The widget shows a **Talk to a human** button in its header whenever your team has at least one operator. Because you're an operator by default, that button shows on any plan, right after you set up the widget.

<Frame>
  <img src="https://mintcdn.com/bestchatbot/2-SeFKQ-UujZE_r-/images/handoff-talk-to-human.png?fit=max&auto=format&n=2-SeFKQ-UujZE_r-&q=85&s=27c0ae8af3c1ec3e11aad65599bc0504" alt="Chat widget header showing the Talk to a human button" width="549" height="931" data-path="images/handoff-talk-to-human.png" />
</Frame>

When the visitor taps it, the conversation joins your team's queue, and your operators get an email letting them know a visitor is waiting.

## Answering from Your Dashboard

Handoffs land in the **Conversations** area of your dashboard, which has two views switched with a toggle:

* **Tracking**: a read-only history of conversations, visible to your whole team.
* **Live inbox**: the operator workspace where you actually reply. This toggle only appears for members who are **operators**.

<Frame>
  <img src="https://mintcdn.com/bestchatbot/97kdRjnWT0Lew0EI/images/handoff-live-inbox.png?fit=max&auto=format&n=97kdRjnWT0Lew0EI&q=85&s=d0a7ac6eba1b952f5105e914e8f8bc1a" alt="Conversations tab showing the Tracking and Live inbox toggle and a live conversation" width="1951" height="725" data-path="images/handoff-live-inbox.png" />
</Frame>

In the **Live inbox**, waiting conversations appear in real time, and a sound plays when a new one arrives (you can mute it). Each conversation shows a status: **Waiting**, **Active**, **Closed**, or **Slack**. A **Waiting** conversation is an async ticket: a visitor who wrote outside your [office hours](/live-chat/office-hours), or one no operator claimed in time. The bot keeps answering, you reply whenever, and BestChatBot emails the visitor when you do.

Select a conversation to see the full transcript and a reply box. Type your reply and press **Enter** to send (**Shift + Enter** adds a new line).

* **Your first reply claims the conversation.** From then on it's yours, and other operators see it as handled. If two operators open the same one, only the first to reply gets it. The other keeps their draft and a note that someone else took over.
* **Close it when you're done.** The **Close conversation** button ends the handoff, returns the visitor to the bot, and removes the conversation from every operator's live inbox. The visitor can request a human again later.

## Who Can Answer: Operators & Seats

Being an **operator** is a capability, separate from a member's role: any role can be one, and you assign it from **Members & Roles**.

* **You, the owner, are a reserved operator by default.** It works on every plan, Free included, and never uses one of your operator seats. Prefer not to take live chats yourself? Turn your own operator status off from **Members & Roles**.
* **Extra operators use operator seats.** To let teammates answer alongside you, mark them as operators too. Each one takes an **operator seat**, and how many seats you have scales with your plan. Your Members page shows seats used out of your limit.

Human handoff switches **off** only when no one on your team is set as an operator, for example if you turn your own operator status off with no paid seats in use. Then the **Talk to a human** button doesn't appear. It never switches off just because of your plan.

<Note>Use [Members & Roles](/workspace/members-roles) to assign operators, and see [Pricing Plans](/billing/pricing-plans) for how operator seats scale per plan.</Note>

## Conversation Markers

The transcript records who joined and left, so anyone reviewing it later gets the full picture:

* **Operator joined the conversation**: added when an operator sends their first reply.
* **Operator closed the conversation**: added when the handoff is closed.

In the widget, the visitor sees a simple **A team member joined** divider when a person takes over.

## AI Compose: Draft Replies from Your Knowledge Base

While you answer live, you don't have to write every reply from scratch. Next to each visitor message, an **AI compose** button (✨) appears on hover.

<Frame>
  <img src="https://mintcdn.com/bestchatbot/97kdRjnWT0Lew0EI/images/handoff-ai-compose-button.png?fit=max&auto=format&n=97kdRjnWT0Lew0EI&q=85&s=e0a4fdab3bb179ab64e13ad781f21a3f" alt="AI compose button appearing next to a visitor message in the operator inbox" width="488" height="205" data-path="images/handoff-ai-compose-button.png" />
</Frame>

Click it and BestChatBot drafts a reply to **that specific message**, grounded in your knowledge base, and drops it into your reply box. A banner reminds you it's a draft: *"AI draft — generated from the visitor's message, review before sending."*

<Frame>
  <img src="https://mintcdn.com/bestchatbot/97kdRjnWT0Lew0EI/images/handoff-ai-compose-draft.png?fit=max&auto=format&n=97kdRjnWT0Lew0EI&q=85&s=38181ba7d3ef92eb073f78c9d1d2b134" alt="Generated AI draft in the operator reply box with the review banner" width="998" height="676" data-path="images/handoff-ai-compose-draft.png" />
</Frame>

You stay in control: edit the draft (any typing clears the AI flag), then send it like any other reply. If your knowledge base can't ground an answer, the draft is a neutral, safe message instead.

<Tip>AI compose is **free**. A draft never counts against your response quota. Only the bot's own automatic replies do.</Tip>

## Answer from Slack or Discord

Prefer to handle live chats where your team already works? Route handoffs to a Slack channel or a Discord server and reply from there.

<Note>Answering from Slack or Discord is a **premium** feature on the **Pro** and **Business** plans. Dashboard handoff stays available on every plan.</Note>

<CardGroup cols={2}>
  <Card title="Connect Slack" icon="slack" href="/live-chat/connect-slack">
    Handle handoffs from a Slack channel. Your team replies in Slack, visitors keep chatting in the widget.
  </Card>

  <Card title="Connect Discord" icon="discord" href="/live-chat/connect-discord">
    Handle handoffs from a Discord server. Operators reply in a thread, visitors keep chatting in the widget.
  </Card>

  <Card title="Office Hours" icon="clock" href="/live-chat/office-hours">
    Set when your team is live, and let out-of-hours requests become async tickets.
  </Card>

  <Card title="Members & Roles" icon="users" href="/workspace/members-roles">
    Assign operators and manage who can reply to live conversations.
  </Card>
</CardGroup>
