When to use this
- “Where’s my order?” arrives faster than your support team can answer it. An agent on the tracking page handles the status question at the moment the customer has it.
- Your tracking page already gets the traffic. The customer is looking at the delivery; the chat sits next to it rather than in an email thread.
- You want a specific agent, not a general one. The widget talks to a custom agent you built — your instructions, your knowledge, your tone.
What it can and can’t do
Embedded chat is read-only, always. That isn’t a setting you can loosen: embedded conversations run on a read-only footing regardless of the agent’s own execution mode, and every write action is blocked before it runs.An agent set to auto-execute in the Portal is still read-only when someone reaches it through the widget. Embedding an agent never widens what it can do.
How it works
Three pieces, and the one that matters is the third:- A snippet on your page registers a
<nash-agent>element where you want the chat to appear. - Nash serves the chat itself in an iframe, so the widget’s styling stays isolated from your page and yours from it.
- Your backend mints the token. Each conversation needs a short-lived token, minted server-to-server with the agent’s embed secret. The secret stays on your server and never reaches the browser.
Set it up
1
Open the agent's Embed tab
Go to the custom agent in the Portal and open Embed, alongside Overview and Sessions.
2
List the domains allowed to load it
Add each host that may embed this agent. A wildcard covers subdomains —
*.example.com — and an exact host covers just that one.3
Generate the embed secret
Nash shows the secret once, at generation. Copy it into your backend’s secret storage then; if you lose it, rotate it rather than hunting for it. Rotating invalidates the old secret immediately.
4
Add a token endpoint to your backend
Stand up an endpoint that exchanges the embed secret for a short-lived token, and have it decide who’s allowed to chat and about which order. This is where your own authentication lives — a visitor who isn’t signed in to your site shouldn’t get a token.
5
Paste the snippet
Copy the install snippet from the Embed tab, point its token-endpoint attribute at the endpoint you just built, and drop it into your page. The preview beside the controls renders the same widget your customers will see.
Scoping a conversation to one customer
Your token endpoint decides which order or delivery a conversation is about. Until it supplies that context, the widget starts nothing — it fails closed rather than opening a general-purpose chat on your customer-facing page. Each visitor gets their own conversation. Sessions are keyed per visitor and per agent, so two customers on the same page never see each other’s messages.What this version doesn’t do
Worth knowing before you plan around it:- Chat only. There’s no call button in the widget; voice stays a Portal-side capability.
- No history when a visitor comes back. A returning customer starts a fresh conversation rather than picking up the earlier one.
- No human handoff. The widget doesn’t route to a live agent — pair it with your existing support path for the questions it can’t close out.
FAQ
Can a visitor make the agent do something by asking the right way?
Can a visitor make the agent do something by asking the right way?
No. Read-only is enforced in two independent places — the credentials the embedded conversation runs under, and the confirmation gate that blocks every write action before it executes. Phrasing doesn’t get around either one.
Does the embed secret ever reach the browser?
Does the embed secret ever reach the browser?
No. The browser only ever holds a short-lived token your backend minted. The secret stays server-side, and Nash shows it to you once, when you generate or rotate it.
What happens if someone copies my snippet onto their own site?
What happens if someone copies my snippet onto their own site?
The domain allowlist you set on the Embed tab is checked when the widget starts a conversation, and their site would still need a token from your backend. Keep the allowlist tight and your token endpoint authenticated.
Which agents can be embedded?
Which agents can be embedded?
Custom agents your organization owns. Nash-managed global agents can’t be embedded, and configuring the Embed tab needs more than view-only access to the agent.
Related
Custom agents
Build the agent you want to embed — its instructions, scope, and knowledge.
Channels: Slack, SMS & voice
The other places Nash shows up, and the ways it reaches people for you.
Guardrails & confirmations
How Nash decides what runs automatically and what waits for approval.
Live-tracking embed
Embed the tracking page the widget most often sits beside.