How to automate tasks after a customer's order is updated on Shopify Flow?

Topic summary

Shopify Flow currently lacks native triggers for updated orders, draft orders, customers, and products—a limitation users find frustrating, especially since third-party tools like Zapier support these events.

Workarounds discussed:

  • Use scheduled time triggers (every 10 minutes) + “Get data” action to query recently updated records via updated_at field
  • Leverage existing triggers like “Customer tags added/removed” for specific scenarios
  • Employ third-party apps (Arigato Automation, Flow Companion) that provide update triggers

Key limitations:

  • Update events don’t specify what changed, requiring merchants to store previous values for comparison
  • “For each” loops in Flow restrict actions per item
  • Risk of infinite loops if workflows trigger themselves (e.g., order updated → update order metafield)
  • No events yet exist for metafield or tag updates

Common use cases:

  • Tracking order edits for operational workflows
  • Updating delivery time calculations on draft order changes
  • Triggering notifications when order tags indicate production milestones

Shopify’s position: A staff member explains that while update events exist technically, they lack contextual information needed for most automation scenarios. The team is gathering use cases to inform better design decisions. The discussion remains open with no timeline for native trigger implementation.

Summarized with AI on October 25. AI used: claude-sonnet-4-5-20250929.

Just discovered there’s no trigger for an updated order on Shopify Flow. I’m looking to use this to automate tasks after a customer’s order is updated.

15 Likes

Trigger needed are:

Updated order

Updated Draft order

Updated Customer

Updated Product

6 Likes

Has this trigger been added to Shopify Flow yet?

1 Like

No. I have to use an App for these automations. Arigato Automation works well.

You can use the scheduled time trigger + a “Get data” action to make your own update event.

Something like:

  • Scheduled time trigger: Every hour
  • Get order data (with a query matches which orders you care about)
  • For each (order)
    • Whatever action you want to take
1 Like

I read another thread about this workaround. How would that work in a scenario where I want to trigger an automation for ANY customer that is modified, specifically, any of the following information is changed:

tags

tax-exempt status

email address

custom fields

I don’t want to risk missing a trigger because my query isn’t correct, so it’s easier to trigger based on ANY update to the customer (or order for that matter).

I can’t seem to find the other thread on this topic. Was it removed?

Anything that causes an update event should be caught if you use “updated_at” in your query. You won’t know what changed, though, unless you store the prior value somewhere.

If you want “tags changed”, you can use “Customer tags added” or “customer tags removed”.

1 Like

idk, I haven’t seen another thread

Does that mean I could query for all customers (or orders) that have been updated and run them through the automation individually?

This is what I need, because I will use Conditions to validate the changes that I am looking for before I start the trigger.

Or do I have to query against a specific field?

You need to query with updated_at at the very least. It’s generally better use the query filters to get the smallest number of results as possible as there is a limit of 100 at a time.

+1 For the Updated Order and Updated Draft Order triggers. Its weird that Zapier can do this, but Flow cant. Hope this will come soon!

1 Like

What is your use case?

We deliver big pieces of furniture, and the time a delivery takes varies
greatly. For planning purposes, we have a metafield that calculates
delivery time based on order weight and distance.

We work a lot with Draft orders for people visiting our showroom. This
metafield needs to be updated every time the Draft Order is updated,
especially immediately after the edit. Otherwise our showroom employee
might promise an unrealistic delivery time to our customer.

How fast after edit? We recently improved scheduled workflows to work every 10 min, so if that is fast enough (probably not?) you could do:

Every 10 min

Get updated draft orders

For each draft order

update delivery time metafield

Why so many replies just providing workarounds and asking users’ use-case?

The use-case is: This should just simply exist! For every 1 person that makes a post, there’s probably 1000s more that want the feature. You’re asking one particular person for their use-case, but there’s an infinite amount of possibilities.

I’m needing to use 3rd party tooling to monitor order edits and order updates because this isn’t supported in Flow. I really don’t see why this doesn’t exist; you have all the supporting technology right there.

3 Likes

While the events exist, the events don’t provide the needed information to be able to use them for most Flow use cases. The Order updated event doesn’t tell you what was updated. In addition, merchants will unintentionally build infinite loops like Order updated → update order metafeld if Flow doesn’t have controls on that. We seen it already with experiments.

I’m asking for use cases because (1) many of them can be solved now as I’ve outlined above. I wouldn’t consider those workarounds as sometimes it’s a better solution than an event. And (2) the design of a system that stores data and computes what’s changed requires many decisions in order to make it work as merchants want. The more we know about use cases the better we can design it.

1 Like

That’s fair. I can see the infinite loop happening. Maybe can build something that will recognize when that will happen and disallow it unless there is a break case when it gets called the second time?

In my case, I want to know whenever an order is edited(/updated) and to tag the order with “Pending Edit” so that we can see that someone made a change, and follow our SOP.

Right now, I have in my Admin → Notifications → Webhooks section I have an order/edit and order/update events going to the same address.

If it’s an edit: We get the order, and tag the order

If it’s an update: We get a metafield that is storing an address line, check if that metafield is matching the current shipping address, if it’s not - we update the metafield, and then tag the order same as the above edit

We do get a bit of that ‘infinite loop’ due to the order updates on the tagging; but after the event is received, it breaks on the conditionals and doesn’t repeat.

1 Like

Thanks, you may want to experiment with Scheduled time (every 10 min) + Get order data. It could get you there.

Problem with that is, if I get order data, I have to access it with a “for each”. Flow’s for each’s are very limited in what is allowed to be done on each item. (One action per item?)

Simply put - there’s many apps and workarounds to perform the task - we need to be able to Trigger a flow in more ways.

I’ve spent 2 full working days experimenting with workarounds, like Creating a 3rd party fulfillment service and automating an email to accept the fulfillment, just to get the trigger (only to realize that a fulfillment order doesn’t return the same fields as an order). Or even Manually triggering a risk analysis, only to find out that the On Risk Assessment trigger doesn’t listen for manual risk evaluations. It’s a problem we’ve run into on every Flow project we’ve done.

Flow is improving, and has come a long way.. but we need a few triggers.

On Order metafield updated and/or Order tags updated.

Get Order Data has limitations that break the intentions.

1 Like