Shopify Flow Internal Emails & Zendesk

We use Shopify Flows to alert our staff regarding potential issues with orders - this is done by sending internal emails from Shopify Flows to our support email address, which is accessed via Zendesk.

Unfortunately, all of these emails are now being directed to Spam by Zendesk due to a circular dependency - our Shopify store default email address is our support email address, which is also our primary Zendesk email address.

Zendesk describes the issue as “Received from support address” and “The email was received from one of your listed support addresses and is causing a mail loop. You will need to change the from: and reply-to: addresses in your email client to show the actual requester’s email address.”.

However, this means we are completely stuck - our default Shopify notification email address is specifically set to be our support email address so that, if a customer replies to any notification messages sent to them via Shopify, their replies are directed into Zendesk for our customer service team to respond to. We do not want Shopify notification emails to be sent from a “no reply” email address, as many of our emails sent to customers via Shopify are often manually sent by ourselves (checking order details etc.) and require a reply.

I have tried adjusting the Shopify Flows so that they are sent to alternative email addresses that are also accessed via Zendesk but this is still causing the same issue and error message, presumably because Zendesk tries to send an auto-reply back to the Shopify Flow to thank them for reaching out etc. (just as if a regular customer had emailed our support channels) and determines that it is a support email address.

Does anyone have any experience or suggestions regarding this? I can’t imagine that we are the only company using Shopify and Zendesk together!

Thanks!

Sounds like the issue is specifically about routing internal alerts through a customer-facing support inbox that is designed to send auto-replies. Have you tried using a different domain?

The root cause is that Zendesk sees the “from” address on the Flow email as one of its own support addresses, so it flags it as a mail loop. You need to break that loop by making sure the internal Flow emails never originate from (or appear to originate from) any address Zendesk recognizes as a support address.

The cleanest fix is to change your Shopify store’s “Sender email” specifically for Flow-generated emails. You can’t do that directly in the Flow “Send internal email” action since it always uses your store’s sender email.

Instead of using the built-in “Send internal email” action in Flow, use the “Send HTTP request” action to hit an endpoint that sends the email from a different address. The simplest version of this is to use the Zendesk API directly to create a ticket, bypassing email entirely.

In your Flow, replace the “Send internal email” action with a “Send HTTP request” action configured like this:

HTTP method: POST
URL: https://yoursubdomain.zendesk.com/api/v2/tickets
Headers:
Content-Type: application/json
Authorization: Basic {base64 encoded email/token:api_token}

Body:

{
  "ticket": {
    "subject": "Flow Alert: Potential issue with order {{ order.name }}",
    "comment": {
      "body": "Order {{ order.name }} has been flagged.\n\nCustomer: {{ order.customer.displayName }}\nEmail: {{ order.email }}\nTotal: {{ order.totalPriceSet.shopMoney.amount }}\n\nDetails: {{ order.note }}"
    },
    "priority": "normal",
    "tags": ["shopify-flow-alert"]
  }
}

To get the Authorization header value, take your Zendesk agent email address (the one you log in with, appended with /token) and your API token, combine them as agent@yourdomain.com/token:your_api_token, then base64 encode that string. You can generate the base64 value at any online encoder. The result goes after "Basic " in the header.

To create the API token in Zendesk: go to Admin Center, then Apps and integrations, then Zendesk API, then enable Token Access and add a new token.

This creates tickets directly in Zendesk without any email being sent, so there’s zero chance of a mail loop. The tickets show up in your Zendesk views just like any other ticket. You can customize the subject and body with any Shopify Flow template variables relevant to your workflow.

Your store’s default sender email stays as your support address, so customer-facing notifications still work exactly as they do now and customers can reply into Zendesk normally. The only thing that changes is how Flow alerts reach Zendesk: via API instead of email.

You are an absolute legend, thank you so much for this!

I need to do a bit of experimenting with the ticket formatting to ensure that instructions and templates are legible but, most importantly, Flows are now landing in our Zendesk support inbox.

Thank you again for your help!

Sorry, another question…what can I place in the Body to change the ticket requester to flow@shopify.com? I’ve tried a few methods but none seem to work - I must be missing something. At the moment I am now receiving a copy of every Flow ticket being created in my own inbox (as my email address was used to generate the base64 encoded string.

Thanks again!