Triggers
How to start FlowTrux workflows using manual runs, webhooks, cron schedules, or public forms.
Every workflow begins with a Trigger node that defines how execution is initiated. There are four trigger types, selected in the Trigger Type dropdown of the node inspector: Manual, Webhook, Schedule (cron), and Form.
Manual
Click the Run button in the workflow editor to start execution immediately. You can optionally provide static JSON data in the Trigger node configuration that will be passed as {{trigger.data}}.
This is the simplest way to test and run workflows during development.
Example static data:
{
"text": "Summarize this quarterly report...",
"language": "en",
"format": "bullet_points"
}
Webhook
Expose the workflow as an HTTP endpoint that external services can call to trigger execution. See Webhooks API Reference for authentication, response modes, and examples.
Endpoint
POST /api/webhooks/[workflowId]
Authentication
All webhook requests require HMAC-SHA256 signature verification. The signature must be included in the X-Webhook-Signature header.
The signature is computed over the raw request body using the workflow's webhook secret:
HMAC-SHA256(secret, requestBody)
Requests without a valid signature are rejected.
Request Data
- The POST request body becomes
{{trigger.data}} - URL query parameters are available at
{{trigger.data._query}}
Example:
A POST to /api/webhooks/abc123?source=github&ref=main with body {"action": "push"} produces:
{
"action": "push",
"_query": {
"source": "github",
"ref": "main"
}
}
Response Modes
Configure how the webhook responds to the caller in the Trigger node settings.
| Mode | Behavior | Use Case |
|---|---|---|
minimal | Returns { success: true, executionId: "..." } immediately. Workflow runs in the background. | Fire-and-forget integrations, fast response required |
lastNode | Waits for execution to complete, returns output of the last node that executed. | Simple workflows where the final result is needed |
specificNode | Waits for execution to complete, returns output of a node specified by ID. | When you need output from a particular processing step |
allNodes | Waits for execution to complete, returns { nodeId: { name, output } } for all nodes. | Debugging or when the caller needs comprehensive results |
For lastNode, specificNode, and allNodes modes, the webhook connection remains open until execution finishes.
Custom Response
You can configure a custom HTTP status code on the response:
| Field | Description |
|---|---|
| Status Code | HTTP status code returned to the caller (e.g., 200, 201, 202). Default: 200 on success. |
Schedule (Cron)
Run the workflow on a recurring schedule. Scheduled workflows execute automatically at the specified times.
Multiple Schedules
A single trigger can hold several schedules - click Add in the Schedules section to attach another one. This is useful for irregular patterns like "at 16:00 and 22:30": add two schedules instead of writing one complex expression. Each schedule can be picked from a preset list (Every 5 minutes, Daily at 9 AM, Weekdays at 9 AM, etc.) or entered as a custom cron expression.
Timezone
The Timezone field controls the timezone in which all schedules of the trigger fire. When you first configure a schedule, it defaults to your profile timezone - so "Daily at 9 AM" means 9 AM your time, not server time. Change it to any IANA timezone if the workflow should follow a different clock (e.g., a client's region).
Cron Expression Format
Standard five-field cron syntax:
┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-7, 0 and 7 = Sunday)
│ │ │ │ │
* * * * *
Common Cron Expressions
| Expression | Schedule |
|---|---|
* * * * * | Every minute |
*/5 * * * * | Every 5 minutes |
*/15 * * * * | Every 15 minutes |
0 * * * * | Every hour (at minute 0) |
0 */2 * * * | Every 2 hours |
0 9 * * * | Daily at 9:00 AM |
0 9 * * 1-5 | Weekdays at 9:00 AM |
0 0 * * * | Daily at midnight |
0 9,17 * * 1-5 | Weekdays at 9:00 AM and 5:00 PM |
0 0 * * 0 | Every Sunday at midnight |
0 0 1 * * | First day of every month at midnight |
0 6 * * 1 | Every Monday at 6:00 AM |
30 8 * * 1-5 | Weekdays at 8:30 AM |
How It Works
Scheduled workflows are managed automatically by the platform. Once configured and saved, workflows will execute at the specified times (in the selected timezone) without any additional setup.
Form
Public forms allow non-technical users to submit data that triggers a workflow.
Setup
- Create form: in the sidebar tree, open the workspace's Forms section and click +. Or create it without leaving the editor: pick trigger type Form and click New form right in the Trigger inspector.
- Add fields: text, email, number, textarea, select, file upload, checkbox
- Configure layout: Stack (vertical) or Grid (2-column)
- Customize appearance: logo, colors, background image
- Publish: click Publish to generate a public URL
- Link to workflow: Trigger type → Form → select the form
A form belongs to one workspace and can trigger several workflows at once: every active workflow in that workspace whose trigger uses the form runs on each submission.
Public Form URL
Forms are accessible at /f/[token] without authentication. Share this URL with users or embed on your website.
Embed Mode
Add ?embed=1 to the form URL for iframe embedding:
<iframe src="https://app.flowtrux.com/f/YOUR_TOKEN?embed=1" width="100%" height="600"></iframe>
Embed mode strips background, logo, and padding - renders only the form fields.
Form Data in Workflows
Form fields are available as {{trigger.data.fields.<fieldName>}}:
{{trigger.data.fields.name}}
{{trigger.data.fields.email}}
{{trigger.data.formName}}
{{trigger.data.submittedAt}}
When a form is selected in the Trigger node inspector, the inspector lists every field of that form with its ready-to-copy template variable. File uploads include name, size, contentType, and key (storage path).
Note: only one active workflow can be bound to a given form. If the form is already used by another active workflow, the inspector warns you and activation is blocked until the other workflow is deactivated.