intentic
Create your workspace
Agent Orchestration

Front Desk · put your agent on your website

One script tag on your site gives visitors a chat bubble. Each conversation opens on your fleet board, where you can watch it live and take over mid-sentence.

On this page(9 sections)

What it is

A Front Desk is an automation with a chat widget in front of it. A visitor types a question and your sandbox agent answers, streaming as it writes. Unlike a support bot bolted onto a help centre, the thing answering has your repository, your docs and your connected tools, so it answers from what is true today.

Every visitor's thread becomes one conversation on your fleet board: a card you can open, read, and type into. If a visitor asks something the agent should not answer alone, you take the thread over from the same tab.

1 · Create it

Open Automations and pick Front Desk under "Reach this agent from elsewhere", or press New automation, choose Listen (live), then Front Desk. The prompt comes prefilled with instructions that tell the agent to answer visitors' questions and refuse anything that asks it to change files or run commands. Edit it to say what your site is about.

2 · List the sites that may use it

Under Allowed sites, one origin per line. An origin is scheme and host only: no path, no trailing slash:

https://example.com
https://www.example.com

Those two are different origins. This is the commonest reason a fresh Front Desk stays silent: the site redirects one to the other, the browser lands on the one you did not list, and every request is refused. List both. The install panel names the origin it turned away and offers to add it.

3 · Paste the snippet

Press Install on the row and copy the line it gives you. It goes on any page you listed, just before </body>:

<script src="https://sandbox-<id>.<zone>/webchat/widget.js" data-automation="front-desk" defer></script>

The script carries one piece of information: which automation to talk to. The sandbox it calls is the origin the script came from, so there is no second address to keep in sync and no key to leak. The widget is about 6 kB gzipped, renders in a shadow root so neither stylesheet can reach the other, and loads no framework.

4 · Check that it landed

Reload your site, then look at the Install panel again. It lists every origin that has asked for this Front Desk and whether it was let in, so "installed, nobody has written yet" is visibly different from "the snippet never ran". A refused origin appears with an Allow button beside it.

Who can chat

  • Anyone: the default. Visitors are anonymous; the widget keeps a thread id in their browser so a follow-up continues the same conversation.
  • Google sign-in: a visitor must sign in before they can write. This uses your own Google OAuth client, not ours: Google issues a token only to an origin authorized on the client, and ours cannot list every customer's domain. Create a web client, add each allowed site as an authorized origin, and paste the client id.

Either way, the visitor never holds a credential for your sandbox. The only routes they can reach are the widget's own. A signed-in visitor's verified email travels to the agent as a fact about who is asking, never as permission to do more.

Keeping bots out

  • Built-in check: the visitor's browser solves a small puzzle once per conversation. Costs them about a second, costs a bot the same for every conversation it wants. No accounts, no keys.
  • Cloudflare Turnstile: invisible for most visitors. Needs a Turnstile widget on your Cloudflare account; the secret key stays in your sandbox and only the site key is ever sent to a browser.
  • Off: the allowed-sites list and the rate limit are then the whole boundary. Reasonable for an internal or unlisted page.

What the agent may do behind it

A Front Desk is driven by strangers, so it runs with a read-only toolbox by default: it reads files, searches the workspace and fetches a page, and it cannot run commands or write anything. That is enforced as a list of allowed tools on the automation, not asked for in the prompt, so an instruction smuggled into a question has nothing to reach.

On top of that, each visitor thread runs in its own throwaway git worktree. There is a per-conversation rate limit and a daily message ceiling you can set, and turning on Require my approval holds every wake for you instead of answering.

Good to know

  • The widget loads from your sandbox, so while the sandbox is off the launcher does not appear on your site.
  • A visitor's thread keeps its conversation for a day of quiet, then the next message starts a fresh one.
  • A reply written later still arrives. An approval-gated desk tells the visitor a human will look, and closes the connection: nothing can be streamed to a browser while the answer waits on you. So the answer is queued instead, and the widget collects it the next time that visitor loads a page carrying it, with a mark on the launcher to say so. The same is true of anything you type yourself with Write as agent on the conversation: it reaches the visitor, not just the transcript. A queued reply waits a month, and a visitor who never comes back never reads it.

Type to search every page, in the docs and the API reference.