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

# Set up human handoff

> Connect Webless conversations to Slack, Microsoft Teams, or Webex Contact Center.

Human handoff lets a visitor ask for a person from the Webless widget. The
visitor stays in the widget. Your team replies from Slack, Microsoft Teams, or
Webex Contact Center.

<Info>
  Webless carries the transcript and page context into the provider, then sends
  human replies back to the same visitor conversation.
</Info>

## How it works

```mermaid theme={null}
flowchart LR
  visitor["Website visitor"] --> widget["Webless widget"]
  widget --> handoff["Webless handoff connection"]
  handoff --> slack["Slack"]
  handoff --> teams["Microsoft Teams"]
  handoff --> webex["Webex Contact Center"]
  slack --> widget
  teams --> widget
  webex --> widget
```

## Before you start

You need:

* Admin access to the Webless Console workspace.
* Permission to install or approve apps in the provider.
* A destination for new handoffs: a Slack channel, Teams channel, or Webex
  Contact Center LiveChat target.
* One test visitor conversation to verify the full round trip.

| Provider             | Destination                            | Admin usually needed                            |
| -------------------- | -------------------------------------- | ----------------------------------------------- |
| Slack                | Workspace channel                      | Slack workspace admin or approved app installer |
| Microsoft Teams      | Team channel                           | Microsoft Teams tenant admin                    |
| Webex Contact Center | LiveChat asset, domain, queue, or flow | Webex Contact Center admin                      |

## Configure Webless

Open your site or index in Webless Console, then select **Human Handoff**. Turn
on setup mode, choose where humans reply, and complete the provider steps.

<img src="https://mintcdn.com/webless/OJOt-H-MTTxLZfpb/images/human-handoff-console-setup.png?fit=max&auto=format&n=OJOt-H-MTTxLZfpb&q=85&s=ab38ee3741914c725d8622864571708e" alt="Human Handoff setup in Webless Console" width="1260" height="880" data-path="images/human-handoff-console-setup.png" />

<Steps>
  <Step title="Enable human handoff" icon="toggle-right">
    Turn on **Human Handoff** for the widget. Visitors only see the human option
    after a provider is connected.
  </Step>

  <Step title="Choose a provider" icon="plug">
    Select **Slack**, **Microsoft Teams**, or **Webex Contact Center**.
  </Step>

  <Step title="Complete the provider setup" icon="list-checks">
    Finish each setup step until Console shows the provider as connected.
  </Step>

  <Step title="Run a real test" icon="send">
    Start a widget conversation, ask for a human, reply from the provider, and
    confirm the visitor receives the reply in the widget.
  </Step>
</Steps>

## Slack

Use Slack when your team handles visitor conversations from a workspace channel.

### What you need

* A Slack workspace.
* Permission to install the Webless Slack app.
* A public channel, or a private channel where the Webless app has been invited.

### Setup

<Steps>
  <Step title="Connect Slack" icon="message-square">
    In **Human Handoff**, choose **Slack** and click **Connect Slack**.
  </Step>

  <Step title="Approve the Webless app" icon="shield-check">
    Slack opens an authorization screen. Select the correct workspace and allow
    the Webless app.
  </Step>

  <Step title="Choose the destination channel" icon="hash">
    Pick the channel that should receive new handoff conversations. For private
    channels, invite the Webless app to the channel first.
  </Step>

  <Step title="Confirm setup" icon="check-circle">
    Console should show the Slack channel and mark the setup steps complete.
  </Step>
</Steps>

<img src="https://mintcdn.com/webless/OJOt-H-MTTxLZfpb/images/human-handoff-slack-configured.png?fit=max&auto=format&n=OJOt-H-MTTxLZfpb&q=85&s=42275594a0f2119d15ec04604d37f039" alt="Slack channel selected for Human Handoff" width="1550" height="632" data-path="images/human-handoff-slack-configured.png" />

<Tip>
  If your workspace restricts app installs, use **Invite admin** from Console so
  the right Slack admin can finish authorization.
</Tip>

## Microsoft Teams

Use Microsoft Teams when agents or teammates work from a team channel. A Teams
tenant admin must install or approve the Webless app before the channel can
receive handoff requests.

### What you need

* Microsoft Teams tenant admin access.
* The target team and channel.
* The setup code shown in Webless Console.

### Setup

<Steps>
  <Step title="Start Teams setup" icon="message-square">
    In **Human Handoff**, choose **Microsoft Teams** and click **Connect
    Teams**. Webless generates a setup code and app package instructions.
  </Step>

  <Step title="Install the Webless app" icon="package-plus">
    In Teams admin center, upload or approve **Webless Handoff**, then add it to
    the target team.
  </Step>

  <Step title="Verify the channel app" icon="bot">
    In the target channel, open **Agents and bots**. You should see **Webless
    Handoff** in the app list.
  </Step>
</Steps>

<img src="https://mintcdn.com/webless/OJOt-H-MTTxLZfpb/images/human-handoff-teams-agents.jpg?fit=max&auto=format&n=OJOt-H-MTTxLZfpb&q=85&s=3ffa9233cb3913f11c6af4404a5b81ed" alt="Webless Handoff installed in Microsoft Teams Agents and bots" width="430" height="680" data-path="images/human-handoff-teams-agents.jpg" />

