Trigger Nodes
Every workflow must begin with exactly one Trigger node. Triggers define what event starts the workflow and provide the initial data that flows into downstream nodes. They render as circles on the canvas to distinguish them visually from processing nodes.
Trigger Node Rules
- A workflow must have exactly one trigger node — not zero, not two
- Trigger nodes have no input ports — they only have output ports
- The trigger node is the root of the execution graph
- Trigger nodes cannot be placed inside a loop — they must be at the top level
Available Trigger Nodes
manual-trigger
TypeCode: manual-trigger | Shape: Circle | Use when: You want to start the workflow by clicking Run in the studio or via the API.
| Config Field | Description |
|---|---|
| Initial Data | Optional JSON object that seeds $json at the start of execution |
| Allow Re-run | Whether operators can re-run the workflow from history |
Output: { triggeredBy: string, triggeredAt: string, data: object }
webhook-trigger
TypeCode: webhook-trigger | Shape: Circle | Use when: An external system calls a generated HTTPS endpoint to start the workflow.
| Config Field | Description |
|---|---|
| HTTP Method | GET, POST, PUT, PATCH (default: POST) |
| Authentication | None, API Key, Bearer Token, HMAC Signature |
| Response Mode | Immediate (202 Accepted) or Wait (blocks until workflow completes) |
Output: { headers: object, query: object, body: object, method: string }
The webhook URL is generated after the process is published: POST /api/webhooks/{tenantId}/{processId}
schedule-trigger
TypeCode: schedule-trigger | Shape: Circle | Use when: The workflow runs on a regular interval or at a specific time.
| Config Field | Description |
|---|---|
| Cron Expression | Standard 5-part cron: 0 9 * * MON-FRI (9am weekdays) |
| Timezone | IANA timezone string (e.g., America/New_York). Defaults to tenant timezone. |
| Enabled | Toggle to pause/resume the schedule without deleting it |
Output: { scheduledAt: string, cronExpression: string }
form-trigger
TypeCode: form-trigger | Shape: Circle | Use when: An Atlas Form submission starts the workflow. The form data becomes the initial execution context.
| Config Field | Description |
|---|---|
| Form ID | The Atlas Form ID whose submission triggers this workflow |
| Form Mode | Which submission modes trigger: Submit only, Save & Submit |
Output: { formId: number, submittedBy: string, formData: object, submittedAt: string }