Klaviyo Event Tracking: 7 Steps to Smarter Segmentation and Revenue-Driving Flows

Blog

August 30, 2025

Klaviyo Event Tracking: 7 Steps to Smarter Segmentation and Revenue-Driving Flows

Blog

August 30, 2025

Klaviyo Event Tracking: 7 Steps to Smarter Segmentation and Revenue-Driving Flows

Blog

August 30, 2025

Set up Klaviyo event tracking in 7 steps. Capture the right actions, segment smarter, and trigger revenue-driving flows with tested, documented best practices.

Why Klaviyo Event Tracking Matters

Missing triggers, blunt segments, fuzzy ROI? The fix is clean, consistent event tracking. In Klaviyo, events record real customer actions as a metric with properties on a profile, which you then use for precise segmentation and flow triggers. 

What This Guide Covers

  • What an event is in Klaviyo, and how metrics, properties and profiles work together.

  • Standard vs custom events and when to use each.

  • 7-step setup (identify, name, enrich, send, test).

  • Testing & debugging with the Metrics Activity feed.

  • Scaling best practices for naming, hygiene, deduping and monitoring.

Pro Tip: Include a profile identifier and a unique_id on every event. Test in Analytics → Metrics → Activity feed before enabling flows.

What Is Klaviyo Event Tracking and Why It Matters

In Klaviyo, an event is a customer action you record and use to power segmentation, personalisation, and automation. Each event belongs to a specific metric, includes useful properties, and links to the right customer profile.

Core components:

  • Event

A single action taken by a profile. Every event has exactly one metric (its type) and a timestamp. In the payload, the event links to its metric and profile in the relationships object. 

  • Metric (event type)

The named type of the action you track, for example, Checkout Started or Completed Quiz. When you create an event and provide a metric name, Klaviyo matches an existing metric or creates a new one with a metric_id.

  • Properties

 JSON properties carry context (e.g., sku, category, coupon, value). Only top-level, non-object properties are segmentable — put anything else in $extra. Keep payloads lean (max 400 properties per event). For segmentation, 0, null, and empty strings are ignored.

  • Time

The event timestamp. Klaviyo will default to creation time, but you should send a time value when backfilling historical actions to keep chronology correct. 

  • Value

An optional numeric amount associated with the event, for example, a price. If the metric historically included a value, events missing it will default to 0. 

  • Unique ID

A recommended unique identifier to prevent accidental de-duplication. If you omit unique_id, events with the same metric and profile sent simultaneously can be dropped as duplicates. Use UUIDv4 to ensure that each event is uniquely identified and processed. 

  • Profile

The customer the event belongs to. When creating an event, include at least one profile identifierid, email, phone_number, or external_id — along with the metric name. See Create Event.

Note: Events created with @example.com or @test.com emails are accepted by the API but silently dropped during processing, so they won’t appear in Klaviyo.

Why it matters

This structure lets you trigger flows the moment someone acts, filter audiences by precise behaviour, and attribute revenue back to specific actions with confidence. Clean, well-named metrics and lean properties are the foundation of reliable reporting and higher conversion.

Standard vs Custom Events 

Standard e-commerce + on-site events come via your integration (e.g., Shopify). Anything brand-specific (loyalty, quizzes, wishlists) = custom event via the API.

Standard e-commerce events (Shopify)

What you get out of the box:

  • Checkout Started

  • Placed Order

  • Ordered Product

  • Fulfilled Order

  • (plus Cancelled Order, Refunded Order, Fulfilled Partial Order if you need them).

Why it matters: Powers core flows (abandon, confirmation, post-purchase) and reporting with minimal setup.

On-site behavioural events (Shopify)

  • Enabled by default (with app embed/onsite tracking): Viewed Product, Active on Site.

  • Toggle on in Shopify → Klaviyo integration (“Track behavioral events”): Added to Cart, Viewed Collection, Submitted Search.

Tip: If a browse event does not appear, follow the Section 5 checklist for on-site tracking and identification tests.

Why it matters: Drives browse/cart abandonment, search follow-ups, and category-based recommendations.

Custom events (API)

Use for brand moments: 

  • Loyalty points redeemed

  • Wishlist added 

  • Quiz completed (store result) 

  • Back-in-stock clicked 

  • Pre-order reserved, etc.

How to send:

  • Server: Create Event (or Bulk Create Events).

  • Browser (public key): Bulk Create Client Events — never use a private API key client-side.

Payload must-haves: Clear metric name, top-level properties you’ll segment on (e.g., category, value, quiz_result), and one identifier (email, phone_number, id, or external_id). 


comparing Standard vs Custom Events.png  Comparison table of Standard (Shopify/Klaviyo.js) vs Custom (API) events with example metrics and properties.

When to use what

  • Use standard if it cleanly represents the moment (best-practice flows + reports already expect it).

  • Go custom when you need a distinct moment or richer context to target/branch (keep properties lean and actionable).

