Klaviyo and Ordergroove ESP Integration


Creating this experience will require work from both the client team as well as Ordergroove. If you're interested in this experience as well as any possible customizations to it please reach out to your Ordergroove representative to determine the overall scope and timing for delivery.

This is an "as is" integration and requests to change how it works will be considered as out of scope.

🛑 End of Life

Klaviyo is deprecating their v1 and v2 legacy APIs on June 30th, 2024. This ESP integration will no longer function, take a look at our updated NEW Klaviyo Integration to maintain functionality.

 


ESP Integration End of Life

Klaviyo is deprecating their v1 and v2 legacy APIs on 6/30/2024. Klaviyo discusses the technical ramifications in their developer help center. The legacy Ordergroove ESP integration with Klaviyo described in this article was built on these APIs, and will no longer be functional after the deprecation is complete. 

Ordergroove's NEW Klaviyo integration is built on Klaviyo’s most up to date APIs, and provides even more functionality than this legacy integration. If you are using the Ordergroove legacy ESP integration with Klaviyo, please plan ahead for transitioning off of the legacy integration and on to use our new integration for your transactional messages. The actual migration is manual process that Ordergroove will guide.

If you have any questions or want to discuss the migration process, please reach out to your CSM.


Overview

Ordergroove can integrate with Klaviyo utilizing their Server-Side API functionality. This integration incorporates 14 transactional emails and requires merchants to have a resource with experience setting up emails within Klaviyo. 

What’s Included?

Transactional emails with single language dynamic values:

    1. Subscription Started
    2. Subscription Reactivated
    3. Subscription Canceled
    4. Order Reminder
    5. Out of Stock Day 1
    6. Out of Stock Day 15
    7. Out of Stock Day 30
    8. Credit Card Expiration Warning
    9. Credit Card Expired
    10. Order Declined - CC Issue
    11. Order Declined - Generic Issue
    12. Item Discontinued
    13. Item Discontinued - Subscription Product Replaced
    14. AI Churn Prevention

For information about the specific fields included in each email, please review the Klaviyo Implementation Documentation.

Out of Scope

  • Requests to change how the integration works, as it is an "as is" integration
  • Emails designed within Ordergroove
  • Ordergroove-built emails within Klaviyo

Resources Required

Client / Systems Integrator

  • Marketing resource to create and manage email copy
  • A resource to build transactional email content

Ordergroove

  • Solutions Team member for API configuration

 


Technical Integration Details

Ordergroove will need the following credentials:

  • [required] Site ID (or Public Key)
  • [optional] A list of all Email Metric Names. By default, Ordergroove uses the following names:
    • OG Subscription Started
    • OG Subscription Reactivated
    • OG Subscription Cancelled
    • OG Order Reminder
    • OG OOS 1 Day
    • OG OOS 15 Day
    • OG OOS 30 Day
    • OG CC Expiration Warning
    • OG CC Expired
    • OG Order Declined Payment
    • OG Order Declined
    • OG Product Discontinued
    • OG Product Discontinued - Replaced
    • OG AI Churn

Ordergroove will need to trigger all emails to the Klaviyo /track endpoint. Once triggered you will see an option in the Flow Trigger dropdown to choose the metric that corresponds to one of the names above and assign it.


Dynamic Field Options

API Configuration Requirements

In order to utilize Ordergroove's triggers, Ordergroove needs the below information

  • Site ID (or public key)
  • Event IDs

Ordergroove Transactional Emails

All transactional emails will include customer_properties that will allow you to store subscription information and create custom campaigns. 

Subscription Level Email Customer Properties:

Field
Description
$email Customer's Email Address
customer_id Customer's ID
og_subscription_ids An array of all subscription IDs included in that trigger


Order Level Email Customer Properties:

Field
Description
$email Customer's Email Address
customer_id Customer's ID
og_order_id Public Identifier of the order from Ordergroove
og_subscription_ids An array of all subscription IDs included in that order


Combined Subscription Started

NOTE: This email trigger will include all subscriptions created in the checkout. The merchant only needs to use this email or the 'Subscription Started' email, and should never use both.

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  

SubscriberKey

Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254 Yes
{{ event.LAST_NAME }} Text Customer Last Name 254 Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID 128  
{{ event.LOCALE }} Text Customer Language 254 Yes

For Loop

Data Type

Tags Inside For Loop

Length

Nullable?

{% for X in event.SUBSCRIPTIONS %} {{ X.SUBSCRIPTION_PRODUCT_NAME }} {%endfor %}

Each For statement must contain the following:

