# Connect Mailgun to Shopify Plus and automate your tasks

## Why integrate Mailgun with Shopify Plus

The Mailgun to Shopify Plus integration helps you sync data, automate manual tasks, and keep your stack aligned — without writing code.

### Send transactional emails from Shopify order events automatically

When an order is placed, updated, or fulfilled in Shopify, MESA triggers the right Mailgun transactional email with the relevant details already populated. Your customers get accurate, timely messages without anyone manually initiating them or maintaining a separate send schedule.

### Trigger Mailgun emails from any Shopify customer milestone

When a customer hits a threshold in Shopify — a first purchase, a loyalty tier, a win-back window — MESA sends the signal to Mailgun and fires the right email at the right moment. Your transactional and lifecycle messaging runs on the full range of what happens in your store, not just native Shopify triggers.

### Send fulfillment and shipping notifications the moment status changes

When an order ships, is delayed, or is delivered in Shopify, MESA passes the event to Mailgun and fires the corresponding email at the right moment. Your post-purchase communication stays accurate and timely without custom development connecting the two platforms.

### Automate complex B2B workflows across your entire stack

When a wholesale or B2B order comes in through Shopify Plus, MESA routes it through the right process — custom pricing, approval steps, fulfillment rules — and syncs the details to your connected tools. Your enterprise workflows run without manual coordination between systems.

### Manage multi-store operations from a single automation layer

When an event happens in one Shopify Plus store — an inventory change, a customer update, a fulfillment status — MESA propagates the right action across your other stores and connected platforms. Your expansion stores stay consistent without a separate ops process for each one.

### Keep your enterprise tech stack in sync with store activity

When orders, customers, and products change in Shopify Plus, MESA pushes the relevant data to your ERP, CRM, and warehouse tools in real time. Your enterprise systems stay current without scheduled exports or manual reconciliation.

## Build any Mailgun and Shopify Plus automation

MESA helps you connect apps to automate repetitive tasks. A trigger is an event that starts a workflow, and actions are the steps that occur when it's running.

###### B2B Order Created

Starts when a B2B order is created.
- App ID
- Billing Address
- Browser Ip
- Buyer Accepts Marketing
- Cancel Reason
- Cancelled At
- Client Details
- Closed At
- Company
- Confirmation Number
- Created At
- Currency
- Current Total Additional Fees Set
- Current Total Discounts
- Current Total Discounts Set
- Current Total Duties Set
- Current Total Price
- Current Total Price Set
- Current Subtotal Price
- Current Subtotal Price Set
- Current Total Tax
- Current Total Tax Set
- Customer
- Customer Locale
- Discount Applications
- Discount Codes
- Email
- Estimated Taxes
- Financial Status
- Fulfillments
- Fulfillment Status
- ID
- Inventory Behaviour
- Landing Site
- Line Items
- Merchant Of Record App ID
- Name
- Note
- Note Attributes
- Number
- Order Number
- Original Total Additional Fees Set
- Original Total Duties Set
- Payment Terms
- Payment Gateway Names
- Phone
- Po Number
- Presentment Currency
- Processed At
- Referring Site
- Refunds
- Shipping Address
- Shipping Lines
- Source Name
- Source Identifier
- Source URL
- Subtotal Price
- Subtotal Price Set
- Tags
- Tax Lines
- Taxes Included
- Test
- Total Discounts
- Total Discounts Set
- Total Line Items Price
- Total Line Items Price Set
- Total Outstanding
- Total Price
- Total Price Set
- Total Shipping Price Set
- Total Tax
- Total Tax Set
- Total Tip Received
- Total Weight
- Updated At
- User ID
- Order Status URL

###### B2B Order Updated