7-Step Setup Guide for Klaviyo Event Tracking

1. Install tracking

Connect your platform (for example, Shopify). Enable the app embed so Viewed Product and Active on Site fire, then switch on Track behavioral events for Added to Cart, Viewed Collection, Submitted Search


check Track behavioral events.png  Shopify → Klaviyo Onsite tracking settings with app embed toggle, Track ‘Viewed Product’ option, and Track behavioral events checkbox.
Source: Klaviyo

2. Identify the user

Send at least one profile identifier with every event: email, phone_number, id, or external_id.


profile identifier with every event.png  Profile object form displaying identifiers and attributes: email, phone_number, external_id, anonymous_id, _kx, names, organisation, locale, and title.
Source: Klaviyo 

3. Name the metric clearly

Use action-first names you will recognise in segments and flow triggers (for example, Completed Quiz).

4) Add properties you will use

Include only top-level, non-object properties you will segment on; stash extra detail in $extra.


Add properties you will use.png  Klaviyo event Properties object showing top-level fields: Brand, ProductID, ProductName, Value, and SKU with an Add Field button.
Source: Klaviyo 

5. Send the event

Server: Create Event or Bulk Create Events. Browser: Bulk Create Client Events with your public API key only. Never expose a private key client-side.


Send the Event.png  Example JSON for a client event: public token, event “Ordered Product”, customer_properties with $email, and properties with item_name and $value.
Source: Klaviyo

6. Test in Klaviyo

Open Analytics → Metrics → Activity feed to confirm events and properties.


Go to Analytics then Metrics.png  Added to Cart metric chart view with date range, filters, and daily trend line plus tabs for Activity feed and cohorts.check the Activity feed.png  Klaviyo Metrics → Activity feed filtered to Added to Cart listing profiles, timestamps, and action menus.
Source: Klaviyo 

7. Trigger and monitor flows

Create a metric-triggered flow and add trigger filters as needed.


Create a metric-triggered flow.png  Flow Trigger screen highlighting the Metric option for entering a flow when a specific action occurs.
Source: Klaviyo 
Enable metric anomaly monitoring.png  Flow trigger panel showing a Potential trigger issue alert and event volume chart for anomaly monitoring.
Source: Klaviyo 

QA tips

  • Auditing usage: list automations that rely on a metric with Get Flows Triggered by Metric.

Strategic DTC Use Cases for Event Tracking

Turn signals into revenue with targeted flows and segments:

  • Back in stock

Use the Subscribed to Back in Stock metric to queue shoppers, then send email or SMS when inventory returns. Pull product properties into the message for relevance. See Back in stock flow and how these flows work. 

  • Quiz completed (custom)

Fire a Completed Quiz custom event with a top-level property such as quiz_result = hydration, then branch your onboarding content and bundles by result. Send via Create Event

  • Loyalty redeemed (integration/custom)

Trigger VIP early access or exclusives when points are redeemed. Connect your programme and sync data to Klaviyo, then use those events or profile fields in flows. Start with Smile.io x Klaviyo or Yotpo Loyalty & Referrals integration guides.

  • Wishlist added (custom)

Send a Wishlist Added event, then follow up with a back-in-stock or a price-based reminder when relevant. Implement with Create Event.

  • Viewed collection (Shopify)

Enable onsite tracking, then toggle Track behavioral events to capture Viewed Collection and power category-specific recommendations and social proof.

  • Price sensitivity

Use the native Price Drop flow and set your threshold by amount or percent. Optionally add trigger or profile filters to refine who receives it. 

  • Subscriptions

Pair Recharge → Klaviyo subscription metrics to drive skip, pause, renewal and churn-save sequences. Recharge

Testing & Debugging Events 

Validate your tracking before you launch automations. Use Klaviyo’s built-in views to check payloads, identifiers, and timing, then preview messages that depend on those events.

Your testing toolkit

  • Activity feed: Go to Analytics → Metrics → Activity feed to confirm events are arriving, inspect properties, and see the linked profile and timestamp. This is the fastest way to spot mapping issues.

  • Preview & test and Inbox testing: From any template or flow message, open Preview & test, choose a profile or an event, and send yourself a test or run Inbox testing to confirm dynamic content resolves from event properties.

  • API spot checks: If you need to inspect raw records, query Get Events and Get Event Relationships to verify the metric and profile associations and the event timestamp. Klaviyo Developers

  • Client vs server sends: Browser code must call Bulk Create Client Events with a public key. Server code must use Create Event or Bulk Create Events with private or OAuth credentials.

Common issues and fixes


Common issues and fixes.png  Troubleshooting table mapping Issue → Likely cause → Exact fix → Where to verify for identifiers, duplicates, time, flow triggers, onsite events, and API key misuse.

Best Practices for Scalable Event Tracking 

Naming conventions

