All segments

Klaviyo CRM Setup for Shopify: A Step-by-Step Guide

Set up Klaviyo CRM on Shopify in the right order: what a profile holds, what it does not, the identity step teams get wrong, and how to verify the sync.

  • Published
  • Reading time 12 min read
  • Author Nafiul Hasan
Klaviyo CRM Setup for Shopify: A Step-by-Step Guide. Diagram: two records, drifting. RETAIN Klaviyo CRM Setup for Shopify: AStep-by-Step Guide SYSTEM ASYSTEM B pointerflow.com

Short answer

Klaviyo CRM means using Klaviyo as the customer record for marketing: one profile per person, holding identity, consent, order events and computed properties. Set it up by syncing Shopify, fixing identity and consent rules, adding custom properties, building segments on them, then verifying the profiles against Shopify orders.

Klaviyo CRM is a loose phrase, and it hides the decision that matters. Klaviyo is not a sales pipeline tool. It is a customer record for marketing: one profile per person, holding who they are, whether you may message them, what they bought and what you have computed about them. If you run a Shopify Plus store at $3M to $30M in revenue, that record decides who gets which message, so it is worth setting up on purpose rather than by default.

This guide is for operators who already send email or SMS from Klaviyo and want the profile to be trustworthy. It is not for brands below the $3M floor, who can leave the defaults alone, and it is not for wholesale teams that manage deals and account owners. Those teams need a sales CRM alongside Klaviyo, not instead of it.

What this page adds is the step most teams get wrong, and a plain list of what a Klaviyo profile does not hold. Both come from the same gap: nobody decided which system owns identity and consent.

What does a Klaviyo profile actually hold?

A Klaviyo profile holds identifiers, consent status, properties, and a timeline of events. Identifiers are the email address, phone number and an external ID. Consent is tracked per channel. Properties are attributes such as name, location and anything custom you add. Events are things that happened: placed an order, started checkout, viewed a product, received an email.

Klaviyo also computes fields on top of that, such as order counts and predicted values. Treat computed fields as labelled outputs of Klaviyo’s model, and check the current documentation for how each is calculated before you build a segment on it. If you cannot explain a field to a colleague, do not put it in a flow trigger.

The useful way to read the record is as two ledgers that drift. Shopify holds the order truth. Klaviyo holds a marketing copy of it, plus data Shopify never sees, such as form signups and email engagement. Every problem in this article is the two ledgers disagreeing.

DataIn Klaviyo by defaultWhere it really lives
Identity (email, phone)Yes, from the Shopify sync and formsShopify customer, plus any form source
Marketing consentYes, per channelKlaviyo and Shopify each keep their own copy
Order events and line itemsYes, from the Shopify integrationShopify
Support ticketsOnly if an integration sends themYour helpdesk
Returns and refundsOnly where the integration sends the eventShopify, plus your returns tool
Subscription stateOnly if the subscription app sends itYour subscription app
Stock levelsNoShopify or your inventory system
Margin and cost of goodsNoYour finance or ERP data

Take from the table that the bottom four rows are absent or conditional. A segment that needs any of them depends on an integration you must confirm, not on Klaviyo itself.

How do you set up Klaviyo CRM on Shopify, step by step?

The order matters more than any single setting. Identity and consent come before properties, properties before segments, segments before flows. Teams that build in the opposite order, flows first, end up rebuilding segments when they find the profiles do not carry the fields the flows assumed.

Step 1: Connect Shopify and decide what owns the customer

Connect the Shopify integration from Klaviyo’s integrations area, and before you accept any default, write one page that says who owns what. The page has three lines. Shopify owns orders and the customer’s shipping and billing details. Klaviyo owns marketing consent and engagement data. One named person owns the mapping between them.

That sounds like paperwork. It is the difference between a discrepancy that gets fixed in a day and one that gets argued about for a quarter. When a customer complains they were emailed after unsubscribing, someone has to be able to say which system was wrong.