An opening{% for … %}tag, containing a row alias (X in the example above) and row collection (event.SUBSCRIPTIONS in the example above)

A closing{% endfor %}tag

Between the two required for loop tags, you can include any of the tags to the right.

For more information see: Klaviyo Conditional Statements

Text

{{ X.SUBSCRIPTION_PRODUCT_NAME }}

{{ X.SUBSCRIPTION_PRODUCT_SKU }}

{{ X.SUBSCRIPTION_PRODUCT_URL }}

{{ X.SUBSCRIPTION_PRODUCT_IMG_URL }}

{{ X.SUBSCRIPTION_QTY }}

{{ X.SUBSCRIPTION_PRICE }}

{{ X.SUBSCRIPTION_FREQUENCY }}

{{ X.SUBSCRIPTION_PUBLIC_ID }}

1024

64

400

400

16

16,2

254

40

Yes


Subscription Reactivated

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254 Yes
{{ event.LAST_NAME }} Text Customer Last Name 254 Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID

128

 
{{ event.LOCALE }} Text Customer Language 254 Yes
{{ event.SUBSCRIPTION_PRODUCT_NAME }} Text Product Name 254 Yes
{{ event.SUBSCRIPTION_PRODUCT_SKU }} Text Product ID 254 Yes
{{ event.SUBSCRIPTION_PRODUCT.URL }} Text Product URL 254 Yes
{{ event.SUBSCRIPTION_PRODUCT_IMG_URL }} Text Product Image 254 Yes
{{ event.SUBSCRIPTION_QTY }} Number Quantity   Yes
{{ event.SUBSCRIPTION_PRICE }} Decimal Price 36,2 Yes
{{ event.SUBSCRIPTION_FREQUENCY }} Text Frequency at which subscription is delivered 254 Yes
{{ event.SUBSCRIPTION_PUBLIC_ID }} Text Public ID of Subscription 254  
{{ event.SUBSCRIPTION_NEXT_ORDER_DATE }} Text Next subscription order date 254

Yes

{{ event.SHIPPING_FIRST_NAME }} Text Shipping First Name 254  Yes
{{ event.SHIPPING_LAST_NAME }} Text Shipping Last Name 254  Yes
{{ event.SHIPPING_ADDRESS_1 }} Text Shipping address 1 254  Yes
{{ event.SHIPPING_ADDRESS_2 }} Text Shipping address 2 254  Yes
{{ event.SHIPPING_ADDRESS_TOWN }} Text Shipping City 254  Yes
{{ event.SHIPPING_ADDRESS_STATE }} Text Shipping State 254  Yes
{{event.SHIPPING_ADDRESS_ZIP }} Text Shipping Zip 254  Yes
{{ event.SHIPPING_ADDRESS_COUNTRY_CODE }} Text Shipping Country 50

Yes

{{ event.SHIPPING_ADDRESS_PHONE }} Text Shipping Phone 94

Yes

 {{ event.SHIPPING_ADDRESS_FAX }} Text Shipping Fax 94

Yes

{{ event.SHIPPING_ADDRESS_COMPANY_NAME }} Text Shipping Company Name 390

Yes


Subscription Canceled

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254 Yes
{{ event.LAST_NAME }} Text Customer Last Name 254 Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID 128  
{{ event.LOCALE }} Text Customer Language 254 Yes

{{ event.SUBSCRIPTION_PRODUCT_SKU }}

Text Product ID 254 Yes
{{ event.SUBSCRIPTION_PRODUCT_NAME }} Text Product Name 254 Yes
{{ event.SUBSCRIPTION_PRODUCT.URL }} Text Product URL 254 Yes
{{ event.SUBSCRIPTION_PRODUCT_IMG_URL }} Text Product Image 254 Yes
{{ event.SUBSCRIPTION_PUBLIC_ID }} Text Public ID of Subscription 254  
{{ event.SHIPPING_FIRST_NAME }} Text Shipping First Name 254  Yes
{{ event.SHIPPING_LAST_NAME }} Text Shipping Last Name 254  Yes
{{ event.SHIPPING_ADDRESS_1 }} Text Shipping address 1 254  Yes
{{ event.SHIPPING_ADDRESS_2 }} Text Shipping address 2 254  Yes
{{ event.SHIPPING_ADDRESS_TOWN }} Text Shipping City 254  Yes
{{ event.SHIPPING_ADDRESS_STATE }} Text Shipping State 254  Yes
{{ event.SHIPPING_ADDRESS_ZIP }} Text Shipping Zip 254  Yes
{{ event.SHIPPING_ADDRESS_COUNTRY_CODE }} Text Shipping Country 50