Use action-first metric names such as Completed Quiz or Redeemed Reward, with consistent casing and tense. Klaviyo creates a new metric when you use a new name, so clear labels keep segments and dashboards tidy. 

Property hygiene

Send only top-level, non-object properties you will segment or analyse, for example category, value, sku. Max 400 properties per event. For segmentation, values of 0, null and empty strings are ignored. Put extra, non-segmentable detail in $extra

Deduplication and IDs

Include a stable unique_id (use UUIDv4) and the correct time field, especially for backfills.

Governance

Maintain a shared metric catalogue with owner, purpose and schema. If your schema changes, create a new metric name, for example Completed Quiz v2, so existing flows and reports remain valid. 

Monitoring

Enable metric anomaly monitoring for checkout, purchase and renewal metrics so unusual drops trigger alerts before flows underperform. 

Reporting & Lifecycle Segmentation from Event Data 

Reporting

Start in Analytics → Metrics to review a metric’s chart, then open the Activity feed for raw events, properties and linked profiles. In campaign and flow reports, choose a Conversion metric and confirm message attribution settings so revenue is counted consistently.

Lifecycle automation

Build metric-triggered flows and refine with trigger filters. Examples:

  • Win-back from inactivity: has not done Placed Order in 90 days.

  • Churn prevention: fewer site or message events in a period.

  • Replenishment: delay from Placed Order by expected usage interval; branch by product or quantity.

Segmentation

Start with frequency + recency logic, then add property filters for precision: “What someone has done → X is at least Y in the last Z days” with filters like category, price band or quiz_result.

Measuring impact

Compare performance by segment or cohort before and after launch, keep the same conversion metric across reports, and align attribution windows so ROI rolls up cleanly.

FAQs

1. Can I create events without an existing profile?

  • Yes — Create Event can create or update a profile when you include at least one identifier (email/phone/id). 

2. What’s the difference between “metric” and “event”?

  • A metric is the event type (label); an event is a single occurrence of that type associated to a profile + timestamp. 

3. How do I tie revenue back to an event-driven programme?

  • Choose a Conversion metric in campaign or flow analytics and confirm message attribution windows.

4. How do I see if a metric is still firing?

  • Open Analytics → Metrics → Activity feed for that metric; use anomaly monitoring for alerts on unusual drops. 

5. Can I build frequency and recency segments from events?

  • Yes. Use “What someone has done” conditions, then add property filters for precision.

Conclusion

Good event tracking makes your email and SMS smarter. When Klaviyo records the right actions, you can target people at the right time, with the right message. Use clear names, send only useful properties, and add a unique_id to every event. Test in the Activity feed before you launch. 

Then build segments and flows that match what customers actually do. Keep watching the data and improve each month. You will see cleaner reports, stronger messages, and steadier revenue.

Key takeaways

  • Identify every event: Include a profile identifier and a unique_id to keep data clean.

  • Send lean properties: Use top-level fields you will segment on and store extras in $extra.

  • Use the right endpoints: Server uses Create or Bulk Create Events, client uses Bulk Create Client Events.

  • Test before launch: Validate payloads in Analytics → Metrics → Activity feed to catch mapping issues.

  • Segment with intent: Build frequency plus recency rules, then add property filters for precision.

  • Measure correctly: Set a Conversion metric and confirm message attribution windows for reliable ROI.

Worried your Klaviyo events aren’t reliable enough to base decisions on?

We’ll validate your setup, eliminate errors, and help you create data-backed campaigns with confidence. Click here to schedule your free audit and take control of your event data.




Why Klaviyo Event Tracking Matters

Missing triggers, blunt segments, fuzzy ROI? The fix is clean, consistent event tracking. In Klaviyo, events record real customer actions as a metric with properties on a profile, which you then use for precise segmentation and flow triggers. 

What This Guide Covers

  • What an event is in Klaviyo, and how metrics, properties and profiles work together.

  • Standard vs custom events and when to use each.

  • 7-step setup (identify, name, enrich, send, test).

  • Testing & debugging with the Metrics Activity feed.

  • Scaling best practices for naming, hygiene, deduping and monitoring.

Pro Tip: Include a profile identifier and a unique_id on every event. Test in Analytics → Metrics → Activity feed before enabling flows.

What Is Klaviyo Event Tracking and Why It Matters

In Klaviyo, an event is a customer action you record and use to power segmentation, personalisation, and automation. Each event belongs to a specific metric, includes useful properties, and links to the right customer profile.

Core components:

  • Event

A single action taken by a profile. Every event has exactly one metric (its type) and a timestamp. In the payload, the event links to its metric and profile in the relationships object. 

  • Metric (event type)

