Skip to content
Docs
flero.ai

Form trigger

Generates a public, hosted form. Each submission fires a workflow run with the form fields as the trigger payload.

📸 Screenshot needed: triggers__form-public-link.png, Form Trigger inspector showing the list of fields configured (text, email, dropdown), the generated public form URL, a Copy button, and a "Preview form" link.


When to use it

  • Lightweight user intake (request a refund, request a demo, log a support ticket).
  • Internal-tool forms ("file an expense report").
  • Embedded forms on your marketing site.
  • One-off polls.

Anything more sophisticated (multi-step wizards, conditional fields beyond simple required-if) is probably better done in a real front-end, Flero's form is intentionally minimal.


Configuration

Form metadata

Field Notes
Form title Shown at the top of the public form page
Description Shown below the title
Submit button label Default "Submit"
Success message Shown after submission
Redirect URL Optional. If set, redirects to this URL after submit (overrides the success message).

Fields

A list of fields, each:

Field config Notes
Key The key used in $trigger, e.g. email, subject, attachment
Label Visible label
Type text, textarea, number, email, url, phone, date, time, datetime, select, multi-select, radio, checkbox, file
Required Whether the field must be filled
Default value Optional
Placeholder Optional
Validation Type-specific (regex for text, min/max for number, allowed file extensions for file)
Options For select / radio / multi-select

Access

Setting Notes
Visibility Public (anyone with the URL) or Authenticated (requires Flero login)
Allowed domains Optional. Restrict to specific email domains on authenticated forms.
Rate limit Per-IP submission rate cap
CAPTCHA Optional. Defends against bot submissions.

Trigger payload

After submission, $trigger looks like:

{
  "<fieldKey1>": "user input",
  "<fieldKey2>": 42,
  "<fileField>": {
    "filename": "receipt.pdf",
    "size": 12345,
    "contentType": "application/pdf",
    "data": "<base64-encoded>"
  },
  "_meta": {
    "submittedAt":   "2026-05-15T10:00:00Z",
    "ipAddress":     "203.0.113.5",
    "userAgent":     "...",
    "userId":        "<user uuid, if authenticated>"
  }
}

Reference fields by their Key, not their Label: {{ $trigger.email }}, {{ $trigger.subject }}.


Hosting the form

The form lives at https://app.flero.ai/forms/public/<token> (the URL is generated when you save). Anyone with the link can open it.

Options for distribution:

  • Direct link, share the URL in Slack, email, your wiki.
  • Embed, paste the embed snippet into any HTML page. Renders as an iframe.
  • Custom domain, under Workflow settings → Form → Domain, you can map the form to a subdomain you control (e.g. forms.acme.com). Requires DNS configuration.

File uploads

File fields are limited to 25 MB per file by default (admin-configurable). Files arrive as base64-encoded data in the trigger payload, useful for small attachments but inefficient for large files.

For large uploads, structure the workflow to:

  1. Form trigger collects only metadata (filename, size, content type).
  2. Workflow returns a pre-signed upload URL (e.g. S3 PUT URL).
  3. Browser uploads directly to S3.
  4. A second workflow (or a continuation of this one) processes the file from S3.

Too involved for most use cases, for receipts, screenshots, PDFs, the inline base64 path is fine.


Styling

The hosted form uses your workspace branding (logo, primary colour) automatically. For more control:

  • Custom CSS under workflow settings → Form → Appearance.
  • Custom theme for organisations on the Enterprise plan.

Activating the form

  1. Save the workflow.
  2. Set status to Active.
  3. Share the URL.

While the workflow is draft or inactive, the form URL shows a "This form isn't available" message.


Tips & gotchas

  • The trigger fires once per submission, regardless of fields. A 50-field form is one run, not 50.
  • CAPTCHAs cost money for high-traffic forms, you pay for each verification. Disable for low-risk internal forms.
  • Field keys must be valid identifiers, letters, digits, underscores, no spaces. Use the auto-generated key from the label as a starting point.
  • Don't put secrets in field defaults, defaults are visible in the form HTML.
  • Form responses appear in the execution explorer like any other trigger, you can build a "submissions" report from there without separate storage.


Found something out of date? This page lives in the Flero docs content set.