# Build and review Flows

Use observed triggers and review messages before consequential delivery.

## What you need

An owner account, a matching app scope and the data needed by the selected trigger/condition. The effective plan determines how many Flows can be live.

## Steps

1. Open **Flows**, create a Flow from a listed template or the editor, and keep it draft while configuring it.
2. Set the app scope, trigger, waits, conditions and email/Slack steps. Use the actual merchant state and supported merge tags; inspect preview output for missing fields.
3. Review the app-scope/source acknowledgement before activating. An acknowledgement for an old Flow revision must be reviewed again after a relevant change.
4. Inspect runs and the review queue. Send or dismiss review messages deliberately. Making a Flow live or approving a message can send real email or Slack content.
5. Pause the Flow when changing its source or delivery setup, then verify its current revision before reactivation.

## Expected result

A saved draft with a valid graph, app scope and preview; after deliberate activation, activity shows runs and message states. A draft or dismissed message is not delivery.

## AI drafts and source boundaries

Email preview with an AI brief and `draft_winback` can call the configured Gemini service. They are optional provider actions; an unsent draft can still involve a provider request. Ordinary docs access and schema validation do not call it.

Backend custom events and browser events have different trust levels. Shopify lifecycle events do not identify the exact in-app activation step. Define any desired milestone in your app and send it through [Backend events](/docs/developers/backend-events).

See [MCP Flow workflows](/docs/mcp/workflows) and [Sender settings](/docs/app-owners/sender-and-delivery).

## Product example

A fictional draft Flow showing app execution scope, trigger conditions and a review-held email step. No live merchant data, provider request or money movement is represented.

![A fictional draft Flow showing app execution scope, trigger conditions and a review-held email step.](/docs/images/flow.jpg)

## Troubleshooting

Unknown source conditions remain unknown, including negated checks. Absence of tracking is not proof of no merchant activity. Check source-specific custom events, current scope acknowledgement, sender readiness, mailbox limits and effective plan before retrying.

## Editor details

Triggers start runs; waits delay the next step; conditions/splits route based on the supported merchant state and source. Configure each node in the inspector, connect a valid graph and review its preview before saving. App profile and known contact fields supply merge tags; an absent contact is not a usable recipient. Preview subject/body with the current supported tags rather than inventing tag names.

## Plan and live scope

The effective Free plan permits one live Flow; Growth/Portfolio permit unlimited live Flows. Pausing stops live execution rather than deleting historical activity. Review existing Flow scope/version acknowledgement after scope-sensitive edits. Use **Activity** and the review queue to distinguish triggered runs, waiting steps, pending review, dismissed messages and delivery errors.
