A preview of the chosen layout on the Flow step. The configuration page of Send Transactional Email and Send Marketing Email now shows the layout you pick below the Layout field, with its subject line. It is rendered with the layout's test variables, in its main language, and a marketing layout shows its unsubscribe footer. With many layouts, or several with similar names, you can see which one the step sends before you save. Links in the preview do not open.
Fixedv1.19.107.11.2026
Save in Shopify Flow confirms your settings
Fixed: clicking Save on the configuration page of a Shopify Flow step (Send Transactional Email, Send Marketing Email, HTTP Request) showed a loading animation and nothing else. The settings were saved, but Shopify Flow did not display the confirmation. The page now shows Configuration saved successfully at the bottom. If a save fails, a red message says your changes were not saved and what to do.
Fixed: a logo set to center or right in the email header appeared on the left in classic Outlook for Windows. It now sits where you placed it in every mail client.
Newv1.19.003.11.2026
Ask Sidekick, and failure alerts on by default
New
Ask Sidekick from the setup guide. Every step of the setup guide on the dashboard has an Ask Sidekick button. It opens Shopify's assistant with a ready question about that step, for example how to connect a sender or build your first email layout, in the language of your admin. The button shows wherever Sidekick is available in your admin.
Ask Sidekick why an action failed. A failed email or HTTP request in the history shows Ask Sidekick why this failed. Sidekick looks the action up by its id and explains what went wrong and how to fix it.
Improved
Failure alerts are on by default. The High failure rate email is now on for every store, new and existing. It goes out when at least 20% of at least 50 actions failed within 60 minutes, at most once every 6 hours. Change who receives it, or switch it off, in Settings under Notifications.
Fixedv1.18.730.10.2026
Reconnect a sender without rebuilding your workflows
Reconnect your Google or Microsoft 365 account without removing senders or changing existing Shopify Flow steps. Reconnect is now available when a login expires, even when all required permissions are already granted. Choosing a different account or cancelling authorization leaves the existing setup intact. Dashboard, sender, history and Developer pages also load their data more efficiently. The support chat button uses its normal bottom spacing instead of an additional Shopify safe-area offset.
Fixedv1.18.622.10.2026
Attachments picked from the media library are sent
Fixed: a file picked from the media library as an attachment was left out of the email when it had been uploaded as an image. The email went out without it and without an error. Such attachments are now sent, also on layouts saved before this release.
Newv1.18.512.10.2026
Sending from a Microsoft 365 group works
Fixed: sending from a Microsoft 365 group (for example sales@ with Send As granted to the connected mailbox) failed with "Group Shard is used in non-Groups URI", and Verify on the sender reported a missing Send As permission although it was granted. The app now sends a group the way Outlook does, from the connected mailbox with the group as the From address. Shared mailboxes are unchanged.
If a group was added with the type "Shared mailbox", the error now says so: remove it and add it again as "Microsoft 365 group mailbox".
Newv1.18.411.10.2026
Flow step card refreshes with every layout save
Fixed: the step card in Shopify Flow could keep showing the previous thumbnail of an email layout for up to an hour after you saved a change. The email that is sent was never affected, it always uses the layout as saved. The card now refreshes as soon as the layout is saved and shows when the layout was last saved.
Newv1.18.309.10.2026
Quota and sender alerts reach every shop again
Fixed: the quota warning (80%), quota exceeded and sender alert emails did not reach most shops. The shop's contact email, which the app records when you open it, was cleared again on every hourly token refresh, so the alert had nobody to go to. The email is kept now, it was restored for every affected shop, and the alerts that were due this month were sent.
Newv1.18.207.10.2026
Uploaded brand fonts in your emails, and a preview fix
Uploaded brand fonts (Settings > Brand and fonts) are now embedded in the email as a font face and loaded in the builder, so a layout set to an uploaded font shows it in the editor, the preview and in mail clients that load web fonts (Apple Mail, iOS Mail, Outlook for Mac, Thunderbird). Gmail and Outlook for Windows do not load web fonts from any sender and keep showing the fallback font. Before this release the uploaded file was never sent along and every client fell back.
Fixed: the compiled preview in the email builder sometimes stayed blank the first time it was opened. The preview frame is now created with the email in it, so it shows on the first click.
Fixedv1.18.102.10.2026
Paragraph alignment from the text block's toolbar is sent as shown
In a visual layout, a paragraph you centered or right-aligned with the toolbar of a Text block looked right in the editor and the preview, but the sent email used the alignment of the block itself instead (left, unless you changed the block). The paragraph's alignment was written in a way mail clients ignore.
Fixed today. Emails now go out exactly as the editor shows them: the alignment of a paragraph wins over the alignment of its block. Nothing to change on your side, and no layout needs to be saved again; the next email from your workflows is already correct.
If you set a paragraph alignment a while ago and the emails never followed it, they will from now on. Open the layout once to see what your recipients get; the canvas has always shown it.
Newv1.18.030.09.2026
Developer API and MCP: unsubscribes, settings, permissions, presets and sending health
The Developer API and the MCP server now cover everything the app gained in 1.16 and 1.17. Keys and levels are unchanged: READ keys read, WRITE keys also change things.
Unsubscribes.GET /api/v1/unsubscribes lists the marketing unsubscribe list with masked addresses, POST /api/v1/unsubscribes/check tells you whether one address is on it (the address goes in the body, never in a URL), and POST / DELETE /api/v1/unsubscribes unsubscribe or resubscribe an address (WRITE). MCP: list_unsubscribes, check_unsubscribed, add_unsubscribe, remove_unsubscribe.
Settings.GET /api/v1/settings returns the shop's email defaults (CC, BCC, Reply-To, From name), the marketing footer texts per language, the brand colors and the custom fonts. MCP: get_settings.
Permissions.GET /api/v1/permissions lists the optional permissions and which are granted. MCP: get_permissions.
Presets.GET /api/v1/presets returns the header and footer presets with their texts per language. MCP: list_presets.
Sending health.GET /api/v1/sending-health returns what the dashboard card shows: broken links and images, sender problems, failure rate and unsubscribes. MCP: get_sending_health.
History. An email entry now names its layout and sender (emailTemplateId, senderId), the list returns the total and filters by layout, sender, name and a look-back window. Stats count skipped marketing emails on their own (skippedInvocations).
Layouts.localeConfirmed says whether the layout's main language was chosen, a marketing layout saved without company details comes back with a warning, and the layout schema (GET /api/v1/layout-schema) explains attachments from a metafield, unique discount codes, presets, {{ view_in_browser_url }} and the company details.
Also fixed: Sidekick no longer quotes recipient addresses from an error message, and a line of technical text that appeared below the email on the canvas of transactional layouts, and below the footer preview under Settings, Marketing emails, is gone. It was never part of any sent email.
Fixedv1.17.129.09.2026
BCC recipients of emails sent through Google
Emails sent through a connected Google account did not reach their BCC recipients. The address was accepted, shown in History and in the Gmail Sent folder, but it was dropped from the message handed to Gmail, so a CRM logging address in the step's BCC field never received its copy. The To and CC recipients were not affected, and neither were emails sent through Microsoft 365 or an SMTP server.
Fixed today. Nothing to change in your workflows: the BCC addresses you have set are used as they are from now on. Emails sent before today were not delivered to the BCC address.
Newv1.17.027.09.2026
Content blocks, unique discount codes, live countdown, and files from metafields
Thirteen new content blocks in the visual builder. Product card, price, product grid, discount code, countdown, order tracking, star rating, testimonial, social links, video, signature, table and view in browser, plus two layout blocks: Columns (two to four) and Show if, a section sent only when a condition on your variables is true. Every field takes a variable, and the canvas shows each block with your test variables. The product card, the discount box, the testimonial, the signature, the video and the order tracking block are built from image, heading, text, price and button parts: open one and edit or hide each part with the full settings of that block, like the Image + Text block. See Content blocks: product, discount, countdown, tracking and more.
Unique discount codes. The discount block can create a single-use code in your store for every email (per recipient of a marketing email), with the value, validity and minimum you set. The code is kept with the send in History. Needs the new optional Discounts permission.
Live countdown. The countdown block is an animated image rendered when the email is opened, in four styles.
Attach a file from a metafield. An attachment can now come from a metafield of the order or customer the Flow step is about, holding either a Shopify file or a link to one, for example the invoice PDF another app saves on the order. Choose Metafield as the attachment source (visual layouts) or Add from metafield (text layouts), pick the metafield, and the file is attached when the email is sent; a list metafield attaches every entry, and sizes are checked at send time (10 MB per file). The Send Transactional Email and Send Marketing Email actions have new Order and Customer fields that tell the step which order or customer to read; steps added before this release need to be re-added to get them. See Attach a file from an order or customer metafield.
Permissions. The app still asks for nothing when installed. Reading order or customer metafields, and creating discount codes, need your permission, which you grant in place and can withdraw at any time on the new Permissions page. What each permission reads, and what it does not, is on Permissions: what the app can read from your store.
Newv1.16.025.09.2026
Marketing emails with unsubscribe, shop-wide defaults, brand colors and sending health
Workflow Transactional Email can now send marketing emails too, and every email you already send stays exactly as it is.
Marketing layouts. When you create a layout you choose its type: transactional (the default, and every layout from before this update) or marketing. The Email Layouts list has a Transactional and a Marketing tab.
New Flow action: Send Marketing Email. It offers marketing layouts only; Send Transactional Email keeps offering transactional layouts only. Your existing Send Transactional Email steps and workflows keep running as before.
One email per recipient, each with its own unsubscribe link. A marketing step sends up to 20 recipients one message each. Every marketing email ends with your unsubscribe sentence, the link and your company details, per language, set once in Settings > Marketing emails and changed per layout or per translation when you need to. Customers who unsubscribe are skipped from then on: History shows Skipped, and the new Unsubscribes page lists them with search, resubscribe and CSV export.
Settings, in tabs. Email defaults (CC, BCC, Reply-To, From name and test recipients) for every email the app sends, marketing texts per language, brand colors that appear in every color picker, and the existing fonts and alerts.
Sending health on the dashboard: broken links and images in sent emails, sender problems, the failure rate and unsubscribes.
History as CSV, with the filters you have set.
Header and footer presets have texts per language and a live preview while you edit; a stacked header's text and links can be aligned on their own.
Attachments per language on rich text and HTML layouts.
The app uses Shopify's new admin design.
Newv1.15.024.09.2026
The app speaks your language
Workflow Transactional Email now follows the language of your Shopify admin. It is available in English, German, Spanish, French, Italian, Dutch, Danish, Portuguese (Brazil and Portugal), Japanese and Chinese (Simplified and Traditional).
Every page, dialog and message of the app, including the email builder, email senders, HTTP requests, history and settings.
In Shopify Flow, the settings page and the preview of the Send Transactional Email and HTTP Request steps.
The Sidekick tools and the Flow templates of the app.
The language follows the one you chose for your Shopify account. To change it, open your Shopify account profile and pick a Preferred language. Everyone on your staff sees the app in their own language.
Two things stay as they are:
The fields inside the Flow steps (To Email(s), CC, Reply-To, Language and so on) stay in English, because Shopify Flow shows them exactly as the app defines them.
Your emails are never changed. They go out exactly as you wrote them. To send customers an email in their own language, add translations to a layout. Send emails in your customer's language
Also fixed: when you created a new header or footer preset, the Save bar sometimes did not appear, so the preset could not be saved. It now shows at the top of the page as soon as you change something.
Fixedv1.14.221.09.2026
The Variables (JSON) snippet with line items is accepted in Shopify Flow
A layout with an order line items table gets a Use in Shopify Flow snippet that contains a small Flow loop for the products. Pasting that snippet into Variables (JSON) of the Send Transactional Email action answered "Invalid JSON format", although the snippet was correct.
The reason: the check in the Flow editor read the text before Shopify Flow had filled anything in. At that point the loop is not JSON yet; it only becomes a list of products when the workflow runs.
The check now understands Flow variables and loops, in the Send Transactional Email and the HTTP Request action. Paste the snippet as it is, without quotes around the line_items line.
The same applies to a value written with the json filter, such as "name": {{ order.customer.displayName | json }}.
JSON that is really broken, like a missing comma or single quotes, is still reported when you save the step.
You are told when your mail server stops answering
Until now, an SMTP server that did not answer at all was only retried: every email failed with a connection timeout, and no alert was sent, because a single timeout is not proof that the server is gone.
Now the app counts. After three connection failures in a row, the shop gets the sender alert that names the problem - your mail server does not answer our connection attempts - together with what to check: host, port, that the server is running and reachable from the internet, including from our sending IP address. A successful send resets the count.
Test Connection on an SMTP server and the History detail of a failed email show the same advice. Notifications and alerts
Newv1.14.018.09.2026
Multi-language layouts, line items, version history and AI
Send each customer the email in their language, build layouts by describing them, and never lose a change again.
Emails in your customer's language. Add translations to any layout, as a copy or translated with AI, and switch between them from the language picker next to the page title. Set the new Language field in the Send Transactional Email action to {{order.customerLocale}} and each customer gets their version. Send emails in your customer's language
One layout for every language. The new {{ language }} variable holds the language an email is sent in, so a single layout can show one paragraph to German customers and another to everybody else, without a full translation. Switching between the languages of a layout keeps the editor exactly as it is; only the content changes. Send emails in your customer's language
Reply-To and From name per workflow. Send replies to your support inbox and show a sender name that fits the email, straight from the Flow step. Reply-To and From name
Order line items table. A new block lists the products of an order with images, quantities, prices and totals. The Flow variables card writes the Flow loop for you. Order line items table
Attachments from a link. Attach an invoice or ticket PDF from a URL in your Flow data; it is fetched when the email is sent. Attachments and images
Version history. Every save of a layout is kept. Preview an earlier version and restore it in one click. Layout version history
Unlimited history on GitHub. Connect a repository and every version of your layouts is committed to it. Edit a layout's file on GitHub and the app picks it up. Keep unlimited layout history on GitHub
Create, edit and translate with AI. Connect your own Claude, OpenAI, Gemini or OpenRouter key, choose from your provider's models, and describe the email you want. Create, edit and translate layouts with AI
Build layouts from your AI assistant. The Developer API and MCP server can now create and update email layouts, translations and versions, so an assistant can build a layout for you. Connect an AI assistant (MCP)
A faster, cleaner app. Every page moved to Shopify's new web components, the same building blocks the Shopify admin itself uses. Pages load faster and follow the admin's own patterns: a setup guide on the home page, one way to filter and search every list, and status and reference information next to the form you are editing. The visual builder now uses the full page width and has desktop and mobile previews plus undo and redo.
History shows the language. Every email event lists the language it went out in, and you can filter History by layout and by sender.
Using the new fields in a workflow you already have: Shopify Flow keeps the fields a step was created with. To get Language, Reply-To and From name in an existing workflow, delete the Send Transactional Email step and add it again. Workflows you do not change keep running exactly as before.
Improvedv1.13.015.09.2026
Alerts when a sender stops working, Liquid that works when sent, and emails that arrive as designed
This release is about the failures you could not see: a mailbox that quietly stopped sending, a layout that previewed fine and then failed, and design details that did not survive the trip to the inbox.
We tell you when an email sender stops working
Until now a sender could break and every email through it would fail with nothing but a red row in History.
Connected Google and Microsoft 365 mailboxes stay signed in on their own: the app renews their access automatically, so nothing expires on you in normal use. When the account itself refuses that renewal (you removed the app's access, a password change ended it, or an administrator blocked it), the dashboard shows a banner and you get an email, once a day per sender, telling you to reconnect it. Reconnecting keeps your senders and your Shopify Flow steps.
The same alert covers setup problems that break every send, each with the exact fix: a wrong SMTP username or password, a mail server that blocks our sending server (we name the IP address to allow), an email address typed into the SMTP host field, a port and encryption that do not match, a Google account without Gmail, and an Outlook mailbox Microsoft has paused.
Test Connection and the test send now show that same fix next to the error.
Connecting a Google account without the "Send email on your behalf" permission is refused straight away with an explanation, instead of connecting a mailbox that can never send.
The alert is on by default. You can switch it off under notifications.
Liquid you type in the editor now works when the email is sent
A comparison like {% if variables.total > 5 %}, a quoted filter such as {{ variables.name | default: "there" }}, or a tag you had partly formatted could look right in the preview and then fail every real send with expected "|" before filter. The editor was storing those characters in a way Liquid could not read.
Existing layouts are fixed automatically, with nothing to change.
Saving a layout that contains a genuine Liquid mistake now tells you when you save, rather than when a customer does not get their email.
Flow data with tabs or quotes no longer empties your email
A product title or note containing a tab or a quote mark (think 12" vinyl) could make the Variables (JSON) unreadable, and the email went out with blank fields.
Those values are now read correctly.
If the data still cannot be read and your layout uses variables, the action fails with a clear explanation in History instead of sending an email with gaps.
Your email design arrives exactly as you built it
Our safety checks on outgoing email were removing a few things a designed email needs.
The mobile viewport and character set are kept, so emails scale properly on phones.
Google Fonts chosen in Branding now load in the email clients that support them, such as Apple Mail.
Outlook-only styling in custom HTML is kept, even when the code was formatted across several lines.
Steadier sending through your own SMTP server
The app opens at most two connections to your SMTP server at a time. When it is busy, Shopify Flow retries the email a little later instead of it failing with "too many connections".
A mail server that does not answer is given up on after 15 seconds and retried through Flow, rather than holding up your workflow for minutes.
Privacy
Send and run history is kept for 30 days on every plan, as our privacy policy states.
Application logs are stored in the EU, and we no longer use request tracing.
HTTP Request responses returned to Shopify Flow stay under Flow's size limit.
Smaller things
The show and hide button on sections in the visual builder is back.
The rich text editor has been rebuilt on a new foundation. Same toolbar, links, images, colours and sizes.
Routine security maintenance. No action needed.
Newv1.12.009.09.2026
Delete files you no longer use
You can now remove uploaded logos, images and attachments you have finished with. Until now a file could only be removed as a side effect of editing the layout that used it, which was no help when you simply wanted to clear out an old logo.
In the app
Open the media picker anywhere you insert an image or attachment - the logo field in Branding, or Insert image in a layout. Every file now has a delete button in its corner. Confirm, and it is removed from storage for good.
Deleting a file that is still in use is refused, and we tell you what is using it
This part is deliberate. The picker lets you reuse one upload across as many layouts as you like, so removing a file that is still referenced would quietly break a different email that is still going out to your customers. If a layout or a shared header/footer preset still uses the file, the delete is refused and the message names them. Take the file out of those, then delete it.
GET /api/v1/files lists your files. Add ?usage=true and each one reports whether anything still references it, so you can find everything safe to clear out in one call.
DELETE /api/v1/files removes one, applying the identical in-use check.
The same is available to an AI assistant over MCP as list_files and delete_file. You can ask it to find and remove your unused images, and it cannot delete one a live email still needs.
Saving a layout used to tidy up files it no longer needed, but only checked other layouts - not shared header/footer presets. A logo used solely by a preset could be removed. Both paths now run the same check.
Newv1.11.019.08.2026
Developer API and MCP, plus easier links in the editor
Manage your actions from your own code, or from an AI assistant like Claude or Cursor.
Developer API
A new Developer page where you create API keys and get a ready-to-copy connect command for Claude Code, Claude Desktop, Cursor, VS Code or Gemini CLI.
A REST API to manage HTTP request actions, and to read your email layouts, senders, secret names, execution history and stats.
An MCP server, so an AI assistant can do the same in conversation - including writing a new action for you that references your existing secrets by name.
Three access levels. Read keys can only look. Write keys can also create, update and delete actions. Execute keys can additionally run a configured HTTP request for real, which sits behind its own level because it sends a live request to a third-party system.
Both surfaces are served from a dedicated address, shopify.workflow-transactional-email.app, so your integrations do not depend on the app's admin URL.
Your credentials stay private. Secret values, SMTP passwords and OAuth tokens can never be read back through the API or MCP at any access level. An assistant can see that a secret named stripeApiKey exists and reference it as {{ secrets.stripeApiKey }} without ever seeing its value. Personal data in execution history is masked before it leaves the server, though free-text fields can still carry customer details.
Links in the rich text editor are much less fiddly
Both of these came from a merchant report.
Highlight text to link it. Select any text, click the link button, and the link is applied to that text - the address no longer has to be visible in the email. There is also a Remove link option when your cursor sits inside an existing link.
Email addresses and phone numbers now work. You no longer type the scheme yourself. Enter hello@yourstore.com and it becomes a mailto link; enter (703) 638-2601 and it dials; enter yourstore.com and it opens as a normal web address. The dialog tells you what it will do before you insert it.
What was actually wrong, since it caused both problems: an address typed without https:// was treated as relative to the Shopify admin page rather than as a real web address. That produced a broken link, so the only way to get a working one was to type the full URL - and an email address could never become a mailto at all. Fixed at the root.
Your existing layouts and saved links are untouched.
A proper page after upgrading
Upgrading used to drop you back on the dashboard with no confirmation. There is now a page that confirms the change, shows what your new plan includes and how much of it you have used, and points you at the next useful thing to set up.
Fixedv1.10.118.08.2026
Line breaks in headers and footers, and tighter block spacing
Two formatting fixes in the visual builder, both reported by a merchant.
Line breaks now work in header and footer text
The footer printed a typed <br> as literal text while separately acting on your Enter key, so you got a line break and a stray <br> on screen.
The header ignored line breaks altogether and ran everything onto one line.
Both are fixed. Press Enter for a new line - typing <br> also works if that is your habit. This applies to your existing layouts straight away, with nothing to change.
Spacing between blocks
Every block carried padding on all four sides on top of the gap between blocks, which stacked up to around 44px between elements and made emails look loose.
Padding is now split, with a new Block Padding (top & bottom) slider under Branding → Layout alongside the renamed Block Padding (sides). Each spacing control now explains what it actually does.
Existing layouts are untouched. They keep exactly the spacing they have today, so nothing shifts in emails you have already tuned. To tighten one up, drop the new slider - around 4px works well.
New layouts start tight by default: roughly 20px between blocks instead of 44px.
Newv1.10.011.08.2026
Inbox preview text, and we now tell you when a variable comes out empty
This release is about one thing: knowing your email is right before a customer tells you it is not.
Preview text
Every layout now has a Preview text field - the line email clients show next to the subject in the inbox. Leave it empty and the client grabs whatever text comes first in your email, which is usually "View in browser".
Supports the same {{ variables.xxx }} as the subject, so it can carry the delivery date or the order number.
Description now says what it actually is: an internal note only you can see. Several merchants had been writing customer-facing copy there.
Templates render leniently on purpose, so a wrong or missing variable never blocks a customer's email. The cost was that it produced a silent blank: the send succeeded, History went green, and only the recipient saw the gap.
A send where a placeholder produced nothing is now badged Empty variables in History.
Opening it names exactly which ones, and separates two very different problems: sent by Flow but empty (wrong property path) versus not sent by Flow at all (missing from your JSON).
Applies to HTTP requests too.
The Variables (JSON) is now written for you
Hand-writing that JSON was the single biggest source of support tickets.
Every layout has a Use in Shopify Flow card with the exact JSON to paste into the Flow action, with all key names already correct. One button copies it.
Common fields are pre-filled - customer name, order name, order total, status page URL.
If a variable looks like line-item data, it warns you: an order has many line items, so {{ order.lineItems.variant.title }} returns nothing and needs a loop. This is the most common cause of an empty variable.
Test Variables now state plainly that they only affect previews and test sends - a live Flow run ignores them.
Layouts, senders, SMTP servers, HTTP requests, secrets and presets used to be undeletable while a Shopify Flow step referenced them.
The problem: that reference is remembered until the app is uninstalled, so it was often a leftover from a workflow you had already deleted or rebuilt - and nothing could tell the difference. Merchants were stuck with records they could not remove.
Deletes are no longer blocked. You get told what still references the item, and you decide.
A Flow step pointing at something deleted now fails with a clear message in History rather than being prevented up front.
Uploaded files are the one exception: the same file can be shared across layouts, so that check stays.
Steadier under load
Added per-store admission control and autoscaling to the action endpoints, so one workflow firing in a burst can no longer slow down everyone else.
The app now returns the right signals to Shopify Flow when it is busy, so Flow paces its retries instead of hammering - nothing is dropped.
Hitting your plan limit now returns a clear, final answer rather than being retried for hours.
Smaller things
Insert image → Paste a link in the rich text / HTML editor is fixed: there is now a cancel button, Enter inserts, Escape backs out, and the Insert button is disabled until you have typed something. Pasting a bare cdn.example.com/logo.png works - the https:// is added for you.
The setup guide now uses the real Flow action names, Send Transactional Email and HTTP Request.
Routine security maintenance: dependency updates across the app, including one critical and three high-severity advisories. No action needed.
New documentation site, Help Center and in-app chat
Getting help no longer means hunting for an email address.
In-app chat, on every page
The chat bubble is now available everywhere in the app, not just the dashboard. Start a conversation from wherever you are - mid-way through building a layout, or staring at a failed action in History.
We already know who you are. Your store, plan and contact details come through automatically, so you do not have to explain which shop you are writing from.
It gets out of the way. The bubble hides itself whenever a dialog is open, and while you are in the visual email builder, so it can never sit on top of a Save button.
A complete Build an email layout reference covering every block in the visual builder, branding settings, and the rich text / HTML mode.
Variables and Liquid - the full templating reference, including loops, conditionals, and why an object renders differently in an email than in an HTTP request.
Make an HTTP request from Shopify Flow - a full worked Airtable example, video included, showing how to call an external API from Flow on any Shopify plan.
New Help Center - report a bug, request a feature, or contact us through a proper form that reaches us directly, with screenshots attached. The Help page in the app now links straight to all of them.
The old documentation at docs.flow-action-extensions.app has been carried over in full, so nothing you had bookmarked is lost - it just lives under the new name now.
Newv1.8.009.07.2026
Now called Workflow Transactional Email, and Sidekick can answer questions about it
Flow Transactional Email is now Workflow Transactional Email. Same app, same install, same senders and templates - a new name, matching the rest of our Workflow range.
Nothing to do on your side. Your Shopify Flow workflows keep working untouched.
One thing worth knowing: the Microsoft and Google consent screens may still show the previous name, Flow Action Extensions. That is expected, and safe to approve.
Ask Shopify Sidekick about your emails
Sidekick can now answer questions about this app directly. Ask things like "which email senders are set up", "did any emails fail this week", "do I have an HTTP request for Airtable", or "why did my last send fail".
Read-only - Sidekick can look at your templates, senders, requests and history, but cannot change anything. It never returns secret values, SMTP passwords, OAuth tokens or message contents.
Fixedv1.7.128.06.2026
Security update
Routine security maintenance: dependency updates and hardening across the app. No action needed.
Included in this pass: outbound requests configured by merchants are checked against internal and private network addresses before connecting, and rendered email HTML is sanitised before sending.
Newv1.7.018.06.2026
Reusable header and footer presets, plus custom fonts
Header and footer presets. Design your branded header and footer once, then reuse them across every email layout. Change the preset and every template using it updates - so a new logo or a changed company address is one edit, not twenty.
Header layouts run from logo-only to logo with tagline and navigation links. Footers cover social icons across 13 platforms, custom legal text, copyright and unsubscribe.
Custom fonts. Upload your brand's heading and body fonts and they appear in the builder's font picker alongside the built-in system and Google fonts.
Email layouts now show their type at a glance in the list, so you can tell a visual build from an HTML one without opening it.
Fixed media picker cards rendering unevenly on mobile, and filenames being cut off.
Fixed an intermittent failure loading files in the picker, which could show "Failed to load files" until the page was reloaded.
Newv1.6.014.06.2026
A central media library, and deletes that cannot break a live workflow
Media library
A single picker for every image and file in the app, with search, type filtering and sorting. Upload your logo once and reuse it across every template and block.
Uploads now go straight to storage rather than through the app, so large files no longer stall the page.
A storage usage bar shows how much of your plan's allowance you have used.
Deletes that cannot silently break things
Deleting a template, sender, SMTP server or secret that a Shopify Flow step still points at used to leave that workflow quietly broken - it would keep running and keep failing.
Every delete now checks for references first. If something is in use, the delete is blocked and the app tells you exactly what to update.
Files are checked the same way, so removing an image from one template cannot break another that reuses it.
Also
Per-store attachment storage caps, with clear messaging when you reach one.
An access trail for any read of an encrypted credential.
Newv1.5.031.05.2026
Send from your Microsoft 365 or Google account - no SMTP credentials
The biggest change since launch: you no longer need SMTP credentials at all.
Connected accounts
Microsoft 365 and Google can now be connected with one click from Email senders → Connected accounts. Sign in once, approve access, and send on behalf of that mailbox. Tokens are refreshed automatically in the background.
Covers more than your own inbox: Microsoft shared mailboxes and group mailboxes, and Google "Send mail as" aliases, each shown with its own badge.
Send test email from the Email senders page confirms a mailbox works before you wire it into a workflow.
Why this matters: app passwords and stored SMTP credentials are a liability - they expire, they get rotated, and they sit in a database. OAuth removes all three problems, and mail sent through your own provider inherits your own domain reputation.
A new attachment system
Attachments now work in plain text and HTML layouts as well as visual ones.
Up to 20 MB across all files on a template. Anything above that is automatically offered as a download link in the email footer instead of an inline attachment.
Improvedv1.4.029.05.2026
Built for Shopify - save bars, unsaved-changes protection and cleaner navigation
A pass over every screen to meet Shopify's Built for Shopify standard, so the app behaves the way the rest of your admin does.
Unsaved changes are protected. Every form now uses Shopify's native save bar. Navigating away or switching tabs with pending edits prompts you first, rather than quietly discarding your work.
Native back navigation throughout, so the browser and admin back buttons go where you expect.
Consistent use of toasts for confirmations and inline errors for validation, instead of banners competing for attention.
Critical (red) styling is now reserved for genuine errors and destructive actions, so a red badge always means something is actually wrong.
Reworked dashboard with metric cards, a date range picker and an events chart.
Improvedv1.3.022.05.2026
New EU infrastructure - faster, and encrypted end to end
The app now runs on a new European cloud platform. Nothing changes in how you use it, but underneath:
Databases and caches are region-local in the EU, with encryption at rest.
Your credentials - SMTP passwords, OAuth tokens and secrets - are now individually encrypted with a dedicated key management service, on top of disk-level encryption. Plaintext is never stored.
Redundant instances across availability zones, with automatic scaling under load.
Faster action execution, and far better behaviour when a lot of workflows fire at once.
Improvedv1.2.027.04.2026
Rich text editing, in-app chat and steadier request handling
Rich text editing - write an email body with a normal formatting toolbar instead of raw HTML, and switch to HTML whenever you need full control.
In-app chat - reach us from inside the app without hunting for an email address.
Fixed Liquid rendering edge cases where certain values were not substituted correctly.
Fixed saving an HTTP request with an empty body, which previously failed for endpoints that legitimately take none.
Improved how HTTP requests are processed under load, so a burst of Flow runs no longer slows the queue behind it.
Newv1.1.024.03.2026
A visual email builder, plus template export and import
Writing HTML by hand is a poor way to design an email. So now you do not have to.
Visual email builder
Build a layout from blocks - heading, text, image, button, divider and spacing - and see it render live next to the settings panel.
Layout blocks: put an image beside text, or split a row into two columns with configurable widths and gaps.
Branding settings for colors, fonts, spacing and content width apply across the whole email.
Test variables let you preview the design with realistic data before sending anything.
Export and import
Export any email template and import it into another store. Useful for agencies running the same design across several clients, and for keeping a backup of a layout you spent real time on.
Newv1.0.020.03.2026
Workflow Transactional Email 1.0 - email and HTTP requests for Shopify Flow
The first release. Shopify Flow can automate plenty inside Shopify, but it cannot reach out - this adds two actions that can.
Send Transactional Email - send branded email from your own SMTP server. Gmail, SendGrid, Mailgun, Amazon SES, or your own mail server.
HTTP Request - call any external API, webhook or service. GET, POST, PUT, PATCH and DELETE, with custom headers and a JSON body. Works on every Shopify plan, including Basic, where Shopify's own HTTP action is not available.
Secrets - store API keys, tokens and passwords once and reference them anywhere as {{ secrets.keyName }}. Never exposed in templates, configuration or logs.
Liquid templating - build dynamic subjects, bodies, URLs and payloads from Flow data with {{ variables.xxx }}.
Email templates - reusable subject and HTML body, so one design serves every customer.
Event history - every execution logged with its request and response detail, plus usage, plan limit and success-rate cards on the dashboard.
No Shopify permissions - the app requests no access scopes and never reads your shop data.