*Workflows › Introduction*

# How workflows work

> A workflow is an automation you build in the Filmo app. One trigger starts it; the steps that follow do the work, one after another.

## The parts

| Term | What it is |
| --- | --- |
| Workflow | One trigger and the steps that follow it, with a name, a status and a creator. |
| Trigger | What starts the workflow. Every workflow has exactly one. |
| Step | One unit of work: send an email, create a task, call a URL, wait, decide. Steps are atomic, composite (they contain other steps) or a capability of Filmo. |
| Run | One execution of a workflow, from the moment it is queued to the moment it ends. |
| Version | A frozen, numbered copy of the workflow that you published. Runs use a version, never the draft you are editing. |
| Draft | What you see in the editor. It is saved as you edit, but it does not run until you publish it. |
| Live | The switch that lets the automatic triggers (schedule, webhook, event, signal) start runs. |
| Variable | A value a step or the trigger hands on to the steps after it. You pick it from a list; there is no formula syntax to type. |
| Signal | A named message that one workflow fires and others listen for. |
| Template | A ready-made workflow you start from, with the blanks you still have to fill. |

## From trigger to finished run

When a trigger fires, Filmo does not run the steps at that moment. It queues a run that points at the published version of the workflow, and a worker picks it up a moment later. Steps then run strictly in order; there are no parallel branches.

**How a run starts and finishes**
- Trigger → Run queue: Insert a run: queued A button, the API, a schedule, a webhook, an event or a signal. The run points at the published version of the workflow, never at the draft.
- Run queue → Worker: Kick: execute The minute tick is the safety net: a lost kick is picked up on the next minute.
- The worker claims the run: state running, a lease of 300 seconds
- Replay the journal, then run the steps. Every unit of work is recorded once; a resumed run replays what it already did instead of doing it again.
- Worker → Run queue: completed · failed Terminal. A failed step ends the run as failed; there is no automatic retry of a step.
- Worker → Run queue: waiting + a wake-up time A wait step, or a retry backoff after an engine error. The next tick after that time sends it back to the queue.
- Worker → Run queue: paused The platform stopped it before a step: no credit left, or a payment problem. Only Resume brings it back.

Each unit of work is recorded as it completes. That record is what lets a run stop in the middle, for a wait or a retry, and continue later without repeating what it already did.

## Draft, version, Live

Editing and publishing are separate. The editor saves your changes as you work, but a version is only created when you press «Publish». Switching «Live» on or off does not create a version; it only decides whether the automatic triggers fire. Read [Versions](https://docs.filmo.io/workflows/versions) for the details, including what you cannot do (there is no version history and no restore).

**Edit, publish and go live**
- You (editor) → Draft: Edit the canvas: autosave Saved after a short pause. It writes only the draft and marks it as «Unpublished changes». What runs does not change.
- You (editor) → Published version: «Publish» Freezes the draft as a new numbered version and rebuilds the triggers. New runs use it; runs already in flight keep theirs.
- «Live» on: automatic triggers (schedule, webhook, event, signal) fire and start runs of the published version
- You (editor) → Draft: «Discard» The draft goes back to the published version. There is no way back to an older one.
- You (editor) → Published version: «Run workflow» A manual run uses the published version. If the draft has unpublished changes, the editor publishes them first.

## Who a run acts as

A run does not act as the person who clicked «Run workflow», or as the owner of an API key, or as the person whose change triggered it. Every step that uses a capability of Filmo runs with the permissions of the [creator of the workflow](https://docs.filmo.io/workflows/permissions#run-actor), checked again at each step.

## What it costs

A run uses credits: one for every action step that completes, plus extra credits for steps that call the AI. Conditions, loops, switches and failed steps are free. See [Limits and credits](https://docs.filmo.io/workflows/limits#credits).

## What workflows are not

- Steps never run in parallel, and no step has a "continue on error" option: a step that fails ends the run as failed, unless you put it inside a Try step, which lets the run carry on.
- A step that starts another workflow or fires a signal does not wait for the result; the other workflow is a run of its own.

## Where to go next

- **[Quickstart](https://docs.filmo.io/workflows/quickstart)**: Start from a template, publish it and watch a run.
- **[Triggers](https://docs.filmo.io/workflows/triggers)**: The seven ways a workflow starts, and the traps of each.
- **[Data and expressions](https://docs.filmo.io/workflows/data-and-expressions)**: How a step reads what an earlier step produced.
- **[Runs](https://docs.filmo.io/workflows/runs)**: States, the run viewer, cancel, retry and resume.

---

Canonical URL: https://docs.filmo.io/workflows/concepts  
Last updated: 2026-10-09