Deploy your workflow as a conversational chat interface that users can interact with via a shareable link or embedded widget. Chat supports multi-turn conversations, file uploads, and voice input.
Every chat message triggers a fresh workflow execution, with the full conversation history passed in as context. Responses stream back to the user in real time.
Chat executions run against your workflow's active deployment snapshot. Publish a new deployment after making canvas changes so the chat uses the updated version.
Creating a Chat
Open your workflow, click Deploy, and select the Chat tab. You'll see the chat configuration panel:
Configure the following fields, then click Launch Chat:
| Field | Description |
|---|---|
| URL | Slug that forms the public URL, e.g. https://www.sim.ai/chat/your-slug. Lowercase letters, numbers, and hyphens only. Must be unique across all workspaces. |
| Title | Display name shown in the chat header. |
| Output | Output fields from your workflow blocks returned as the chat response. At least one must be selected. |
| Welcome Message | Greeting shown before the user sends their first message. Defaults to "Hi there! How can I help you today?". |
| Access Control | Controls who can access the chat. See Access Control below. |
Output Selection
The output dropdown groups available fields by block. For an Agent block, you can choose from content, model, tokens, toolCalls, providerTiming, and cost. In most cases, selecting content from the final Agent block is all you need — it streams the agent's text response directly to the user.
Access Control
| Mode | Description |
|---|---|
| Public | Anyone with the link can chat — no authentication required |
| Password | Users must enter a password before they can start chatting |
| Only specific email addresses or domains can access. Users verify with a 6-digit OTP sent to their email | |
| SSO | OIDC-based single sign-on (enterprise only) |
Email access: Add individual addresses (user@example.com) or entire domains (@example.com) to the Allowed emails field. Users receive a one-time 6-digit OTP to their inbox — once verified, they can chat for the duration of their session.
Password access: A password field appears when this mode is selected. Share the password with users directly; they enter it before the conversation begins.
SSO: Uses OIDC to authenticate users through your identity provider. Available on enterprise plans.
Sharing
Direct Link
https://www.sim.ai/chat/your-slugIframe
<iframe
src="https://www.sim.ai/chat/your-slug"
width="100%"
height="600"
frameborder="0"
title="Chat"
></iframe>API Submission
You can also send messages to a chat programmatically. Responses are streamed using server-sent events (SSE).
curl -X POST https://www.sim.ai/api/chat/your-slug \
-H "Content-Type: application/json" \
-d '{
"input": "Hello, I need help with my order",
"conversationId": "optional-conversation-id"
}'const response = await fetch('https://www.sim.ai/api/chat/your-slug', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
input: 'Hello, I need help with my order',
conversationId: 'optional-conversation-id'
})
});
// Response is an SSE stream
const reader = response.body?.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader!.read();
if (done) break;
console.log(decoder.decode(value));
}With File Uploads
curl -X POST https://www.sim.ai/api/chat/your-slug \
-H "Content-Type: application/json" \
-d '{
"input": "What does this document say?",
"files": [{
"name": "report.pdf",
"type": "application/pdf",
"size": 1048576,
"data": "data:application/pdf;base64,..."
}]
}'Protected Chats
For password-protected chats, include the password in the request body:
curl -X POST https://www.sim.ai/api/chat/your-slug \
-H "Content-Type: application/json" \
-d '{ "password": "secret", "input": "Hello" }'For email-protected chats, authenticate with OTP first:
# Step 1: Request OTP — sends a 6-digit code to the email address
curl -X POST https://www.sim.ai/api/chat/your-slug/otp \
-H "Content-Type: application/json" \
-d '{ "email": "allowed@example.com" }'
# Step 2: Verify OTP — save the Set-Cookie header for subsequent requests
curl -X PUT https://www.sim.ai/api/chat/your-slug/otp \
-H "Content-Type: application/json" \
-c cookies.txt \
-d '{ "email": "allowed@example.com", "otp": "123456" }'
# Step 3: Send messages using the auth cookie from Step 2
curl -X POST https://www.sim.ai/api/chat/your-slug \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{ "input": "Hello" }'Troubleshooting
Chat returns 403 — The deployment is inactive. Open the Deploy modal and re-deploy the workflow.
"At least one output block is required" — No output field is selected in the Output dropdown. Open the Deploy modal, go to the Chat tab, and select at least one output from a block.
OTP email not arriving — Confirm the email address is on the allowed list and check spam folders. OTP codes expire after 15 minutes and can be resent after a 30-second cooldown.
Chat not loading in iframe — Check your site's Content Security Policy allows iframes from sim.ai.
Responses not updating after workflow changes — Chat uses the active deployment snapshot. Publish a new deployment from the Deploy modal to pick up your latest changes.