The named type of the action you track, for example, Checkout Started or Completed Quiz. When you create an event and provide a metric name, Klaviyo matches an existing metric or creates a new one with a metric_id.

  • Properties

 JSON properties carry context (e.g., sku, category, coupon, value). Only top-level, non-object properties are segmentable — put anything else in $extra. Keep payloads lean (max 400 properties per event). For segmentation, 0, null, and empty strings are ignored.

  • Time

The event timestamp. Klaviyo will default to creation time, but you should send a time value when backfilling historical actions to keep chronology correct. 

  • Value

An optional numeric amount associated with the event, for example, a price. If the metric historically included a value, events missing it will default to 0. 

  • Unique ID

A recommended unique identifier to prevent accidental de-duplication. If you omit unique_id, events with the same metric and profile sent simultaneously can be dropped as duplicates. Use UUIDv4 to ensure that each event is uniquely identified and processed. 

  • Profile

The customer the event belongs to. When creating an event, include at least one profile identifierid, email, phone_number, or external_id — along with the metric name. See Create Event.

Note: Events created with @example.com or @test.com emails are accepted by the API but silently dropped during processing, so they won’t appear in Klaviyo.

Why it matters

This structure lets you trigger flows the moment someone acts, filter audiences by precise behaviour, and attribute revenue back to specific actions with confidence. Clean, well-named metrics and lean properties are the foundation of reliable reporting and higher conversion.

Standard vs Custom Events 

Standard e-commerce + on-site events come via your integration (e.g., Shopify). Anything brand-specific (loyalty, quizzes, wishlists) = custom event via the API.

Standard e-commerce events (Shopify)

What you get out of the box:

  • Checkout Started

  • Placed Order

  • Ordered Product

  • Fulfilled Order

  • (plus Cancelled Order, Refunded Order, Fulfilled Partial Order if you need them).

Why it matters: Powers core flows (abandon, confirmation, post-purchase) and reporting with minimal setup.

On-site behavioural events (Shopify)

  • Enabled by default (with app embed/onsite tracking): Viewed Product, Active on Site.

  • Toggle on in Shopify → Klaviyo integration (“Track behavioral events”): Added to Cart, Viewed Collection, Submitted Search.

Tip: If a browse event does not appear, follow the Section 5 checklist for on-site tracking and identification tests.

Why it matters: Drives browse/cart abandonment, search follow-ups, and category-based recommendations.

Custom events (API)

Use for brand moments: 

  • Loyalty points redeemed

  • Wishlist added 

  • Quiz completed (store result) 

  • Back-in-stock clicked 

  • Pre-order reserved, etc.

How to send:

  • Server: Create Event (or Bulk Create Events).

  • Browser (public key): Bulk Create Client Events — never use a private API key client-side.

Payload must-haves: Clear metric name, top-level properties you’ll segment on (e.g., category, value, quiz_result), and one identifier (email, phone_number, id, or external_id). 


comparing Standard vs Custom Events.png  Comparison table of Standard (Shopify/Klaviyo.js) vs Custom (API) events with example metrics and properties.

When to use what

  • Use standard if it cleanly represents the moment (best-practice flows + reports already expect it).

  • Go custom when you need a distinct moment or richer context to target/branch (keep properties lean and actionable).

7-Step Setup Guide for Klaviyo Event Tracking

1. Install tracking

Connect your platform (for example, Shopify). Enable the app embed so Viewed Product and Active on Site fire, then switch on Track behavioral events for Added to Cart, Viewed Collection, Submitted Search


check Track behavioral events.png  Shopify → Klaviyo Onsite tracking settings with app embed toggle, Track ‘Viewed Product’ option, and Track behavioral events checkbox.
Source: Klaviyo

2. Identify the user

Send at least one profile identifier with every event: email, phone_number, id, or external_id.


profile identifier with every event.png  Profile object form displaying identifiers and attributes: email, phone_number, external_id, anonymous_id, _kx, names, organisation, locale, and title.
Source: Klaviyo 

3. Name the metric clearly

Use action-first names you will recognise in segments and flow triggers (for example, Completed Quiz).

4) Add properties you will use

Include only top-level, non-object properties you will segment on; stash extra detail in $extra.


Add properties you will use.png  Klaviyo event Properties object showing top-level fields: Brand, ProductID, ProductName, Value, and SKU with an Add Field button.
Source: Klaviyo 

5. Send the event

Server: Create Event or Bulk Create Events. Browser: Bulk Create Client Events with your public API key only. Never expose a private key client-side.


Send the Event.png  Example JSON for a client event: public token, event “Ordered Product”, customer_properties with $email, and properties with item_name and $value.
Source: Klaviyo

6. Test in Klaviyo

Open Analytics → Metrics → Activity feed to confirm events and properties.


Go to Analytics then Metrics.png  Added to Cart metric chart view with date range, filters, and daily trend line plus tabs for Activity feed and cohorts.check the Activity feed.png  Klaviyo Metrics → Activity feed filtered to Added to Cart listing profiles, timestamps, and action menus.
Source: Klaviyo 

