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

# Human Handoff

> Transition complex conversations from AI to human agents

Not every conversation can be handled by AI. **Human Handoff** ensures that your customers always have access to a real person when needed.

## Triggering a Handoff

### User Request

Users can trigger a handoff by asking for a "human", "real person", or "agent".

### AI Trigger

The AI can be instructed to trigger a handoff if it detects:

* High user frustration.
* Complex technical issues.
* High-value sales opportunities.

## How it works

1. **Request** — The handoff is triggered (by the user or by the AI following your instructions).
2. **Availability** — The system checks whether your team is **in schedule / online** for live chat, or whether you use **ticket-only** or **never available** paths.
3. **Routing** — If live chat is available, **online** agents get a notification in the **Live Chat** panel. If not, the visitor sees your **offline** or **ticket** flow (email capture, ticket id, etc.).
4. **Acceptance** — For live chat, an agent **accepts** the conversation and the AI pauses for that thread.
5. **Conversation** — The human speaks with the visitor in the **widget**, or continues over **email / ticket**, depending on channel and configuration.

## Configuration

Open the **Agent Editor** for your chatbot and click on the **Handoff** tool to configure it.

### Enable/Disable

Turn handoff on or off for each agent individually.

### Instruction

Customize the instruction that tells the AI when to trigger a handoff (e.g., "Offer a handoff if the user asks for a human or if the issue is too complex to resolve").

### Offline Message

Set a message to show when no human agents are available:

> "All our agents are currently offline. Would you like to open a ticket instead?"

### Lead Capture

When no agents are online, the handoff tool can capture the user's contact information:

* **Lead Capture Prompt**: The message asking for their info (e.g., "I'd love to have someone follow up with you. Could you share your email?").
* **Success Message**: Confirmation after they provide details (e.g., "Thanks! A team member will reach out shortly.").

## Availability Schedule

Configure when your team is available for live chat. The system uses this schedule to determine whether to show agents as "available" or use the offline message.

<Steps>
  <Step title="Open Handoff Settings">
    In the Agent Editor, click the **Handoff** tool.
  </Step>

  <Step title="Set Timezone">
    Enter your team's timezone.
  </Step>

  <Step title="Configure Weekly Schedule">
    For each day of the week:

    * **Enable/Disable** the day.
    * Set **start** and **end** times.
    * Add **multiple time slots** for split shifts (e.g., 9 AM–12 PM and 2 PM–6 PM).
  </Step>
</Steps>

<Tip>
  Use the **Copy to other days** feature to quickly apply the same schedule across multiple days.
</Tip>

### Never Available Mode

If you want to completely disable live availability (but still allow ticket-based handoff), enable the **Never Available** toggle. The offline message and lead capture will always be shown.

### Ticket-only mode (async support)

Some teams prefer **not** to promise a live chat window. With **ticket-only** style configuration, when a customer asks for a human the flow can:

* Collect **email** (and context already in the thread).
* Issue a clear **ticket id** (e.g. `TKT-0001`) so the customer knows they are in the queue.
* Let your team respond **by email** or from the **Tickets** area in the dashboard when they are ready—without staying online in the widget.

Use this when your support model is **async** (email-first or backlog-driven) instead of real-time chat. Combine it with your **availability schedule** so outside business hours visitors automatically get the ticket path instead of waiting for a live agent.

See also [Tickets](/tickets).

### Dashboard notifications

When handoffs or tickets need attention, agents using the dashboard can receive **in-app notifications** (for example: new ticket, reopened ticket, assignment, or manual ticket creation). Keep the dashboard open in a pinned tab during support shifts if your workflow relies on these alerts.

## FreshChat Integration

If you use FreshChat, handoff conversations can be routed there instead of the built-in live chat:

1. Configure your FreshChat credentials in **Settings** → **Integrations** (see [Integrations](/integrations)).
2. In the Handoff tool settings, enable the **FreshChat** toggle.
3. Handoff conversations will be created in your FreshChat workspace.
