I am having a frustrating problem with workflow

I am having a frustrating problem with workflow.

I am using workflow to send a welcome discount to new customers when they subscribe to newsletter.

I am also using the Shopify forms app for waitlist for a beauty box launch. The waitlist also automatically subscribes customers to email marketing. Which means customers get the first order offer even tho they didn’t opt in for the welcome offer themselves.

What I have tried to solve this problem was set condition to only send email when tag does not equal to the tag from Shopify Form but that presented another problem where a customer doesn’t get the welcome offer because they join the waitlist before subscribing to newsletter for the welcome offer.

I have spent hours trying to separate both events in workflow using tags since Shopify Forms adds tags but nothing seems to be working.

I have attached a screenshot of what I have done so far which I believe should work.

Is there a way to separate both events? Any assistance would be greatly appreciated.

I am sorry that this message is long. I was trying to be as clear as possible.

Thank you.

Some things things I see.

  1. Why are you using tag newsletter? The fact they are in this workflow at the trigger should be all you need.
  2. Instead of branching to two different conditions, make it one flow. Condition 1: didn’t subscribe at checkout. True → Condition 2: tag is newsletter. True → Condition 3: tag includes 1057372. True → send welcome email. False → send different email. One flow for True, one for false. Easy.
  3. You can combine Conditions by using AND, or OR. i.e. checkout OR tags.
  4. Your Checkout Condition doesn’t have anything for false. So someone subscribes at checkout, but receives nothing.

How are your customers subscribing to the newsletter and opting in for the welcome offer, is this just an opt-in at checkout, or are they submitting a different form, or something else?

Hi @Folake1

From your screenshot, the logic looks correct, but the problem is that both events are using the same trigger: “Customer subscribed to email marketing.”

The issue is that the Shopify Forms waitlist also subscribes the customer to email marketing, so your welcome automation can’t reliably tell why the customer subscribed. By the time the workflow runs, both customers are simply “subscribed.”

A few things you could try:

  • Instead of relying on customer tags, use the source of the subscription if it’s available in Shopify Flow. This is more reliable than checking tags.

  • If you’re using Shopify Forms, consider having the form add a unique customer metafield or a specific tag, then add a short delay (e.g. 1–5 minutes) before checking that value. Sometimes the workflow runs before the tag has been applied.

  • Another option is to use separate marketing automations for the newsletter and the waitlist, rather than trying to separate them within the same workflow.

One thing I noticed in your workflow is that you’re checking whether the customer does not include the Shopify Forms tag. If the workflow is triggered before that tag is added, the condition will evaluate as true, and the welcome email will still be sent.

If a customer joins the waitlist first and later subscribes to your newsletter, Shopify won’t trigger another “Customer subscribed to email marketing” event because they’re already subscribed. That’s the main limitation you’re running into.

Unfortunately, this is more of a Shopify Flow limitation than a problem with your workflow logic. Unless you can distinguish the subscription source or use a different trigger, it’s difficult to separate these two events reliably.

Best regards,
Devcoder :laptop:

A better logic would be:

Trigger:
Customer tag added

Condition:
Added tag is welcome-newsletter

AND

Customer tags does not include welcome-discount-sent

Action:
Send welcome discount email

Then:
Add customer tag welcome-discount-sent

The important part is to give your newsletter form its own unique tag, for example:

welcome-newsletter

And your waitlist form should have a different tag, for example:

beauty-box-waitlist

I would not block the welcome email based on the waitlist tag, because if a customer joins the waitlist first and later genuinely subscribes through the welcome offer form, the old waitlist tag could prevent them from receiving the welcome discount.

Using “Customer tag added” with the newly added newsletter tag is cleaner because it tracks the specific form/action that should trigger the welcome offer. The “welcome-discount-sent” tag also prevents the same customer from receiving the discount multiple times.

Hope this helps.

Customers opt in for the welcome offer by subscribing to newsletter via the pop up on my homepage. I am using Shopify Forms for the waitlist which automatically subscribes customers to newsletter when they join the waitlist.

Since Shopify automatically add the tag “newsletter” to customers who opt in for the welcome offer, I thought using that in condition to separate both events could work.

I tried the suggested solution but that doesn’t work. What I would like to achieve is:

  1. The welcome offer should be sent to customers who opt in for email marketing.
  2. The welcome offer should NOT be sent to customers who joined the waitlist first unless they then opt in for welcome offer then welcome offer should be sent.

I’m curious, because you are using the Forms App for the waitlist, I’m curious if it would still work if you added to the checkout condition, and just removed everything else

Because if your email subscription is theme based, it’s likely recorded as WEB, where the Shopify Forms form would likely be recorded as APP. You could eliminate all of that extra stuff. Could be worth testing out, and saving yourself some extra steps.

Also, just as a side note, tags take some 15-30 seconds to be added, and doing an instant workflow without a little wait step would probably cause a race condition, resulting in a waitlist submission to not have the tag yet and receiving the email incorrectly.

The only problem is your wanting to send the email if waitlist then opt-in offer. Because at that point, they are already a subscriber, signing up in the email popup wouldn’t do anything and wouldn’t trigger anything.

Hello there @Folake1
The problem is that they both trigger the same email marketing subscription event. Rather than just using tags, try separating by trigger. For instance, you can have your newsletter form add a unique metafield or tag to the customer that only exists for that particular signup, and then have the workflow look for that value before sending out the welcome discount. Waiting list signups take a diferent path, so they will not satisfy that condition, although anyone who signs up for the newsletter later can still get the offer.

I think the issue is the trigger rather than your conditions. Since both forms subscribe the customer to email marketing, Flow can’t reliably tell which signup actually triggered the event. If someone joins the waitlist first, they’ll already have the Shopify Forms tag when they later subscribe to your newsletter, so they’re excluded from the welcome email.

If Shopify Forms doesn’t expose the signup source, you may need to track it with a custom metafield or handle the logic with a custom automation outside Shopify Flow.

I tried this approach but it doesn’t work. I think the criteria “emailsubscription Not equal to app is preventing the email from being sent when Shopify Form is used first then the customer opts in for email marketing by using the pop-up on homepage. Unless I can override the “emailsubscription Not equal to app” it will still consider the condition even after customer opts in for email marketing via the pop up on homepage.

No the issue I think is really that when the customer signs up on the wait list form, they are subscribing. Then if they try to sign up for the email offer, nothing happens because they are already a subscriber. So you’re trying to exclude them from the email initially, but then trying to include them later, but it’s not triggering because they are already a subscriber. Could be wrong, but in my eyes, I don’t see how you will accomplish this unless you unsubscribe them first.

I also think this is the problem. So, unless I use a different trigger for each event I would probably run into the same issue.

You are right about what the problem actually is. Shopify Forms doesn’t expose the signup source and I am not versed in metafields so I have to look for another way. I am considering telling Shopify Forms not to automatically subscribe customers to email marketing and I manually do it when the Beauty Box drops then I can send them a launch email campaign. Manual labor but thats all I have for now. Thank you by the way.

I will definitely give this a try

Are you able to share the link to your home page so we can see the popup? I think looking at how this popup works will be key to understanding if its possible to adjust it to only trigger when that particular popup is submitted.