> For the complete documentation index, see [llms.txt](https://help.dollarlabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.dollarlabs.io/dollarback-store-credit/integrations/klaviyo-integration.md).

# Klaviyo integration

{% embed url="<https://dollarlabs.neetorecord.com/watch/f38147f1887b80612c9e>" %}

Connect Klaviyo to receive every DollarBack credit event as a Klaviyo metric and keep each profile's credit balance and referral code in sync, so you can build flows, segments, and campaigns around store credit.

## Prerequisites

* A Klaviyo account with admin access.
* At least one active earning program, so there are events to sync ([Set up purchase cashback](/dollarback-store-credit/earning-cashback-programs/set-up-purchase-cashback.md)).

## Connect Klaviyo

1. Go to **DollarBack admin → Integrations** and find the **Klaviyo** card.
2. Click **Set up** and approve the OAuth connection in the Klaviyo window that opens. Sign in to the Klaviyo account you want linked.
3. Back on the Integrations page, the card shows **Connected**. Events begin syncing immediately; no API keys to copy.

## Synced events

Each event appears in Klaviyo as a metric under the connected integration, attached to the customer's profile. Use these exact names when building flows:

| Klaviyo event                 | Fires when                                                                                            | Key payload fields                                                                                  |
| ----------------------------- | ----------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| Store Credit Credited         | Credit is issued (order trigger, birthday, signup, bulk import with the integrations toggle on, etc.) | amount, currency, formattedAmount, reason, offerTitle, orderId, orderName, expiresAt, expiryDays    |
| Store Credit Debited          | Credit is removed (refund clawback, manual debit, or a reward-marketplace redemption cost)            | amount, currency, formattedAmount, reason, orderId, orderName, offerTitle                           |
| Store Credit Redeemed         | A customer spends credit                                                                              | amount, currency, formattedAmount, reason, orderId, orderName, offerTitle                           |
| Store Credit Expiry Threshold | Credit crosses a reminder threshold you set in the Expiry Notification Schedule                       | amount, formattedAmount, expiresAt, remainingDays, transactionId                                    |
| Store Credit Expired          | Credit expires                                                                                        | amount, formattedAmount, expiresAt, remainingDays, transactionId                                    |
| Referral Code Generated       | A referral code is created for a customer                                                             | referralCode, reason                                                                                |
| Referral Reward Credited      | A referrer earns a reward                                                                             | amount, currency, formattedAmount, expiresAt, orderId, orderName, refereeFirstName, refereeLastName |
| Discount Code Credited        | A reward discount code is issued, earned through a program or claimed in the marketplace              | discountCode, rewardSummary, offerTitle, reason, orderId, orderName, amount                         |

## Profile properties

Alongside each event, DollarBack updates these custom properties on the Klaviyo profile (matched by email or phone, with the customer ID as fallback):

| Property                 | Contains                                                    |
| ------------------------ | ----------------------------------------------------------- |
| Dollar Balance           | The customer's current store-credit balance as a number     |
| Dollar Currency Code     | The balance's currency code (e.g. USD)                      |
| Dollar Formatted Balance | The balance formatted for display (e.g. $24.50)             |
| Dollar Symbol            | The currency symbol                                         |
| Referral Code            | The customer's referral code (set when a code is generated) |

Because properties update with every event, segments built on them stay current without scheduled exports.

## Flow and campaign ideas

* **Credit reminder flow**: trigger on *Store Credit Credited*, wait 7 days, and email customers who haven't ordered since: "You still have {{ person|lookup:'Dollar Formatted Balance' }} waiting."
* **Expiry winback**: trigger on *Store Credit Expiry Threshold* and send an urgency email/SMS using the `remainingDays` and `formattedAmount` event fields. Pairs with (or replaces) DollarBack's own expiry reminder email.
* **Deliver the code your way**: trigger on *Discount Code Credited* and send the `discountCode` in your own Klaviyo design instead of the DollarBack template.
* **Balance segment**: a segment where *Dollar Balance* is greater than 0 for "has credit to spend" campaigns; include the referral code property in newsletters to promote sharing.

{% hint style="warning" %}
If you rebuild an email in Klaviyo (for example the credited notification), consider disabling the matching DollarBack template under **Notifications** so customers don't receive both.
{% endhint %}

## Verify it works

1. Trigger a credit: place a small test order or credit a customer manually.
2. In Klaviyo, open that customer's profile: the *Store Credit Credited* event should appear in the activity feed within a few minutes, and the *Dollar Balance* properties should match the widget balance.

## Common issues

* Events aren't appearing: confirm the card still shows **Connected**, then trigger a fresh event; historical events from before connection are not backfilled.
* Properties are stale: they update on events only; a profile with no credit activity since connection won't have them yet.
* Bulk-imported credit didn't create events: the import must run with its send-to-integrations toggle enabled ([Bulk import credit (CSV)](/dollarback-store-credit/analytics-data-and-account/bulk-import-credit-csv.md)).

## Related articles

* [Omnisend integration](/dollarback-store-credit/integrations/omnisend-integration.md)
* [Shopify Flow: triggers and actions](/dollarback-store-credit/integrations/shopify-flow-triggers-and-actions.md)
* [Email notifications overview](/dollarback-store-credit/notifications/email-notifications-overview.md)
* [Credit expiry and reminders](/dollarback-store-credit/spending-store-credit-and-rewards/credit-expiry-and-reminders.md)