Yes

{{ event.SHIPPING_ADDRESS_PHONE }} Text Shipping Phone 94

Yes

 {{ event.SHIPPING_ADDRESS_FAX }} Text Shipping Fax 94

Yes

{{ event.SHIPPING_ADDRESS_COMPANY_NAME }} Text Shipping Company Name 390

Yes


Order Reminder

Field Name
Data Type
Description
Length
Nullable?
$event_id Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254  Yes
{{ event.LAST_NAME }} Text Customer Last Name 254  Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID 128  
{{ event.LOCALE }} Text Customer Language 254 Yes
{{ event.ORDER_TOTAL_SAVINGS }} Decimal Incentive 36,2  Yes
{{ event.ORDER_SUBTOTAL }} Decimal Subtotal Cost 36,2  Yes
{{ event.ORDER_TOTAL }} Decimal Total Cost 36,2  Yes
{{ event.ORDER_SHIPPING }} Decimal Subtotal Cost 36,2  Yes
{{ event.ORDER_PLACE_DATE_LONG }} Text Long description of order date 254  Yes
{{ event.ORDER_PLACE_DATE_SHORT }} Text Short Description of order date 254  Yes
{{ event.ORDER_PUBLIC_ID }} Text Public ID of Order 254  
{{ event.SHIPPING_FIRST_NAME }} Text Shipping First Name 254  Yes
{{ event.SHIPPING_LAST_NAME }} Text Shipping Last Name 254  Yes
{{ event.SHIPPING_ADDRESS_1 }} Text Shipping address 1 254  Yes
{{ event.SHIPPING_ADDRESS_2 }} Text Shipping address 2 254  Yes
{{ event.SHIPPING_ADDRESS_TOWN }} Text Shipping City 254  Yes
{{ event.SHIPPING_ADDRESS_STATE }} Text Shipping State 254  Yes
{{ event.SHIPPING_ADDRESS_ZIP }} Text Shipping Zip 254  Yes
{{ event.SHIPPING_ADDRESS_COUNTRY_CODE }} Text Shipping Country 50 Yes
{{ event.SHIPPING_ADDRESS_PHONE }} Text Shipping Phone 94  Yes
{{ event.SHIPPING_ADDRESS_FAX }} Text Shipping Fax 94  Yes
{{ event.SHIPPING_ADDRESS_COMPANY_NAME }} Text Shipping Company Name 390  Yes
{{ event.ACTION_URL }} JSON Order Actions URLs    Yes
For Loop
Data Type
Tags Inside For Loop
Length
Nullable?

{% for X in event.ITEMS %} {{ X.ITEMS_PRODUCT_NAME }} {%endfor %}

Each For statement must contain the following:

An opening{% for … %}tag, containing a row alias (X in the example above) and row collection (event.ITEMS in the example above)

A closing{% endfor %}tag

Between the two required for loop tags, you can include any of the tags to the right.

Text
Text
Text
Number
Decimal
Decimal
Text
Text

{{ X.ITEM_PUBLIC_ID }}
{{ X.ITEM_PRODUCT_NAME }}
{{ X.ITEM_PRODUCT_SKU }}
{{ X.ITEM_QTY }}
{{ X.ITEM_TOTAL }}
{{ X.ITEM_SUBSCRIPTION_PRICE }}
{{ X.ITEM_PRODUCT_URL }}
{{ X.ITEM_PRODUCT_IMG_URL }}

40
1024
64
16
16,2
16,2
400
400

 Yes

 

 Out of Stock Day 1

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254 Yes
{{ event.LAST_NAME }} Text Customer Last Name 254 Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID 128  
{{ event.LOCALE }} Text Customer Language 254 Yes
{{ event.SUBSCRIPTION_PUBLIC_ID }} Number Public ID of Subscription    
{{ event.SUBSCRIPTION_PRODUCT_NAME }} Text Product Name 254 Yes
{{ event.SUBSCRIPTION_PRODUCT_SKU }} Text Product ID 254 Yes
{{ event.SUBSCRIPTION_QTY }} Text Quantity 254 Yes
{{ event.CARD_TYPE }} Text Credit Card Type 254 Yes
{{ event.CARD_EXPIRE }} Text Credit Card Expiration Date 254 Yes
{{ event.ORDER_PUBLIC_ID }} Text Public ID of Order 254  
{{ event.SHIPPING_FIRST_NAME }} Text Shipping First Name 254 Yes
{{ event.SHIPPING_LAST_NAME }} Text Shipping Last Name 254 Yes
{{ event.SHIPPING_ADDRESS_1 }} Text Shipping Address 1 254 Yes
{{ event.SHIPPING_ADDRESS_2 }} Text Shipping Address 2 254 Yes
{{ event.SHIPPING_ADDRESS_TOWN }} Text Shipping City 254 Yes
{{ event.SHIPPING_ADDRESS_STATE }} Text Shipping State 254 Yes
{{ event.SHIPPING_ADDRESS_ZIP }} Text Shipping Zip 254 Yes
{{ event.SHIPPING_ADDRESS_COUNTRY_CODE }} Text Shipping Country 50