7. Trigger and monitor flows

Create a metric-triggered flow and add trigger filters as needed.


Create a metric-triggered flow.png  Flow Trigger screen highlighting the Metric option for entering a flow when a specific action occurs.
Source: Klaviyo 
Enable metric anomaly monitoring.png  Flow trigger panel showing a Potential trigger issue alert and event volume chart for anomaly monitoring.
Source: Klaviyo 

QA tips

  • Auditing usage: list automations that rely on a metric with Get Flows Triggered by Metric.

Strategic DTC Use Cases for Event Tracking

Turn signals into revenue with targeted flows and segments:

  • Back in stock

Use the Subscribed to Back in Stock metric to queue shoppers, then send email or SMS when inventory returns. Pull product properties into the message for relevance. See Back in stock flow and how these flows work. 

  • Quiz completed (custom)

Fire a Completed Quiz custom event with a top-level property such as quiz_result = hydration, then branch your onboarding content and bundles by result. Send via Create Event

  • Loyalty redeemed (integration/custom)

Trigger VIP early access or exclusives when points are redeemed. Connect your programme and sync data to Klaviyo, then use those events or profile fields in flows. Start with Smile.io x Klaviyo or Yotpo Loyalty & Referrals integration guides.

  • Wishlist added (custom)

Send a Wishlist Added event, then follow up with a back-in-stock or a price-based reminder when relevant. Implement with Create Event.

  • Viewed collection (Shopify)

Enable onsite tracking, then toggle Track behavioral events to capture Viewed Collection and power category-specific recommendations and social proof.

  • Price sensitivity

Use the native Price Drop flow and set your threshold by amount or percent. Optionally add trigger or profile filters to refine who receives it. 

  • Subscriptions

Pair Recharge → Klaviyo subscription metrics to drive skip, pause, renewal and churn-save sequences. Recharge

Testing & Debugging Events 

Validate your tracking before you launch automations. Use Klaviyo’s built-in views to check payloads, identifiers, and timing, then preview messages that depend on those events.

Your testing toolkit

  • Activity feed: Go to Analytics → Metrics → Activity feed to confirm events are arriving, inspect properties, and see the linked profile and timestamp. This is the fastest way to spot mapping issues.

  • Preview & test and Inbox testing: From any template or flow message, open Preview & test, choose a profile or an event, and send yourself a test or run Inbox testing to confirm dynamic content resolves from event properties.

  • API spot checks: If you need to inspect raw records, query Get Events and Get Event Relationships to verify the metric and profile associations and the event timestamp. Klaviyo Developers

  • Client vs server sends: Browser code must call Bulk Create Client Events with a public key. Server code must use Create Event or Bulk Create Events with private or OAuth credentials.

Common issues and fixes


Common issues and fixes.png  Troubleshooting table mapping Issue → Likely cause → Exact fix → Where to verify for identifiers, duplicates, time, flow triggers, onsite events, and API key misuse.

Best Practices for Scalable Event Tracking 

Naming conventions

Use action-first metric names such as Completed Quiz or Redeemed Reward, with consistent casing and tense. Klaviyo creates a new metric when you use a new name, so clear labels keep segments and dashboards tidy. 

Property hygiene

Send only top-level, non-object properties you will segment or analyse, for example category, value, sku. Max 400 properties per event. For segmentation, values of 0, null and empty strings are ignored. Put extra, non-segmentable detail in $extra

Deduplication and IDs

Include a stable unique_id (use UUIDv4) and the correct time field, especially for backfills.

Governance

Maintain a shared metric catalogue with owner, purpose and schema. If your schema changes, create a new metric name, for example Completed Quiz v2, so existing flows and reports remain valid. 

Monitoring

Enable metric anomaly monitoring for checkout, purchase and renewal metrics so unusual drops trigger alerts before flows underperform. 

Reporting & Lifecycle Segmentation from Event Data 

Reporting

Start in Analytics → Metrics to review a metric’s chart, then open the Activity feed for raw events, properties and linked profiles. In campaign and flow reports, choose a Conversion metric and confirm message attribution settings so revenue is counted consistently.

Lifecycle automation

Build metric-triggered flows and refine with trigger filters. Examples:

  • Win-back from inactivity: has not done Placed Order in 90 days.

  • Churn prevention: fewer site or message events in a period.

  • Replenishment: delay from Placed Order by expected usage interval; branch by product or quantity.

Segmentation

Start with frequency + recency logic, then add property filters for precision: “What someone has done → X is at least Y in the last Z days” with filters like category, price band or quiz_result.

Measuring impact

Compare performance by segment or cohort before and after launch, keep the same conversion metric across reports, and align attribution windows so ROI rolls up cleanly.

FAQs

1. Can I create events without an existing profile?

  • Yes — Create Event can create or update a profile when you include at least one identifier (email/phone/id). 

