Introduction of Flow Action Extension

Shopify Flow is a powerful automation platform, but its built-in action library has limits. You can trigger workflows and set conditions, but when it comes to doing something with external services, calling an API, sending a custom email, native Flow falls short.

Flow Action Extensions bridges that gap. It adds two versatile actions to Shopify Flow, HTTP Requests and Email Sending, letting you connect your workflows to any external API, webhook, CRM, or notification service, all without writing a single line of code.

What Makes It Different

Native Shopify Flow handles internal Shopify actions well (tagging, publishing, inventory adjustments). What it lacks is outbound connectivity, the ability to reach beyond Shopify and interact with external systems. This extension focuses precisely on that gap:

  • HTTP Request action : send GET, POST, PUT, PATCH, or DELETE requests to any API endpoint

  • Email action via SMTP : send rich HTML transactional emails through your own mail server

  • Secure secrets management : store API keys, tokens, and passwords once — reference them anywhere with {{ secrets.keyName }}syntax

  • Liquid template support : build dynamic request bodies and email content with {{ variables.xxx }}placeholders populated from Flow

  • Full execution history : every action logged with request/response details for easy debugging

  • Zero Shopify permissions : the app never accesses your shop data — it only executes outbound requests and sends emails


Feature Reference by Category

HTTP Request Action

Connect Shopify Flow to any external API, webhook, or service with pre-configured HTTP request templates.

Feature

Description

All HTTP Methods

Supports GET, POST, PUT, PATCH, and DELETE — choose the right method for your API

Custom Headers

Add any headers your API requires (Authorization, Content-Type, custom headers, etc.)

Dynamic URLs

Use {{ variables.xxx }} and {{ secrets.xxx }} placeholders in URLs for dynamic endpoint construction

JSON Body Templates

Build request bodies with Liquid template syntax — reference secrets and Flow variables inline

Timeout & Retry Config

Optionally provide variables as JSON input (eg, {"timeout": 30, "retries": 3})

Example URL :https://api.example.com/v{{ variables.version }}/users?key={{ secrets.apiKey }}

Recommended screen recording: Creating Your First HTTP Request (60–90 seconds) — Walk through creating a request template on the HTTP Requests page, adding a header with a secret reference, selecting POST method, and adding a JSON body with {{ variables.xxx }}placeholders. End by showing how to add the "HTTP Request" action in Shopify Flow and select the template.


Send Email Action

Send transactional emails directly from Shopify Flow using your own SMTP server.

Feature

Description

SMTP Configuration

Connect Gmail (smtp.gmail.com:587), SendGrid, Mailgun, Amazon SES, or any custom SMTP server

HTML Email Templates

Create rich email templates with full HTML or plain text — supports Liquid template tags

Dynamic Subject Lines

Use {{ secrets.xxx }} and {{ variables.xxx }} syntax in the subject field

Custom Variables

Pass custom data as JSON in the Flow action input (eg, {"customerName": "John", "orderNumber": "1234"}) and reference it in templates

TLS/SSL Support

Secure connections with TLS/SSL — configure in SMTP Configurations

Display Name

Set an optional "From" display name so emails appear from your brand, not a raw address

Example subject :Order {{ variables.orderNumber }} confirmed

Recommended screen recording: Sending Your First Email End-to-End (90–120 seconds) — Show the full flow: set up an SMTP config with Gmail → create an email template with a dynamic subject and HTML body → add the "Send Email" action to a Flow triggered by "Order Created" → trigger a test order → show the email in the inbox arriving with real order data populated.


Secrets Management

Store sensitive credentials securely and reference them across all your HTTP request and email templates.

Feature

Description

Secure Storage

API keys, auth tokens, and passwords are stored securely — never exposed in templates, Flow config, or logs

Simple Syntax

Reference any secret with {{ secrets.keyName }} — key names are case-sensitive

Runtime Injection

Secrets are replaced at execution time — the actual values ​​never appear in your template configuration

Reusable

Create a secret once, use it across any number of HTTP request and email templates

