Tracking in Customer.io

Customer.io partner logo

Table of Contents

Summarize this documentation using AI

This banner was added using fs-inject

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Overview

Tracking in Customer.io is the foundation for turning shopper behavior into revenue, because your emails and SMS are only as good as the events and attributes feeding them. When tracking is implemented well, you can trigger cart recovery, personalize product discovery, and time post-purchase cross-sells based on what a customer actually did, not what you hope they did.

Anonymous messaging in Customer.io often gets the spotlight, but tracking is what makes those early sessions useful by capturing browse and checkout intent before a shopper identifies themselves. Propel helps D2C teams get the event taxonomy, identity strategy, and campaign triggers right so journeys drive incremental sales, not just more sends. If you want help pressure-testing your tracking plan against your revenue goals, book a strategy call.

Implementation typically starts by connecting your site and data sources to Customer.io, then standardizing the events you will rely on for segmentation and automation.

How It Works

Tracking in Customer.io works by sending two kinds of data, people updates (attributes) and events (actions), then using that data to power segments, campaign triggers, and message personalization.

Most D2C brands end up with three layers of tracking:

  • Identity signals (email, phone, customer_id) that let you tie sessions and orders to a person.
  • Behavior events like product viewed, collection viewed, add to cart, checkout started, and order completed.
  • Context like product IDs, variant IDs, price, quantity, discount code, cart value, and landing page parameters (UTMs).

Once events and attributes are flowing, you build segments such as “Viewed product in last 24 hours but no checkout started” or “Purchased 2+ times, last purchase 45 to 90 days ago,” then trigger journeys off those behaviors. For teams running multi-source stacks (Shopify, paid media, quiz tools, subscriptions), Customer.io becomes most valuable when you standardize event naming and make sure identity is consistent across sources.

Step-by-Step Setup

Tracking in Customer.io setup is easiest when you start from the revenue outcomes you need (cart recovery, repeat purchase, reactivation), then work backwards into the minimum viable event set.

  1. Define your event taxonomy (names, required properties, and which channels will use them). Keep it tight: 10 to 20 high-signal events beats 80 low-signal events.
  2. Choose your identity keys (email, phone, and a stable customer_id). Decide when a session becomes “known” (email capture, checkout, SMS opt-in).
  3. Implement people updates for durable attributes like first_order_date, last_order_date, total_spend, orders_count, sms_consent, email_consent, and preferred_category.
  4. Implement core commerce events including product_viewed, add_to_cart, checkout_started, order_completed, and order_refunded. Include product and cart metadata as properties.
  5. Capture acquisition context (UTM source, medium, campaign, landing page) at first session and persist it to the person when they identify.
  6. Validate data quality by checking event volume, property completeness, and identity resolution (for example, does checkout_started reliably connect to the same person who later triggers order_completed).
  7. Create “source of truth” segments like “Engaged browsers last 7 days,” “High intent checkout starters,” and “VIP customers,” then use them as building blocks across journeys.
  8. Launch one journey per outcome (cart recovery first, then post-purchase, then reactivation). Use holdouts to confirm incremental lift.

When Should You Use This Feature

Tracking in Customer.io is a priority when your retention program depends on behavior timing and product context, not just batch newsletters.

  • Abandoned cart recovery that actually converts: Trigger within minutes of checkout_started, then branch by cart value, discount usage, and whether the shopper returned to site.
  • Product discovery journeys: If a shopper views 3+ products in a category but never adds to cart, trigger a browse abandonment flow with the exact products and a “best sellers in this category” fallback.
  • Post-purchase upsell and cross-sell: Use order_completed properties (items, category, subscription status) to recommend complements at the right time window.
  • Reactivation and winback: Use last_order_date, last_seen, and category affinity to tailor the offer and creative. You can avoid blanket discounts by targeting lapsed high-LTV segments differently than discount-driven buyers.
  • Customer lifetime value programs: Track orders_count and total_spend so VIP perks, early access, and replenishment reminders are triggered by thresholds, not calendar dates.

Operational Considerations

