
Python ScriptTrigger
CertifiedTrigger on Python script condition
Python ScriptTrigger
Trigger on Python script condition
Polls by running an inline Python script (default image python: 3.13-slim) and emits when exitCondition matches. Supports edge mode to emit only on transitions and polls every 60s by default. Accepts 'exit N' or a regex (fallback substring) matched against emitted vars and failure logs.
type: io.kestra.plugin.scripts.python.ScriptTriggerExamples
Trigger when the Python script fails with exit code 1.
id: python_script_trigger
namespace: company.team
triggers:
- id: script_failure
type: io.kestra.plugin.scripts.python.ScriptTrigger
interval: PT10S
exitCondition: "exit 1"
edge: true
script: |
raise Exception("boom")
tasks:
- id: log
type: io.kestra.plugin.core.log.Log
message: "Triggered with exitCode={{ trigger.exitCode }} (condition={{ trigger.condition }})"
Properties
script *Requiredstring
Inline Python script
Multi-line script executed on each poll.
allowConcurrent Non-dynamicboolean
falseSpecifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.
containerImage string
python:3.13-slimContainer image for script execution
Image used by the Script task to run the inline Python script; defaults to 'python: 3.13-slim'.
edge booleanstring
trueEdge trigger mode
If true (default), the trigger emits only on a transition from 'not matching' to 'matching' (anti-spam). If false, the trigger emits on every poll where the condition matches.
exitCondition string
Condition to match
Condition evaluated after each execution. The trigger emits only when it matches. 'exit N' compares the exit code, otherwise the string is used as a regex (or substring fallback) against emitted vars (from ::{"outputs": ...}::) and failure logs.
interval Non-dynamicstring
PT1MdurationCheck interval
Interval between polling evaluations.
stopAfter Non-dynamicarray
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTEDList of execution states after which a trigger should be stopped (a.k.a. disabled).
when string
trueA condition that determines whether the trigger should run.
A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.
Outputs
condition string
Rendered condition
Rendered value of the exitCondition property for this poll.
exitCode integer
Exit code
Exit code returned by the Python process (may be null if not available).
timestamp string
date-timeTimestamp of the event that fired the trigger
vars object
Script vars
Vars produced by the task (e.g. via ::{"outputs": {...}}:: convention).