Starts when a B2B order is modified.
- App ID
- Billing Address
- Browser Ip
- Buyer Accepts Marketing
- Cancel Reason
- Cancelled At
- Client Details
- Closed At
- Company
- Confirmation Number
- Created At
- Currency
- Current Total Additional Fees Set
- Current Total Discounts
- Current Total Discounts Set
- Current Total Duties Set
- Current Total Price
- Current Total Price Set
- Current Subtotal Price
- Current Subtotal Price Set
- Current Total Tax
- Current Total Tax Set
- Customer
- Customer Locale
- Discount Applications
- Discount Codes
- Email
- Estimated Taxes
- Financial Status
- Fulfillments
- Fulfillment Status
- ID
- Inventory Behaviour
- Landing Site
- Line Items
- Merchant Of Record App ID
- Name
- Note
- Note Attributes
- Number
- Order Number
- Original Total Additional Fees Set
- Original Total Duties Set
- Payment Terms
- Payment Gateway Names
- Phone
- Po Number
- Presentment Currency
- Processed At
- Referring Site
- Refunds
- Shipping Address
- Shipping Lines
- Source Name
- Source Identifier
- Source URL
- Subtotal Price
- Subtotal Price Set
- Tags
- Tax Lines
- Taxes Included
- Test
- Total Discounts
- Total Discounts Set
- Total Line Items Price
- Total Line Items Price Set
- Total Outstanding
- Total Price
- Total Price Set
- Total Shipping Price Set
- Total Tax
- Total Tax Set
- Total Tip Received
- Total Weight
- Updated At
- User ID
- Order Status URL

###### Company Contact Created

Starts when a company contact is created.
- Customer Admin Graphql Api ID
- Title
- Locale
- Created At
- Updated At
- Admin Graphql Api ID
- Company

###### Company Contact Deleted

Starts when a company contact is deleted.
- Customer Admin Graphql Api ID
- Title
- Locale
- Created At
- Updated At
- Admin Graphql Api ID
- Company

###### Company Contact Roles Assigned

Starts when a company contact role is assigned.
- Customer Admin Graphql Api ID
- Title
- Locale
- Created At
- Updated At
- Admin Graphql Api ID
- Company

###### Company Contact Roles Revoked

Starts when a company contact role is revoked.
- Customer Admin Graphql Api ID
- Title
- Locale
- Created At
- Updated At
- Admin Graphql Api ID
- Company

###### Company Contact Updated

Starts when a company contact is updated.
- Customer Admin Graphql Api ID
- Title
- Locale
- Created At
- Updated At
- Admin Graphql Api ID
- Company

###### Company Created

Starts when a company is created.
- Name
- Note
- External ID
- Main Contact Admin Graphql Api ID
- Created At
- Updated At
- Customer Since
- Admin Graphql Api ID

###### Company Deleted

Starts when a company is deleted.
- Name
- Note
- External ID
- Main Contact Admin Graphql Api ID
- Created At
- Updated At
- Customer Since
- Admin Graphql Api ID

###### Company Location Created

Starts when a company location is created.
- Name
- External ID
- Phone
- Locale
- Created At
- Updated At
- Note
- Buyer Experience Configuration
- Admin Graphql Api ID
- Tax Exemptions
- Company
- Billing Address
- Shipping Address
- Tax Registration

###### Company Location Deleted

Starts when a company location is deleted.
- Name
- External ID
- Phone
- Locale
- Created At
- Updated At
- Note
- Buyer Experience Configuration
- Admin Graphql Api ID
- Tax Exemptions
- Company
- Billing Address
- Shipping Address
- Tax Registration

###### Company Location Updated

Starts when a company location is updated.
- Name
- External ID
- Phone
- Locale
- Created At
- Updated At
- Note
- Buyer Experience Configuration
- Admin Graphql Api ID
- Tax Exemptions
- Company
- Billing Address
- Shipping Address
- Tax Registration

###### Company Updated

Starts when a company is updated.
- Name
- Note
- External ID
- Main Contact Admin Graphql Api ID
- Created At
- Updated At
- Customer Since
- Admin Graphql Api ID

###### Clicked Created

Starts when a recipient clicks on a link in your message.
- Tags
- Timestamp
- Storage
- Recipient-domain
- Event
- Campaigns
- User-variables
- Flags
- Log-level
- Envelope
- Message
- Recipient
- ID
- Delivery-status

###### Complained Created

