Skip to main content
A trigger has no input. It produces the first message of an execution and sends it out on the default port. All three triggers are always part of the server. Every trigger node has an idle timeout of 30 seconds unless you set timeoutSeconds on the node. It matters only for a trigger that stays silent for a long time, which in practice means SCHEDULE_TRIGGER.

API_TRIGGER

Passes the payload of the start request into the workflow. Use it when an outside system starts the workflow and supplies its own data. If the start request has no payload, the message has an empty payload. Each start produces a message with a new id. See Executions for how to start a workflow and Messages for the message model.
Started with POST /api/workflow/start and this body, the first message carries {"name": "Ada", "priority": "high"} as its payload:

CONSTANT_SOURCE

Emits one message built from fixed variables when the workflow starts. Use it for workflows that need no outside input, for constants, or for values read from the server’s environment. String values may use these variables, resolved once and reused: A trigger has no incoming message, so ${payload...} and ${metadata...} do not work here. Values that are not strings, such as lists and objects, are emitted as written. See Variables and expressions for the syntax, the allow-list for env and sys, and secrets. This node emits a batch of records into the payload:

SCHEDULE_TRIGGER

Emits a message repeatedly, on a fixed interval or on a cron schedule. The schedule lives inside one long-running execution: you start the workflow once and it keeps emitting until it is stopped, reaches maxRuns, or the server stops. See Scheduling for restart behaviour and how to start workflows on a timer from outside. Set exactly one of intervalMs and cron. Setting both or neither is rejected when the workflow is validated, as are an invalid cron expression, a time zone that does not exist, a cron expression with no future date, a non-positive intervalMs and a maxRuns that is not a positive whole number. When the maxRuns-th message has been emitted the trigger completes and the execution finishes once downstream work is done. This node fires every five seconds, three times:
This node fires at 08:30 on weekdays, Berlin time. The longest gap is the weekend, so the node timeout allows three days of silence:

Limits and defaults