Sim

Form Deployment

Deploy your workflow as an embeddable form that users can fill out on your website or share via link. Form submissions trigger your workflow with the form trigger type.

Overview

Form deployment turns your workflow's Input Format into a responsive form that can be:

  • Shared via a direct link (e.g., https://sim.ai/form/my-survey)
  • Embedded in any website using an iframe

When a user submits the form, it triggers your workflow with the form data.

Forms derive their fields from your workflow's Start block Input Format. Each field becomes a form input with the appropriate type.

Creating a Form

  1. Open your workflow and click Deploy
  2. Select the Form tab
  3. Configure:
    • URL: Unique identifier (e.g., contact-formsim.ai/form/contact-form)
    • Title: Form heading
    • Description: Optional subtitle
    • Form Fields: Customize labels and descriptions for each field
    • Authentication: Public, password-protected, or email whitelist
    • Thank You Message: Shown after submission
  4. Click Launch

Field Type Mapping

Input Format TypeForm Field
stringText input
numberNumber input
booleanToggle switch
objectJSON editor
arrayJSON array editor
filesFile upload

Access Control

ModeDescription
PublicAnyone with the link can submit
PasswordUsers must enter a password
Email WhitelistOnly specified emails/domains can submit

For email whitelist:

  • Exact: user@example.com
  • Domain: @example.com (all emails from domain)

Embedding

https://sim.ai/form/your-identifier

Iframe

<iframe
  src="https://sim.ai/form/your-identifier"
  width="100%"
  height="600"
  frameborder="0"
  title="Form"
></iframe>

API Submission

Submit forms programmatically:

curl -X POST https://sim.ai/api/form/your-identifier \
  -H "Content-Type: application/json" \
  -d '{
    "formData": {
      "name": "John Doe",
      "email": "john@example.com"
    }
  }'
const response = await fetch('https://sim.ai/api/form/your-identifier', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    formData: {
      name: 'John Doe',
      email: 'john@example.com'
    }
  })
});

const result = await response.json();
// { success: true, data: { executionId: '...' } }

Protected Forms

For password-protected forms:

curl -X POST https://sim.ai/api/form/your-identifier \
  -H "Content-Type: application/json" \
  -d '{ "password": "secret", "formData": { "name": "John" } }'

For email-protected forms:

curl -X POST https://sim.ai/api/form/your-identifier \
  -H "Content-Type: application/json" \
  -d '{ "email": "allowed@example.com", "formData": { "name": "John" } }'

Troubleshooting

"No input fields configured" - Add Input Format fields to your Start block.

Form not loading in iframe - Check your site's CSP allows iframes from sim.ai.

Submissions failing - Verify the identifier is correct and required fields are filled.

On this page

On this page

Start building today
Trusted by over 60,000 builders.
Build Agentic workflows visually on a drag-and-drop canvas or with natural language.
Get started