Customer editing address as trigger for automation

Topic summary

Goal: detect when a customer updates their address even if no purchase occurs, and trigger an automation/notification.

Capabilities and limits:

  • Shopify Flow lacks a “Customer updated” trigger. A scheduled Flow can “Get customer data” filtered by last updated time, but not specifically by address change.
  • Workarounds include storing the current address in a customer metafield (custom data) or cache, then comparing on the next run to detect changes.
  • Third‑party options: Flow Companion (“Customer field changed” trigger; can target Default address and provides old/new values), Mechanic and Arigato (have customer update triggers), or a customers/update webhook connected to Make/Zapier.

Current attempt and issues:

  • A scheduled Flow emails customers updated in the last day. The suggested GraphQL filters use updated_at and order_date to exclude recent buyers; syntax is sensitive (no spaces around colons).
  • Even after correcting syntax and adding logic for customers with no orders, the filter still includes customers who ordered in the last day for the requester.

Status:

  • No confirmed resolution. Immediate filter‑based workaround is unreliable for the requester; address‑specific detection likely requires the metafield/compare approach or Flow Companion.

Notes: Screenshots were shared of the Flow setup; key details were the query syntax and filtering logic.

Summarized with AI on December 11. AI used: gpt-5.

Looking for some type of of automation builder that can recognise this specific trigger as a triggering action to build off:

Customer edits address (no sale).

Basically I just want to know when a customer edits their address, even when they don’t make a purchase.

Flow itself does not have “Customer updated” trigger, but you can have a scheduled Flow to perform “Get customer data” action to retrieve a list of customers updated in the last day (or another time period). So this may fit your task.

Flow is not Plus-only for several years already.

“Flow companion” has a “Customer field updated” trigger to use with Flow.
“Arigato Automation” or Mechanic have “Customer updated” trigger too.

Those, however do not fire specifically for address update.

But you may save a copy of customer address info into customer metafield (for Flow) or into cache (for Mechanic) – next time you’ll be able to tell if it’s changed.

Generally, automation apps work from Webhooks and here is the list of triggers – Webhooks

3 Likes

Hey @CarlosJr123 ,
Shopify doesn’t natively trigger automations when a customer edits their address (since it’s not tied to a sale).

However, you can handle this using:

  1. Shopify Flow – use the Customer updated trigger and check if customer.default_address changed.
  2. Or set up a custom webhook (customers/update) and connect it with Make (Integromat) or Zapier for detailed automation, like sending notifications or tagging customers.

I also have experience in workflow automation, so I can help set this up smoothly.
Best,
Rajat

Hi, thanks -
Shopify flow - this trigger does not appear to exist in Shopify Flow app?

Hi @CarlosJr123 :waving_hand: the mechanic app can do automations like this
e.g. an example from the library as this would have to be custom:

etc https://tasks.mechanic.dev/?q=address

If the properties don’t trigger resource update event , i.e. customer/update , then scheduling(polling) is needed to detect changes.
:bomb: This also means having the initial data stored(cached) for FUTURE comparison is a REQUIRED behavior to build logic for; :thinking: otherwise if there’s no prior info how do you tell there’s been an actual change.

Reach out if you need automation like this made custom. click profile pic on forums for options to connect :speaking_head: :postbox: .

In the Flow Companion app, there is a trigger called “Customer field changed”, which is activated when a customer field is modified. You can select “Default address” as one of the fields to be monitored. This trigger will provide both the old and the new address values to the workflow.

Hi, I’ve been tinkering with a scheduled flow → ‘Get Customer Data’, which I think will serve my purpose. I have a flow set up which daily emails me a list of customers who have ‘been updated in the last day’ But the problem I’m having is I need to narrow down that list. I am not sure if I can narrow it down to customers who have only updated their address, that would be ideal. 2nd option would be to try and exclude the ‘customers who have made an order in the last day’ from the list of ‘been updated in the last day’ as this will narrow down the information I am looking for. do you have more information on the section above “ Shopify Flow – use the Customer updated trigger and check if customer.default_address changed.”?

When getting customers can use query like this to get people who got updated in the last day, but not ordered:

    updated_at:<='{{ scheduledAt }}' 
AND updated_at:>'{{ scheduledAt | date_minus: "1 day" }}' 
AND order_date:<'{{ scheduledAt | date_minus: "1 day" }}' 

To check whether address was changed you need to store it somewhere and compare.
One option is to add a customer metafield (MF) and store current address there.

So you loop over these customers and see if the MF address matches the current address and then you know it was changed and do whatever you need.
Then update the MF.

You would need another flow to get people without MF and set it initially, so that there is something to compare with.
When MF is set, also add a customer tag, like “has-mf” so these people can be excluded from query – unfortunately “Get customers” can’t check for metafields in query.

If you wish, I can set this up for you.

Hi,

For this use-case, I only expect a handful of customers to meet the criteria of people who got updated in the last day, but have not ordered in the last day.

So in the short term, this would be 50% of the solution & I would like to implement it.

The proper solution you have suggested (singling out addresses specifically) looks ideal but I will look into at a later date.

In the meantime would it be possible for you to look at the flow I have set up with your suggested query and advise on what I am doing wrong to implement it? I am currently retrieving an empty email for this flow, even though I know it should contain at least one name of one of my test customer accounts.

Thank you very much for your expertise!

My bad – GraphQL API seems to be picky about spaces:

This does not work

updated_at: <= '{{ scheduledAt }}'

This does:

updated_at:<='{{ scheduledAt }}'

I’ve amended the query in the post above to a working one.

Thanks, I’ve implemented and syntax is now correct, however the list of names it is sending INCLUDES people who have made an order in the last day.

I’d like the list to be everyone who has updated in the last day EXCEPT, for people who have made an order in the last day.

e.g.

  • Jane has changed their phone number in the last day but never made an order.
  • Sam has changed their default address in the last day, and the last time they made an order was a month ago.
  • Christopher has changed their address and made an order in the last day.

In this scenario, I would want the data emailed to me to be only Jane and Sam. In the current flow setup as it is, I would be receiving the data from all 3.

Sure, that’s how it was designed and that is what it does in my store as shared.

One improvement came to mind though – to include people without orders at all.
(can drop ANDs as they are implied)

 updated_at:<='{{ scheduledAt }}' 
 updated_at:>'{{ scheduledAt | date_minus: "1 day" }}' 
(order_date:<'{{ scheduledAt | date_minus: "1 day" }}' OR -order_date)

Yeah apologies, thanks for all your help but this isn’t working for me. still receiving all customers who have ordered in the last day.

Thanks for your time.