Yes

{{ event.SHIPPING_ADDRESS_PHONE }} Text Shipping Phone 94

Yes

{{ event.SHIPPING_ADDRESS_FAX }} Text Shipping Fax 94

Yes

{{ event.SHIPPING_ADDRESS_COMPANY_NAME }} Text Shipping Company Name 390

Yes

{{ event.NEXT_ORDER_DATE }} Text Next subscription order date 254

Yes


Out of Stock Day 15

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254 Yes
{{ event.LAST_NAME }} Text Customer Last Name 254 Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID 128  
{{ event.LOCALE }} Text Customer Language 254 Yes
{{ event.SUBSCRIPTION_PUBLIC_ID }} Number Public ID of Subscription    
{{ event.SUBSCRIPTION_PRODUCT_NAME }} Text Product Name 254 Yes
{{ event.SUBSCRIPTION_PRODUCT_SKU }} Text Product ID 254 Yes
{{ event.SUBSCRIPTION_QTY }} Text Quantity 254 Yes
{{ event.CARD_TYPE }} Text Credit Card Type 254 Yes
{{ event.CARD_EXPIRE }} Text Credit Card Expiration Date 254 Yes
{{ event.ORDER_PUBLIC_ID }} Text Public ID of Order 254  
{{ event.SHIPPING_FIRST_NAME }} Text Shipping First Name 254 Yes
{{ event.SHIPPING_LAST_NAME }} Text Shipping Last Name 254 Yes
{{ event.SHIPPING_ADDRESS_1 }} Text Shipping Address 1 254 Yes
{{ event.SHIPPING_ADDRESS_2 }} Text Shipping Address 2 254 Yes
{{ event.SHIPPING_ADDRESS_TOWN }} Text Shipping City 254 Yes
{{ event.SHIPPING_ADDRESS_STATE }} Text Shipping State 254 Yes
{{ event.SHIPPING_ADDRESS_ZIP }} Text Shipping Zip 254 Yes
{{ event.SHIPPING_ADDRESS_COUNTRY_CODE }} Text Shipping Country 50

Yes

{{ event.SHIPPING_ADDRESS_PHONE }} Text Shipping Phone 94

Yes

{{ event.SHIPPING_ADDRESS_FAX }} Text Shipping Fax 94

Yes

{{ event.SHIPPING_ADDRESS_COMPANY_NAME }} Text Shipping Company Name 390

Yes

{{ event.NEXT_ORDER_DATE }} Text Next subscription order date 254

Yes

 

Out of Stock Day 30

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254 Yes
{{ event.LAST_NAME }} Text Customer Last Name 254 Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID

128

 
{{ event.LOCALE }} Text Customer Language 254 Yes
{{ event.SUBSCRIPTION_PUBLIC_ID }} Number Public ID of Subscription    
{{ event.SUBSCRIPTION_PRODUCT_NAME }} Text Product Name 254 Yes
{{ event.SUBSCRIPTION_PRODUCT_SKU }} Text Product ID 254 Yes
{{ event.SUBSCRIPTION_QTY }} Text Quantity 254 Yes
{{ event.CARD_TYPE }} Text Credit Card Type 254 Yes
{{ event.CARD_EXPIRE }} Text Credit Card Expiration Date 254 Yes
{{ event.ORDER_PUBLIC_ID }} Text Public ID of Order 254  
{{ event.SHIPPING_FIRST_NAME }} Text Shipping First Name 254 Yes
{{ event.SHIPPING_LAST_NAME }} Text Shipping Last Name 254 Yes
{{ event.SHIPPING_ADDRESS_1 }} Text Shipping Address 1 254 Yes
{{ event.SHIPPING_ADDRESS_2 }} Text Shipping Address 2 254 Yes
{{ event.SHIPPING_ADDRESS_TOWN }} Text Shipping City 254 Yes
{{ event.SHIPPING_ADDRESS_STATE }} Text Shipping State 254 Yes
{{ event.SHIPPING_ADDRESS_ZIP }} Text Shipping Zip 254 Yes
{{ event.SHIPPING_ADDRESS_COUNTRY_CODE }} Text Shipping Country 50

