Getting startedIntroduction to Workflow Transactional Email

Introduction to Workflow Transactional Email

Copy page

Add Send Transactional Email, Send Marketing Email and HTTP Request actions to Shopify Flow: email from your own mailbox with a visual builder, product cards, discount codes, countdowns and attachments from order metafields, and call any API.

Shopify Flow starts workflows and decides what to do. What it cannot do on its own is reach outside Shopify: send a branded email from your own mailbox, or call an external API. Workflow Transactional Email adds exactly that. It gives Shopify Flow three actions, Send Transactional Email, Send Marketing Email and HTTP Request, so a workflow can email a customer from your domain, in your design, with your data, and push data to any service, without a line of code.

How it fits together

  1. Connect a sender. Your Microsoft 365 or Google mailbox with one click, or your own SMTP server. Every email leaves under your domain and your reputation.
  2. Design the email. The visual builder assembles a layout from blocks; or paste your own HTML. Reusable headers and footers keep every message on brand.
  3. Add the action in Shopify Flow. Pick the sender and the layout on the step, hand over the data with the Variables (JSON) field, and the workflow sends.

What you get

  • Email from your own mailbox. Microsoft 365, Google Workspace and Gmail connect with OAuth; any SMTP server works too. Test sends and connection checks are built in, and the app tells you when a sender stops working. See Email senders overview.
  • A real email designer. Text, headings, images, buttons, dividers, columns and a line items table, plus commerce blocks: product card and product grid, price, discount code, countdown, order tracking, star rating, testimonial, social links, video, signature, table and view in browser. Sections can be shown only when a condition is true. See Build an email layout and Content blocks: product, discount, countdown, tracking and more.
  • Unique discount codes and live countdowns. A discount block can create a single-use code in your store for every email; the countdown block counts down in the inbox as an animated image.
  • Emails in your customer's language. A layout carries translations; the Language field of the Flow step (usually {{order.customerLocale}}) picks the right one. See Send emails in your customer's language.
  • Attachments. Upload a file, fetch one from a link at send time, or attach the file another app saved on the order or customer, such as an invoice PDF in a metafield. See Attachments and images and Attach a file from an order or customer metafield.
  • Marketing emails with a way out. A marketing layout sends one email per recipient with its own unsubscribe link and your company details; customers who unsubscribe are skipped from then on. See Marketing emails and unsubscribes.
  • HTTP requests on every Shopify plan. Shopify's own Send HTTP request action needs a higher plan. This one does not. See Make an HTTP request from Shopify Flow.
  • Secrets and Liquid. API keys and passwords are stored once, encrypted, and referenced as {{ secrets.keyName }}; subjects, bodies, URLs and payloads take {{ variables.xxx }} from Flow. See Secrets and Variables and Liquid.
  • Create and translate layouts with AI, keep every version, and mirror layouts to a GitHub repository. See Create, edit and translate layouts with AI, Layout version history and Keep unlimited layout history on GitHub.
  • A full history. Every send and every request is recorded with status, timing and what was sent, and can be resent. See History and troubleshooting.
  • Nothing read from your store unless you say so. The app installs with no access scopes. Four optional permissions exist, each for one feature (attaching a metafield file, creating discount codes), granted in place and revocable on the Permissions page. See Permissions: what the app can read from your store.
  • An API and an MCP server for your own tooling and AI assistants. See Developer API and MCP.
The visual builder with the settings on the left and the email on the right
The visual builder: settings on the left, the email on the right, with a Desktop and a Mobile view.

The three Flow actions

Send Transactional Email

Sends a transactional layout: order confirmations, shipping updates, account notices. These are sent to everyone, including customers who unsubscribed from marketing.

Field in Shopify Flow What it does
To Email(s) One or more recipients, one per line. Usually a Flow variable such as {{customer.defaultEmailAddress.emailAddress}}
CC Email(s), BCC Email(s) Optional, one per line
Variables (JSON) Data for the layout, for example {"customerName": "John", "orderId": "12345"}, used as {{ variables.customerName }}
Language Optional. Picks the layout's translation, usually {{order.customerLocale}}
Reply-To, From name Optional. Override the sender's defaults for this step
Order, Customer Optional. The order or customer the step is about, needed only when the layout attaches a file from a metafield

