Set it up
1
Create a widget embed
An Owner, Administrator or Editor creates one embed per site.
- Console
- API
- Open Operations → Widget embeds and select New embed.
- Enter a Name, choose the Assistant that should answer, and list your site under Allowed origins, one per line. Only an active assistant can be chosen.
- Select Create embed. The embed appears in the list with its Embed snippet, which contains its widget key (
arukz_wk_…).
2
Ask for your origin to be enabled on the deployment
Widget requests must be allowed by two allowlists: your embed’s own list, and a
deployment-wide list set by whoever operates your MITHUNAI deployment. Both start empty. Ask your
MITHUNAI administrator to add your site’s origin to the deployment-wide list.
3
Add the snippet to your site
In Operations → Widget embeds, select Copy beside the embed’s Embed snippet and paste it, unchanged, before the closing The snippet can be copied again at any time, so losing it never orphans an embed. If you created the embed with the API, build the same snippet from its
</body> tag on every page that should show the widget. It looks like this:widget_key.4
Test it
Open your page, select the launcher and ask a question your content covers. If the launcher does not appear, open the browser console: a misconfigured widget logs one message explaining what is wrong and renders nothing on your page.
Configuration options
Colours, logo and product name come from your organisation’s branding, so one snippet stays correct when you rebrand.
The widget renders inside a shadow root, so your site’s styles do not change it and its styles do not leak onto your page. It is a non-modal panel: it moves focus in when opened, returns focus to the launcher when closed, closes on Escape, and never traps keyboard focus or locks page scrolling.
Allowed origins
An origin is a scheme, host and optional port, such ashttps://docs.example.com.
- Exact match only. There is no wildcard.
https://example.comdoes not matchhttps://www.example.com; list each one. - No trailing slash or path.
https://docs.example.com/is invalid. - Empty means nowhere. An embed with no allowed origins works on no site.
Origin it likes, which is why the widget key grants so little on its own.
Update the list at any time from Operations → Widget embeds or with Update a widget deployment. Sending a new list replaces the old one.
The widget key is public by design
The widget key sits in your page’s HTML where anyone can read it. That is expected: it is not a password and carries almost no authority. Holding it lets someone:- start a conversation with the one assistant the embed names,
- ask questions in a conversation they started,
- read back their own conversation.
Never put an API key (
arukz_sk_…) in a web page. API keys are secrets. The widget refuses one,
but the value is still published in your page source. If this has happened, revoke the
key immediately.Visitor conversations
Each conversation belongs to the browser tab that started it:
Conversations deliberately do not survive a closed tab. Public pages are often read on shared computers, and remembering a conversation would show the next person what the previous visitor typed.
Revoke an embed
Revoke an embed from Operations → Widget embeds or with Revoke a widget deployment. It stops working on the next request, and revocation is permanent. To move a site to a different assistant, create a new embed, update your snippet, then revoke the old one. An embed’s assistant cannot be changed after creation.Limits
- Each embed has its own request budget of 20 requests per minute, separate from your API traffic. Over budget, requests receive
429with aRetry-Afterheader. - If the rate-limiting service is unavailable, widget requests are refused rather than served without limits.
Build your own widget
To build a custom interface instead, call the public widget endpoints from the browser with the widget key and visitor token.If the widget does not appear
A launcher that never renders is nearly always one of four things: the host page’s origin is not in the embed’s allowed origins, the key does not start witharukz_wk_, the snippet was edited after it was copied, or the embed has been revoked. The browser console names which. Troubleshooting works through each, including the case where the widget appears but every question fails.