Starts when a recipient complains that a message is spam.
- Tags
- Timestamp
- Storage
- Recipient-domain
- Event
- Campaigns
- User-variables
- Flags
- Log-level
- Envelope
- Message
- Recipient
- ID
- Delivery-status

###### Delivered Created

Starts when a message is delivered.
- Tags
- Timestamp
- Storage
- Recipient-domain
- Event
- Campaigns
- User-variables
- Flags
- Log-level
- Envelope
- Message
- Recipient
- ID
- Delivery-status

###### Opened Created

Starts when a recipient opens an email.
- Tags
- Timestamp
- Storage
- Recipient-domain
- Event
- Campaigns
- User-variables
- Flags
- Log-level
- Envelope
- Message
- Recipient
- ID
- Delivery-status

###### Permanent Fail

Starts when Mialgun stops attempting to deliver messages and drops them.
- Tags
- Timestamp
- Storage
- Recipient-domain
- Event
- Campaigns
- User-variables
- Flags
- Log-level
- Envelope
- Message
- Recipient
- ID
- Delivery-status

###### Temporary Fail

Starts when Mailgun gets a soft bounce.
- Tags
- Timestamp
- Storage
- Recipient-domain
- Event
- Campaigns
- User-variables
- Flags
- Log-level
- Envelope
- Message
- Recipient
- ID
- Delivery-status

###### Unsubscribed Created

Starts when a recipient requests to be unsubscribed from your mailings.

###### Assign Role to Company Contact

Assign a role to a company contact.
- Contacts Count
- Created At
- Customer Since
- Default Cursor
- Default Role
- External ID
- Has Timeline Comment
- ID
- Lifetime Duration
- Locations Count
- Name
- Note
- Orders Count
- Total Spent
- Updated At

###### Assign Roles to Company Contact

Assign roles to a company contact.
- Contacts Count
- Created At
- Customer Since
- Default Cursor
- Default Role
- External ID
- Has Timeline Comment
- ID
- Lifetime Duration
- Locations Count
- Name
- Note
- Orders Count
- Total Spent
- Updated At

###### Assign Roles to Company Location

Assign roles to a company location.
- Contacts Count
- Created At
- Customer Since
- Default Cursor
- Default Role
- External ID
- Has Timeline Comment
- ID
- Lifetime Duration
- Locations Count
- Name
- Note
- Orders Count
- Total Spent
- Updated At

###### Create B2B Draft Order

Create a B2B draft order.
- Applied Discount
- Billing Address
- Custom Attributes
- Email
- Line Items
- Note
- Phone
- Po Number
- Presentment Currency Code
- Reserve Inventory Until
- Shipping Address
- Shipping Line
- Source Name
- Tags
- Tax Exempt
- Use Customer Default Address
- Visible To Customer

###### Create B2B Order

Create a B2B order.
- Billing Address
- Buyer Accepts Marketing
- Cancel Reason
- Company
- Currency
- Customer
- Discount Codes
- Email
- Fulfillments
- Fulfillment Status
- Inventory Behaviour
- Line Items
- Merchant Of Record App ID
- Name
- Note
- Note Attributes
- Number
- Phone
- Po Number
- Presentment Currency
- Processed At
- Referring Site
- Shipping Address
- Shipping Lines
- Source Name
- Source Identifier
- Source URL
- Subtotal Price
- Subtotal Price Set
- Tags
- Tax Lines
- Taxes Included
- Total Discounts
- Total Discounts Set
- Total Line Items Price
- Total Line Items Price Set
- Total Price Set
- Total Shipping Price Set
- Total Tax
- Total Tax Set
- Total Weight
- User ID
- Order Status URL

###### Create Company

Create a company. Cannot attach an existing customer to a new company through this action.
- Company
- Company Contact
- Company Location

###### Create Company Contact

Create a company contact on an existing company.
- Company ID
- Email
- First Name
- Last Name
- Locale
- Phone
- Title

###### Create Company Location

Create a company location on an existing company.
- Company ID
- Billing Address
- Billing Same As Shipping
- Buyer Experience Configuration
- External ID
- Locale
- Name
- Note
- Phone
- Shipping Address
- Tax Exemptions
- Tax Registration ID

