30 day fitness Challenge email automation

  • 11 October 2021
  • 1 reply

Badge +2

I run an online 30 day fitness challenge via my Shopify website.


Once a member purchases the challenge, they receive an email every day with a new PDF that links to their workout. The challenge begins on the same date e.g. 1st November for all customers. 


I currently use the SkyPilot app to hold all the PDF files the customer will need to access (day 1-30 PDF’s). 


Using this app, I have to manually add the new PDF file to the product, and then manually edit the HTML and email the members each day.


Within the emails, there is a button that links members to their personal digital files/account. This means that when the customer is directed to their files, they can see all previous files for previous purchases as well.

At present, I have to manually send this email each morning before 6am to ensure that their daily workout email is waiting for them.

Whilst the members of each challenge receive an email with a direct link to their files, they can also log into my website to access their files. 


I need to automate the email process, which I am hoping to do via scheduled klaviyo campaigns to a segment of customers who have purchased that particular challenge. 


I can’t use a triggered flow as the challenge starts on the same date for ALL customers, so timed triggered emails e.g. wait two days would not work.  


The issue is: I need each customer to receive a personalised link to their particular account/pdf’s.




To set up Klaviyo to send scheduled campaign emails to all customers who purchased a specific product.

In the emails, I would need to set up Klaviyo to include a link to:




However, I need to set it up to dynamically replace {{}} and {{}} with the values from Shopify.

If Klaviyo allows me to inject the orders email and id from Shopify, could I structure the link within the daily emails in this format to direct customers to their specific order?

Any help would be much appreciated!


Best answer by retention 11 October 2021, 19:28

View original

1 reply

Userlevel 7
Badge +58

Hey @MattCole - nice to see you in the community.

Thanks for laying out a good detailed explanation of what you’re trying to do, it makes it much easier to help.  :)  

I think there’s a clever way to do this using a “Date Property-Triggered” Flow.  If you’re not familiar, a Flow triggered by the Date Property is an automation you can setup provided you have some properly formatted Date in the users’ profile that you can use to trigger the Flow.  Typically, people use this for Birthday Flows or Purchase Anniversary, where a subscriber gets an email on their Birthday or on the first year anniversary their first purchase.  So the trick here, is how you can add the proper “Date” from a purchase of a 30-Day challenge?

First, I would create each month’s 30 Day Challenge Products distinct from each other within Shopify - either with a “SKU” or a “Variant” or the product Title (e.g. November 30 Day Challenge). This keeps things clean and separated from one month to another, and might be nice if someone wanted to buy the December 30 Day Challenge (even though November is the next one coming up). 

Next, create or use a “Post Purchase Flow” (Triggered on a Placed Order or Fulfilled Order Trigger) that you may already have, and add the Update Profile Property” Action in that Flow so you can add a Date to the customers’ profile property for the First Date of the corresponding 30 Day Challenge (e..g November 1, 2021).  It might look something like this:

Finally, create your 30 Day Challenge Flow that’s Date Triggered. You can follow the step-by-step in Klaviyo’s documentation here:

This lets you create a Flow for each 30 Day Challenge completely automated. 

Now, that’s only half your question.  The other part is how do we get the Order Email and Order ID in each of these messages to link to their respective PDF files.  Unfortunately, as of now, the Date Triggered Flow is triggered on the Date and has no context of the Placed Order event (which has the Order ID), or which Placed Order event (if someone bought more than once) - but it does have the users’ email address.  I’m not familiar with that digital delivery app (SkyPilot), but could you pass the email address to that link where they can see all their Orders and pick the appropriate order to get their Files? 

Otherwise, there is a second way to do all of the above, but requires developer support or to use a intermediary tool like Zapier to fire those Events into Klaviyo.  You would add Customer Properties via the Klaviyo API and sets Custom Properties with at least these two properties:

  • next_order-id: Order ID
  • next_start-date: Start Date of Challenge

Once you have this, you can reference these Custom Properties in your email no different than using any Custom Properties (like First Name, etc) since each Profile will store the most recent Order ID and Start Date within the profile.

Since this requires some custom implementation, there’s lots of ways to go about it depending on the approach.  But you can look at this documentation or pass it to a developer to help:

Finally, I should note, you can also manually update all your profiles (the night before the first challenge) with their “next_order-id” by importing the Customer List into Klaviyo with the respective Order IDs that you can pull from Shopify customer export.  It’s a bit more manual which I suspect is what you’re trying to avoid, but at least you only have to do it once a month versus every day.  But here’s how to update Profiles in bulk (manually):

Hope this helps!