<Steps>
  <Step title="Connect the channel" icon="square-terminal">
    In the target channel, mention the bot and send:

    ```text theme={null}
    @Webless Handoff connect YOUR_SETUP_CODE
    ```

    Replace `YOUR_SETUP_CODE` with the current code from Webless Console.
  </Step>

  <Step title="Send a test handoff" icon="send">
    Trigger a handoff from the widget and reply from Teams. The reply should
    appear in the visitor's Webless widget.
  </Step>
</Steps>

<Warning>
  The setup code connects one Webless handoff configuration to one Teams
  destination. Do not share it outside the admin or teammate completing setup.
</Warning>

## Webex Contact Center

Use Webex Contact Center when routing, business hours, agent assignment,
transfers, and closeout should stay in Webex.

Webless does not replace Contact Center routing. Webless creates the bridge from
the widget into Webex, then Webex owns the contact-center workflow.

### What you need

* Webex Contact Center admin access.
* Webex digital channels, Webex Connect, or Engage enabled for your tenant.
* A LiveChat asset for the website.
* A website domain added to that LiveChat asset.
* A Contact Center queue, entry point, team, or flow target for Webless
  handoffs.
* Agents who can accept and reply to the queued task.

<Info>
  For production, your Webex admin authorizes the Webless service app. You do
  not need to create a separate Webex developer service app unless Webless
  support asks you to for a sandbox test.
</Info>

### Setup

<Steps>
  <Step title="Authorize Webless" icon="shield-check">
    In **Human Handoff**, choose **Webex Contact Center** and authorize the
    Webless service app from a Webex admin account.
  </Step>

  <Step title="Confirm tenant and region" icon="building-2">
    Confirm the Webex tenant and region that should receive handoffs.
  </Step>

  <Step title="Create or select the LiveChat asset" icon="messages-square">
    In Webex Contact Center, use the LiveChat asset that represents the website
    where the Webless widget runs.
  </Step>

  <Step title="Add the website domain" icon="globe-2">
    Add the exact website host to the LiveChat asset, for example
    `example.com` or `support.example.com`. Do not include `https://` or a path.
  </Step>

  <Step title="Map the Contact Center target" icon="route">
    Map the LiveChat asset to the queue, entry point, team, or flow that should
    receive Webless handoffs.
  </Step>

  <Step title="Save the target in Webless" icon="check-circle">
    Return to Console and select the Webex target. The setup steps should show
    as complete.
  </Step>
</Steps>

The domain step is required. If the website domain is missing or does not match
the visitor page, Webex can reject the conversation before an agent ever sees it.

<img src="https://mintcdn.com/webless/OJOt-H-MTTxLZfpb/images/human-handoff-webex-website-domain.png?fit=max&auto=format&n=OJOt-H-MTTxLZfpb&q=85&s=80205e08068cb0d5e769bfab791b6960" alt="Webex Contact Center website domain settings" width="1512" height="771" data-path="images/human-handoff-webex-website-domain.png" />

The Webless setup screen separates what Webless needs from what should remain in
Webex Contact Center.

<img src="https://mintcdn.com/webless/OJOt-H-MTTxLZfpb/images/human-handoff-webex-requirements.png?fit=max&auto=format&n=OJOt-H-MTTxLZfpb&q=85&s=373bf7c400801fef13587f16d76ee251" alt="Webex handoff requirements in Webless Console" width="1564" height="404" data-path="images/human-handoff-webex-requirements.png" />

## Test checklist

Before you turn handoff on for a production page, verify:

* The visitor sees the human handoff option in the Webless widget.
* The provider receives the handoff with transcript and page context.
* A human reply from the provider appears back in the widget.
* Follow-up visitor messages continue to reach the provider.
* Closing or resolving the provider conversation behaves as expected.
* The destination is owned by the right team.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Visitors do not see human handoff" icon="eye-off">
    Confirm handoff is enabled in Webless Console and that the provider
    connection is active.
  </Accordion>

  <Accordion title="Slack does not receive handoffs" icon="triangle-alert">
    Confirm the Webless Slack app is installed in the workspace. For private
    channels, also confirm the app has been invited to the selected channel.
  </Accordion>

  <Accordion title="Slack authorization fails" icon="shield-alert">
    Make sure you selected the correct workspace and that your Slack account can
    install apps. If app installs are restricted, invite a Slack workspace admin
    from Console.
  </Accordion>

  <Accordion title="The Teams bot does not appear in a channel" icon="bot-off">
    Ask a Teams admin to confirm **Webless Handoff** is uploaded, allowed, and
    added to the target team. Then open **Agents and bots** in the channel and
    search for **Webless Handoff**.
  </Accordion>

  <Accordion title="The Teams setup command does not connect" icon="terminal">
    Make sure the message mentions `@Webless Handoff` and includes the current
    setup code from Webless Console.
  </Accordion>

  <Accordion title="Webex accepts setup but no agent task appears" icon="message-square-warning">
    Confirm the LiveChat asset has the exact website domain, the Contact Center
    target is mapped to a live queue or flow, and at least one agent can receive
    that task type.
  </Accordion>

  <Accordion title="Webex reports the domain is invalid" icon="globe-2">
    Open the LiveChat asset website settings and add the exact host where the
    Webless widget runs. Use `example.com`, not `https://example.com/page`.
  </Accordion>
</AccordionGroup>