Check the integration’s sync settings for how it handles consent and historical data on first connect. The available options and their labels change, so read them on screen rather than trusting a screenshot from an older guide. If the sync fails or lags after you connect, work through our guide to Klaviyo not syncing Shopify orders before you build anything else.

Identity is the step most teams get wrong, and it is invisible until it costs you. Klaviyo will merge and split profiles based on the identifiers it receives. If your form sends an email and your SMS keyword sends only a phone number, you get two profiles for one person. Each one has its own consent state, its own order count and its own place in your flows.

Fix it with three decisions.

  1. Pick the primary key. For most Shopify stores that is email, with phone as a second identifier. Write it down and make every source send it.
  2. Send the same identifier from every source. Audit each form, popup, quiz and app that writes to Klaviyo. A source that omits the email will create an orphan profile.
  3. Map consent explicitly. Decide how a Shopify checkout opt-in, a form signup and an imported subscriber each translate to Klaviyo consent. Do not import a list with unknown consent and hope for the best.

Consent rules differ by region and channel, including for SMS. Describe your practice to counsel and confirm the specifics for every market you send to. This article does not give legal thresholds.

The verification for this step is a count. Export a sample of recent customers from Shopify and search for each one in Klaviyo by email. Every customer should resolve to exactly one profile. A customer who resolves to two, or to none, points at a source that is not sending your primary key.

Step 3: Add the custom properties your team will filter on

A custom property is a field you add to profiles, for example customer_tier or first_category. Create them only when a segment or flow will read them. The temptation is to mirror every Shopify field, and it produces a profile nobody can reason about.

For each property, write four things: the name, the type (string, number, boolean or date), the allowed values, and the owner. Free-text values are the usual failure. If one integration writes “VIP” and another writes “vip”, a segment on the first silently excludes the second. Use one casing convention and a fixed list of values.

Decide where each property is computed. A customer tier based on lifetime spend is better calculated in Shopify or your warehouse and pushed to Klaviyo on a schedule than recomputed inside Klaviyo, because then the tier is the same in every tool that reads it. Klaviyo stays the place the tier is used, not the place it is decided.

For window choices inside properties and segments, use a method rather than a guess. Take the median gap between first and second orders for your catalogue, then choose windows that are a multiple of it. Your own gap is a metric to confirm from your order export, not a number to borrow from a benchmark.

Step 4: Build segments that read the record

A segment is a saved rule over the record. Build a small set first. Four or five that map to decisions are worth more than forty that map to campaigns. Our guide to Klaviyo segments covers the rule builder in detail. Here, the concern is what makes a segment trustworthy as a CRM view.

Use these habits on every segment:

  • State the time window explicitly. “Placed Order at least once, over all time” and “Placed Order at least once in the last N days” are different groups. Do not leave the window at whatever the builder defaults to.
  • Exclude on purpose. A win-back segment should exclude anyone with a recent order, an open support issue or active suppression. Write the exclusions into the segment, not into a note.
  • Name by rule. “Buyers, 1 order, no order in window, consented email” tells the next person what it does. “Q3 push” does not.
  • Prefer events over computed fields. An event has a timestamp you can inspect. A predicted field is Klaviyo’s estimate, which you cannot audit line by line.

Segments recalculate as data changes, so a segment is only as current as the sync beneath it. That is why Step 6 exists.

Step 5: Wire flows to segments and events

Flows are where the record turns into revenue. Klaviyo’s own figure is that 41% of email revenue across its 183,000+ brands comes from automated flows (Klaviyo, vendor-reported). That number tells you where the record is used most, not what your store will earn. To estimate your own, use the flow revenue calculator with your inputs and treat the output as a starting hypothesis.

The setting that breaks record-based flows is overlap. A profile can qualify for a welcome flow, a browse flow and a win-back segment at once. If nothing separates them, the customer gets three messages in a day. Use flow filters and exclusions so that each profile is in one path at a time, and set a priority order for the cases where more than one applies. The mechanics of building each flow are in our guide to Klaviyo flows.