Yes

{{ event.SHIPPING_ADDRESS_PHONE }} Text Shipping Phone 94

Yes

{{ event.SHIPPING_ADDRESS_FAX }} Text Shipping Fax 94

Yes

{{ event.SHIPPING_ADDRESS_COMPANY_NAME }} Text Shipping Company Name 390

Yes

{{ event.NEXT_ORDER_DATE }} Text Next subscription order date 254

Yes

 

Credit Card Expiration Warning

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254  Yes
{{ event.LAST_NAME }} Text Customer Last Name 254  Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID 128  
{{ event.LOCALE }} Text Customer Language 254  Yes
{{ event.ORDER_TOTAL_SAVINGS }} Decimal Order Savings 36,2  Yes
{{ event.ORDER_SUBTOTAL }} Decimal Subtotal Cost 36,2  Yes
{{ event.ORDER_TOTAL }} Decimal Total Cost 36,2  Yes
{{ event.ORDER_SHIPPING }} Decimal Shipping Cost 36,2  Yes
{{ event.ORDER_PLACE_DATE_LONG }} Text Long description of order date 254  Yes
{{ event.ORDER_PLACE_DATE_SHORT }} Text Short Description of order date 254  Yes
{{ event.ORDER_PUBLIC_ID }} Text Public ID of an order 254  
{{ event.SHIPPING_FIRST_NAME }} Text Shipping First Name 254  Yes
{{ event.SHIPPING_LAST_NAME }} Text Shipping Last Name 254  Yes
{{ event.SHIPPING_ADDRESS_1 }} Text Shipping Address 1 254  Yes
{{ event.SHIPPING_ADDRESS_2 }} Text Shipping Address 2 254  Yes
{{ event.SHIPPING_ADDRESS_TOWN }} Text Shipping City 254  Yes
{{ event.SHIPPING_ADDRESS_STATE }} Text Shipping State 254  Yes
{{ event.SHIPPING_ADDRESS_ZIP }} Text Shipping Zip 254  Yes
{{ event.SHIPPING_ADDRESS_COUNTRY_CODE }} Text Shipping Country 50

Yes

{{ event.SHIPPING_ADDRESS_PHONE }} Text Shipping Phone 94

Yes

{{ event.SHIPPING_ADDRESS_FAX }} Text Shipping Fax 94

Yes

{{ event.SHIPPING_ADDRESS_COMPANY_NAME }} Text Shipping Company Name 390

Yes

{{ event.CARD_TYPE }} Text Credit Card Type 254  Yes
{{ event.CARD_EXPIRE }} Text Credit Card Expiration 254  Yes

For Loop

Data Type

Tags Inside For Loop

Length

Nullable?

{% for X in event.ITEMS %} {{ X.ITEMS_PRODUCT_NAME }} {%endfor %}

Each For statement must contain the following:

An opening{% for … %}tag, containing a row alias (X in the example above) and row collection (event.ITEMS in the example above)

A closing{% endfor %}tag

Between the two required for loop tags, you can include any of the tags to the right.

Text

Text

Text

Number

Decimal

Decimal

Text

Text

JSON

{{ X.ITEM_PUBLIC_ID }}

{{ X.ITEM_PRODUCT_NAME }}
{{ X.ITEM_PRODUCT_SKU }}

{{ X.ITEM_QTY }}

{{ X.ITEM_TOTAL }}

{{ X.ITEM_SUBSCRIPTION_PRICE }}

{{ X.ITEM_PRODUCT_URL }}

{{ X.ITEM_PRODUCT_IMG_URL }}

 

40

1024

64

16

16,2

16,2

400

400

-

Yes

 