###### Delete Company

Remove a company.
- ID

###### Delete Company Contact

Remove a company's contact.
- ID

###### Delete Company Location

Remove a company location.
- ID

###### Get List of Companies

Obtain a list of companies. This action will return 100 results by default.
- Name
- ID

###### Get List of Company Locations

Obtain a list of company locations. This action will return 100 results by default.
- Name
- ID

###### Retrieve Company

Grab all details about a company.
- Count

###### Retrieve Company Contact

Grab all details about company contact.
- ID
- Name

###### Retrieve Company Contact Role

Grab all details about a company contact role.
- ID
- Name
- Note

###### Retrieve Company Location

Grab all details about a company's location.
- Address 1
- Address 2
- City
- Company Name
- Country
- Country Code
- Created At
- Formatted Address
- Formatted Area
- ID
- Phone
- Province
- Recipient
- Updated At
- Zip

###### Retrieve Variant

Grab all details about specific Shopify variants from an existing product.

###### Update Company

Modify a company's information.
- Company ID
- Customer Since
- External ID
- Name
- Note

###### Update Company Contact

Modify the company's contact information.
- Company Contact ID
- Email
- First Name
- Last Name
- Locale
- Phone
- Title

###### Update Company Location

Modify a company location.
- Company Location ID
- Buyer Experience Configuration
- External ID
- Locale
- Name
- Note
- Phone

###### Add a Member to Mailing List

Add one member to a mailing list.

###### Add Bounce

Add a bounce record to a domain's bounce list.

###### Add Complaint

Adds an address to the complaints list.
- Message

###### Add Multiple Members to a Mailing List

Add multiple members to a mailing list.

###### Add Unsubscribe

Add an address to the unsubscribed list.
- Message

###### Assign IP to a Domain

Allocate a dedicated IP to a specific domain. Only dedicated IPs can be assigned to a domain.
- Message

###### Create Mailing List

Create a mailing list.
- Address
- Name
- Description
- Access Level

###### Create Route

Create a new route.

###### Create SMTP Credentials

Create a new set of SMTP credentials for a specific domain.
- Login
- Password

###### Create Template

Store a new template.
- Name
- Description
- Template
- Tag
- Engine
- Comment

###### Create Webhook

Create a new webhook. When adding a clicked or opened webhook, ensure that you also have tracking enabled.

###### Delete an Unsubscribed Record

Removes an address from the unsubscribed list.
- Message

###### Delete Bounce

Remove a bounce from a bounce list.
- Message

###### Delete Bounce List

Remove a bounce list from a domain.
- Message

###### Delete Complaint

Remove a specific spam complaint.
- Message

###### Delete Domain

Remove a domain from your account.

###### Delete Mailing List

Remove a mailing list.

###### Delete Member from Mailing List

Remove a member from a specific mailing list.

###### Delete Route

Remove a route.

###### Delete SMTP Credentials

Remove SMTP credentials.

###### Delete Stored Messages

Remove all stored messages.

###### Delete Tag

Remove a tag from a specific domain. The tag's statistics are not deleted.

###### Delete Webhook

Remove a webhook.

###### Get List of Bounces

Obtain a list of bounces for a specific domain.

###### Get List of Complaints

Obtain a list of complaints for a specific domain.
- Address
- Created At

###### Get List of Domain Countries

Obtain a list of countries of origin for a specific domain for different event types.

###### Get List of Domain Devices

Obtain a list of devices for a specific domain that have triggered event types.

###### Get List of Domain Providers

Obtain a list of email providers for a specific domain and for different event types.

###### Get List of Domain Stats

Obtain a list of total stats for a specific domain.
- End
- Resolution
- Start
- Stats

###### Get List of Domain Tags

Obtain a list of tags for a specific domain.

###### Get List of Domains

Obtains a list of domains under your account.
- Created At
- ID
- Is Disabled
- Name
- Require Tls
- Skip Verification
- Smtp Login
- Spam Action
- State
- Type
- Web Prefix
- Web Scheme
- Wildcard

###### Get List of Event Statistics

Obtain a list of event statistics for a specific domain.

###### Get List of Events