2. What’s the difference between “metric” and “event”?

  • A metric is the event type (label); an event is a single occurrence of that type associated to a profile + timestamp. 

3. How do I tie revenue back to an event-driven programme?

  • Choose a Conversion metric in campaign or flow analytics and confirm message attribution windows.

4. How do I see if a metric is still firing?

  • Open Analytics → Metrics → Activity feed for that metric; use anomaly monitoring for alerts on unusual drops. 

5. Can I build frequency and recency segments from events?

  • Yes. Use “What someone has done” conditions, then add property filters for precision.

Conclusion

Good event tracking makes your email and SMS smarter. When Klaviyo records the right actions, you can target people at the right time, with the right message. Use clear names, send only useful properties, and add a unique_id to every event. Test in the Activity feed before you launch. 

Then build segments and flows that match what customers actually do. Keep watching the data and improve each month. You will see cleaner reports, stronger messages, and steadier revenue.

Key takeaways

  • Identify every event: Include a profile identifier and a unique_id to keep data clean.

  • Send lean properties: Use top-level fields you will segment on and store extras in $extra.

  • Use the right endpoints: Server uses Create or Bulk Create Events, client uses Bulk Create Client Events.

  • Test before launch: Validate payloads in Analytics → Metrics → Activity feed to catch mapping issues.

  • Segment with intent: Build frequency plus recency rules, then add property filters for precision.

  • Measure correctly: Set a Conversion metric and confirm message attribution windows for reliable ROI.

Worried your Klaviyo events aren’t reliable enough to base decisions on?

We’ll validate your setup, eliminate errors, and help you create data-backed campaigns with confidence. Click here to schedule your free audit and take control of your event data.




Set up Klaviyo event tracking in 7 steps. Capture the right actions, segment smarter, and trigger revenue-driving flows with tested, documented best practices.

Why Klaviyo Event Tracking Matters

Missing triggers, blunt segments, fuzzy ROI? The fix is clean, consistent event tracking. In Klaviyo, events record real customer actions as a metric with properties on a profile, which you then use for precise segmentation and flow triggers. 

What This Guide Covers

  • What an event is in Klaviyo, and how metrics, properties and profiles work together.

  • Standard vs custom events and when to use each.

  • 7-step setup (identify, name, enrich, send, test).

  • Testing & debugging with the Metrics Activity feed.

  • Scaling best practices for naming, hygiene, deduping and monitoring.

Pro Tip: Include a profile identifier and a unique_id on every event. Test in Analytics → Metrics → Activity feed before enabling flows.

What Is Klaviyo Event Tracking and Why It Matters

In Klaviyo, an event is a customer action you record and use to power segmentation, personalisation, and automation. Each event belongs to a specific metric, includes useful properties, and links to the right customer profile.

Core components:

  • Event

A single action taken by a profile. Every event has exactly one metric (its type) and a timestamp. In the payload, the event links to its metric and profile in the relationships object. 

  • Metric (event type)

The named type of the action you track, for example, Checkout Started or Completed Quiz. When you create an event and provide a metric name, Klaviyo matches an existing metric or creates a new one with a metric_id.

  • Properties

 JSON properties carry context (e.g., sku, category, coupon, value). Only top-level, non-object properties are segmentable — put anything else in $extra. Keep payloads lean (max 400 properties per event). For segmentation, 0, null, and empty strings are ignored.

  • Time

The event timestamp. Klaviyo will default to creation time, but you should send a time value when backfilling historical actions to keep chronology correct. 

  • Value

An optional numeric amount associated with the event, for example, a price. If the metric historically included a value, events missing it will default to 0. 

  • Unique ID

A recommended unique identifier to prevent accidental de-duplication. If you omit unique_id, events with the same metric and profile sent simultaneously can be dropped as duplicates. Use UUIDv4 to ensure that each event is uniquely identified and processed. 

  • Profile

The customer the event belongs to. When creating an event, include at least one profile identifierid, email, phone_number, or external_id — along with the metric name. See Create Event.

Note: Events created with @example.com or @test.com emails are accepted by the API but silently dropped during processing, so they won’t appear in Klaviyo.

Why it matters

This structure lets you trigger flows the moment someone acts, filter audiences by precise behaviour, and attribute revenue back to specific actions with confidence. Clean, well-named metrics and lean properties are the foundation of reliable reporting and higher conversion.

Standard vs Custom Events 

Standard e-commerce + on-site events come via your integration (e.g., Shopify). Anything brand-specific (loyalty, quizzes, wishlists) = custom event via the API.

Standard e-commerce events (Shopify)

What you get out of the box:

  • Checkout Started

  • Placed Order

  • Ordered Product

  • Fulfilled Order

  • (plus Cancelled Order, Refunded Order, Fulfilled Partial Order if you need them).

Why it matters: Powers core flows (abandon, confirmation, post-purchase) and reporting with minimal setup.

