Using Klaviyo with Subscription Experiences
Send customer and order information to Klaviyo about customers who enter Subscription Experiences through metrics.
This guide explains how you can use these metrics to send branded notifications about flow events to customers with Klaviyo flows.
- Shopify Checkout Integration
- Recharge Checkout on Shopify
Before you start
- Review the Klaviyo overview guide to understand how Klaviyo works with Recharge.
- Review Instructions for building an Upcoming Order Cross-sell Subscription Experience A/B test with Klaviyo notifications for a detailed walkthrough of using Recharge flows with Klaviyo, including a video tutorial.
How it works
Each step in a flow consists of a node, which automates the customer experience. The Klaviyo node allows you to send Recharge event metrics to Klaviyo when building an Upcoming Order Cross-sell or Surprise and Delight flow in Recharge.
Each Klaviyo node included in a flow is unique and contains different event properties depending on the actual event. You can add a different Klaviyo node for each step of the customer journey. See the related section for more information on the properties sent depending on the event:
Use the flow triggered on Recharge event metric and its associated properties to build Klaviyo email flows to communicate with customers and provide them with notifications associated with specific events in your flow.
Add a Klaviyo node to a Subscription Experience
Add the Klaviyo node to your Subscription Experience when the "flow triggered on Recharge metric" is triggered. This metric is triggered when the event before the Klaviyo node occurs, sending the event properties from Recharge to Klaviyo. Follow the steps below to add the Klaviyo node to your Recharge flow:
- Create a subscription experience in Recharge.
- Click the kebab menu on the existing notification node and select delete to remove the Recharge notification node and only send emails through Klaviyo. This is not required if you send both Recharge and Klaviyo notifications.
- Drag the Klaviyo node to wherever you want the "flow triggered on Recharge" metric triggered. You can add one node per flow branch.
- Click the node to edit the properties sent from Recharge to Klaviyo. Add any custom event properties here.
- Save the flow.
Build your flow in Klaviyo after saving the "flow triggered on Recharge" metric.
Build a Klaviyo email flow using Recharge event metrics
Build your Klaviyo email flow in Klaviyo after you've added the Klaviyo node to your flow in Recharge:
- Create your flow in Recharge, adding the Klaviyo node where relevant.
- Save the flow in Recharge to send a mock metric and corresponding data to Klaviyo automatically under the name Jane Doe. Use this test customer to preview properties in Klaviyo emails.
- Create a new email flow in Klaviyo:
- Use the "flow triggered on Recharge" metric as the flow trigger.
-
Filter by the flow name or flow ID to ensure that the messages you send apply to the specific flow. You can access the flow ID on the Klaviyo notification node in Recharge.
- If you cannot see the flow ID as an option, use the flow name as the filter. You can find the name in your flow settings under Flow title.
- If you cannot see the flow ID as an option, use the flow name as the filter. You can find the name in your flow settings under Flow title.
- Optional: You can use any of the additional properties listed to further segment your customers, or add any custom event properties to show different emails based on A/B branches or splits.
- Add the Klaviyo email action to the flow, and any other actions. You can preview and test your Klaviyo flow to access event properties.
- Save and activate your Klaviyo flow.
- Navigate back to the Recharge merchant portal and perform a test through your Recharge flow to confirm that the Klaviyo flow triggers as expected.
- Activate your Recharge flow.
All flow-related emails are automatically sent through Klaviyo after you activate both your Recharge and Klaviyo flows.
Event properties
The event properties sent to Klaviyo through the flow triggered on Recharge metric are dependent on where you place the Klaviyo node in the canvas.
For example, if you place the Klaviyo node before the incentive node in a flow, the incentive event properties are not available as properties to use when segmenting in Klaviyo, because the incentive hasn't happened yet.
By default, all available event properties are selected and included when the event metric is sent from Recharge to Klaviyo. Alternatively, select only the properties you need when adding the Klaviyo node using the checkboxes beside each relevant property:
Select Preview and Test when building your Klaviyo flow to view the available event properties and values. Click on any event property to copy the property, and paste it into your email.
Event properties are created at the time of the event and are not updated if there are changes to the order after the event properties are sent.
Flow event properties
Flow event properties are related to the flow itself. These are sent with every Klaviyo node.
Property name |
Event property |
Description |
Unique identifier for a flow |
flow_id |
Identifies the flow that the event metric is coming from. For example, you can configure a trigger filter to look for events with a specific flow_id to trigger a Klaviyo email flow for a specific Recharge flow. |
Flow name | flow_name | The flow's unique name. |
Customer event properties
Customer event properties are related to specific customer events.
Property name |
Event property |
Description |
Unique identifier used in a customer portal link |
customer_hash | The unique string identifier used to identify the customer portal link. |
Customer portal URL |
customer_portal_link |
A magic link that dynamically populates a direct link to the customer portal. Passwordless login is supported. |
Order event properties
Order event properties are related to specific order events.
Property name |
Event property |
Description |
Unique identifier for the charge that the flow applies to |
charge_id |
The charge_id for the upcoming charge that the flow applies to. For example, if the flow is configured to add a gift to the customer's next order, the charge_id would reflect the order the gift was added to. The charge_id is typically used for investigation purposes. |
Charge scheduled date |
scheduled_at |
The processing date scheduled for the affected charge. Use this property to dynamically populate the upcoming charge date that the flow affects. |
Line items |
line_items{} |
The line item details of the affected charge. Use this property to dynamically populate the upcoming orders line items, ie. the product image, or product or variant title. |
Currency symbol |
currency_code_symbol |
The customer’s currency symbol. Use this property to dynamically populate the customer's currency code symbol. |
Currency code |
customer_charge_currency |
The customer’s currency code. Use this property as a filter or to dynamically populate a customer's currency code, ie. USD, CAD, MXN, AUD. |
Sub-total |
subtotal_price |
The sub-total of the affected charge. Use this property as a filter or to dynamically populate the subtotal price. |
Total discounts |
total_discounts |
The total discounts on the affected charge. Use this property as a filter, or to dynamically populate the discount amount on an order. |
Total price |
total_price |
The total price on the affected charge. Use this property as a filter, or to dynamically populate the order's total price. It is recommended to use the sub_total event property for Shopify Checkout Integration stores as the tax amount on an upcoming order is an estimate or displays as 0.00. This is because the tax is calculated when the charge is processed. |
Total tax estimated |
total_tax |
The total tax estimated on the affected charge. Use this property to dynamically populate the estimated tax amount on an order. The tax amount on an upcoming order is an estimate or displayed as 0.00 for Shopify Checkout Integration stores. This is because the tax is calculated when the charge is processed. |
Customer’s shipping address |
shipping_address{} |
The customer’s shipping address. Use this property to dynamically populate the customer's shipping address. |
Incentive event properties
The incentive event properties relate to the incentive provided through the Recharge flow. The incentive node must be placed before the Klaviyo node for the event properties to be made available.
Property name |
Event property |
Description |
Variant id |
incentive_variant_id |
The variant id for the incentive product. Use this property as a filter or to dynamically populate the incentive products variant id. |
Product image |
incentive_image{} |
The incentive product image. Use this property as a filter or to dynamically populate the incentive product image. |
Incentive type |
incentive_offer_type |
The incentive type that customers are receiving. The value of this event property is dependent on the type of incentive and can be one of the following:
Use this property as a filter or to dynamically populate the incentive offer type. |
Incentive offer value |
incentive_offer_value |
The value of the incentive being offered to customers. The value of this event property is reflective of the incentive type:
|
Onsite experience customer portal link |
onsite_experience_link |
A magic link that sends customers directly to the onsite landing page. This is only applicable for Upcoming Order Cross-sell flows. Use this property as a filter to dynamically populate a direct link to the onsite experience. |
Custom event properties
Use custom event properties to pass unique store information from Recharge to Klaviyo and dynamically populate store information, or use the custom event properties to filter and segment customers. You can send up to four custom event properties per Klaviyo node.
For example, if you set up a Surprise and Delight A/B test and want to segment the customers in Klaviyo based on who didn’t receive an incentive, you could add a Klaviyo node to the “no offer” branch and pass a custom attribute with the property name branch and the value no_offer:
- The property name will always be prefixed with
rc_flow_
- To continue with the same example, in Klaviyo the custom event property would populate as
rc_flow_branch: no_offer