> For the complete documentation index, see [llms.txt](https://oodlz-ai-studio.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://oodlz-ai-studio.gitbook.io/docs/inbound-agent/every-channel/website-widget.md).

# Website Widget

The web chat surface — text and voice — wired into the same inbound agent as every other channel.

> **A chat box on the website, backed by the same agent as the DMs and the voice line.**

The website widget is the chat surface served from the marketing site. It accepts text input from any visitor and optionally accepts voice input. Every message it sends ends up in the same place every other channel does — one webhook, one agent, one memory store.

## How It Works

A visitor types a message into the widget. The widget POSTs the message and the visitor's session reference to the inbound webhook with CORS headers configured for cross-origin access. From that moment the message follows the same path as a message arriving from Instagram, Facebook, LinkedIn, X, BlueSky, or a voice client. Filler phrases are stripped. Intent is classified. Posture is set. The right specialist tool is selected. Brand results are re-ranked. The reply is returned to the widget as markdown — formatted brand cards if the message was a product query, plain prose for FAQ and how-to answers.

The [voice option](/docs/inbound-agent/every-channel/voice.md) in the widget rides on the dedicated voice pipeline. Audio captured in the browser is transcribed via speech-to-text, and the transcript runs through the agent carrying the same session reference as the visitor's text turns. The response is split — full markdown for the chat panel, cleaned spoken text rendered to audio for playback.

## What You Get

* A web chat surface that reuses every piece of brand intelligence already deployed for social and voice.
* Same brand voice, same memory, same re-ranking as every other channel.
* Cross-channel continuity by default — a session that begins in the widget and continues in an Instagram DM is recognised as the same thread.
* One integration to maintain — when the catalogue updates, the widget reflects it on the next message.

## Inputs

* Visitor message text, plus an optional voice binary if the voice button was used.
* Visitor session reference — generated client-side and persisted across the visit.

## Outputs

* Markdown reply rendered inline in the widget panel.
* Audio binary plus visible markdown when the request was voice.
* Human escalation handoff when the visitor asks for a real person — confirmation shown in the widget, email sent to support and the visitor.