Credit Card Expired

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254  Yes
{{ event.LAST_NAME }} Text Customer Last Name 254  Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID 128  
{{ event.LOCALE }} Text Customer Language 254  Yes
{{ event.ORDER_TOTAL_SAVINGS }} Decimal Order Savings 36,2  Yes
{{ event.ORDER_SUBTOTAL }} Decimal Subtotal Cost 36,2  Yes
{{ event.ORDER_TOTAL }} Decimal Total Cost 36,2  Yes
{{ event.ORDER_SHIPPING }} Decimal Shipping Cost 36,2  Yes
{{ event.ORDER_PLACE_DATE_LONG }} Text Long description of order date 254  Yes
{{ event.ORDER_PLACE_DATE_SHORT }} Text Short Description of order date 254  Yes
{{ event.ORDER_PUBLIC_ID }} Text Public ID of an order 254  
{{ event.SHIPPING_FIRST_NAME }} Text Shipping First Name 254  Yes
{{ event.SHIPPING_LAST_NAME }} Text Shipping Last Name 254  Yes
{{ event.SHIPPING_ADDRESS_1 }} Text Shipping Address 1 254  Yes
{{ event.SHIPPING_ADDRESS_2 }} Text Shipping Address 2 254  Yes
{{ event.SHIPPING_ADDRESS_TOWN }} Text Shipping City 254  Yes
{{ event.SHIPPING_ADDRESS_STATE }} Text Shipping State 254  Yes
{{ event.SHIPPING_ADDRESS_ZIP }} Text Shipping Zip 254  Yes
{{ event.SHIPPING_ADDRESS_COUNTRY_CODE }} Text Shipping Country 50

Yes

{{ event.SHIPPING_ADDRESS_PHONE }} Text Shipping Phone 94

Yes

{{ event.SHIPPING_ADDRESS_FAX }} Text Shipping Fax 94

Yes

{{ event.SHIPPING_ADDRESS_COMPANY_NAME }} Text Shipping Company Name 390

Yes

{{ event.CARD_TYPE }}  Text Credit Card Type 254  Yes
 {{ event.CARD_EXPIRE }} Text Credit Card Expiration 254  Yes

For Loop

Data Type

Tags Inside For Loop

Length

Nullable?

{% for X in event.ITEMS %} {{ X.ITEMS_PRODUCT_NAME }} {%endfor %}

Each For statement must contain the following:

An opening{% for … %}tag, containing a row alias (X in the example above) and row collection (event.ITEMS in the example above)

A closing{% endfor %}tag

Between the two required for loop tags, you can include any of the tags to the right.

Text

Text

Text

Number

Decimal

Decimal

Text

Text

JSON

{{ X.ITEM_PUBLIC_ID }}

{{ X.ITEM_PRODUCT_NAME }}
{{ X.ITEM_PRODUCT_SKU }}

{{ X.ITEM_QTY }}

{{ X.ITEM_TOTAL }}

{{ X.ITEM_SUBSCRIPTION_PRICE }}

{{ X.ITEM_PRODUCT_URL }}

{{ X.ITEM_PRODUCT_IMG_URL }}

 

40

1024

64

16

16,2

16,2

400

400

-

Yes

 

 

Order Declined - CC Issue

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254  Yes
{{ event.LAST_NAME }} Text Customer Last Name 254  Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID 128  
{{ event.LOCALE }} Text Customer Language 254 Yes
{{ event.ORDER_TOTAL_SAVINGS }} Decimal Order Savings 36,2  Yes
{{ event.ORDER_SUBTOTAL }} Decimal Subtotal Cost 36,2  Yes
{{ event.ORDER_TOTAL }} Decimal Total Cost 36,2  Yes
{[ event.ORDER_SHIPPING }} Decimal Shipping Cost 36,2  Yes
{{ event.ORDER_PLACE_DATE_LONG }} Text Long description of order date 254  Yes
{{ event.ORDER_PLACE_DATE_SHORT }} Text Short Description of order date 254  Yes
{{ event.ORDER_PUBLIC_ID }} Text Public ID of the order 254  
{{ event.SHIPPING_FIRST_NAME }} Text Shipping First Name 254  Yes
{{ event.SHIPPING_LAST_NAME }} Text Shipping Last Name 254  Yes
{{ event.SHIPPING_ADDRESS_1 }} Text Shipping Address 1 254  Yes
{{ event.SHIPPING_ADDRESS_2 }} Text Shipping Address 2 254  Yes
{{ event.SHIPPING_ADDRESS_TOWN }} Text Shipping City 254  Yes
{{ event.SHIPPING_ADDRESS_STATE }} Text Shipping State 254  Yes
{{ event.SHIPPING_ADDRESS_ZIP }} Text Shipping Zip 254  Yes
{{ event.CARD_TYPE }} Text Credit Card Type 254  Yes
{{ event.CARD_EXPIRE }} Text Credit Card Expiration 254  Yes

For Loop

Data Type

Tags Inside For Loop

Length

Nullable?

{% for X in event.ITEMS %} {{ X.ITEMS_PRODUCT_NAME }} {%endfor %}

Each For statement must contain the following:

An opening{% for … %}tag, containing a row alias (X in the example above) and row collection (event.ITEMS in the example above)