Tracking in Customer.io gets messy when multiple tools send overlapping events, so operational discipline matters as much as the technical integration.

  • Event naming governance: Decide on a naming convention (snake_case is common) and publish a shared dictionary. If you later rename events, plan for campaign maintenance.
  • Property consistency: Standardize product_id, variant_id, sku, price, and quantity across all commerce events. Inconsistent properties break personalization and reporting.
  • Deduplication strategy: Order events are the biggest risk. Ensure order_completed is sent once per order_id, even if your checkout confirmation page reloads.
  • Anonymous to known stitching: In D2C funnels, most high-intent behavior happens before identification. Make sure you merge anonymous activity when a shopper provides email or phone, otherwise your browse and cart context disappears.
  • Segmentation performance: Overly complex segments slow teams down. Build reusable “base segments” (engaged, high intent, lapsed) and layer conditions in journeys.
  • Channel orchestration: Decide how tracking triggers email versus SMS (for example, SMS for checkout_started within 30 minutes, email for broader browse intent). Use frequency controls so you do not stack messages across flows.

Implementation Checklist

Tracking in Customer.io is ready for production when the basics are reliable, not when every edge case is covered.

  • Event taxonomy documented with required properties per event
  • Identity keys defined, including how you handle guest checkout and SMS-only customers
  • People attributes for commerce lifecycle (first_order_date, last_order_date, orders_count, total_spend) updating correctly
  • Core events firing with stable IDs (product_id, cart_id, order_id) and no obvious duplicates
  • UTM and landing page context captured and persisted to the customer profile
  • At least 3 reusable segments built (engaged browsers, checkout starters, recent purchasers)
  • One triggered journey live (cart recovery) with a holdout group for incremental measurement
  • Basic QA process (event spot checks, message previews, and conversion tracking)

Expert Implementation Tips

Tracking in Customer.io becomes a revenue lever when you treat it like a merchandising system, not a logging system.

  • Start with “high intent” events: In retention programs we’ve implemented for D2C brands, the fastest lift comes from checkout_started and add_to_cart done well, with strong metadata and fast triggers.
  • Use product arrays thoughtfully: If you pass line_items as an array, also include a few top-level properties like cart_value and primary_category so segmentation does not require heavy JSON logic.
  • Build a fallback ladder for personalization: If last_viewed_product is missing, fall back to last_viewed_category, then to best sellers, then to new arrivals. This keeps flows converting even when data is imperfect.
  • Track “offer exposure”: Add an event when a discount is shown or applied. It helps you avoid training customers to wait for promos and lets you target incentives only when needed.
  • Instrument unsubscribe and suppression logic: Track channel consent changes as attributes and events so your flows can branch cleanly (for example, switch to email if SMS consent is missing).

Common Mistakes to Avoid

Tracking in Customer.io fails most often due to preventable execution gaps that create noisy segments and broken triggers.

  • Tracking everything, using nothing: Teams ship dozens of events but never standardize properties, so personalization stays generic.
  • No stable IDs: Without order_id and cart_id, you cannot dedupe properly and customers get repeated cart messages.
  • Not merging anonymous activity: Your browse abandonment flow ends up empty because the shopper identified at checkout, but their earlier product views stayed anonymous.
  • Ignoring refunds and cancellations: Post-purchase journeys can become tone-deaf if you do not track order_refunded or order_cancelled and exit customers appropriately.
  • Over-segmenting too early: Building hyper-specific segments before data is clean leads to constant debugging and low confidence in results.

Summary

Tracking in Customer.io is worth prioritizing when you want triggered journeys that react to real shopping intent, not broad send schedules. Get identity, deduplication, and core commerce events right first, then scale into richer personalization and LTV programs inside Customer.io.

Implement with Propel

Propel can help you design the tracking plan, validate event quality, and launch revenue-focused journeys in Customer.io without weeks of back-and-forth between marketing and engineering. If you want an implementation plan tailored to your store and tech stack, book a strategy call.

Contact us

Get in touch

Our friendly team is always here to chat.

Here’s what we’ll dig into:

Where your lifecycle flows are underperforming and the revenue you’re missing

How AI-driven personalisation can move the needle on retention and LTV

Quick wins your team can action this quarter

Whether Propel AI is the right fit for your brand, stage, and stack