Goal: ensure a warehouse sees an order note prompting unsubscribed customers to join the newsletter, but only once per customer.
Context: Using Shopify Flow (automation tool) with an order-based trigger so the warehouse can view the note during packing. Order notes are visible to warehouse; customer tags/metafields (customer-level attributes) are not.
Solution adopted: Keep the trigger as âOrder created.â Add conditions: (1) customer has not accepted email marketing; (2) customer does not yet have a specific tag (e.g., â-NLâ). Actions: update the order note, then add the customer tag/metafield to mark theyâve been addressed. This prevents future orders from re-triggering the note for the same customer.
Implementation tips: Prefer checking âNone of customer tags equals â-NLââ rather than a âdoes not equalâ condition to avoid issues with empty tags. Optionally, a metafield can be used instead of a tag; fetching past orders to detect prior notes is possible but less efficient. Testing: manually run and retry the workflow using Shopify Flowâs manual run feature.
Outcome: Confirmed working; issue resolved.
Summarized with AI on December 25.
AI used: gpt-5.
I have a flow, that tells our warehouse if a customer that placed an order, is NOT subscribing to our newsletter.
We then leave a letter, engaging to subscribe and receive newsletters from us.
(Warehouse are told as the customers order note is updated with a specific sign, so our warehouse know)
My question:
Is there a trigger point, that makes Shopify Flow only update it 1 time per customer?
We are not interested in leaving the same letter for the same customer multiple times.
Iâve been looking a point saying, that the automation only should be applied to maximum 1 time per customer, but i can not seem to find anything.
Hi @tristanklavsen Are you adding the note to the order or to the customer?
If you are adding the note to the orders then it will be very hard to send it only 1 time and each time the same customer orders some products it will act like a new order in shopify and the flow will get triggered.
Instead you should start the flow with the customer created trigger and then check if the customer have accepted the email marketing or not, and then add another condition if a customer note is already presented in the customer if yes then trigger will not work if no then trigger will add a note in that customer.
If you will unable to implement the same then Iâm happy to do this for you, let me know. I can implement the flow changes so that this will work well for you.
Hopefully it will help you. If yes then Please donât forget hit Like and Mark it as solution!
Currently the note is added to the order - not the customer.
It is done to the order, because then our warehouse can see it when they are packing the order. They canât see customer tags, but the will see the order note when they start to pack.
Is it impossible to keep doing it on the order and maximim 1 time for each customer?
Also, if i choose the âcustomer createdâ then i suppose it wonât happen to all the customers which isnât new, but still unsubscribed to e-mail marketing and we want to engage them in their next order.
When youâre adding an order note you can also add a tag or a metafield to the customer. Then check whether customer has this tag/metafield.
Alternatively, you can fetch all customer orders and see if any of them has the note and stop processing then, but setting tag/MF is more straight-forward and faster to check.
I think your suggestion makes sense. I keep the trigger on order created and updates the order note, but only for customers who does not have a specific tag!
Does attached look correct?
Order created â Check if email marketing, if no â check if customer tags does not include â-NLâ â update order note â add customer tag â-NLâ
I suppose above will work? And after the order has been updated with a order note, then the customer will receive the tag, which wonât make them able to get in to the automation flow again?
Be careful about checking for tags that do no equal something - that is usually the wrong way to do it because you can have empty tags. I usually check if None of order / tags is equal to "foo"