Dotdigital anniversary journey with shopify

I want to automatically send discount emails to customers on their first purchase anniversary (365 days after initial order)

I’m using dotdigital to sync with shopify and the data for “date of order purchased” for every order made passes through. That means the purchase date is constantly overwritten (correct me if I’m wrong)

But in order to trigger anniversary journey/workflow based on their first purchase date, I need to store the data first?

Can anyone advise a solution or a better workaround?

Thanks!

Hey @Edward_Lee

You’re right, dotdigital overwrites the order date with each new purchase so you lose the original one. Good news is there’s a simpler way to do this than you might think.

Shopify actually tracks the first order date natively. You don’t need to store it yourself. Go to Customers → Segments → Create segment, and use this filter:

first_order_date = -1y

That gives you everyone whose first purchase was exactly 1 year ago. Then set up a Shopify Email automation triggered by “Customer joined segment” and attach your discount email. Shopify checks daily who matches and enrolls them automatically. No metafields, no extra apps, no overwriting issues.

If you specifically need the journey to run inside dotdigital, you could sync that segment over and trigger it from there.

One more option worth exploring but test it first: you could create a customer metafield called “First Purchase Date” and use Shopify Flow to write the date only when the field is empty (so it never gets overwritten). The logic makes sense but there are some known quirks with Flow evaluating empty fields on first-time customers, so definitely test it before going live.

Good luck with it!

Hey Mateo.

Thanks for the quick reply. I’ve created the segment in shopify and managed to sync it over to dotdigital under list.

In dotdigital, any new contacts in the list can be enrolled into a program which I will use for the anniversary journey.

In summary, shopify segment (auto enrolls who fits the criteria of their first order date was 1 year ago) → Adds to dotdigital list → enrolls into program → receives EDM.

Seems ok but open to hear any feedback on the flow of things. Let me know if I might have been blindsided by anything. :slight_smile:

Cheers!

Hey @Edward_Lee

That flow looks right to me. The segment does the heavy lifting and dotdigital takes it from there. Can’t think of anything that would catch you off guard with that setup.

Just one thing: double check that the segment filter stays as first_order_date = -1y (relative, not a fixed date) so it keeps rolling and picks up new customers every day as they hit their anniversary.

Glad it worked!

Hi @Edward_Lee,

You can approach this by combining Customer metafields with Shopify Flow. Here’s a simple way to set it up:

  • First, create a customer metafield to store the first purchase information (e.g. “first purchase date”).

  • Then, set up a Shopify Flow workflow to detect when a customer places their first order, and automatically save that date into the metafield.

  • After that, use Dotdigital to sync this metafield and build an anniversary automation based on that date (for example, sending emails or offers on the customer’s purchase anniversary).

This setup gives you a flexible way to track and re-engage customers over time.

Hello @Edward_Lee

Yes, that must be the case, because if the order date is changed with every new purchase, it wouldn’t really reflect a date of first order for a customer. A workable solution could be to have a customer attribute/metafield that records the first purchase date a single time and never updates. Then you can sync that value to dotdigital and have that serve as the trigger in your anniversary journey. Alternatively, if you have a comprehensive marketing stack you may be able to combine Shopify customer segments with automation rules (based on the date of a customer’s first order).

Hi @Edward_Lee,

From my experience, the easiest free workaround is to use the Shopify Flow app. You can set up a simple rule: when an order is placed, check if the customer’s total order count is exactly “1”. If it is their very first order, tell Flow to save that exact date into a new Customer Metafield (you can call it “First Purchase Date”).

Since this rule only works for order number one, that date is locked in forever. You can then sync that specific Metafield over to Dotdigital and use it to trigger your 365-day anniversary emails.

Good luck with your new email campaign!