Obtain a list of events for a specific domain.

###### Get List of IPs for a Domain

Obtain a list of IPs currently assigned to a specific domain.
- Items

###### Get List of IPs for an Account

Obtain a list of IPs assigned to your account.
- 0

###### Get List of Mailing List Members

Obtain a list of members in a specific mailing list.

###### Get List of Mailing Lists

Obtain a list of mailing lists under your account.
- Access Level
- Address
- Created At
- Description
- Members Count
- Name

###### Get List of Routes

Obtain a list of routes.
- Total Count
- Items

###### Get List of Tag Stats

Obtain a list of statistics for a specific tag.

###### Get List of Templates

Obtain a list of stored templates for a specific domain.
- Created At
- Description
- Name

###### Get List of Unsubscribes

Obtain a list of recipients who have unsubscribed from your emails.
- Message

###### Get List of Webhooks

Obtain a list of webhooks.

###### Parse Email Address List

Parses a delimiter-separated list of email addresses into two lists: parsed addresses and unparsable portions.
- 0

###### Parse Email Address List (Private)

Parses a delimiter-separated list of email addresses into two lists: parsed addresses and unparsable portions.

###### Retrieve an Unsubscribed Record

Grab all details about a single unsubscribe record.
- Message

###### Retrieve Bounce

Grab all details about a specific bounce event by a specific email address.
- Address
- Code
- Error
- Created At

###### Retrieve Complaint

Grab all details about a single spam complaint by a specific email address.
- Address
- Created At

###### Retrieve Domain

Grab all details about a domain, including credentials and DNS records.

###### Retrieve Domain Connection Settings

Grab all details about the delivery connection settings for a specific domain.

###### Retrieve Domain Tag

Grab all details about a tag from a specific domain.

###### Retrieve Domain Tracking Settings

Grab all details about the tracking settings for a specific domain.

###### Retrieve IP

Grabs all details about the specific IP.
- Ip
- Dedicated
- Rdns

###### Retrieve Mailing List

Grab all details about a single mailing list by a specific address.

###### Retrieve Mailing List Member

Grab all details about a mailing list member.

###### Retrieve Route

Grab all details about a route.
- Description
- Created At
- Actions
- Priority
- Expression
- ID

###### Retrieve SMTP Credentials for a Domain

Grab all details about the domain's SMTP credentials.

###### Retrieve Stored Message

Grab all details about a stored message.

###### Retrieve Template

Grab all details about the specific template, including metadata information.
- Created At
- Description
- Name

###### Send Message

Send a message.
- Message
- ID

###### Unassign IP from a Domain

Disconnect an IP from a specific domain.
- Message

###### Update Click Domain Tracking Settings

Modify click tracking settings for a specific domain.
- Active

###### Update DKIM Authority

Modify DKIM authority for a specific domain.
- Self

###### Update Domain Delivery Connection Settings

Modify specified delivery connection settings for a specific domain.
- Require Tls
- Skip Verification

###### Update Mailing List

Modify a mailing list such as address, description or name.
- Name
- Description
- Access Level

###### Update Mailing List Member

Modify a mailing list member.
- Name
- Vars
- Subscribed

###### Update Open Domain Tracking Settings

Modify open tracking settings for a specific domain.
- Active

###### Update Route

Modify a route.

###### Update SMTP Credentials

Modify an existing SMTP credentials. Currently, only the password can be changed.
- Password

###### Update Tag

Modify a tag for a specific domain.
- Domain
- Description

###### Update Unsubscribe Domain Tracking Settings

Modify unsubscribe tracking settings for a specific domain.
- Active
- HTML Footer
- Text Footer

###### Update Webhook

Modify an existing webhook.

###### Validate Email Address

Verifies an email address based off defined checks.
- Address
- Did You Mean
- Is Disposable Address
- Is Role Address
- Is Valid
- Mailbox Verification
- Parts
- Reason

###### Validate Email Addresses

Verify email addresses based off defined checks.

###### Verify Domain

Validates a domain. If the domain is successfully validated, you should see the following in a workflow's Logs: Domain DNS records have been updated.