A closing{% endfor %}tag

Between the two required for loop tags, you can include any of the tags to the right.

Text

Text

Text

Number

Decimal

Decimal

Text

Text

JSON

{{ X.ITEM_PUBLIC_ID }}

{{ X.ITEM_PRODUCT_NAME }}
{{ X.ITEM_PRODUCT_SKU }}

{{ X.ITEM_QTY }}

{{ X.ITEM_TOTAL }}

{{ X.ITEM_SUBSCRIPTION_PRICE }}

{{ X.ITEM_PRODUCT_URL }}

{{ X.ITEM_PRODUCT_IMG_URL }}

 

40

1024

64

16

16,2

16,2

400

400

-

Yes

 


Order Declined - Generic Issue

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254  Yes
{{ event.LAST_NAME }} Text Customer Last Name 254  Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID 128  
{{ event.LOCALE }} Text Customer Language 254  Yes
{{ event.ORDER_TOTAL_SAVINGS }} Decimal Order Savings 36,2  Yes
{{ event.ORDER_SUBTOTAL }} Decimal Subtotal Cost 36,2  Yes
{{ event.ORDER_TOTAL }} Decimal Total Cost 36,2  Yes
{{ event.ORDER_SHIPPING }} Decimal Shipping Cost 36,2  Yes
{{ event.ORDER_PLACE_DATE_LONG}} Text Long description of order date 254  Yes
{{ event.ORDER_PLACE_DATE_SHORT }} Text Short Description of order date 254  Yes
{{ event.ORDER_PUBLIC_ID }} Text Public ID of the order 254  
{{ event.SHIPPING_FIRST_NAME }} Text Shipping First Name 254  Yes
{{ event.SHIPPING_LAST_NAME }} Text Shipping Last Name 254  Yes
{{ event.SHIPPING_ADDRESS_1 }} Text Shipping Address 1 254  Yes
{{ event.SHIPPING_ADDRESS_2 }} Text Shipping Address 2 254  Yes
{{ event.SHIPPING_ADDRESS_TOWN }} Text Shipping City 254  Yes
{{ event.SHIPPING_ADDRESS_STATE }} Text Shipping State 254  Yes
{{ event.SHIPPING_ADDRESS_ZIP }} Text Shipping Zip 254  Yes
{{ event.CARD_TYPE }}  Text Credit Card Type 254  Yes
{{ event.CARD_EXPIRE }} Text Credit Card Expiration 254  Yes

For Loop

Data Type

Tags Inside For Loop

Length

Nullable?

{% for X in event.ITEMS %} {{ X.ITEMS_PRODUCT_NAME }} {%endfor %}

Each For statement must contain the following:

An opening{% for … %}tag, containing a row alias (X in the example above) and row collection (event.ITEMS in the example above)

A closing{% endfor %}tag

Between the two required for loop tags, you can include any of the tags to the right.

Text

Text

Text

Number

Decimal

Decimal

Text

Text

JSON

{{ X.ITEM_PUBLIC_ID }}

{{ X.ITEM_PRODUCT_NAME }}
{{ X.ITEM_PRODUCT_SKU }}

{{ X.ITEM_QTY }}

{{ X.ITEM_TOTAL }}

{{ X.ITEM_SUBSCRIPTION_PRICE }}

{{ X.ITEM_PRODUCT_URL }}

{{ X.ITEM_PRODUCT_IMG_URL }}

 

40

1024

64

16

16,2

16,2

400

400

-

Yes

 


Item Discontinued

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254  Yes
{{ event.LAST_NAME }} Text Customer Last Name 254  Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID 128  
{{ event.LOCALE }} Text Customer Language 254 Yes
{{ event.SUBSCRIPTION_PRODUCT_NAME }} Text Product Name 254 Yes
{{ event.SUBSCRIPTION_PRODUCT_SKU }} Text Product ID 254 Yes
{{ event.SUBSCRIPTION_PRODUCT.URL }} Text Product URL 254 Yes
{{ event.SUBSCRIPTION_PRODUCT_IMG_URL }} Text Product Image 254 Yes
{{ event.SUBSCRIPTION_QTY }} Number Quantity 16 Yes
{{ event.SUBSCRIPTION_PUBLIC_ID }} Text Public ID of subscription 254  


Item Discontinued - Subscription Product Replaced

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254  Yes
{{ event.LAST_NAME }} Text Customer Last Name 254  Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID 128  
{{ event.LOCALE }} Text Customer Language 254 Yes
{{ event.SUBSCRIPTION_QTY }} Number Quantity 16 Yes
{{ event.SOURCE_PRODUCT_NAME }}

