Skip to content

Trigger

Starts a workflow in response to an event, a schedule, a condition, or a system signal.

Trigger node on the canvas

The Trigger node is the entry point of every workflow. It defines when and how a workflow starts. Every workflow must begin with exactly one Trigger node, placed at the start of the diagram.

Use a Trigger node to define the starting condition for any workflow. The trigger type determines what kicks off the execution.

Common examples:

  • Scheduled jobs - run a report every morning, send a digest email every Friday, or archive records at the end of each month
  • Incoming events - start a workflow when a form is submitted, a record changes, or an API call is received
  • Data conditions - begin processing when a value crosses a threshold (e.g., “inventory below 10 units”)
  • System signals - react to internal platform events like a deployment completing or a health check failing

Select the trigger type from the Trigger Type dropdown. Each type reveals its own set of configuration fields.

Starts the workflow on a schedule.

PropertyTypeDescription
All DayBooleanWhether the trigger fires for the full day
StartsDate + TimeWhen the schedule begins
EndsDate + TimeWhen the schedule ends
FrequencyDropdownNone / Daily / Weekly / Monthly / Yearly / Custom. When All Day is off, Hourly is also available

Starts the workflow when an external event occurs.

PropertyTypeOptions
Event TypeDropdownForm Submission / Record Change / API Call / User Action

Starts the workflow when a data condition is met.

PropertyTypeDescription
RuleDropdownComparison operator (see below)
ValueTextValue to compare against

Available rules:

RuleDescription
Is Equal ToExact match
Is Not Equal ToDoes not match
Is Greater ThanNumeric greater-than
Is Greater Than or Equal ToNumeric greater-than or equal
Is Less ThanNumeric less-than
Is Less Than or Equal ToNumeric less-than or equal
ContainsValue includes the substring
Does Not ContainValue excludes the substring
Matches RegexValue matches the regular expression
Does Not Match RegexValue does not match the expression
Formula is TrueExpression evaluates to true
Formula is FalseExpression evaluates to false

Starts the workflow in response to an internal system event.

PropertyTypeDescription
System ValueTextIdentifier of the system event

All trigger types share the following fields:

PropertyTypeDescription
LabelTextDisplay name shown on the node card
DescriptionTextShort description of the node’s purpose
StatusDropdownActive / Inactive / Draft (or as configured)

Configure how the system handles trigger failures:

PropertyOptionsDescription
Retry IntervalEvery 15 min / Every 20 min / Every 30 minHow long to wait before retrying
Max Retries5 / 10 / 15Maximum number of retry attempts
Timeout30 min / 60 min / 90 minHow long before a trigger attempt times out

Schemas

