Skip to main content
Each recipe names the storekit event to use as the trigger, the filters to add, and the event properties you can drop into the message with {{ event.PropertyName }}. Event and property names are exact — copy them as written. The full list is in the Event Reference.
Before building, connect Klaviyo and place a test order so the metrics exist in your account — Klaviyo only offers a metric as a flow trigger once it has received it at least once.

Abandoned Checkout

Bring back a customer who reached checkout but did not pay. Needs the Public API Key / site ID on the store, because Started Checkout is a browser event.
  1. Trigger: Started Checkout
  2. Time delay: 30 to 60 minutes works well for food
  3. Flow filter: has not done Placed Order since starting this flow
  4. Send a reminder using {{ event.ItemNames }} and {{ event.Value }}, and link the button to {{ event.CheckoutURL }}
The basket lives in the customer’s browser and is cleared roughly ten minutes after they leave, so by the time the reminder lands they will usually need to re-add their items. Loop over event.Items to show ProductName, Quantity and ProductImage so they can rebuild it in a tap.

Browse Abandonment

  1. Trigger: Viewed Product
  2. Time delay: a few hours
  3. Flow filters: has not done Placed Order since starting this flow, and has not done Started Checkout since starting this flow
  4. Feature the dish with {{ event.ProductName }} and {{ event.ProductImage }}; link to {{ event.ProductURL }}
Add a trigger filter of Categories contains Mains (or whichever category) to keep this to dishes worth a nudge rather than every side or drink.

Post-Order Thank You

  1. Trigger: Fulfilled Order — fires when you mark the order complete, so the customer has their food
  2. Time delay: 1 to 2 hours
  3. Thank them by name with {{ person.first_name }}, mention {{ event.ItemNames|join:', ' }} and offer a code for next time
If you use storekit’s feedback requests, do not ask for a review here as well — storekit already sends one. Use Review Events instead.

Reorder Reminder

  1. Trigger: Ordered Product
  2. Time delay: 2 to 4 weeks
  3. Flow filter: has not done Placed Order since starting this flow
  4. Use {{ event.ProductName }} in the copy: “Time for another Margherita?”
Add a trigger filter Quantity is at least 1 and ItemPrice is at least 8 (or similar) so the flow keys off a main, not a dipping sauce. Because one order sends one Ordered Product per dish, set the flow’s smart sending or a profile filter so the customer only enters once per order.

Win-Back

  1. Create a segment: Placed Order zero times in the last 45 days and at least once overall
  2. Trigger a flow when a profile is added to the segment, or send a campaign to it with an offer
  3. Personalise with the customer’s usual store — VenueName on their last Placed Order — so the offer is redeemable somewhere they actually visit
For accounts that ran the historical sync, the segment is accurate from the moment it is created.

Cancellation and Refund Follow-Up

  1. Trigger: Canceled Order or Refunded Order
  2. Send an apology and a discount for their next visit; {{ event.OrderCode }} is the short code the customer saw on their receipt, and on Refunded Order the event value is the amount refunded
  3. Add the profile to a “recently apologised” segment that is excluded from promotional campaigns for a few days

Pre-Order Reminder

  1. Trigger: Placed Order with a trigger filter IsPreOrder equals true
  2. Delay until {{ event.PreOrderDateTime }} minus a couple of hours (Klaviyo’s “wait until a date property” step)
  3. Remind them what is coming and when, with {{ event.ItemNames }} and {{ event.FulfillmentMethod }}

Review Flows

These trigger on the review events sent when you use storekit’s feedback requests — see Review Events to enable them.

Thank positive reviewers

  1. Trigger: Positive Review Submitted
  2. Thank them and link to your Google or TripAdvisor page, or offer a reorder code
  3. Include {{ event.ReviewContent }} so they recognise their own words

Recover negative reviews

  1. Trigger: Negative Review Submitted
  2. Send an internal notification to your team with {{ event.Rating }}, {{ event.ReviewContent }}, {{ event.OrderCode }} and {{ event.VenueName }}
  3. Send the customer an apology with a voucher after a short delay
  4. Split on FoodRating, ServiceRating, AtmosphereRating and ValueRating if you want a different message for a cold pizza versus a slow queue

Dish-level follow-up

  1. Trigger: Reviewed Product with a trigger filter Rating is less than 3
  2. Use {{ event.ProductName }}, {{ event.Comment }} and {{ event.Reasons }} in an internal notification to the kitchen

Review reminder

  1. Trigger: Review Requested
  2. Time delay: 1 day
  3. Flow filter: has not done Review Submitted since starting this flow
  4. Send a reminder linking to {{ event.ReviewUrl }}

Multi-Store Accounts

Every order and review event carries VenueName and VenueSlug (browser events such as Started Checkout carry VenueSlug only), so one flow can serve every store:
  • Branch per store — add a conditional split on event.VenueSlug to swap the logo, address or offer.
  • Restrict to one store — add a trigger filter VenueSlug equals soho.
  • Segment by store — a segment condition of Placed Order where VenueSlug equals soho at least once gives that store’s customers.

Event Reference

Every event and property, with units

Menu Catalog Sync

Show dish images and prices from your catalog