MerchantFlowMerchantFlow Docs
Integrations

Connect Klaviyo - Email and SMS Marketing Analytics

Connect Klaviyo to MerchantFlow to bring email and SMS campaign performance, flow revenue, and conversion attribution into your profitability dashboard.

Connect Klaviyo to MerchantFlow

The Klaviyo integration brings email and SMS marketing performance into MerchantFlow, including campaign-level attributed revenue, flow performance, and a per-channel slice in your ads and dashboard overview. Klaviyo is an owned-audience channel, which is treated differently from paid platforms like Meta or Google Ads.

What Is the Klaviyo Integration?

Klaviyo is an email and SMS marketing platform. MerchantFlow connects to your Klaviyo account via OAuth and pulls:

  • Campaign performance - last 30 days of campaigns ranked by attributed revenue
  • Daily channel revenue - email and SMS conversion value, aggregated daily for the dashboard
  • Conversion metric discovery - the metric ID used to attribute orders to Klaviyo sends (typically "Placed Order")

Because Klaviyo is a flat-fee subscription (not per-send paid media), the integration sets spend = 0 on every row. You can model your Klaviyo subscription separately as a recurring OPEX entry on the Expenses ledger.

How to Connect Klaviyo

Open Settings > Integrations and click Connect on the Klaviyo card.

You will be redirected to Klaviyo to approve the connection. MerchantFlow uses OAuth 2.0 with PKCE so no API keys leave your Klaviyo account.

Permissions Requested

MerchantFlow requests the following Klaviyo scopes:

  • accounts:read - account currency and metadata
  • campaigns:read - campaign send history and statistics
  • flows:read - flow performance
  • metrics:read - find the "Placed Order" conversion metric
  • events:read - read order events for attribution
  • lists:read and segments:read - list and segment metadata
  • profiles:read - profile counts

All scopes are read-only. MerchantFlow does not write campaigns, segments, or profiles to Klaviyo.

Email Verification and 2FA

For security, you must have verified your MerchantFlow email and (when applicable) completed two-factor authentication before connecting any integration. The connect button surfaces a clear prompt if either is missing.

What Data Does MerchantFlow Sync from Klaviyo?

Campaign Performance

Each campaign that sent in the last 30 days appears in the Top Campaigns table on Marketing > Ads and Channels, ranked by attributed revenue. Each row shows:

  • Campaign name
  • Send date
  • Recipients (where available)
  • Attributed revenue
  • Spend (always 0 - explained above)

Daily Channel Revenue

Klaviyo's attributed revenue feeds the channel slice on the Dashboard overview and the channel breakdown on Unit Economics > CAC by Channel.

Flow Revenue

Automated flows (welcome series, abandoned cart, browse abandonment, post-purchase, etc.) are surfaced alongside campaigns when the flow's conversion event matches your selected conversion metric.

Conversion Metric Selection

MerchantFlow needs a conversion metric to attribute Klaviyo revenue. During the OAuth callback, MerchantFlow looks up the "Placed Order" metric in your Klaviyo account and stores its ID. If "Placed Order" is missing or your store uses a different conversion event, the dashboard renders honest empty states rather than fabricating numbers; reconnect Klaviyo or contact support to select a different metric.

How CAC Treats Klaviyo

Because Klaviyo has no per-send spend, it does not appear in the Unit Economics CAC table by default. The dashboard reports your blended CAC across paid channels (Google, Meta, TikTok, Snapchat) and surfaces Klaviyo separately as attributed revenue.

If you want Klaviyo's subscription cost reflected in margin, add it as a recurring expense in Profit > Expenses with a monthly cadence.

API Revision Pinning

MerchantFlow pins to the Klaviyo API revision 2026-04-15 for stability. We update the revision once a year after testing the reporting endpoints, so the dashboard will not silently break if Klaviyo introduces a breaking change.

How to Disconnect Klaviyo

Open Settings > Integrations, click Manage on the Klaviyo card, and choose Disconnect. MerchantFlow revokes the stored OAuth tokens and stops syncing immediately. Existing historical data is retained for the data retention period tied to your plan.

Frequently Asked Questions

Why does Klaviyo show $0 spend on every row?

Klaviyo is an owned-audience channel charged via a flat monthly subscription rather than per-send media buy. Showing $0 spend on each campaign accurately reflects the variable cost of an additional send. To model the subscription cost, add it as a recurring expense in Expenses.

Why is Klaviyo revenue different from what I see in Klaviyo's reports?

MerchantFlow uses your configured Klaviyo conversion metric (typically "Placed Order") and pulls the conversion_value statistic. Differences usually trace to attribution-window settings in Klaviyo, or to orders that arrived after the report was generated. The MerchantFlow dashboard recomputes nightly.

Does the integration include Klaviyo SMS?

Yes. SMS campaigns appear in the campaign table the same way as email campaigns and contribute to the daily channel revenue series.

Can I connect more than one Klaviyo account?

One Klaviyo account per MerchantFlow tenant. If you operate multiple brands in different Klaviyo accounts, connect each Klaviyo account to its own MerchantFlow workspace.

Does Klaviyo appear in attribution reports?

Yes. The Klaviyo channel is a first-class source in Attribution reports, alongside paid social, paid search, organic, and direct.

Troubleshooting

  • OAuth fails with "Klaviyo OAuth is not configured" - the workspace administrator needs to set the Klaviyo client ID and secret in the environment. See troubleshooting integrations.
  • No campaign data after connecting - check that your Klaviyo account has campaigns sent in the last 30 days, and that the "Placed Order" metric exists. The provider returns an empty array (not an error) when the conversion metric is missing, so the dashboard will show an empty state.
  • Two-factor required - if your account has two-factor authentication enforced and you have not completed it for the current session, the connect button will block. Complete 2FA in Settings > Security first.

Related Guides


Last updated: May 23, 2026