{
"type": "VerticalLayout",
"elements": [
{
"type": "MessageOnError",
"scope": "#/properties/missingPreviousVariable",
"text": "plugins.validation.missingDependency"
},
{
"label": "Trigger Type",
"type": "Select",
"scope": "#/properties/type"
},
{
"type": "Accordion",
"label": "General Information",
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#",
"schema": {
"required": [
"type"
]
}
}
},
"elements": [
{
"type": "Text",
"scope": "#/properties/label",
"label": "Title",
"placeholder": "Node Title..."
},
{
"type": "Select",
"scope": "#/properties/status",
"options": [
{
"label": "Active",
"value": "active",
"icon": "StatusActive"
},
{
"label": "Draft",
"value": "draft",
"icon": "StatusDraft"
},
{
"label": "Disabled",
"value": "disabled",
"icon": "StatusDisabled"
}
],
"label": "Status"
},
{
"type": "Text",
"scope": "#/properties/description",
"label": "Description",
"placeholder": "Type your description here..."
}
]
},
{
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/type",
"schema": {
"const": "timeBasedTrigger"
}
}
},
"type": "VerticalLayout",
"elements": [
{
"type": "Accordion",
"label": "Trigger Schedule",
"elements": [
{
"type": "HorizontalLayout",
"elements": [
{
"type": "Label",
"text": "All Day:"
},
{
"type": "Switch",
"scope": "#/properties/timeSchedule/properties/allDay"
}
]
},
{
"type": "HorizontalLayout",
"layoutColumns": "1fr 110px 60px",
"elements": [
{
"type": "Label",
"text": "Starts"
},
{
"type": "DatePicker",
"scope": "#/properties/timeSchedule/properties/starts/properties/date"
},
{
"type": "Text",
"scope": "#/properties/timeSchedule/properties/starts/properties/time",
"placeholder": "--:--",
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/timeSchedule/properties/allDay",
"schema": {
"const": false
}
}
}
}
]
},
{
"type": "HorizontalLayout",
"layoutColumns": "1fr 110px 60px",
"elements": [
{
"type": "Label",
"text": "Ends"
},
{
"type": "DatePicker",
"scope": "#/properties/timeSchedule/properties/ends/properties/date"
},
{
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/timeSchedule/properties/allDay",
"schema": {
"const": false
}
}
},
"type": "Text",
"scope": "#/properties/timeSchedule/properties/ends/properties/time",
"placeholder": "--:--"
}
]
},
{
"type": "HorizontalLayout",
"layoutColumns": "1fr 177px",
"elements": [
{
"type": "Label",
"text": "Frequency"
},
{
"type": "Select",
"scope": "#/properties/timeSchedule/properties/frequency",
"options": [
{
"label": "None",
"value": "none"
},
{
"label": "Hourly",
"value": "hourly"
},
{
"label": "Daily",
"value": "daily"
},
{
"label": "Weekly",
"value": "weekly"
},
{
"label": "Monthly",
"value": "monthly"
},
{
"label": "Yearly",
"value": "yearly"
},
{
"type": "separator"
},
{
"label": "Custom...",
"value": "custom"
}
],
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/timeSchedule/properties/allDay",
"schema": {
"const": false
}
}
}
},
{
"type": "Select",
"scope": "#/properties/timeSchedule/properties/allDayFrequency",
"options": [
{
"label": "None",
"value": "none"
},
{
"label": "Daily",
"value": "daily"
},
{
"label": "Weekly",
"value": "weekly"
},
{
"label": "Monthly",
"value": "monthly"
},
{
"label": "Yearly",
"value": "yearly"
},
{
"label": "Custom...",
"value": "custom"
}
],
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/timeSchedule/properties/allDay",
"schema": {
"const": true
}
}
}
}
]
}
]
},
{
"type": "Accordion",
"label": "Retry Settings",
"elements": [
{
"type": "HorizontalLayout",
"elements": [
{
"type": "Label",
"text": "Retry Interval"
},
{
"type": "Select",
"scope": "#/properties/retrySettings/properties/interval",
"options": [
{
"label": "Every 15 min",
"value": "every15min"
},
{
"label": "Every 20 min",
"value": "every20min"
},
{
"label": "Every 30 min",
"value": "every30min"
}
]
}
]
},
{
"type": "HorizontalLayout",
"elements": [
{
"type": "Label",
"text": "Max Retries"
},
{
"type": "Select",
"scope": "#/properties/retrySettings/properties/retries",
"options": [
{
"label": "5",
"value": "5"
},
{
"label": "10",
"value": "10"
},
{
"label": "15",
"value": "15"
}
]
}
]
},
{
"type": "HorizontalLayout",
"elements": [
{
"type": "Label",
"text": "Timeout"
},
{
"type": "Select",
"scope": "#/properties/retrySettings/properties/timeout",
"options": [
{
"label": "30 min",
"value": "30Min"
},
{
"label": "60 min",
"value": "60Min"
},
{
"label": "90 min",
"value": "90Min"
}
]
}
]
}
]
}
]
},
{
"rule": {
"effect": "SHOW",
"condition": {
"scope": "#/properties/type",
"schema": {
"const": "eventBasedTrigger"
}
}
},
"type": "Accordion",
"label": "Event-Based Properties",
"elements": [
{
"type": "Select",
"label": "Event Type",
"scope": "#/properties/eventType",
"options": [
{
"label": "Form Submission",
"value": "formSubmission"
},
{
"label": "Record Change",
"value": "recordChange"
},
{
"label": "API Call",
"value": "apiCall"
},
{
"label": "User Action",
"value": "userAction"
}
]
}
]
}
]
}