---
title: "Fix Klaviyo emails not sending after flow verification"
description: "Your STOQ flow verifies with a green check but customers don't get the email. Here's why, and how to fix it."
url: https://help.stoqapp.com/back-in-stock/fix-klaviyo-emails-not-sending/
product: "Back in Stock"
section: "Klaviyo"
last_updated: 2026-11-04
---

# Fix Klaviyo emails not sending after flow verification

> Your STOQ flow verifies with a green check but customers don't get the email. Here's why, and how to fix it.

When STOQ verifies a Klaviyo flow, it checks that a flow with the right name exists. It doesn't check what's inside the flow, so a flow can verify successfully and still fail to deliver. These are the three usual causes.

## Find why a message was skipped

Klaviyo records a reason for every message it doesn't send, so start here to see which cause below applies before changing anything.

1. **Open the flow's email in Klaviyo**

   In your [Klaviyo dashboard](https://www.klaviyo.com/flows), open the flow triggered by the STOQ metric, for example **Back in stock alert (STOQ)**, then click its **Email** action.

2. **Open the message's analytics**

   In the email's panel, click **View details** to open its performance analytics.

3. **Open Recipient activity and filter to Skipped**

   Open the **Recipient activity** tab, then set the activity filter to **Skipped**. Each skipped recipient shows a reason, such as **Skipped: Catalog Item Unavailable**.

   [Image: Klaviyo's Recipient activity tab for a Back in Stock Email message, with Skipped selected in the left list and the activity filter set to "Skipped: Catalog Item Unavailable", listing the recipients whose alert was skipped](https://help.stoqapp.com/images/general/fix-klaviyo-emails-not-sending-5.png)

Match the reason to its fix below:

| Skip reason in Klaviyo | What it means |
|---|---|
| **Catalog item not available** (or similar catalog wording) | Your template uses Klaviyo catalog variables. See [The template uses catalog variables](#the-template-uses-catalog-variables-instead-of-stoq-variables). |
| **Skipped by Smart Sending** | See [Smart Sending is skipping the email](#smart-sending-is-skipping-the-email). |
| No skipped recipients at all | The message isn't being triggered. See [The flow is triggered by the wrong metric](#the-flow-is-triggered-by-the-wrong-metric). |

## Smart Sending is skipping the email

[Image: The Klaviyo Flows editor for the flow named 'STOQ - Back in stock alert (STOQ)' marked Live, with the 'Email details' panel open to its Settings section showing a checked 'Skip recently emailed profiles' checkbox (captioned 'Smart Sending will skip anyone who received an email within the last 16 hours'), an unchecked 'Enable UTM tracking' box, an Additional filters area with an 'Add filter' button, and 'Unsaved changes' with Cancel and Save buttons at the bottom; with markers: 1 on the 'Skip recently emailed profiles' checkbox, 2 on the Save button.](https://help.stoqapp.com/images/general/fix-klaviyo-emails-not-sending-1.png)

Klaviyo's **Smart Sending** skips a profile that was emailed recently (within about 16 hours). Because a customer may have just gotten another email from you, the back in stock alert gets suppressed.

**Fix:** Open the flow's **Email** action settings and turn off **Skip recently emailed profiles** (Smart Sending) for that action. Back in stock alerts are time-sensitive and explicitly requested, so they should always send.

## The template uses catalog variables instead of STOQ variables

If your template pulls product data from Klaviyo's catalog lookup blocks (like `catalog_item.title`), Klaviyo may skip the send when the product reads as out of stock in its catalog, which is exactly the moment a restock alert should fire. The same cause often shows up as a **catalog error** in Klaviyo, or the product name, image, and price rendering blank, because STOQ sends the details on the event rather than through Klaviyo's catalog.

[Image: A Klaviyo email template text block containing a catalog lookup, {% catalog event.VariantId integration='shopify' %}catalog_item.title{% endcatalog %}, instead of a STOQ event variable](https://help.stoqapp.com/images/general/fix-klaviyo-emails-not-sending-4.png)

**Fix:** Replace catalog references with STOQ event variables, for example use `{{ event.product_title }}` instead of `catalog_item.title`. STOQ sends the product details on the event, so no catalog lookup is needed. See [Reusing your own or a Klaviyo template](https://help.stoqapp.com/back-in-stock/customize-klaviyo-email-templates/#reusing-your-own-or-a-klaviyo-template) for the full swap, and [Personalize Klaviyo back in stock emails](https://help.stoqapp.com/back-in-stock/customize-klaviyo-back-in-stock-variables/) for every variable.

## The flow is triggered by the wrong metric

[Image: The Klaviyo Flows editor for a Draft flow named 'STOQQ' with the 'Select a trigger' panel open on the 'Your metrics' tab (alongside Recommended and All triggers tabs), listing metrics under the 'STOQ: Preorders, Back in stock' integration heading: Back in stock alert (STOQ), Back in stock reminder 1 (STOQ), Back in stock reminder 2 (STOQ), and Back in stock SMS alert (STOQ); with markers: 1 on 'Back in stock alert (STOQ)'.](https://help.stoqapp.com/images/general/fix-klaviyo-emails-not-sending-2.png)

A flow built on Klaviyo's native **Back in Stock** metric won't fire, because STOQ sends its own metric.

**Fix:** Rebuild the flow on the STOQ metric that matches your connection: **Back in stock alert (STOQ)** on an OAuth connection, or the **Stoq -** prefixed metric on a legacy API key connection. A flow's trigger can't be changed after creation, so create a new flow with the correct metric.

## Check your setup

[Image: The STOQ app back in stock Sending settings panel with 'Email platform' options STOQ, Klaviyo (selected) and Shopify Flow, showing step '1. Connect Klaviyo' marked connected with a green check and a Disconnect button, and step '2. Create a flow' with a 'Back in stock alert' card whose Flow name field reads 'BIS', a 'Verify flow' button and a 'Send test event' link; with markers: 1 on the 'Send test event' link.](https://help.stoqapp.com/images/general/fix-klaviyo-emails-not-sending-3.png)

After the fix, use **Send test event** from STOQ, then confirm in Klaviyo that the flow sends rather than skips. Klaviyo's flow analytics show whether a message was **Skipped** and why.

## FAQ

### Verification passed, so why doesn't it send?

Verification only confirms a flow with the right name exists. It doesn't inspect Smart Sending, the template's variables, or the send settings inside the flow, which is where these issues live.

### Where do I see why a message was skipped?

In the flow's email, click **View details**, open the **Recipient activity** tab, and filter to **Skipped**: each recipient shows a reason, such as Smart Sending or Catalog item not available. See [Find why a message was skipped](#find-why-a-message-was-skipped).

### Could double opt-in be the cause?

If a signup hasn't confirmed and you use double opt-in, the profile may not be eligible yet. That's expected. See [Set up double opt-in](https://help.stoqapp.com/back-in-stock/notify-me-double-opt-in/).

## Related guides

- [Send back in stock alerts through Klaviyo](https://help.stoqapp.com/back-in-stock/send-back-in-stock-alerts-through-klaviyo/): Set up and verify the flow correctly.
- [Customize your Klaviyo templates](https://help.stoqapp.com/back-in-stock/customize-klaviyo-email-templates/): Build the email with the right variables.
- [Personalize with variables](https://help.stoqapp.com/back-in-stock/customize-klaviyo-back-in-stock-variables/): Use STOQ event properties instead of catalog lookups.
