Chat
Turn a workflow into a chat for your website, with a test link before you deploy.
The Chat trigger turns a workflow into a chat your visitors can use, on a Scrydon-hosted page or inside your own website. Each message a visitor sends runs the workflow once. A Chat Reply block sends the answer back.
Build it
- Add a Chat trigger. A workflow with a Chat trigger has no other trigger.
- Add the blocks that work out the answer, for example a Knowledge block and an Agent block. Use
<chat.message>for the visitor's message and<chat.history>for the earlier turns (<chat.sessionId>is the visitor's session id).<chat.history>is a list of{role, content}turns, oldest first, that Scrydon loads from the conversation itself; a visitor cannot send it. To let an Agent answer in context, reference both in its message, for exampleConversation so far: <chat.history>followed byQuestion: <chat.message>. - End with a Chat Reply block. Its message is what the visitor sees. The first Chat Reply the run reaches answers; the run carries on after it.
- Click Deploy (it reads Versions once everything is deployed), open Execution settings, pick the environment and choose a service account under Run as. Each environment has its own. A Live URL always runs as that account, never as you, and a workflow without one cannot be deployed or promoted. The Test URL runs as that account too or, while none is chosen, as you. The Run as menu beside the toolbar's Run button changes only one manual run.
The Chat trigger's settings are Title, Welcome message, Suggested questions, Theme colour, Avatar (one or two characters, or an emoji), Fallback message (shown when a run ends without reaching a Chat Reply) and History depth (how many earlier messages the run receives: 0 to 50, default 10). Below them the trigger's panel has the interface's own settings: the Interface on switch, Share, Access, Limits and Conversations.
The URL
Chat lives under the agentic app's public URL, so its shape depends on your deployment's routing mode:
| Routing mode | Chat URL |
|---|---|
| Subpath (default) | https://app.example.com/agentic/chat/<identifier> |
| Subdomain | https://agentic.example.com/chat/<identifier> |
The /agentic prefix in subpath mode is part of the address. Copy the URL from the Share section rather than building it by hand. The identifier is a random string generated by the server; it cannot be guessed, and for a link without a password, possessing the URL is the access.
Try it before you deploy
When the workflow is saved, the trigger's panel shows a Test URL under Share. It runs your current draft, as the Run As account (as you while none is chosen), with the same rules a visitor gets. Run as you, a test chat's replies carry no citations: citations are read as the service account. Only people signed in to Scrydon with edit access to the workflow can open it. Open test chat opens it in a new tab. Test conversations are marked as tests in Conversations.
The panel first says it is creating the Test URL. If that takes longer than about a minute, it says the Test URL was not created and offers Try again; reload the editor if it still does not appear. A workflow that belongs to no environment (a workspace automation) never gets an interface, so it has no Test URL: build the chat in a workflow that belongs to an environment.
Go live
A Live URL belongs to an environment. Promote the workflow to the next environment and deploy it there: that environment's copy gets its own Live URL, pinned to the deployed version, and its panel shows it as Live URL, version N. Deploying the editable workflow does not publish anything. Re-promoting keeps the URL, so embeds keep working. An organization with a single environment has a Test URL and no Live URL. Live URLs in other environments lists the other environments' copies; change a Live URL's password, origins and limits from that environment's copy. In an environment you cannot edit, such as production, the editor does not open: the workflow page's Share tab shows the Live URL, the embed snippets and whether Interface on is set, and Monitor shows the Live URL on the workflow's trigger line, with a copy button.
If a trigger block's kind ever changes (for example when you roll back to a version that held a Form trigger where the Chat trigger is now), Scrydon replaces its interface. The replacement has a new identifier, so the URL changes and visitors are signed out, and every conversation of the old interface is deleted with it. Your settings are carried over. The editor itself never changes a block's kind.
Put it on your website
The Embed snippets appear on a Live URL.
- Link to the hosted page.
- Iframe: copy the snippet from the panel.
- Chat bubble: paste the launcher script to get a chat button.
- Your own UI: use the interface client.
<script src="https://app.example.com/agentic/embed/chat.js" data-interface="<identifier>" async></script>The script adds a chat button. For a page that is not in English, set data-label-open (the button's accessible name, default "Open chat") and data-title (the chat frame's title, default "Chat"). Escape closes the chat and returns focus to the button, whether focus is on your page or inside the chat. The chat page asks the launcher to close with a message that carries no data, and the launcher honours it only from its own chat frame.
<iframe src="https://app.example.com/agentic/chat/<identifier>?embed=1" title="Chat"
width="400" height="600" style="border:0"
sandbox="allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox" referrerpolicy="strict-origin-when-cross-origin"></iframe>Add your site's origin (for example https://www.example.com) to the interface's Allowed origins. Other sites cannot frame the chat or call its API. Rules:
- Origins start with
https://; only the bare origin matters, so a path or query is dropped. - Wildcards (
*), includinghttps://*.example.com, are never accepted. List each origin. - The host must be an ordinary public hostname: private, loopback and cloud-metadata addresses are rejected, as are ports the URL validator blocks.
- At most 50 origins, 512 characters each.
- An empty list means only Scrydon itself can frame the page.
A Test URL cannot be embedded on another site.
What visitors can read and write
A visitor's run reads only documents explicitly labelled with your classification scheme's lowest label (for example PUBLIC). An unlabelled document is never used, whatever the knowledge base's default label. The Share section names the label, and warns you when a Knowledge block in the workflow has no document a visitor may read.
A visitor's run cannot write to a knowledge base, memex or storage, so nothing a visitor sends is saved into your organization's knowledge or files:
- A Knowledge block set to Add Data, or a Storage block set to Write File or Delete File, stops the workflow from being deployed or promoted with a Chat or Form trigger. Set the block to a read instead.
- An Agent block is not offered the tools that write to a knowledge base or storage in a visitor's run. If you selected one of them yourself, the Agent stops with the reason.
- The Workflow Executor tool is not available in a visitor's run, because the workflow it starts would not follow these rules. Use a Workflow block to call another workflow: it runs under the same rules.
Access and limits
- Password: optional, set under Access (8 to 256 characters). Changing or removing it signs every visitor out. A password-protected interface needs https on both the embedding page and the Scrydon host: the sign-in cookie is
SameSite=None; Partitioned, which browsers reject over plain http. - Limits (defaults, editable under Limits): Longest message (characters) 2,000 (1 to 20,000), Messages per conversation 50 (1 to 1,000), Messages per day, all visitors 1,000 (1 to 1,000,000; the allowance refills every 24 hours), Keep conversations for (days) 30 (1 to 365).
- Conversations: Open conversations lists them newest first. Show visitors, tests or all, read a transcript, and use Erase conversation when a visitor asks. Erasing deletes the messages and removes the visitor's text from the runs that answered it. A conversation whose run is still in progress cannot be erased until the run ends. A visitor whose conversation was erased, or expired, starts a new one with their next message.
- Retention: a conversation is erased the set number of days after its last message. Expired conversations are purged hourly, so one can outlive its expiry by up to an hour. A conversation whose run is still in progress is kept until the run ends: that means running, or waiting at an approval nobody has answered.
When a visitor is refused
| Code | Meaning |
|---|---|
RATE_LIMITED | Too many requests: more than 120 a minute reached the interface, or more than 10 a minute came from one IP address; Retry-After says when to try again |
TURN_LIMIT | The conversation reached its turn limit |
BUDGET_EXHAUSTED | The interface reached its daily budget |
UNAVAILABLE | The deployed version cannot run right now |
UNAUTHORIZED | The password is missing or wrong |
A visitor whose browser blocks third-party cookies can still chat inside your site; each message then starts a new conversation.
Troubleshooting
| Symptom | Likely cause |
|---|---|
| The iframe shows a blank page or a browser frame-blocked error | The site is not in Allowed origins, the page is not served over https, or you embedded a Test URL. Only a Live URL can be embedded. |
The chat says it cannot reach the assistant, and your own code sees NETWORK_ERROR | From another site, an origin missing from Allowed origins looks like a network failure, because the refusal carries no cross-origin grant. Add the origin. |
| Inside the iframe, the password is accepted and the page then says the browser blocks the sign-in | The visitor's browser keeps no cookie for an embedded page (it blocks third-party cookies, or does not support partitioned cookies). The page offers an Open in a new tab link, where the chat works as a standalone page. |
| The URL answers "This page does not exist." | The identifier is wrong, Interface on is off, or the interface was replaced. On a subpath deployment, also check the /agentic prefix. For a Test URL: you are not signed in to Scrydon in that browser, you lack edit access, or the workflow runs as a service account you may not use, which the editor says beside the Test URL. |
| The page says "This page is not available right now." | The deployed version cannot run, or the workflow no longer has a working Chat trigger. |