Put a check on every trigger: what happens to someone who buys mid-flow? Flow filters that re-check “has not placed an order since starting this flow” before each send are the difference between a reminder and an embarrassment. If the order sync lags, that filter fails silently.

Cost follows the record. Klaviyo’s pricing is tied to the number of profiles, so duplicate and unconsented profiles are not just messy, they can raise the bill. Check the current model on the vendor’s site and read our note on Klaviyo pricing for how the packaging works.

Step 6: Verify the record against Shopify

Verification is a sample, not a dashboard. Pull 20 recent customers from Shopify at random (this is a method, size it to your volume), and for each one compare four things in Klaviyo: the profile exists once, the email matches, the order history matches the last few Shopify orders, and the consent status matches what the customer chose.

Record every difference in a sheet with the cause. Patterns show up fast. Missing orders point to a sync gap. Two profiles point to an identity rule. A consent mismatch points to a form or import that bypassed your mapping.

Run the same check after any change: a new form, a theme change to the checkout, a new subscription app, an import. Also run it on a fixed schedule. Monthly is a reasonable starting cadence, and you should tighten it if the mismatch log is not empty. The record does not degrade all at once, it degrades one integration at a time.

Where do teams go wrong with a Klaviyo customer record?

Most failures are decisions nobody made rather than settings someone got wrong. Three appear repeatedly.

Treating Klaviyo as the master is the first mistake. A team decides Klaviyo “knows” the customer, then a returns process, a helpdesk or a subscription app changes something Klaviyo never hears about. The customer who returned an order is still tagged as a high-value buyer, and receives an upsell for the item they just sent back. Klaviyo cannot know what it was not told.

The list import is the second mistake. Someone exports contacts from an old tool, uploads them, and marks them all as subscribed to make the numbers look good. Deliverability suffers first, and consent questions follow. Import only with a documented basis, and let unknown-consent contacts stay out of sends.

Property sprawl is the third mistake. A year on, the profile has dozens of custom fields, half with inconsistent values, and nobody dares delete one. Segments quietly exclude people whose value is spelled differently. Every property needs an owner and an allowed-values list, and an unused property should be retired.

When should you keep a separate CRM next to Klaviyo?

Keep a separate system when you have people to manage rather than customers to message. Wholesale accounts with an account manager, deal stages, quotes, and contract renewals do not fit a marketing profile. Those belong in a sales CRM, with Klaviyo receiving a small set of fields (account type, tier) so marketing can suppress or tailor messages.

Also keep one when you need a single customer view across ads, support, analytics and a warehouse. Klaviyo can send and receive data through integrations and its API, but it is built to drive messaging, not to be the hub for every tool. If the same person must be identified consistently in your helpdesk and your ad platforms, decide where that identity lives and treat Klaviyo as a spoke.

A useful test: if a field would be edited by a person on a phone call, it belongs in the CRM. If it is set by customer behaviour, it belongs in Klaviyo. For the wider view of how these systems fit a retention programme, see customer retention for ecommerce, and for how this shapes the plan for growing brands, see our page for scaling brands.

What does this cost to keep running?

The ongoing cost is attention, not licence fees. Someone has to own the property list, the segment names and the monthly sample check. In a store of this size that is a few hours a month for a marketer who knows the tools, metric to confirm against your own team’s time once you have run two cycles.

The failure cost is harder to see. When the record drifts, the symptoms are indirect: complaints from recent buyers who got a cart reminder, unsubscribes that jump after a segment change, a flow that seems to underperform for no reason. None of these show up as an error in Klaviyo. You find them by comparing the record to Shopify, which is why Step 6 is the one to keep.

Who owns the Klaviyo record in the end?

