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:
condition-{ all: [{ field: 'plan', op: 'equals', value: 'enterprise' }] }actionintegration_driver-{ provider: 'slack', url: 'https://hooks.slack.com/...' }actiontag_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:
delay-{ seconds: 86400 }actionsend_email-{ to: '{{ submission.email }}', subject: 'Following up', body: '...' }
Add a condition before the delay if you only want to email respondents who opted in:
{
"all": [
{ "field": "email", "op": "is_not_empty" },
{ "field": "marketing_consent", "op": "equals", "value": true }
]
}
Route support requests
Trigger: submission.created.
Steps:
branch- routeissue_type = billingto the billing owner and everything else to support.actionsend_email- send the billing branch tobilling@example.com.actionsend_email- send the default branch tosupport@example.com.actionset_submission_status- mark the submission asprocessedafter 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:
condition- message contains a known spam phrase or the email domain matches a blocked pattern.actionmark_spam- move the submission to spam.actiontag_submission- add a tag such asautomation-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:
condition- only continue whenstatusequals the value your external system expects.actionsend_webhook- POST a canonical payload to your service.actiontag_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:
actionai_classify- assign a category.branch- route based on the category field or tag written by classification.actionupdate_field- normalize a field value for reporting.actionintegration_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.