On-site behavioural events (Shopify)

  • Enabled by default (with app embed/onsite tracking): Viewed Product, Active on Site.

  • Toggle on in Shopify → Klaviyo integration (“Track behavioral events”): Added to Cart, Viewed Collection, Submitted Search.

Tip: If a browse event does not appear, follow the Section 5 checklist for on-site tracking and identification tests.

Why it matters: Drives browse/cart abandonment, search follow-ups, and category-based recommendations.

Custom events (API)

Use for brand moments: 

  • Loyalty points redeemed

  • Wishlist added 

  • Quiz completed (store result) 

  • Back-in-stock clicked 

  • Pre-order reserved, etc.

How to send:

  • Server: Create Event (or Bulk Create Events).

  • Browser (public key): Bulk Create Client Events — never use a private API key client-side.

Payload must-haves: Clear metric name, top-level properties you’ll segment on (e.g., category, value, quiz_result), and one identifier (email, phone_number, id, or external_id). 


comparing Standard vs Custom Events.png  Comparison table of Standard (Shopify/Klaviyo.js) vs Custom (API) events with example metrics and properties.

When to use what

  • Use standard if it cleanly represents the moment (best-practice flows + reports already expect it).

  • Go custom when you need a distinct moment or richer context to target/branch (keep properties lean and actionable).

7-Step Setup Guide for Klaviyo Event Tracking

1. Install tracking

Connect your platform (for example, Shopify). Enable the app embed so Viewed Product and Active on Site fire, then switch on Track behavioral events for Added to Cart, Viewed Collection, Submitted Search


check Track behavioral events.png  Shopify → Klaviyo Onsite tracking settings with app embed toggle, Track ‘Viewed Product’ option, and Track behavioral events checkbox.
Source: Klaviyo

2. Identify the user

Send at least one profile identifier with every event: email, phone_number, id, or external_id.


profile identifier with every event.png  Profile object form displaying identifiers and attributes: email, phone_number, external_id, anonymous_id, _kx, names, organisation, locale, and title.
Source: Klaviyo 

3. Name the metric clearly

Use action-first names you will recognise in segments and flow triggers (for example, Completed Quiz).

4) Add properties you will use

Include only top-level, non-object properties you will segment on; stash extra detail in $extra.


Add properties you will use.png  Klaviyo event Properties object showing top-level fields: Brand, ProductID, ProductName, Value, and SKU with an Add Field button.
Source: Klaviyo 

5. Send the event

Server: Create Event or Bulk Create Events. Browser: Bulk Create Client Events with your public API key only. Never expose a private key client-side.


Send the Event.png  Example JSON for a client event: public token, event “Ordered Product”, customer_properties with $email, and properties with item_name and $value.
Source: Klaviyo

6. Test in Klaviyo

Open Analytics → Metrics → Activity feed to confirm events and properties.


Go to Analytics then Metrics.png  Added to Cart metric chart view with date range, filters, and daily trend line plus tabs for Activity feed and cohorts.check the Activity feed.png  Klaviyo Metrics → Activity feed filtered to Added to Cart listing profiles, timestamps, and action menus.
Source: Klaviyo 

7. Trigger and monitor flows

Create a metric-triggered flow and add trigger filters as needed.


Create a metric-triggered flow.png  Flow Trigger screen highlighting the Metric option for entering a flow when a specific action occurs.
Source: Klaviyo 
Enable metric anomaly monitoring.png  Flow trigger panel showing a Potential trigger issue alert and event volume chart for anomaly monitoring.
Source: Klaviyo 

QA tips

  • Auditing usage: list automations that rely on a metric with Get Flows Triggered by Metric.

Strategic DTC Use Cases for Event Tracking

Turn signals into revenue with targeted flows and segments:

  • Back in stock

Use the Subscribed to Back in Stock metric to queue shoppers, then send email or SMS when inventory returns. Pull product properties into the message for relevance. See Back in stock flow and how these flows work. 

  • Quiz completed (custom)

Fire a Completed Quiz custom event with a top-level property such as quiz_result = hydration, then branch your onboarding content and bundles by result. Send via Create Event

  • Loyalty redeemed (integration/custom)

Trigger VIP early access or exclusives when points are redeemed. Connect your programme and sync data to Klaviyo, then use those events or profile fields in flows. Start with Smile.io x Klaviyo or Yotpo Loyalty & Referrals integration guides.

  • Wishlist added (custom)

Send a Wishlist Added event, then follow up with a back-in-stock or a price-based reminder when relevant. Implement with Create Event.

  • Viewed collection (Shopify)

Enable onsite tracking, then toggle Track behavioral events to capture Viewed Collection and power category-specific recommendations and social proof.

  • Price sensitivity

Use the native Price Drop flow and set your threshold by amount or percent. Optionally add trigger or profile filters to refine who receives it. 

  • Subscriptions