The Klaviyo record is a lifecycle problem: who gets which message, when, and on what evidence. When identity, consent and order truth disagree, the flows built on top of them misfire, and no template change fixes that. Pointerflow treats it as a lifecycle flows problem, and works on the record and the flows together so that the messages read from data you have already checked.

Sources

  • Klaviyo, benchmark data across 183,000+ brands: 41% of email revenue from automated flows (vendor-reported). All other guidance is written from how Klaviyo and Shopify profiles, events and consent work in general, with no other external figures quoted.

Frequently asked

Is Klaviyo a real CRM?

Klaviyo is a customer data and marketing platform that behaves like a CRM for marketing purposes: profiles, events, segments and messaging. It is not a sales pipeline tool, and it does not hold support tickets, returns or stock unless something pushes that data in. Treat it as the marketing record, not the master record.

Can Klaviyo replace HubSpot or Salesforce?

For a direct-to-consumer brand with no sales team, often yes for marketing use. If you run wholesale accounts, deal stages or account managers, no. Klaviyo has no native pipeline model built for that. Keep the sales CRM for people you negotiate with, and Klaviyo for people who check out.

What is the difference between a Klaviyo profile and a Shopify customer?

A Shopify customer is a store record tied to orders. A Klaviyo profile is a marketing record that can exist before any order, from a form signup, and can carry properties Shopify never stores. One person can also end up as two profiles if identifiers differ, which is why identity rules matter.

Why do I have duplicate profiles in Klaviyo?

Duplicates usually appear when two sources identify the same person by different keys, for example an email from a form and a phone number from an SMS keyword, or a guest checkout with a different address. Decide the primary key, send it consistently from every source, and audit new sources before you switch them on.

Should I import my whole customer list into Klaviyo?

Only with a known consent basis for each row. Importing a purchased or unverified list creates deliverability and compliance risk. Import subscribers with recorded consent, keep unknown-consent contacts out of marketing sends, and confirm regional rules with counsel before sending anything to a list you inherited.

Which custom properties are worth creating?

Only the ones a segment or flow will actually read. Good candidates are a customer tier you compute elsewhere, first product category, and subscription status. A property nobody filters on is noise, and inconsistent values in a free-text property quietly break segments. Give every property a type, an owner and an allowed set of values.

How often should Klaviyo data be reconciled with Shopify?

Run a small sample check after every integration change and on a fixed schedule, monthly at minimum for most stores. Pick a handful of recent customers, compare order history and consent in both systems, and log differences. Rising mismatch rates point to a broken sync before campaign results show it.

Does Klaviyo store returns, tickets or lifetime margin?

Not by default. Klaviyo receives what Shopify and other integrations send it. Returns, support tickets and margin live in other tools, and appear in Klaviyo only if you push them in as events or properties. Check the integration's documentation to see which fields it actually sends before you plan a segment on them.

Can I use Klaviyo as a customer data platform?

Klaviyo markets its data layer for exactly this, and for a marketing-only stack it can be enough. If you need one identity graph feeding ads, support, analytics and a warehouse, check how you would export and govern the data first. A record you cannot get out of the tool is a lock-in risk.

What breaks when Klaviyo stops syncing orders?

Segments that depend on order events go stale, so people who just bought keep receiving cart and win-back messages, and replenishment timing drifts. Nothing errors visibly. Watch for the symptom, a rise in complaints from recent buyers, and follow the fixes in our guide on Klaviyo not syncing Shopify orders.

How do I keep the Klaviyo record clean as the team grows?

Give properties and segments owners, name them by rule, and review the list on a schedule. Retire anything unused. Most mess comes from one-off segments built for a campaign and never removed. A short naming convention and a quarterly clear-out costs less than debugging a flow that targets the wrong group.

Next step

Is this your lifecycle flows problem, or a symptom of another one?

Bring your numbers — the churn split, the decline rate, whatever your flows are earning — and we will tell you which of them is the expensive one.

Book a call →