List workflows
GET /workflows
Returns a paginated list of workflows in your account.
Query parameters
Number of workflows to return per page. Maximum
100.Pagination cursor from a previous response’s
next_cursor.Filter to workflows that are attached to a specific form.
Response
Array of workflow objects.
Cursor for the next page.
null on the last page.true if more workflows exist beyond this page.Create a workflow
POST /workflows
Creates a new workflow attached to a form.
Body parameters
Display name for the workflow.
The ID of the form that this workflow is attached to.
Defines the event that starts the workflow.
Ordered list of actions to execute when the trigger fires.
Action type reference
send_email
send_email
Sends an email when the workflow fires.
| Config key | Type | Required | Description |
|---|---|---|---|
to | string | Yes | Recipient email. Supports {{field_id}} template variables. |
subject | string | Yes | Email subject line. Supports template variables. |
body | string | Yes | Email body in plain text or HTML. Supports template variables. |
from_name | string | No | Sender display name. Defaults to your account name. |
send_webhook
send_webhook
Sends an HTTP POST request to a URL with the submission data as the body.
| Config key | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Destination URL. Must use HTTPS. |
headers | object | No | Additional HTTP headers to include. |
slack_message
slack_message
Posts a message to a Slack channel. Requires a connected Slack integration.
| Config key | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Slack channel ID or name (e.g., #sales-leads). |
message | string | Yes | Message text. Supports template variables. |
google_sheets_append
google_sheets_append
Appends a new row to a Google Sheet. Requires a connected Google integration.
| Config key | Type | Required | Description |
|---|---|---|---|
spreadsheet_id | string | Yes | Google Sheets spreadsheet ID. |
sheet_name | string | Yes | Tab name within the spreadsheet. |
row_mapping | object | Yes | Map of column headers to field IDs or static values. |
Response
Returns the created workflow object with a201 Created status.
Get a workflow
GET /workflows/{id}
Returns a single workflow by ID, including its full trigger and actions configuration.
Path parameters
The workflow ID, e.g.
wfl_4nRsT6uVwX.Response
Returns the full workflow object.Update a workflow
PATCH /workflows/{id}
Updates a workflow. Use this to enable or disable a workflow, rename it, or modify its trigger and actions. Only the fields you include are changed.
Path parameters
The workflow ID to update.
Body parameters
New display name.
Set to
false to pause the workflow without deleting it. Set to true to re-enable it.Replaces the workflow trigger configuration.
Replaces the entire actions array. Include existing action IDs to preserve them.
Response
Returns the updated workflow object.Delete a workflow
DELETE /workflows/{id}
Permanently deletes a workflow. In-progress executions are allowed to finish before the workflow is removed.
Path parameters
The workflow ID to delete.
Response
Returns a204 No Content response on success.
