How do I create a recently purchased block?

  • 1 May 2022
  • 2 replies

Userlevel 2
Badge +5
  • Active Contributor I
  • 15 replies

Hey y’all!

So I am in the middle of creating an upsell email and I am curious, can I add a recently purchased block to my email? 

The idea is that I want to personalize the email and suggest other products that would compliment their previous purchase.

Does anyone know how I could do this? 


Best answer by ayyub_here 2 May 2022, 04:53

View original

2 replies

Userlevel 3
Badge +2

Hi @Vbeebs 


First, this will only be possible to achieve by using a metric-triggered flow using the Placed Order trigger. This is because only metric-triggered flows will allow us to dynamically populate previously purchased items into the Klaviyo email. It is not possible to achieve this with campaigns or list or segment triggered flows. Next, I recommend dragging and dropping a net-new email into this flow.

The next step involves inserting the actual dynamic variables into the flow email in order to populate past purchased items. This can be done from scratch, but we already have a flows library with a pre-built dynamic block to make this process much easier. To access this block, navigate to the Flows tab > Create Flow (blue button in the top-right) > Order Confirmation. Click on this and click “create flow” in the modal.



Then click into that flow email and click “edit content”. Then, save the following block shown in the image below.


You can do this by clicking on the block and clicking the little star icon.

Next, navigate back to your original flow triggered off of Placed Order, and click on the “Saved Blocks” section. Drag and drop this dynamically saved block.



Now, we’ll need to limit the flow to people who have placed orders before today (in the past). This can be achieved by adding a Flow Filter. What somebody has done > Placed Order > at least once before 04/09/2021 (today’s date). Next, add a time delay of your choosing and backpopulate the flow.

The time delay length will determine how far back in time the flow will look to populate recipients.  For example, adding a 50 day time delay and backpopulating, will place someone who placed an order 10 days ago to receive this email with their past purchased items in 40 days. Someone who placed an order 30 days ago, will receive the flow email with their past purchased items in 20 days.


Lastly, by default the dynamic items will display vertically rather than horizontally. The latter will require further coding to accomplish. If you’re looking for assistance with template design I recommend checking out our partner page here.

Please like these post

Userlevel 7
Badge +45

@ayyub_here @Vbeebs depending on the product you're selling I would prefer to use the fulfilled product metric making sure that their order actually shipped.

Sending an upsell for an order that never shipped might or is in backorder is probably not going to get much response.