Pair Recharge → Klaviyo subscription metrics to drive skip, pause, renewal and churn-save sequences. Recharge

Testing & Debugging Events 

Validate your tracking before you launch automations. Use Klaviyo’s built-in views to check payloads, identifiers, and timing, then preview messages that depend on those events.

Your testing toolkit

  • Activity feed: Go to Analytics → Metrics → Activity feed to confirm events are arriving, inspect properties, and see the linked profile and timestamp. This is the fastest way to spot mapping issues.

  • Preview & test and Inbox testing: From any template or flow message, open Preview & test, choose a profile or an event, and send yourself a test or run Inbox testing to confirm dynamic content resolves from event properties.

  • API spot checks: If you need to inspect raw records, query Get Events and Get Event Relationships to verify the metric and profile associations and the event timestamp. Klaviyo Developers

  • Client vs server sends: Browser code must call Bulk Create Client Events with a public key. Server code must use Create Event or Bulk Create Events with private or OAuth credentials.

Common issues and fixes


Common issues and fixes.png  Troubleshooting table mapping Issue → Likely cause → Exact fix → Where to verify for identifiers, duplicates, time, flow triggers, onsite events, and API key misuse.

Best Practices for Scalable Event Tracking 

Naming conventions

Use action-first metric names such as Completed Quiz or Redeemed Reward, with consistent casing and tense. Klaviyo creates a new metric when you use a new name, so clear labels keep segments and dashboards tidy. 

Property hygiene

Send only top-level, non-object properties you will segment or analyse, for example category, value, sku. Max 400 properties per event. For segmentation, values of 0, null and empty strings are ignored. Put extra, non-segmentable detail in $extra

Deduplication and IDs

Include a stable unique_id (use UUIDv4) and the correct time field, especially for backfills.

Governance

Maintain a shared metric catalogue with owner, purpose and schema. If your schema changes, create a new metric name, for example Completed Quiz v2, so existing flows and reports remain valid. 

Monitoring

Enable metric anomaly monitoring for checkout, purchase and renewal metrics so unusual drops trigger alerts before flows underperform. 

Reporting & Lifecycle Segmentation from Event Data 

Reporting

Start in Analytics → Metrics to review a metric’s chart, then open the Activity feed for raw events, properties and linked profiles. In campaign and flow reports, choose a Conversion metric and confirm message attribution settings so revenue is counted consistently.

Lifecycle automation

Build metric-triggered flows and refine with trigger filters. Examples:

  • Win-back from inactivity: has not done Placed Order in 90 days.

  • Churn prevention: fewer site or message events in a period.

  • Replenishment: delay from Placed Order by expected usage interval; branch by product or quantity.

Segmentation

Start with frequency + recency logic, then add property filters for precision: “What someone has done → X is at least Y in the last Z days” with filters like category, price band or quiz_result.

Measuring impact

Compare performance by segment or cohort before and after launch, keep the same conversion metric across reports, and align attribution windows so ROI rolls up cleanly.

FAQs

1. Can I create events without an existing profile?

  • Yes — Create Event can create or update a profile when you include at least one identifier (email/phone/id). 

2. What’s the difference between “metric” and “event”?

  • A metric is the event type (label); an event is a single occurrence of that type associated to a profile + timestamp. 

3. How do I tie revenue back to an event-driven programme?

  • Choose a Conversion metric in campaign or flow analytics and confirm message attribution windows.

4. How do I see if a metric is still firing?

  • Open Analytics → Metrics → Activity feed for that metric; use anomaly monitoring for alerts on unusual drops. 

5. Can I build frequency and recency segments from events?

  • Yes. Use “What someone has done” conditions, then add property filters for precision.

Conclusion

Good event tracking makes your email and SMS smarter. When Klaviyo records the right actions, you can target people at the right time, with the right message. Use clear names, send only useful properties, and add a unique_id to every event. Test in the Activity feed before you launch. 

Then build segments and flows that match what customers actually do. Keep watching the data and improve each month. You will see cleaner reports, stronger messages, and steadier revenue.

Key takeaways

  • Identify every event: Include a profile identifier and a unique_id to keep data clean.

  • Send lean properties: Use top-level fields you will segment on and store extras in $extra.

  • Use the right endpoints: Server uses Create or Bulk Create Events, client uses Bulk Create Client Events.

  • Test before launch: Validate payloads in Analytics → Metrics → Activity feed to catch mapping issues.

  • Segment with intent: Build frequency plus recency rules, then add property filters for precision.

  • Measure correctly: Set a Conversion metric and confirm message attribution windows for reliable ROI.

Worried your Klaviyo events aren’t reliable enough to base decisions on?

We’ll validate your setup, eliminate errors, and help you create data-backed campaigns with confidence. Click here to schedule your free audit and take control of your event data.




Join our newsletter list

Sign up to get the most recent blog articles in your email every week.

Share this post to the social medias