Appearance
Klaviyo Integration
Connect your own Klaviyo account and send wishlist activity to it as events, so you can trigger flows, build segments, and run campaigns from what your shoppers save.
Overview
When a customer saves a product to their wishlist - or removes one - BRIX: Wishlist Plus sends that action to your Klaviyo account as a metric (an event). Once those events start arriving, you can use them in Klaviyo exactly like any other metric: as a flow trigger, as a segment condition, or as data inside an email or SMS template.
The integration uses your Klaviyo account and your private API key. Nothing is sent until you connect a key, and you can pause or disconnect at any time.
Benefits
- Turn saved products into marketing: send a reminder, a discount, or a "still thinking about it?" email based on what a customer wishlisted
- Build segments of customers who saved a specific product, collection, or price range
- Use real product data (name, price, image, product link) directly in your Klaviyo templates
- Works in near real time - events are delivered in the background, so wishlist actions on your storefront are never slowed down
Where to Find It
Apps → BRIX: Wishlist Plus → Settings → Integrations tab → Klaviyo → Customize
Before You Start
You need a Klaviyo account and a private API key from it.
- Log in to Klaviyo.
- Go to Settings → API keys (direct link: klaviyo.com/settings/account/api-keys).
- Click Create Private API Key.
- Give it a name you'll recognize later, for example
BRIX Wishlist Plus. - Give the key these access scopes:
| Scope | Access | Why it's needed |
|---|---|---|
| Events | Write | To create the wishlist events in your account |
| Profiles | Write | To attach each event to the right customer profile |
| Accounts | Read | To show your Klaviyo account name on the connection card |
- Copy the key (it starts with
pk_). Klaviyo shows it only once.
The Accounts: Read scope is optional. If it's missing, the key still works and events still send - you'll just see a message saying your account name can't be displayed.
How to Use
Connect Klaviyo
- Open the app and go to Settings → Integrations tab → Klaviyo.
- Paste your private API key into the Private API key field.
- Click Connect Klaviyo.
The app verifies the key against Klaviyo before saving it. If the key is wrong or revoked, you'll see an error and nothing is saved. On success the card shows your Klaviyo account name, and syncing is switched on automatically - you don't need to flip a second switch.
Confirm events are arriving
- As a logged-in test customer on your storefront, save a product to the wishlist.
- In Klaviyo, open that customer's profile (or Analytics → Metrics) and look for Added to Wishlist.
Events usually appear within a few moments. If nothing arrives, see Troubleshooting below.
Build a flow from wishlist activity
- In Klaviyo, go to Flows → Create Flow → Build Your Own.
- Choose Metric as the trigger, and pick Added to Wishlist.
- Add a time delay (a wait of 1-3 days works well for a reminder).
- Add your email or SMS, using the event properties (
ProductName,ImageURL,ProductURL,Price) to show the exact product the customer saved.
Klaviyo's own guide: Getting started with flows.
Events Sent to Klaviyo
| Metric name in Klaviyo | Sent when |
|---|---|
Added to Wishlist | A customer saves a product to their wishlist |
Removed from Wishlist | A customer removes a saved product - either from the wishlist page or by tapping the heart icon again |
Each event carries these properties, which you can use in flow filters, segment conditions, and template tags:
| Property | Example / meaning |
|---|---|
ProductID | The Shopify product identifier |
ProductName | The product title |
Price | The product price as a number |
Currency | The currency code, e.g. USD |
ImageURL | The product image, for use in templates |
ProductURL | A direct link back to the product page |
Variant | The specific variant saved, when one applies |
WishlistName | The name of the list it was saved to (relevant with Multiple Wishlists) |
Properties with no value are left out of the event rather than sent empty, so your templates won't show blank fields.
Metric names are permanent. Once you build a flow on
Added to Wishlist, that exact name is what your flow listens for. The app will not rename these metrics.
Available Settings
| Setting | Description | Default |
|---|---|---|
| Private API key | The Klaviyo key the app uses to send events. Shown masked once saved; use Replace to swap it | Not set |
| Sync wishlist events | Master on/off switch. Off means nothing is sent, but your key stays saved | On after connecting |
Added to Wishlist | Per-event switch for product saves | On |
Removed from Wishlist | Per-event switch for product removals | On |
| Test connection | Re-checks your saved key against Klaviyo and updates the "Key verified" timestamp | - |
| Disconnect | Removes the connection and the stored key from the app | - |
Sync health
The Sync health card gives you three at-a-glance checks:
| Row | What it tells you |
|---|---|
| Key verified | When your key was last confirmed working with Klaviyo |
| Last event delivered | When Klaviyo last accepted an event from your store |
| Last sync failed / No errors reported | The most recent delivery error, if there was one, with the time it happened |
Use Test connection any time you want to re-check the key without waiting for a customer action.
Best Practices
- Test with a real logged-in customer account before building flows, so you can see the exact property values your templates will receive.
- Wait 1-3 days before your first reminder email. Sending the instant a product is saved tends to feel intrusive and converts worse than a short delay.
- Filter your flow on
Priceif you want to treat high-value saves differently from low-value ones. - Use
Removed from Wishlistas a flow exit condition, so a customer who removed the item doesn't keep receiving reminders about it. - Pause instead of disconnecting if you only want to stop sending temporarily - switch Sync wishlist events off and your key stays saved.
- Rotate keys deliberately. Replacing your key immediately stops events sent with the old one.
Notes
- Logged-in customers only. Events are sent only for customers the app can identify by email. Guest wishlist activity has no email address attached, so there is no Klaviyo profile to record it against and nothing is sent. Guests who later log in will generate events from that point on.
- Delivery is in the background. Wishlist actions on your storefront never wait on Klaviyo. If Klaviyo is slow or unreachable, the shopper's save still succeeds - the event is retried, and any permanent failure is reported on the Sync health card.
- Duplicates are prevented. Each action carries a unique identifier, so a retry (or a shopper double-tapping the heart) won't fire your flow twice.
- Your key is stored encrypted and is never exposed to your storefront theme. The settings page shows only a masked preview of it.
- Disconnecting deletes the stored key. Reconnecting later means pasting a key from Klaviyo again. If you just want to stop sending, use the Sync wishlist events toggle instead.
- Price-drop and back-in-stock events are not available yet. These are planned as a later addition to this integration - see Plans & Pricing.
- The integration doesn't sync your product catalog into Klaviyo. Product details travel with each event instead.
Troubleshooting
"Connect" fails with an invalid-key error. The key was mistyped, or it was revoked in Klaviyo. Create a fresh private key under Settings → API keys in Klaviyo and paste it again. Make sure you copied the whole key, including the pk_ prefix.
Connected, but my Klaviyo account name isn't shown. The key works but doesn't have the Accounts: Read scope. Events still send normally. To show the name, edit the key's scopes in Klaviyo (or create a new key with that scope) and use Replace to save it.
The card says the connection needs attention / "reconnect". Klaviyo rejected the stored key - it was almost certainly deleted or its scopes were reduced. Create a new private key in Klaviyo, click Replace, and save it. Syncing resumes automatically.
No events are showing up in Klaviyo. Check, in this order:
- Sync wishlist events is switched on.
- The specific event (
Added to Wishlist/Removed from Wishlist) is switched on in the events list. - You tested as a logged-in customer, not as a guest.
- The Sync health card shows no error. If it does, the message there says what Klaviyo rejected.
- Click Test connection to confirm the key is still valid.
Events stopped right after I changed my key. Replacing a key takes effect immediately and the old key stops being used. Confirm the new key has the Events and Profiles write scopes.
My flow fired twice for one customer. Check the flow's own settings in Klaviyo - by default a "Build Your Own" flow can re-trigger for the same profile. The app itself deduplicates repeated sends of the same action.
A customer saved something but got no email. Confirm that customer exists as a profile in Klaviyo and is subscribed/consented for the channel your flow uses. The app creates the event and the profile identity, but it does not grant marketing consent on your behalf.
