Notifications - Klaviyo
Route Timesact events into Klaviyo so your existing flows, templates, and segments do the sending. For how this compares to the other channels, see Notifications Overview.
Connect Klaviyo
- In the app, open Billing & Account from the main sidebar.
- Click the Integrations tab.
- On the Klaviyo card, click Connect.
- You are redirected to Klaviyo's sign-in screen. Sign in, or pick the account if you have several.
- Review the requested permissions and approve.
- You return to the Timesact admin and the card shows Connected with the date.
To disconnect, click Disconnect on the same card. Events already in Klaviyo are unaffected, new events just stop firing. One Klaviyo account per shop, to switch accounts, disconnect then reconnect.
Permissions Timesact requests
- accounts:read — required by Klaviyo on every install.
- events:write — send Timesact events into your Klaviyo metrics.
- metrics:read — check our metrics exist (used by the admin status display).
- profiles:write — create or update customer profiles when sending events and subscribing newsletter sign-ups.
- subscriptions:write — record marketing consent when a customer ticks the newsletter checkbox.
Timesact does not access your subscriber lists, campaign performance, or billing.
Turning it on
In the customer experience template's Notifications, set the functionality's channel to Klaviyo and Save. The Available events panel shows what that functionality sends.
Events Timesact sends
- Timesact - Back in Stock Subscribed — shopper signs up via Notify Me.
- Timesact - Back in Stock Ready — subscribed variant restocked (once per subscriber).
- Timesact - Preorder Confirmed — customer places an order with a pre-order item (once per order).
Each becomes a Klaviyo Metric (tagged source timesact). Use them as flow triggers and reference event properties as {{ event.property_name }}.
Event properties
Copy the value from the first column straight into your Klaviyo template.
Timesact - Back in Stock Subscribed and Timesact - Back in Stock Ready share the same properties:
Copy this into your template | What it contains | Available on |
|---|---|---|
| The shopper's email address | Both |
| The shopper's name (empty for now) | Both |
| The product's Shopify ID | Both |
| The variant's Shopify ID | Both |
| The product's title | Both |
| The chosen variant, for example size or colour | Both |
| The product's URL handle | Both |
| Link to the product image | Both |
| Link to the product page | Both |
| The variant price | Both |
| Current inventory for the variant | Both |
| Your store's name | Both |
| Your store's domain | Both |
| Whether the shopper ticked the newsletter box | Subscribed only |
Timesact - Preorder Confirmed has its own set:
Copy this into your template | What it contains |
|---|---|
| The customer's email address |
| The customer's name |
| The order's Shopify ID |
| The order number, for example #1234 |
| The order total |
| The order's currency |
| Number of pre-order items in the order |
| Your store's name |
| Your store's domain |
| An array of the pre-order items, loop it in your template (see below) |
The preorder_products array holds one entry per pre-order item. Loop it in your template and reference each item's fields:
{% for item in event.preorder_products %}
{{item.product\_title}} - {{item.variant\\_title}} x{{item.quantity}}
{% endfor %}
Each item exposes: product_id, variant_id, product_title, variant_title, price, quantity, and preorder_information.
Shipping address and product image in a pre-order email
The Timesact - Preorder Confirmed event carries the fields listed above. It does not carry the shipping address or a product image, so an email built on this event alone will not have those as {{ event.… }} properties. Two things to know:
- Your customer still receives Shopify's own order confirmation, which already includes the shipping address and the product images. The Timesact pre-order email is an extra, pre-order specific message, it does not replace it.
- To show the address or a product image in a Klaviyo email, use the order data Klaviyo's own Shopify integration syncs. Every pre-order order carries the Pre-order tag in Shopify, so you can single out pre-orders there: trigger the flow on Shopify's order data filtered to the Pre-order tag, and use the Timesact event to identify it as a pre-order. For a lighter "thanks for pre-ordering" that only needs items and totals, trigger on Timesact - Preorder Confirmed and use its properties.
Place a test order and open the resulting email to confirm the address and image render before you set the flow live.
How to use the events in Klaviyo
The events above arrive in Klaviyo as Metrics. You act on them inside Klaviyo by building a new flow, or editing a flow you already use:
- In Klaviyo, go to Flows and either Create flow or open an existing flow you want this to drive.
- Set the flow trigger to Metric, then select the Timesact metric (for example Timesact - Back in Stock Ready, Timesact - Back in Stock Subscribed, or Timesact - Preorder Confirmed).
- Add an Email (or SMS) action and select or build the template you want to send.
- Personalize it with the event's data, referenced as
{{ event.property_name }}, for example{{ event.product_title }}or{{ event.product_url }}. - Add any filters or conditional splits you need, then turn the flow live.
If you already run Klaviyo, there is nothing extra to install, just point a flow's trigger at the Timesact metric, or add it onto an existing flow. Keep in mind a metric-triggered flow runs every time the event fires, so a subscriber re-enters it on each qualifying restock.
Already running post-purchase flows?
If you already have Klaviyo flows running off your Shopify orders and you just need to tell a pre-order apart from a normal order, use the Timesact - Preorder Confirmed metric for that. It is a common instinct to reach for the Pre-order tag Timesact adds to the Shopify order instead, but those tags are the right tool inside Shopify, for filtering your Orders list, saved views, Shopify Flow and exports. Inside Klaviyo the event is the reliable route, because it arrives carrying the order number, the totals and the full list of what was pre-ordered.
Two ways to use it, once the Klaviyo channel is set on the functionality as above:
- Give pre-orders their own flow, triggered on the Timesact - Preorder Confirmed metric.
- Keep the flow you have and add a conditional split on Timesact - Preorder Confirmed, so pre-order buyers take a different branch and in-stock buyers carry on as usual.
Nothing extra needs installing on the Klaviyo side, and your existing templates, segments and sending settings keep working as they do now.
Adding sign-ups to a Klaviyo list
Emailing shoppers is one use of the events. The other is keeping them, putting the people who sign up on a list you can market to later.
- In Klaviyo, open Lists & Segments and create or pick the list these shoppers go into.
- Go to Flows, click Create flow, set the trigger to Metric and choose Timesact - Back in Stock Subscribed.
- Add a Subscribe Profile action, select that list, and turn the flow live.
To keep the list to shoppers who asked for marketing, turn the newsletter checkbox on in the customer experience template's Notify Me form settings and add a conditional split before that action, checking that {{ event.subscribe_to_newsletter }} is true. Shoppers who did not tick it still get their restock email.
Prefer segments? The events arrive as metrics, so you can build a segment on "has done Timesact - Back in Stock Subscribed" and filter it by any event property, for example product_title, to target the exact product someone waited for. For the Shopify side of the same job, see Add Newsletter Sign-ups to Your Customer List.
Testing and troubleshooting
Trigger the event on a test shop, then check Klaviyo → Analytics → Metrics → the metric's Activity Feed (it appears within about a minute, and the first fire can take a moment to create the metric). If events stop, the usual cause is a disconnected integration, reconnect from Billing & Account → Integrations. Properties are snake_case.
Updated on: 09/07/2026
Thank you!