# Workflows

Automate multi-step processes with a visual builder in the Dashboard.

Stripe Workflows is a workflow product with a visual builder in the [Stripe Dashboard](https://dashboard.stripe.com/workflows) that lets you automate tasks and create custom flows, without writing code. Workflows are ideal for multi-step processes and can span across multiple Stripe products, allowing you to build more efficient processes, enforce business rules, and reduce manual effort.
![The Workflows visual builder in the Dashboard](https://b.stripecdn.com/docs-statics-srv/assets/workflows-overview.8c5642251773940492ba73598c3f64a9.png)

The Workflows visual builder in the Dashboard

Each workflow starts with a trigger and continues through a series of steps that define what happens next. You can use conditional logic to create different paths, sequence actions so they run in order, and automate decisions based on data. This allows you to build workflows that adapt to different scenarios and handle tasks dynamically. Learn more about [how Workflows work](https://docs.stripe.com/workflows/define-workflows.md).

Use workflows to:

- Automate tasks triggered by Stripe events (payments, customers, subscriptions)
- Trigger on-demand processes from the Dashboard or via API
- Add conditional logic to route different scenarios to different actions
- Loop over collections of Stripe objects to apply actions in bulk
- Connect to external systems through custom actions built by app developers

Workflows support [Connect](https://docs.stripe.com/connect.md) platforms, trigger workflows on connected account events and run actions on connected account resources.

## Get started

If you don’t have a Stripe account, [sign up now](https://dashboard.stripe.com/register).

[Workflows](https://docs.stripe.com/workflows/define-workflows.md): Learn about the anatomy of a workflow and how it works.

[Set up workflows](https://docs.stripe.com/workflows/set-up.md): Create, test, and observe workflows in the Dashboard without code.

[Use cases](https://docs.stripe.com/workflows/use-cases.md): See example business scenarios you can automate with workflows.

## Features

Workflows automate tasks triggered by specific API events or programmatic invocations. Each event initiates a workflow run, and workflows can have multiple runs over time. Review past runs to see when they’re triggered and how they performed.

|  |
|  |
| [Trigger on events](https://docs.stripe.com/workflows/define-workflows.md#triggers)                  | Start workflows automatically when Stripe events occur, such as a payment succeeding, a customer being created or an invoice failing. Each workflow has one trigger.                                                                   |
| Trigger programmatically                                                                             | Start workflows from the Dashboard or via API with custom input data. Useful when a human needs to initiate a process or an external system needs to invoke Stripe logic.                                                              |
| [Use conditional logic](https://docs.stripe.com/workflows/define-workflows.md#conditions)            | Automate decisions using conditional logic. For example, you can create a simple branch with an “if-else” structure, or a more complex branch with multiple paths where each branch handles different conditions.                      |
| [Apply trigger conditions](https://docs.stripe.com/workflows/define-workflows.md#trigger-conditions) | Configure a workflow to only run if its triggered by specific events, such as when a customer object field changes. This ensures that workflows only run when your integration needs them.                                             |
| Loop over collections                                                                                | Iterate over a list of Stripe objects and apply the same actions to each item. Loops pair with API list methods to process data in bulk. For example, you can use loops to update metadata on all active subscriptions for a customer. |
| Create custom actions                                                                                | Add user-defined actions from apps to your workflows. Custom actions appear in the workflow builder alongside built-in Stripe actions and can connect to external systems.                                                             |
| [Use with Connect](https://docs.stripe.com/workflows/define-workflows.md#connected-account-events)   | Use events from connected accounts to trigger workflows and run actions on connected account resources. Build automations that span your platform and your connected accounts.                                                         |
| [Test with Sandboxes](https://docs.stripe.com/workflows/set-up.md)                                   | Safely test your workflows in secure, isolated [sandbox](https://docs.stripe.com/sandboxes.md) environments before going live.                                                                                                         |
| [Monitor and debug](https://docs.stripe.com/workflows/set-up.md#observe-workflow)                    | Inspect individual workflow runs in the Dashboard to see which steps ran, their parameters and any errors. Use [Workbench](https://docs.stripe.com/workbench.md) for deeper developer-focused logs and request details.                |

### Built-in features

Workflows have the following built-in features:

|  |
|  |
| **Recursion detection** | Workflows automatically identify and stops recursions such as infinite loops or runaway workflows. For example, a workflow to update customer information that’s triggered by a customer event could potentially loop infinitely if performing the update generates another customer updated event. Workflows prevent this by only allowing recursion to occur once. The workflow ends with an error if recursion occurs more than once.                                                                                                                                                                                                                                          |
| **Automatic retries**   | To improve reliability, Workflows automatically retries actions that encounter retryable errors. This means that if an action fails due to a transient issue, the workflow attempts to run it again without requiring any manual intervention from you. This ensures temporary errors don’t cause workflow failures, promoting smooth and consistent workflow runs.                                                                                                                                                                                                                                                                                                               |
| **Idempotency**         | Idempotency ensures that actions are only run once, even if the same request is submitted multiple times. Workflows automatically handles duplicate requests, preventing unintended repeated actions. This safeguard helps ensure consistency when network issues or errors might lead to retrying requests.                                                                                                                                                                                                                                                                                                                                                                      |
| **Observability**       | Observability helps you monitor, troubleshoot and resolve issues within your workflow quickly. Workflows provides the following to help with observability:
  - **Run status**: Each workflow has a status of **Running**, **Succeeded** or **Failed**. Failed workflows generate detailed error messages to help you diagnose and resolve the issue.
  - **Run details**: You can inspect individual workflow runs to view the exact run path, including which steps were executed, the parameters used and any errors encountered. This visibility allows you to quickly pinpoint which step in your workflow caused an error as well as understand the path an execution took. |
