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

# Let visitors talk to your team

> Turn on human support, set the escalation buttons and rules, and choose whether new conversations start with the AI, with a person, by working hours, or by the visitor's choice.

Human support lets a visitor ask for a person during a conversation. When the conversation escalates, the AI stops answering and your team replies. To learn how AI mode, human mode, and escalation fit together, see [Conversations and handoff](/docs/concepts/conversations-and-handoff.md).

## Before you start

* **Plan:** any plan. See [Plans and limits](/docs/reference/plans-and-limits.md).
* **Role:** Manager or higher. See [Team members](/docs/guides/account/team-members.md).
* Decide who on your team answers escalated conversations, and when.

## Turn on human support

**1. Open Human Support**

In your chatbot's sidebar, select **Leads** > **Human Support**.

**2. Turn it on**

Under **Human Support Options**, turn on **Enable Human Support**.

**3. Save**

Select **Save Changes**.

The AI can now escalate a conversation when the visitor asks for a person. The other settings on this page stay unavailable until you turn on **Enable Human Support**. [Let the Visitor Choose](#let-the-visitor-choose-the-ai-or-a-person) also needs **Enable Human Support**.

## Set the escalation buttons

The widget can show two buttons after each AI answer. One says that the answer helped. The other asks for a person.

**1. Show the buttons**

Under **Escalation Button Settings**, turn on **Show escalation buttons after responses**. When this is off, visitors can ask for a person only by writing in the chat.

**2. Choose where the buttons go**

Turn on **Replace other suggestions with escalation buttons** to show only these two buttons. When it is off, the buttons show next to your conversation starters and follow-up suggestions.

**3. Write the button text**

In **Positive Feedback Prompt**, enter the text of the "that helped" button. In **Request Human Support Prompt**, enter the text of the button that asks for a person.

**4. Write the confirmation message**

In **Human Support Confirmation Message**, enter the message the visitor sees after they ask for a person. For example: `Your request has been forwarded to our human support team. They will respond soon.` If you use your team's hours, other messages replace it at some times. See [Connect visitors to your team during your hours](#connect-visitors-to-your-team-during-your-hours).

**5. Save**

Select **Save Changes**.

**Show escalation buttons after responses** and **Replace other suggestions with escalation buttons** apply to the website widget only. On chat channels such as Slack, Messenger, Crisp, and Freshdesk Messaging, answers that use your content show the two prompts whenever human support is on. Each integration page describes what shows on that channel. See [Integrations](/docs/integrations/overview.md).

The three fields show default text when you turn on human support. When you select **Save Changes**, SiteGPT saves that text. Do not leave a field empty. If a field is empty, the widget shows an empty button or no confirmation message.

## Tell the AI when to escalate

By default, the AI escalates in three cases: the visitor asks for a person, the situation is urgent, or the visitor is frustrated after an answer that did not help.

To use your own rules:

1. Under **Escalation Policy**, write your rules in **When should the AI escalate?** Use plain language. The limit is 2,000 characters.
2. Select **Save Changes**.

Your rules replace the default triggers completely. Include every case where you want a person, including "the visitor asks for a person" if you still want it.

Example:

```text theme={null}
Escalate only when the visitor explicitly asks to speak with a human, or asks about pricing, demos, quotes, or appointments. In all other cases, answer the question.
```

To go back to the defaults, clear the field and save.

## Choose who answers new conversations

The chat mode sets how every new conversation starts.

**1. Open Chat Modes**

In your chatbot's sidebar, select **Settings** > **Chat Modes**.

**2. Choose a mode**

Select **Always Starts New Conversation with Human**, **Always Starts New Conversation with AI**, **Follow Working Hours**, or **Let the Visitor Choose**. To set the hours, see [Answer during working hours](#answer-during-working-hours). To set the question and the buttons, see [Let the visitor choose the AI or a person](#let-the-visitor-choose-the-ai-or-a-person).

**3. Save**

Select **Save Changes**.

| Mode | What happens |
| - | - |
| **Always Starts New Conversation with AI** | The AI answers. Visitors can ask for a person. This is the default. |
| **Always Starts New Conversation with Human** | The AI does not reply. Your team answers from **Chat History**. |
| **Follow Working Hours** | During your working hours, new conversations start in human mode. Outside them, the AI answers, or your team answers later and the visitor gets an away message. |
| **Let the Visitor Choose** | On the website widget and WhatsApp, a new conversation starts with a question: does the visitor want the AI or a person? Other channels start with the AI. The question shows only while **Enable Human Support** is on. |

You can select only one of these options. When you select one and save, the others turn off. SiteGPT keeps the working hours schedule and the visitor choice text for later. One exception: if you save **Let the Visitor Choose** with **Use your team's hours** cleared, SiteGPT deletes the schedule.

With **Follow Working Hours** or **Let the Visitor Choose**, your team's hours also decide what happens when a visitor asks for a person. During the hours, the visitor waits for your team in the chat. See [Connect visitors to your team during your hours](#connect-visitors-to-your-team-during-your-hours).

The mode applies only to new conversations. To move one conversation between the AI and your team, see [Reply to visitors and take over conversations](/docs/guides/human-support/reply-and-take-over.md).

In human mode, the visitor sees a **Continue with AI** button and can switch the conversation to the AI. To lock a conversation that started in human mode, open the **…** menu at the top of the conversation in **Chat History** and select **Lock conversation**. See [Lock a conversation that your team holds](/docs/guides/human-support/reply-and-take-over.md#lock-a-conversation-that-your-team-holds).

### Answer during working hours

Use **Follow Working Hours** when your team answers chats at set times.

**1. Select Follow Working Hours**

In **Settings** > **Chat Modes**, select **Follow Working Hours**. The schedule opens below the option. A new schedule starts with Monday to Friday, 9:00 to 17:00, in the time zone of your browser.

**2. Choose the time zone**

In **Time zone**, select the time zone of your team. The page shows the current day and time in that zone.

**3. Set the hours for each day**

Under **Working hours**, select the check box of each day your team works, and set a start and an end time. A day without a check mark shows **Closed**. To add a second range on the same day, for example after a lunch break, select the plus button. A day can have up to 4 ranges. A range that ends before it starts continues into the next day, and the page shows **Ends the next day**. The start time is in the working hours. The end time is not. For example, with 09:00 to 17:00, a message at 17:00 is outside the hours. The start and end times cannot be the same. A range that continues into the next day covers the morning of that day, also when that day is closed. SiteGPT follows daylight saving time in your time zone.

**4. Write the message for a visitor who asks for a person**

In **When a visitor asks for a person during these hours**, enter the message that a visitor gets when they ask for a person during your hours. If you leave it empty, the visitor gets "Thanks! Someone from our team will reply here shortly." The message can have up to 2,000 characters. See [Connect visitors to your team during your hours](#connect-visitors-to-your-team-during-your-hours).

**5. Choose what happens outside working hours**

Under **Outside working hours**, select one option:

* **The AI answers**: new conversations start in AI mode.
* **Your team answers later**: new conversations start in human mode, and the visitor gets your away message.

**6. Write the away message**

In **Away message**, enter the message. The box shows for both options. SiteGPT sends the away message when a new conversation starts outside your hours with **Your team answers later**. On WhatsApp and Messenger, SiteGPT also sends it when a visitor asks for a person outside your hours, with both options. If you select **Your team answers later** and no away message is saved yet, the page fills in this text, which you can change: "Thanks for your message. Our team is offline right now and will get back to you during our working hours." With **The AI answers**, you can leave the box empty, and SiteGPT uses the same text. The message can have up to 2,000 characters. Your team cannot reply to Google Chat visitors in Google Chat, so do not promise a reply in the chat.

**7. Save**

Select **Save Changes**. If the schedule has a mistake, the page shows **Fix the working hours below, then save.** and lists each mistake. It does not save.

How working hours work:

* SiteGPT decides how a conversation starts when the visitor sends the first message, at that time in your time zone.
* The hours decide the mode of new conversations only. A conversation keeps its mode when the hours start or end.
* With **Your team answers later**, SiteGPT sends the away message when a visitor writes outside working hours in any conversation in human mode. This includes conversations that started during the hours, escalated conversations, and conversations where a team member replied. Each conversation gets the away message one time. On WhatsApp and Messenger, the away message that a visitor gets when they ask for a person outside your hours counts as that one time, unless you change the away message after that. A conversation that a team member took over gets no away message, and neither does a closed conversation.
* Working hours apply to the website widget, the API, and the chat integrations. Zendesk and Zoho SalesIQ do not use working hours. In these two tools, new conversations start with the AI or with your team as set by the last fixed option you saved, which is the AI by default. While **Let the Visitor Choose** is on, they start with the AI.
* If you later select **Always Starts New Conversation with AI**, **Always Starts New Conversation with Human**, or **Let the Visitor Choose** and save, working hours turn off. SiteGPT keeps the schedule, and it shows again when you select **Follow Working Hours**. With **Let the Visitor Choose**, the kept schedule still decides what happens when a visitor asks for a person, unless you clear **Use your team's hours**. See [Connect visitors to your team during your hours](#connect-visitors-to-your-team-during-your-hours). Setting only the chat mode to AI or human mode from the CLI, the API, or the MCP server also turns working hours off. In the MCP server, `update_sitegpt_settings` with `chatMode` set to `WORKING_HOURS` turns the saved schedule on again. See [Appearance and settings tools](/docs/developers/mcp-tools.md#update_sitegpt_settings).

**Check that it works:** Below the schedule, the page says how a conversation that starts now begins, for example "Right now, a new conversation starts with your team." Start a conversation in the widget to confirm.

#### Set working hours with API v2

Send `PATCH /api/v2/chatbots/{chatbotId}/settings/chat-mode` with a `workingHours` object. The object replaces the saved schedule as a whole.

```json theme={null}
{
  "workingHours": {
    "enabled": true,
    "timezone": "America/New_York",
    "days": {
      "mon": [{ "start": "09:00", "end": "17:00" }],
      "tue": [{ "start": "09:00", "end": "17:00" }]
    },
    "outsideHours": "AWAY",
    "awayMessage": "We are away right now. We will answer by email."
  }
}
```

* `timezone` is an IANA time zone name. Times are `HH:MM`. A day that you leave out is closed.
* `outsideHours` is `AI` (the AI answers) or `AWAY` (your team answers later). `AWAY` needs an `awayMessage`.
* `liveMessage` is the message for a visitor who asks for a person during your hours. It can have up to 2,000 characters. Leave it out or send `null` to use the default text. See [Connect visitors to your team during your hours](#connect-visitors-to-your-team-during-your-hours).
* `"workingHours": null` turns working hours off and deletes the schedule. Sending only `mode` turns working hours off and keeps the schedule.
* A `workingHours` object with `enabled: true` turns [visitor choice](#let-the-visitor-choose-the-ai-or-a-person) off.
* `enabled: false` saves the schedule and keeps working hours off. While visitor choice is on, a saved schedule is your team's hours for visitors who ask for a person.
* If you send `mode` together with `workingHours`, the schedule stays as you sent it.
* A `GET` of the section also returns `currentMode`, the mode that a new conversation gets right now. You cannot set it.
* A `GET` also returns `mode`, the fixed chat mode. Zendesk and Zoho SalesIQ use `mode`, and SiteGPT uses it when working hours and visitor choice are off.

### Let the visitor choose the AI or a person

Use **Let the Visitor Choose** when visitors who want a person should not have to talk to the AI first. This option needs human support. Turn on **Enable Human Support** first. See [Turn on human support](#turn-on-human-support).

**1. Select Let the Visitor Choose**

In **Settings** > **Chat Modes**, select **Let the Visitor Choose**. The question and the two button fields open below the option.

**2. Write the question**

In **Question**, enter the question that the visitor sees. You can add the hours of your team, for example "Our team replies Monday to Friday, 9 to 5." The question can have up to 1,000 characters. If you leave it empty, the visitor sees "Would you like to chat with our AI assistant or talk to a person?"

**3. Write the button labels**

In **AI button** and **Person button**, enter the text of the two buttons. Each label can have up to 20 characters. The two labels must be different. If you leave a field empty, the buttons show **Chat with AI** and **Talk to a person**.

**4. Set your team's hours (optional)**

To connect visitors to your team in the chat during your hours, select **Use your team's hours**. Set the time zone and the hours as for [working hours](#answer-during-working-hours). In **When a visitor asks for a person during these hours**, enter the message for a visitor who asks for a person during the hours. In **When a visitor asks for a person outside these hours**, enter the message that WhatsApp and Messenger send outside the hours. If you leave a message empty, SiteGPT uses its default text. The hours do not change how new conversations start. If a schedule is already saved, for example from **Follow Working Hours**, the check box is selected. Clear it and save to delete the schedule. See [Connect visitors to your team during your hours](#connect-visitors-to-your-team-during-your-hours).

**5. Save**

Select **Save Changes**. If the two labels are the same, the page shows "The two button labels must differ." and does not save. Upper and lower case do not make labels different.

> [!NOTE]
>
> While **Enable Human Support** is off, visitors get no question, and the AI answers. **Settings** > **Chat Modes** then shows "Human Support is off, so visitors are not asked and the AI answers. To let visitors choose a person, turn on Human Support." under the option. Select **Human Support** in that note to open the **Human Support** page.

What the visitor sees:

* **Website widget and chat link:** A new conversation shows your question below the welcome message, and the two buttons where your conversation starters usually show. The AI button hides the question for this conversation, and the visitor can type. The visitor can also type a message without a button, and the AI answers. The person button opens the same confirmation dialog as the escalation button. After the visitor confirms, the conversation goes to your team. If you set a **Human Support Confirmation Message**, the chat shows it. If you did not, the chat shows only that the conversation changed to human mode, so set one. With **Use your team's hours**, during the hours the person button connects the visitor at once, with no dialog. See [What the visitor sees](#what-the-visitor-sees). Each new conversation asks again.
* **WhatsApp:** The visitor writes first. SiteGPT does not answer the first message. It sends your question with the two buttons. If the visitor types the text of a button instead of tapping it, it counts as a tap. With **Use your team's hours**, the person button sends the message for during or outside your hours. See [Connect WhatsApp](/docs/integrations/whatsapp.md#let-the-visitor-choose-the-ai-or-a-person).
* **Other channels:** Messenger, Slack, Google Chat, Crisp, Freshdesk Messaging, Zoho SalesIQ, Zendesk, email, and the API do not ask the question. New conversations there start with the AI, also when the last fixed option you saved was **Always Starts New Conversation with Human**. In API v2, a new conversation that you create with a `mode` starts in that mode.

The person button escalates the conversation, so your team gets the usual escalation notifications. See [Get notified when a conversation escalates](#get-notified-when-a-conversation-escalates). After the visitor chooses, the conversation works as usual. For example, the visitor can still select **Continue with AI** in human mode. If you turn off **Enable Human Support** while a WhatsApp visitor has the question, a tap on the person button goes to the AI.

**Check that it works:** Make sure that **Enable Human Support** is on. Open your chatbot in a new conversation. The widget shows your question and the two buttons. Select the person button and confirm. With **Use your team's hours**, during the hours, no dialog shows. In **Chat History**, the conversation shows the **Escalated** badge.

#### Set visitor choice with API v2

Send `PATCH /api/v2/chatbots/{chatbotId}/settings/chat-mode` with a `visitorChoice` object.

```json theme={null}
{
  "visitorChoice": {
    "enabled": true,
    "question": "Would you like to chat with our assistant or talk to our team? We reply Monday to Friday, 9 to 5.",
    "aiLabel": "Chat with AI",
    "personLabel": "Talk to our team"
  }
}
```

* The first write must include `enabled`. Without it, the request fails with "Visitor choice needs enabled set to true or false."
* Only the fields that you send change. The other fields keep their saved values. `{ "enabled": true }` turns visitor choice on with the saved text, or with the default text if none is saved.
* An empty text or `null` in `question`, `aiLabel`, or `personLabel` sets the field back to the default. A `GET` returns `null` for a field that uses the default.
* `"visitorChoice": null` turns visitor choice off and deletes the text. `enabled: false` turns it off and keeps the text.
* `enabled: true` turns working hours off, unless the same request also sends `workingHours`: then what you send for `workingHours` is kept. Working hours that stay on take priority, and visitor choice does not show. So when you send the whole settings object back, set `workingHours.enabled` to `false` yourself. The same applies the other way: turning working hours on turns visitor choice off only when the request does not also send `visitorChoice`.
* Sending `mode` turns visitor choice and working hours off, unless the same request also sends them.
* If the two labels would be the same, the request fails with `400 VALIDATION_FAILED`. A label over 20 characters or a question over 1,000 characters also fails.
* While visitor choice is on, `currentMode` is `AI`. The saved `mode` does not change.

## Connect visitors to your team during your hours

When your team answers chats at set times, a visitor who asks for a person during those hours does not need to leave an email address. They wait for your team in the chat. Outside the hours, they leave a message for your team.

Your team's hours are the working hours schedule in **Settings** > **Chat Modes**:

* With **Follow Working Hours**, the schedule decides this, as well as how new conversations start. See [Answer during working hours](#answer-during-working-hours).
* With **Let the Visitor Choose**, the schedule decides this when **Use your team's hours** is selected. See [Let the visitor choose the AI or a person](#let-the-visitor-choose-the-ai-or-a-person).
* With **Always Starts New Conversation with AI** or **Always Starts New Conversation with Human**, nothing changes. A visitor who asks for a person gets the flow in [What the visitor sees](#what-the-visitor-sees).

This applies when the visitor selects the escalation button or an **Escalate** follow-up, and when they select the person button of the visitor choice. It also applies when the AI hands the conversation to your team, and when a lead form escalates it with **Auto-escalate on lead capture**.

| | Website widget and chat link | WhatsApp and Messenger |
| - | - | - |
| During your hours | The conversation goes to your team at once. No confirmation dialog shows. The chat shows your message for a visitor who asks for a person during your hours. It does not ask for an email address or show a lead form. The visitor can keep writing. If the AI hands the conversation over, the AI is told to say that someone from the team will reply in the chat, and not to ask for an email address. | SiteGPT sends your message for a visitor who asks for a person during your hours. |
| Outside your hours | The usual flow: the confirmation dialog, your **Human Support Confirmation Message**, and the request for contact details. See [What the visitor sees](#what-the-visitor-sees). | SiteGPT sends your away message (with **Follow Working Hours**) or your message for outside the hours (with **Let the Visitor Choose**). |

In every case, the conversation escalates as usual. It shows the **Escalated** badge, and your team gets the usual escalation notifications. See [Get notified when a conversation escalates](#get-notified-when-a-conversation-escalates). Answer the visitor from **Chat History**. See [Reply to visitors and take over conversations](/docs/guides/human-support/reply-and-take-over.md). On WhatsApp and Messenger, your reply goes to the person in that app. See [WhatsApp](/docs/integrations/whatsapp.md#reply-from-the-dashboard) and [Messenger](/docs/integrations/messenger.md#reply-from-the-dashboard).

SiteGPT decides once, at the moment the visitor or the AI asks for a person. A later change to your hours does not change how an earlier hand-off shows.

Other channels keep their own hand-off. Slack, Google Chat, Crisp, Freshdesk Messaging, Zoho SalesIQ, Zendesk, email, and the API send your **Human Support Confirmation Message** or their own text, at any time of day.

On WhatsApp, your team's reply reaches the visitor only within 24 hours of their last message. If your team answers a message from outside the hours more than 24 hours later, WhatsApp does not deliver the reply. See [WhatsApp](/docs/integrations/whatsapp.md#reply-from-the-dashboard).

With **Follow Working Hours**, new conversations during your hours already start with your team. The hand-off during your hours matters for conversations where the AI answers, for example a conversation that started before your hours, or after the visitor selected **Continue with AI**.

**Check that it works:** During your hours, open your chatbot in a new conversation where the AI answers, for example with the AI button of the visitor choice. Ask a question, then select the button with your **Request Human Support Prompt** text. The chat shows your message at once, with no dialog. In **Chat History**, the conversation shows the **Escalated** badge.

## Other ways a conversation escalates

* **After a lead form.** Turn on **Auto-escalate on lead capture** in **Leads** > **Leads Settings**. See [Collect leads from conversations](/docs/guides/leads/collect-leads.md#hand-the-conversation-to-your-team-after-a-lead).
* **From the visitor choice.** With **Let the Visitor Choose**, the person button at the start of a conversation escalates it. See [Let the visitor choose the AI or a person](#let-the-visitor-choose-the-ai-or-a-person).
* **From a follow-up suggestion.** A follow-up suggestion can be an escalation button. See [Escalate buttons](/docs/guides/widget/follow-up-suggestions.md#escalate-buttons).

## What the visitor sees

1. The visitor selects the escalation button, or the AI decides to escalate.
2. If the visitor selected the button, the widget asks them to confirm.
3. The chat shows that the conversation changed to human mode. Then it shows your confirmation message.
4. The chat asks for contact details if lead collection is on, or if **Pre-Chat User Details** is **Required** or **Optional**. Your team can then follow up by email. See [Collect leads from conversations](/docs/guides/leads/collect-leads.md).
5. The AI stops answering. The visitor's messages wait for your team.

During your team's hours, steps 2 to 4 are different. The widget does not ask the visitor to confirm. It shows your message for a visitor who asks for a person during your hours, not the human mode notice and your confirmation message. It asks for no contact details. See [Connect visitors to your team during your hours](#connect-visitors-to-your-team-during-your-hours).

You can change the visitor-facing texts in **Language & Region**. See [Change the widget language and text](/docs/guides/widget/language-and-text.md).

## Get notified when a conversation escalates

SiteGPT emails the chatbot owner for each escalation. To send the emails to other people, and to set up other alerts, see [Choose who gets notified](/docs/guides/human-support/notifications.md).

## Check that it works

1. Open your chatbot on your website or in the dashboard preview.
2. Ask a question. After the answer, select the button with your **Request Human Support Prompt** text, then confirm.
3. The chat shows your confirmation message. During your team's hours, it shows your message for that case, with no dialog.
4. In the dashboard, open **Chat History**. The conversation shows the **Escalated** badge and is in the **Attention** view.

To answer the visitor, see [Reply to visitors and take over conversations](/docs/guides/human-support/reply-and-take-over.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.