Klaviyo flow best practices
Practices are the checks, not the chart
Klaviyo publishes a frequency chart for the core flows, and the templates page records that chart: welcome, abandoned cart, browse, post-purchase, winback, and sunset, with the email counts the flow articles use when they differ from the chart. The abandoned-cart page records the checkout metric, the Placed Order filter, and the checkout URL. The audit page is the order of a pass through one account. This page is the set of rules that apply to a flow before any of those are worth trusting. A chart can be right and the message can still be draft.
Set the status you mean, including for people already waiting
Klaviyo’s getting-started article gives every flow message one of three statuses. Draft queues nobody. It is the status to use while the content is still being built. If you set a live message back to draft, people skip it and continue, and they do not appear on that message’s recipient activity. Manual queues the person and does not send automatically. You review the queued sends and send or discard them. Those people still move to the next step, so a later live message can go out while the manual one sits in Needs Review. Live sends when the delay is up.
If every message is draft, nobody enters until at least one message is live or manual. Review and turn on, or Update status, can set the configured actions together. Unconfigured actions stay draft. The change applies when you save. The manage-messages article adds two consequences for people already in the flow. Turning a manual message live does not send the people already in Needs Review. You still review those. Turning a live message to manual stops the automatic send for people in Waiting. They move to Needs Review. Status changes apply immediately to new entrants. They do not quietly finish the old plan for people already queued.
Use a profile filter when the answer can change before the send
When someone takes the triggering action, Klaviyo checks trigger filters and profile filters. People who fail do not enter and are not scheduled. People who pass are scheduled on the delays. Before each later email, SMS, or split, profile filters are checked again. Trigger filters on a metric flow are not checked again at send time. An additional filter on one message applies only to that message.
A person who fails a profile filter is not removed from the flow. They move to the next step, and the filter is checked again. Klaviyo does this because some filters can start passing later. Others, once failed, keep failing. Placed Order zero times since starting this flow is the second kind. It is the filter that makes a checkout flow an abandonment flow. A buyer keeps failing it, so the later emails are skipped. Klaviyo says a large skipped count for failing profile filters is expected on that flow. The skipped rows are under Analytics, then Recipient activity, then Other, in Skipped: Fails Profile Filters.
The neighboring flows need their own version of that skip. Browse abandonment is Viewed Product and should skip people who start checkout. The checkout flow skips people who place an order. An Added to Cart flow is a third series and also needs the order skip. Without those filters, one session qualifies for two flows. The delays for each series are on the templates page. The practice here is the skip, not the hour count.
Decide Smart Sending on the message, per channel
Smart Sending limits how many marketing messages someone receives on one channel in a window. The windows are separate. Email defaults to 16 hours. SMS defaults to 24 hours. Push defaults to 24 hours. An email does not block an SMS the same day. Changing the window does not rewrite a countdown that has already started. If you shorten email from 16 hours to 10 after a campaign, people who received that campaign are still skipped until the original 16 hours end. A message skipped for Smart Sending is not rescheduled when the window ends.
Messages marked transactional are never skipped by Smart Sending, and receiving one does not cause a later marketing message to be skipped. The window applies to marketing. Many pre-built flows turn Smart Sending on. Some turn it off on a particular message. The checkbox is on that message: Skip recently emailed profiles for email, and Turn on Smart Sending for SMS or push. Check the message you are about to approve. A welcome email and a cart email on the same afternoon collide only when both are marketing messages with the skip enabled.
Preview a real event before anyone historical is queued
Dynamic content is filled from the event that triggered the flow. For a Shopify checkout message, the link back to that checkout is {{ event.extra.checkout_url }}. Preview against an event from the account. If the preview lists no events, the metric has no payload yet. Create one before you approve the template. Item tags are not stable across Klaviyo’s own articles. Use the tag the preview resolves.
Adding past profiles queues historical people into actions that are already manual or live. Draft messages are not queued. On a metric flow they are placed by when the event happened, which requires at least one time delay. Re-entry rules are not checked for that add. People who already skipped a message are not scheduled for that same message again, but they can be scheduled for a message you added later. The practice is to finish the filter and set the status you intend before you use the control. Queueing a year of checkouts into a message that is still the wrong status is how a review becomes a send.
Name the skip before you rewrite the email
A live flow that sends less than you expected is often doing one of three different things. Failing profile filters means the filter was checked again and the person no longer passed. On an abandoned cart, that is usually the purchase filter. A Smart Sending skip means they already received a marketing message on that channel inside the window, and it will not be retried. A draft in the middle of the series never schedules them, so they are not in that message’s skip list at all. Changing the subject line does not fix any of the three.
The analytics page separates the screens: the flows dashboard for the account, the 30-day snapshot on one message, and a flows performance report when you need each message or each variation. Read the skip reason on the message before you open the report and treat a low delivery count as a copy problem.
Repeat the check in the next account
These rules are per Klaviyo account. The next client has their own metrics, their own message statuses, and their own Smart Sending checkboxes. A portfolio can list flow names, triggers, and a Live or Manual status across accounts. It does not show the delay or the creative, and it does not show a draft message as a column you can trust in place of the canvas. The agency page is that overhead. The audit page is the order of one pass. Use both after the status, the filter, and the preview on this account are the ones you mean.
KlavyFlow reads one connected account at a time and places each message on the elapsed day with the creative. It does not change a status, turn Smart Sending off, or send the mail. Flow performance stays a separate view for 7, 30, or 90 complete account-local days, and a missing observation stays unavailable. The timeline shows whether the delay and the creative you checked are the ones in that client workspace.
14-day trial, then $95/month per client workspace. No payment card required. Or $995/year.