Klaviyo integration

Personalize your Klaviyo marketing messages with Catch credit data.

Finding Your Public API Key

  1. Click on your organization name in the lower left-hand corner
  2. Go to your Klaviyo Settings > Account > API Keys
  3. Provide your Public API Key (This should be at the top of the API Keys section, where the pink box is shown in the screenshot below.)

Integration Overview

Catch uses Klaviyo’s Identify API to send custom Catch-related properties related to a given consumer (or "user"), as identified by their email address. Catch sends the following user properties to your Klaviyo account:

  • CatchCreditAmount
    • Reflects the amount of Catch credits a consumer has, represented in integer cents.
    • Note that you may want to reformat this user property to reflect dollars instead of cents.
  • CatchCreditExpiration
    • Signifies the last full day the consumer will be able to use their credits, formatted %Y-%m-%d 00:00:00.
    • For rewards with no expiration date, Catch sets the value 1970-01-01 00:00:00.

Flow: How To Set Up An Automated Credit Reminder

Set up a dedicated flow that is triggered by a customer’s outstanding Catch credit expiration date. Catch sends out credit reminder emails 3 months, 1 month, 1 week, and 1 day ahead of the credit expiration date. We recommend that you send credit reminders 1-2 days ahead of that cadence in order to see the full attribution for the conversion.

Additional information on how to create a date property triggered flow via Klaviyo

Setting up the Flow

  1. Navigate to the Create a new Flow screen and click the "Create From Scratch" button.
  2. Select Date Property as the trigger set up.
  3. Select CatchCreditExpiration from the dropdown menu.
  4. Input a value for Flow Start (days) + Time of Day.
  1. Add a Flow Filter where CatchCreditAmount is greater than 0.

Example Subject Line/Preview Text

  • Subject Line: "Your $X.XX Catch credit is expiring soon!"
  • Preview Text: "Last chance to redeem the credit you earned."

Example Text Block for Flow Creative

  • {% today "%Y-%m-%d" as today %} {% with person|lookup:'CatchCreditExpiration'|format_date_string|date:'Y-m-d' as CCExpiration %} You have ${{ person|lookup:'CatchCreditAmount'|divide:100|floatformat:2 }} Catch credits in your account, and they expire on {{ person|lookup:'CatchCreditExpiration'|format_date_string|date:'m-d-Y' }} {% endwith %}

Example Copy Preview

  • You have $XX.XX Catch credits in your account, and they expire on XX-XX-XXXX.

Campaigns: How To Set Up A Dynamic Credit Reminder Banner

Add a dynamic banner to your daily evergreen emails, product launches, and/or promo campaigns to remind your customers of their outstanding Catch credits.

  1. Insert text block to campaign
  2. In your text block editor, select the source code option:
  3. With Source code enabled, paste the following Credit Reminder copy:
    <div style="text-align: center;"><span style="color: rgb(0, 0, 0); font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-weight: 400;">{% today "%Y-%m-%d" as today %}{% with today|format_date_string|date:'U' as unixtoday and person|lookup:"CatchCreditExpiration"|format_date_string|date:'U' as unixdateproperty %}</span></div> <div style="text-align: center;"><span style="color: rgb(0, 0, 0); font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-weight: 400;">{% if unixtoday < unixdateproperty %}</span></div><div style="text-align: center;"><span style="color: rgb(0, 0, 0); font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-weight: 400;">You have ${{ person|lookup:'CatchCreditAmount'|divide:100|floatformat:2 }} Catch credits in your account and they expire on {{ person|lookup:'CatchCreditExpiration'|format_date_string|date:'m-d-Y' }}. </span></div><div style="text-align: center;"><span style="color: rgb(0, 0, 0); font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-weight: 400;">{% endif %}</span></div><div style="text-align: center;"><span style="color: rgb(0, 0, 0); font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-weight: 400;">{% endwith %}</span></div>
  4. Add Conditional formatting to the text block → person|lookup:'CatchCreditAmount' > 0
  1. Turn Source code back off to adjust formatting (font, font color, etc.) + Save text block
  2. View Email Preview to QA the Dynamic Banner – Example below:

General Formatting Information

Credit Amount

You can reformat the CatchCreditAmount directly in the email template when you pull in the user property. We recommend dividing by 100 to convert the integer from cents to dollars.

  • ${{ person|lookup:'CatchCreditAmount'|divide:100|floatformat:2 }}

Expiration Date

You can reformat the CatchCreditExpiration date directly in the email template when you pull in the user property. To find other date formats, see Klaviyo’s documentation.

  • {{ person|lookup:'CatchCreditExpiration'|format_date_string|date:'m-d-Y' }} will return a date format in your email of mm-dd-yyyy.

Filtering Out Data

Before setting your dynamic content live, you’ll want to make sure that the proper filters are in place.

Exclude consumers with zero credits

If used in dynamic email content, filter out users with a credits value of 0 – you can do so by adding this condition to your text block:

  • PERSON|LOOKUP:'CATCHCREDITAMOUNT' > 0

Exclude consumers with expired credits

In your text block, you’ll want to add the following code ahead of the dynamic copy:

  • {% today "%Y-%m-%d" as today %}{% with today|format_date_string|date:'U' as unixtoday and person|lookup:"CatchCreditExpiration"|format_date_string|date:'U' as unixdateproperty %} {% if unixtoday < unixdateproperty %} ${{ person|lookup:'CatchCreditAmount'|divide:100|floatformat:2 }} | </strong>EXPIRATION DATE: <strong>{{ person|lookup:'CatchCreditExpiration'|format_date_string|date:'m-d-Y' }}</strong></span></p> {% endif %} {% endwith %}

Exclude consumers with deleted Catch accounts

Catch's integration with Klaviyo does not currently permit deletion or nullification of fields. As a result, if the consumer has deleted their Catch account, Catch sets the value of the CatchCreditAmount and CatchCreditExpiration fields to the sentinel value of deleted_user. You can create filters to exclude references to Catch credits in your marketing messages to these consumers.


If you have any questions or would like the Catch team to set up the flow and dynamic banner for you, please reach out to your Partner Success POC.

Catch will need “Manager” access to your Klaviyo account to help your team build out the Credit Reminder flow.