# How Workflows Work

Flowcrafter turns a process into connected nodes on a canvas. Most of it clicks with use, but here are six ideas to help you start building and troubleshooting workflows.

A trigger creates a run and saves a copy of the workflow's route and settings. Ready nodes follow the connected paths: conditions choose routes, some nodes pause and resume work, and [For Each](/documentation/flowcrafter/nodes/flow/for-each/) processes a list item by item. The run finishes when no work remains, or records an error you can inspect.

## 1. A trigger starts the workflow

A workflow begins with a **trigger** (the event that starts a run):

- **[Form Submitted](/documentation/flowcrafter/nodes/triggers/form-submitted/)** starts when the selected form is successfully submitted.
- **[Schedule](/documentation/flowcrafter/nodes/triggers/schedule/)** starts on a recurring schedule (e.g., every Monday at 9am).
- **[Webhook](/documentation/flowcrafter/nodes/triggers/webhook-trigger/)** starts when another service requests the workflow's URL.
- **[Manual](/documentation/flowcrafter/nodes/triggers/manual/)** starts when an authorized user or command explicitly runs it.

The nodes after the trigger perform actions, make decisions, wait, or process data.

![Form Submitted starting a workflow, with the other trigger choices beside the canvas](/documentation/flowcrafter/screenshots/quickstart-form-submitted-picker.png)

## 2. Each execution is a run

A **run** is one execution of a workflow. For example, ten form submissions create ten separate runs.

![Ten separate workflow runs in the history, with one completed run shown on the canvas](/documentation/flowcrafter/screenshots/tour-runs-history.png)

Each run records which nodes completed, which path it took, where it is waiting, and any errors. Open **Runs** in the [builder toolbar](/documentation/flowcrafter/getting-started/editor-tour/#use-the-toolbar) to inspect that history.

## 3. Work continues in the background

Workflows, once built, are completely hands off. Flowcrafter queues each step with [Action Scheduler](https://wordpress.org/plugins/action-scheduler/), which is included with the plugin.

This allows a run to wait for hours or days, resume after an approval or payment, and retry some temporary failures entirely on its own.

![Run Details showing progress and the background Action Scheduler job](/documentation/flowcrafter/screenshots/run-details.png)

## 4. A run keeps the workflow version it started with

When a run starts, Flowcrafter saves a **workflow snapshot** (a frozen copy of the connected nodes and their settings). Editing and saving the workflow later affects new runs, not runs already in progress.

For example, changing a [Delay](/documentation/flowcrafter/nodes/flow/delay/) from one day to two days does not rewrite the settings of a run already waiting on the original one-day delay.

![A node's read-only settings from the workflow version saved with a run](/documentation/flowcrafter/screenshots/run-frozen-node-settings.png)

:::note[The workflow is frozen; the entry is not]
A snapshot preserves the workflow's route and settings. It does not freeze Gravity Forms entries. When an entry-aware node runs, Flowcrafter uses upstream data to identify the entry and then reloads the most up-to-date version of that entry.
:::

## 5. Nodes can pause a run

Some nodes pause the run until a time arrives, a person responds, or another event occurs:

- **Delay** continues after a duration or at a specific date and time.
- **[Wait for Approval](/documentation/flowcrafter/nodes/flow/wait-for-approval/)** waits for a person's decision or the request's deadline.
- **[Wait for Payment](/documentation/flowcrafter/nodes/flow/wait-for-payment/)** waits for the selected entry's payment.
- **[Wait for Form Submission](/documentation/flowcrafter/nodes/flow/wait-for-form-submission/)** waits for a matching submission to another form.

Flowcrafter keeps the run's place while it waits. When the pause ends, it queues the next connected work in the background.

## 6. Status controls production triggers

New workflows start **Inactive**. You can save and use the builder's test tools while a workflow is inactive, but live automatic triggers are ignored.

Set a valid workflow to **Active** when it is ready for production. If Flowcrafter finds a missing required setting or invalid connection, fix the issue before activation.

![A saved execution shown separately from the editable workflow](/documentation/flowcrafter/screenshots/editor-runs-mode.png)

## Keep going

- [Build Your First Workflow](/documentation/flowcrafter/getting-started/quickstart/)
- [A Tour of the Builder](/documentation/flowcrafter/getting-started/editor-tour/)
- [Running & Monitoring Workflows](/documentation/flowcrafter/building/running-and-monitoring/)
- [Testing Before You Go Live](/documentation/flowcrafter/building/testing-workflows/)
