All docs
3 min read

Examples

Use examples as starting points, then adjust field names to match your form schema. Automation conditions read from stored payload keys, not visual labels, so plan and Plan are different fields.

High-priority lead → Slack

Trigger: submission.created.

Steps:

  1. condition - { all: [{ field: 'plan', op: 'equals', value: 'enterprise' }] }
  2. action integration_driver - { provider: 'slack', url: 'https://hooks.slack.com/...' }
  3. action tag_submission - { tag: 'priority' }

Why this works: the condition keeps normal leads out of the workflow, Slack gets only the high-priority notification, and the tag makes the row easy to filter later.

Delayed follow-up email

Trigger: submission.created.

Steps:

  1. delay - { seconds: 86400 }
  2. action send_email - { to: '{{ submission.email }}', subject: 'Following up', body: '...' }

Add a condition before the delay if you only want to email respondents who opted in:

json
{
  "all": [
    { "field": "email", "op": "is_not_empty" },
    { "field": "marketing_consent", "op": "equals", "value": true }
  ]
}

Route support requests

Trigger: submission.created.

Steps:

  1. branch - route issue_type = billing to the billing owner and everything else to support.
  2. action send_email - send the billing branch to billing@example.com.
  3. action send_email - send the default branch to support@example.com.
  4. action set_submission_status - mark the submission as processed after notification succeeds.

Keep continue_on_failure disabled on the email steps when owner notification is required. If a mailbox or destination is misconfigured, the failed run should stay visible until fixed.

Mark obvious spam after review

Trigger: submission.created.

Steps:

  1. condition - message contains a known spam phrase or the email domain matches a blocked pattern.
  2. action mark_spam - move the submission to spam.
  3. action tag_submission - add a tag such as automation-spam-rule.

Use this only for patterns you are confident about. For broader spam filtering, prefer custom rules or the spam-protection settings so unwanted submissions are caught earlier in the pipeline.

Send a custom webhook

Trigger: submission.updated.

Steps:

  1. condition - only continue when status equals the value your external system expects.
  2. action send_webhook - POST a canonical payload to your service.
  3. action tag_submission - mark the row as synced.

If your endpoint is outside your control, consider continue_on_failure: true for the tag step only. The webhook itself should usually fail loudly so you can replay it after the destination recovers.

Classify and update a field

Trigger: submission.created.

Steps:

  1. action ai_classify - assign a category.
  2. branch - route based on the category field or tag written by classification.
  3. action update_field - normalize a field value for reporting.
  4. action integration_driver - send the final payload to Slack, Sheets, or another configured provider.

Watch AI credit usage for classification-heavy workflows. If the workflow is not essential, put it behind a condition that limits it to high-value forms or qualified leads.