This guide walks through how to troubleshoot a flow when you observe that your flow emails do not appear to be sending.
Is Anyone Being Skipped?
If you explore the Recipient Activity tab for any email within a flow, you can click on the Other drop-down menu and see why individuals may have been skipped by the flow. To access the Recipient Activity tab, click on an email and click on the Analytics (Last 30 Days) box.
Once you're in the flow email’s Analytics tab, you can explore all key metrics related to how the email is doing. To explore data around email deliverability/who might be getting skipped, explore the Other drop-down menu in the Recipient Activity tab.
The Other drop-down will show you exactly who has been skipped by the flow and why. You'll also see how many people unsubscribed, marked the email as spam, and how many emails bounced.
One common reason a lot of people might be getting skipped is smart sending. Our smart sending feature allows you to limit the number of emails someone can receive in a given period of time. If an email has this enabled, we will look at the last time that recipient has received an email. If it is within the timeframe specified in your account settings, the queued up email will not be sent. This feature allows you to set up numerous simultaneous flows without worrying that your customers might get bombarded with emails. The default smart sending period is 16 hours.
Is Anyone Actually Meeting the Flow's Conditions?
If you check out Recipient Activity and see that nobody has been queued up for the flow and nobody has been skipped for any reason, chances are there is something wrong with the flow’s setup. One of two things is true:
- Nobody is meeting the flow’s conditions but the flow is configured correctly
- Nobody is meeting the flow’s conditions because the flow is configured incorrectly
To investigate this, you can look at a few different things:
- Consider the flow’s trigger metric and view recent activity
To do this, click on the metric from within the flow’s trigger box. You’ll be taken to either the analytics report for the metric (if it’s an event triggered flow) or the list or segment used as a trigger (if it’s a list or segment triggered flow).
- If you can see a lot of trigger activity but nobody is actually getting queued up for the flow, it means there is likely something wrong with the flow’s filters.
- If there is NO activity around the flow’s basic trigger, the next step is figuring out why. If the flow is triggered by an event, there is likely an integration issue.
- Consider the flow's trigger filter and flow filters
If the trigger action itself doesn’t seem to be the problem, and you need to investigate the trigger filters and flow filters, the best thing to do is to create a dynamic segment that matches the flow’s conditions as closely as possible. Using the segment builder, you can test out certain conditions to get a better understanding of who a flow is going to capture. A few common issues here:
- A series of filter conditions are separated by AND instead of OR (or vice versa) -- you can review this guide to better understand the use of AND/OR when stringing together flow filter conditions.
- The flow filter may actually be keeping everyone out. If you have created a time-relative filter, or a multi-conditional filter, we recommend walking through the logic of how someone would get queued up for your flow. EXAMPLE: If a flow is triggered by the Placed Order metric, and the first email is scheduled to send after 3 days, adding a flow filter that says, has Placed Order zero times in the last 7 days will cause everyone to get skipped by Email 1. By default, everyone that is queued up for Email 1 will have placed an order in the last 7 days because they were added to the flow based on this action merely 3 days before.
- The filter conditions are set to the wrong data type -- i.e. a list property is being filtered as a string (or vice versa). You can learn more about data types here.
Have You Hit Your Account's Email Send Limit?
If you’re seeing unexpected flow sending behavior, a quick thing to check is whether or not you have hit your email sending limit (either an “all time” limit, or a monthly send limit). A quick check of your account settings will reveal if this could be a contributing factor.
For example, if you are on free plan, you are limited to 500 emails per month. If you are seeing flow email deliverability drop off at a certain point every month, it might be because you are hitting this 500 email/month limit at some point mid-month causing all sending to stop at this time.
Welcomes series not sending to new subscribers
There are two situations where a new subscriber getting added to a list will not also get queued up for a welcome series (or any flow) configured to trigger off this list:
- It isn’t possible to trigger flows off of lists that are synced through MailChimp. If you are syncing all of your subscriber lists from MailChimp, you will not be able to configure flows to send to these subscribers as they opt-in.
- If someone is added to your newsletter list by clicking the Subscribe to Newsletter box upon checkout, they will NOT get queued up for your welcome series flow. This is a default setting because typically the welcome series is designed for new customers/visitors. Someone could check this Accepts Marketing box for the first time during their 100th purchase, and it might not be appropriate for this person to get queued up for your welcome series. If you would like us to adjust this setting for your account, please contact firstname.lastname@example.org.
Flow filter based on Items or Collections has the string data type
A list is any array of values, e.g. ["Offer1", "Offer2"]. In Klaviyo, the list data type is used when the goal is to collect an array of words/phrases, where each single item in the array can be identified individually.
One common use-case for this list data type in Klaviyo is when different tags are being collected as a single property, such as the Shopify Tag property. We store one “Shopify Tag” property and then as more tags get assigned to a customer, we just add them to the Shopify Tags array, such as: ["Tag1", "Tag2", “Tag3”]
Another common use-case is when Klaviyo captures a Placed Order metric through an integration, and the data we receive along with this Placed Order metric includes an Items property. This Items property captures all items purchased in the order and it is always synced and stored as an array, which is the list data type in Klaviyo. This allows us to store the one property -- Items -- but have that property include a series of values (i.e. each item purchased in the single order), where each value in the array can be identified individually. The same is true for the Collections property synced along with Placed Order or Ordered Product.
If you are filtering based on Items or Collections and using “equals” where the data type is string, your flow will not work. Instead, the data type must be set to list and the condition will look like, “where [Items or Collections] contains _____."