What's a Workflow?
Within the Flows service, a Workflow refers to a template that defines an ordered sequence of actions, called stages, to be executed as a Workflow Instance.
Workflow Definition Syntax
A workflow definition is a YAML file, with the following structure:
---
name: "my-workflow"
stages:
  - send:
    # ...
  - wait_event:
      event: deposit.confirmed
  - delay:
      seconds: 7d
  - send:
    # ...
Available stages
As of today, the following stages are supported:
| Stage | Description | 
|---|---|
send | Transfers value from a source to a destination. This stage is compatible with ledgers, payments, and wallets. | 
wait_event | Makes the workflow instance wait for an event to be emitted by an external system. | 
delay | Makes the workflow instance wait for a given amount of time. | 
To learn more about each stage, please refer to the dedicated documentation page in the following section.
Using variables
Variables can be used in the workflow definition, by using the ${} syntax. Variables will then be expanded according to the values passed at workflow execution time.
---
stages:
  - wait_event:
      event: "${event}"
Lifecycle
Workflows have a lifecycle of their own, and need to be created before they can be executed as instances - follow on to the next section to learn more and create your first workflow.