Executions
An execution is one run of a workflow, end to end. Every time a trigger fires (or you press Test run or Run now) a new execution row appears in wp_pfw_executions.
What an execution stores
workflow_id— which workflow ran.trigger_payload— the JSON payload the trigger handed off (the WooCommerce order, the form submission, the cron tick — whatever it was).status—running,success,failed,partial,cancelled.timeline— an ordered list of every node visited, with its input, output, duration in ms, and any error.started_at,finished_at— UTC timestamps.idempotency_key— see Idempotency.
Where to see them
Setyenv → Executions lists every execution with a status pill, the workflow that fired, the elapsed time, and a click-through to the full timeline.
Status semantics
- running — currently in flight.
- success — every node reached returned without error.
- failed — a node returned an unrecoverable error and the workflow had no surrounding
try_catchblock to handle it. - partial — a node returned an error caught by a
try_catchblock; the workflow continued down the catch branch. The overall status is "partial" so you know something abnormal happened but it was handled. - cancelled — you (or another workflow / the agent) explicitly stopped this execution from continuing.
Replay
Open any past execution and click Replay. You can either:
- Replay from the start — runs the same trigger payload through the workflow from scratch. Use this when you fixed the workflow and want to re-process the same input.
- Replay from a specific node — picks up at that node with the inputs as they were at that point in the original execution. Useful when an external dependency (a third-party API) was down and you just want to redo the step that failed.
Replays create a new execution row with parent_execution_id pointing at the original, so you can trace the full chain of attempts.
Retention
Default retention is 30 days. After that, executions are pruned by the daily cleanup cron. Override per-environment with define( 'PFW_EXECUTIONS_RETENTION_DAYS', 90 ); in wp-config.php.