Text

Discontinued Product Name    
{{ event.SOURCE_PRODUCT_PRICE }} Decimal Discontinued Price of Product    
{{ event.SOURCE_PRODUCT_IMG_URL }} Text Discontinued Product Image    
{{ event.SOURCE_PRODUCT_URL }} Text Discontinued Product URL    
{{ event.SOURCE_PRODUCT_SKU }} Text Discontinued Product ID    
{{ event.TARGET_PRODUCT_NAME }} Text Replaced Product Name    

{{ event.TARGET_PRODUCT_PRICE

}}

Decimal Replaced Product Price    
{{ event.TARGET_PRODUCT_IMG_URL }} Text Replaced Product Image    
{{ event.TARGET_PRODUCT_URL }} Text Replaced Product URL    
{{ event.TARGET_PRODUCT_SKU }} Text Replaced Product ID    


AI Churn Prevention

Field Name
Data Type
Description
Length
Nullable?
$event_id

 

Text A opaque and random event identifier to prevent Klaviyo's de-duplication logic to ignore the message. 40  
SubscriberKey Text Customer’s Email Address 254  
EmailAddress Email Address Email Address 254  
Dynamic Tags Data Type Description Length Nullable?
{{ event.FIRST_NAME }} Text Customer First Name 254  Yes
{{ event.LAST_NAME }} Text Customer Last Name 254  Yes
{{ event.MERCHANT_USER_ID }} Text Customer's ID 128  
{{ event.LOCALE }} Text Customer Language 254 Yes
{{ event.ORDER_TOTAL_SAVINGS }} Decimal Incentive 36,2  Yes
{{ event.ORDER_SUBTOTAL }} Decimal Subtotal Cost 36,2  Yes
{{ event.ORDER_TOTAL }} Decimal Total Cost 36,2  Yes
{{ event.ORDER_SHIPPING }} Decimal Subtotal Cost 36,2  Yes
{{ event.ORDER_PLACE_DATE_LONG }} Text Long description of order date 254  Yes
{{ event.ORDER_PLACE_DATE_SHORT }} Text Short Description of order date 254  Yes
{[ event.ORDER_PUBLIC_ID }} Text Public ID of Order 254  
{{ event.SHIPPING_FIRST_NAME }} Text Shipping First Name 254  Yes
{{ event.SHIPPING_LAST_NAME }} Text Shipping Last Name 254  Yes
{{ event.SHIPPING_ADDRESS_1 }} Text Shipping address 1 254  Yes
{{ event.SHIPPING_ADDRESS_2 }} Text Shipping address 2 254  Yes
{{ event.SHIPPING_ADDRESS_TOWN }} Text Shipping City 254  Yes
{{ event.SHIPPING_ADDRESS_STATE }} Text Shipping State 254  Yes
{{ event.SHIPPING_ADDRESS_ZIP }} Text Shipping Zip 254  Yes
{{ event.SHIPPING_ADDRESS_COUNTRY_CODE }} Text Shipping Country 50

Yes

{{ event.SHIPPING_ADDRESS_PHONE }} Text Shipping Phone 94

Yes

{{ event.SHIPPING_ADDRESS_FAX }} Text Shipping Fax 94

Yes

{{ event.SHIPPING_ADDRESS_COMPANY_NAME }} Text Shipping Company Name 390

Yes

{{ event.ACTION_URL }} JSON

Order Actions URLs

  Yes

For Loop

Data Type

Tags Inside For Loop

Length

Nullable?

{% for X in event.ITEMS %} {{ X.ITEMS_PRODUCT_NAME }} {%endfor %}

Each For statement must contain the following:

An opening{% for … %}tag, containing a row alias (X in the example above) and row collection (event.ITEMS in the example above)

A closing{% endfor %}tag

Between the two required for loop tags, you can include any of the tags to the right.

Text

Text

Text

Number

Decimal

Decimal

Text

Text

JSON

{{ X.ITEM_PUBLIC_ID }}

{{ X.ITEM_PRODUCT_NAME }}
{{ X.ITEM_PRODUCT_SKU }}

{{ X.ITEM_QTY }}

{{ X.ITEM_TOTAL }}

{{ X.ITEM_SUBSCRIPTION_PRICE }}

{{ X.ITEM_PRODUCT_URL }}

{{ X.ITEM_PRODUCT_IMG_URL }}

 

40

1024

64

16

16,2

16,2

400

400

-

Yes