The sender and the layout are chosen on the action's own configuration page (Send from and Layout), not in these fields. That page previews the layout you pick, so similar layouts are easy to tell apart.

The action returns a result that later Flow steps can branch on:

Return field Values
status SENT or FAILED, or SKIPPED when a layout switched to marketing had only unsubscribed recipients
messageId The provider's message id, when available
provider GOOGLE, MICROSOFT, SMTP or DEFAULT
A Shopify Flow workflow: a trigger followed by the Send Transactional Email action
Send Transactional Email as a step in Shopify Flow.
The action's configuration page listing the email layouts to choose from
Sender and layout are chosen per step, on the action's configuration page.

Send Marketing Email

Sends a marketing layout: a newsletter, a review request, a win-back offer. Same fields as above, but only marketing layouts are offered, and it sends differently:

  • one email per To recipient (at most 20 per action), each with its own unsubscribe link,
  • your unsubscribe sentence and company details in the footer,
  • customers who unsubscribed are skipped.
Return field Values
status SENT, FAILED or SKIPPED (every recipient had unsubscribed)
messageId The provider's message id of the first email sent, when available
provider GOOGLE, MICROSOFT, SMTP or DEFAULT

Everything about marketing layouts, the footer and the unsubscribe list is in Marketing emails and unsubscribes.

HTTP Request

Runs an HTTP request you saved in the app: method, URL, headers and body, with secrets and variables in any of them.

Field in Shopify Flow What it does
Variables or Body Override (JSON) Either variables used as {{ variables.xxx }} in the URL, headers and body, or a body override: {"body": {...}} replaces the configured body entirely
Return field Values
status The HTTP status code
response The response body as stringified JSON

Around the app

Page What it is for
Home Setup guide, usage against your plan, success rate, sending health, an actions chart and recent activity
Email Senders Connected Microsoft 365 and Google accounts, SMTP servers, and the test-send dialog
Email Layouts The emails themselves, in a Transactional and a Marketing tab: subject, design, languages, attachments, test variables
Header & Footer Reusable header and footer presets shared across layouts
HTTP Requests Saved requests: method, URL, headers, body
Secrets Encrypted values you reference as {{ secrets.keyName }}
History Every execution with status, timing, request and response detail, and a resend
Unsubscribes Customers who opted out of your marketing emails, with search, manual add, resubscribe and CSV export
Developer API keys, the MCP connect command, AI and GitHub connections
Permissions The optional store permissions, each with a grant and a revoke
Settings Email defaults, marketing footer texts per language, brand colors, custom fonts and alerts
Help Support, documentation links and your plan
The dashboard with the setup guide, usage, success rate and recent activity
Home: usage against the plan, success rate and the latest sends at a glance.

Plans and limits

Plan Price Actions per rolling 30 days Attachment storage
Free $0 500 500 MB
Starter $15 / month 5,000 2 GB
Grow $35 / month 15,000 10 GB
Unlimited $100 / month Unlimited 50 GB

Annual billing is available on every paid plan and works out cheaper than monthly. One action is one email sent or one HTTP request executed; a marketing email to several recipients is still one action. Every plan includes all features; the plans differ only in volume and storage. See Plans and usage.

Start here

In this order, the first email is about fifteen minutes away:

  1. Install and set up - the app in your admin.
  2. Email senders overview - connect the mailbox or SMTP server the emails leave from.
  3. Build an email layout - design the email, or start from one of the Workflow templates.
  4. Passing data from Shopify Flow - add the action to a workflow and hand over the data.
  5. Testing your email setup - send a test and read the result in History.

Then, as you need them: Send emails in your customer's language, Marketing emails and unsubscribes, Attach a file from an order or customer metafield, Make an HTTP request from Shopify Flow, Notifications and alerts and the Frequently asked questions.