Important: Use the correct syntax {{ secrets.keyName }}— not {{ secret.keyName }}or {{ secrets['keyName'] }}. Check Event History to verify secrets are being replaced correctly in the actual request.

Recommended screen recording: Secrets in Action (45–60 seconds) — Create a secret (eg, an API key), show it being referenced in an HTTP request template with {{ secrets.apiKey }}, trigger the action, then open Event History and demonstrate that the secret was injected into the actual request.


Event History & Debugging

Monitor every action execution with detailed logs and troubleshooting information.

Feature

Description

Events Card

Shows your current usage for the selected time period

Plan Limit Card

Displays your monthly execution limit (30-day rolling window)

Success Rate Card

Shows how many actions completed successfully vs. failed

Event History

Lists every individual action execution with status, timestamp, and details


Common Use Cases

Here are some popular ways merchants use Flow Action Extensions:

Slack / Teams Notifications

Send a message to a Slack channel or Microsoft Teams webhook whenever an order is placed, a high-value customer signs up, or inventory drops below a threshold. Use an HTTP POST request with a JSON body containing order or customer details.

CRM Sync (HubSpot, Pipedrive, etc.)

Automatically create or update contacts in your CRM when a customer is created or updated in Shopify. Use an HTTP POST or PUT request to push customer data to your CRM's API.

Warehouse/fulfillment webhooks

Notify your 3PL or warehouse system when an order is ready for fulfillment. Send order line items, shipping address, and special instructions via an HTTP POST request.

Custom Order Confirmation Emails

Send branded transactional emails via your own SMTP server instead of relying on Shopify's default notifications. Full HTML support means pixel-perfect emails that match your brand.

Inventory Alerts

Trigger an HTTP request to your internal system or a monitoring tool (PagerDuty, Opsgenie, etc.) when inventory reaches critical levels.

Accounting / ERP Integration

Push order data to your accounting software (Xero, QuickBooks, etc.) or ERP system via their API when orders are created or fulfilled.

Recommended screen recording: Use Case: Slack Notification on New Order (90 seconds) — Show creating an HTTP POST request to a Slack incoming webhook URL with a JSON body that includes order number and customer name via {{ variables.xxx }}. Add the action to a Flow triggered by "Order Created" → trigger a test order → show the Slack message appear in a channel. This is the most relatable demo for merchants.


Getting Started

Getting started takes just a few steps:

  1. Install the app from the Shopify App Store

  2. Create secrets for any API keys or credentials you'll need (optional)

  3. For HTTP requests: go to HTTP Requests and click "Create request" — set the URL, method, headers, and body

  4. For emails: go to SMTP Configs to set up your email server, then go to Email Templates to create your template

  5. Open Shopify Flow and add the "HTTP Request" or "Send Email" action to your workflow

  6. Select your template, optionally provide variables as JSON, and activate your workflow

  7. Test your workflow and check Event History for results

Recommended screen recording: Quick Start — Full End-to-End Setup (2-3 minutes) — Record the complete happy path from install to success: install app → create a secret → create an HTTP request template that calls a test webhook (eg, webhook.site) → add the action to a Shopify Flow → trigger it → show the SUCCESS entry in Event History with request/response data. This single video gives users confidence they can set everything up themselves.


Recording

Duration

Priority

Placement

Speed ​​Intro GIF

15-20 sec

🔴 Must-have

Hero section (replace placeholder GIF above)

Quick Start End-to-End

2-3 min

🔴 Must-have

After Getting Started steps

Creating First HTTP Request

60-90 sec

🔴 Must-have

After HTTP Request Action table

Email End-to-End

90-120 sec

🔴 Must-have

After Send Email Action table

Debugging Failed Action

60-90 sec

🟡 Recommended

After Event History table

Secrets in Action

45-60 sec

🟡 Recommended

After Secrets Management table

Slack Notification Use Case

90 sec

🟡 Recommended

After Common Use Cases section


Support

You can reach out to [email protected] or join our Apps Slack Workspace here