Table of Contents
- Why Customer.io Works Differently for EdTech
- Events to Track First
- Core Learning Events
- Commercial and Support Events
- Segments That Actually Drive Decisions
- Activation Segments
- Engagement and Risk Segments
- Commercial Segments
- Automation Workflows to Build
- Onboarding: The First 14 Days
- Streak and Habit Reinforcement
- Trial Conversion Workflow
- Involuntary Churn Recovery
- EdTech-Specific Challenges in Customer.io
- Frequently Asked Questions
- How many events should I send to Customer.io when starting out?
- Can Customer.io handle push notifications for mobile EdTech apps?
- How should I model free vs. paid users in Customer.io?
- What's the right way to reduce unsubscribes from learners who go inactive?
Why Customer.io Works Differently for EdTech
Most marketing automation guides treat Customer.io as a generic email tool. For EdTech, that framing leaves serious money on the table. Your users aren't buying a product once — they're progressing through a learning journey with distinct milestones, dropout risks, and moments of peak motivation. Customer.io's event-based architecture maps directly to that reality, but only if you instrument it correctly from the start.
This guide covers the exact setup — events, segments, and automation workflows — that lifecycle marketers at EdTech companies use to drive activation, reduce churn, and increase course completion rates.
---
Events to Track First
Your Customer.io setup is only as good as your event data. EdTech has a specific set of behavioral signals that predict retention and revenue. Start with these before building any campaigns.
Core Learning Events
- `lesson_completed` — Pass properties like `course_id`, `lesson_id`, `lesson_number`, `completion_time_seconds`, and `module_name`. This is your highest-signal engagement event.
- `course_started` — Triggered the first time a user begins any lesson in a new course. Different from enrollment.
- `course_enrolled` — Records intent, not behavior. Track both, because the gap between enrollment and start is a primary churn window.
- `quiz_attempted` and `quiz_passed` — With `score`, `attempts`, and `passing_threshold` as properties.
- `streak_achieved` — If your product has streaks (daily, weekly), pass `streak_length` and `streak_type`.
- `certificate_earned` — Your highest-value completion event. Use this as a conversion anchor in revenue reporting.
Commercial and Support Events
- `trial_started` — With `plan_id`, `trial_length_days`, and `acquisition_source`.
- `subscription_upgraded` — Include `previous_plan`, `new_plan`, and `upgrade_trigger` (e.g., "paywall_hit", "email_cta").
- `payment_failed` — Critical for involuntary churn workflows.
- `support_ticket_submitted` — With `category` and `course_id` where applicable.
A common mistake is tracking `page_viewed` events for every screen and drowning Customer.io in noise. Track actions that signal intent and progress, not passive browsing.
---
Segments That Actually Drive Decisions
Customer.io segments should reflect the stages of your learning lifecycle, not just demographic filters. Build these segments dynamically using event conditions and user attributes.
Activation Segments
- New Enrolled, Not Started: Users who triggered `course_enrolled` in the last 7 days but have zero `lesson_completed` events. This is your highest-leverage group for onboarding campaigns.
- Early Activated: Completed at least 3 lessons within the first 7 days of enrollment. These users have 4x higher 30-day retention in most EdTech products. Identify them early and invest in deepening the habit.
Engagement and Risk Segments
- Active Learner: At least one `lesson_completed` in the last 14 days.
- At-Risk Learner: Previously active (had `lesson_completed` events in days 8–21), but nothing in the last 14 days. This segment is your re-engagement priority.
- Dormant: No `lesson_completed` in 30+ days. Different message, different channel strategy than "At-Risk."
- Streak at Risk: Has an active streak but hasn't completed a lesson today. If your product supports streaks, this segment gets a same-day triggered message.
Commercial Segments
- Trial Day 7: Users in trial with fewer than 5 lessons completed. These users need proof-of-value content before the paywall hits, not a discount.
- Trial Day 7, High Engagement: Same window, 10+ lessons completed. These users are ready for a direct upgrade prompt — they've already committed behaviorally.
- Failed Payment: Triggered `payment_failed` in the last 3 days. Get them into a dunning sequence within 24 hours.
---
Automation Workflows to Build
Getting the most out of Customer.io?
I'll audit your Customer.io setup and show you where revenue is hiding.
Onboarding: The First 14 Days
The window between signup and first lesson completion determines whether you have a user or a statistic. Build a branching onboarding sequence:
- Day 0 — Welcome email. Include a single CTA: start the first lesson. No feature tour, no social proof parade.
- Day 1 (if no `lesson_completed`) — Reminder with a "pick up where you left off" link generated dynamically using Liquid.
- Day 3 (if still no `lesson_completed`) — Shift the message. Ask what's getting in the way. A two-option survey ("Too busy" / "Not sure where to start") triggers different follow-up branches.
- Day 3 (if `lesson_completed` happened) — Suppress the friction messaging. Send a progress acknowledgment and introduce the next milestone.
Use Customer.io's goal-based campaign exits to pull users out of onboarding the moment they complete their first lesson. Without this, you will continue sending "get started" emails to users who already started.
Streak and Habit Reinforcement
If your product has a daily or weekly learning cadence, build a triggered campaign around `streak_at_risk` — a custom event you fire when a user hasn't logged activity by a set time on a given day. Send a push notification or SMS (Customer.io supports both), not email. Email open rates on same-day habit reminders are low. A 6pm push with "Your 12-day streak ends tonight" outperforms a morning email by a significant margin in most A/B tests across this category.
Trial Conversion Workflow
Segment your trial users by engagement tier before sending a single conversion email. Sending the same upgrade message to a user who completed 1 lesson and a user who completed 20 lessons is a waste of both segments.
- Low engagement (fewer than 5 lessons): Lead with value demonstration. Send a "here's what other learners achieved with this course" case study.
- High engagement (10+ lessons): Lead with continuity. "You're 40% through this course — don't lose your progress" converts better than a feature comparison.
Involuntary Churn Recovery
Set up a dunning sequence triggered immediately on `payment_failed`. Three-touch sequence over 7 days: in-app message on day 1, email on day 3, final email with a one-click payment update link on day 7. Companies that implement this recover 15–25% of failed payments that would otherwise churn.
---
EdTech-Specific Challenges in Customer.io
Timezone complexity: If you have learners globally, send learning-related messages based on the user's local timezone. Customer.io supports per-user timezone delivery. Use it. A streak reminder that arrives at 3am is ignored and damages deliverability.
Course catalog scale: If your platform has hundreds of courses, use Customer.io's data objects (formerly "objects and relationships") to model courses as entities. This lets you send personalized messages referencing the specific course a user is engaged with, rather than generic product-level messaging.
Learner identity across devices: EdTech users frequently switch between mobile and desktop. Make sure you're calling `identify` with the same `user_id` on both platforms so behavioral history consolidates into a single profile.
---
Frequently Asked Questions
How many events should I send to Customer.io when starting out?
Start with 8–12 well-defined events rather than tracking everything. Prioritize events tied to your key activation and retention metrics: enrollment, first lesson completion, lesson completion, subscription events, and payment events. You can always add more. A bloated event schema from day one makes segmentation unreliable and increases your Customer.io data costs.
Can Customer.io handle push notifications for mobile EdTech apps?
Yes. Customer.io supports iOS and Android push natively through their mobile SDKs. You'll integrate via their Swift or Kotlin SDK and pass device tokens through their API. For habit-reinforcement use cases like streak reminders, push outperforms email meaningfully — build those sequences in Customer.io's broadcast or triggered campaign builder with push as the primary channel.
How should I model free vs. paid users in Customer.io?
Use a `plan` attribute on each user profile (`free`, `trial`, `paid`, `churned`) and update it in real time via the API or a data warehouse sync. Build your segments against this attribute. Avoid trying to infer plan status from behavioral events — it gets unreliable fast. A clean `plan` attribute keeps your commercial segments accurate and your sales-touch campaigns hitting the right audience.
What's the right way to reduce unsubscribes from learners who go inactive?
Reduce message frequency before you lose the unsubscribe. When a user enters your "At-Risk" segment (no activity in 14 days), drop them to a maximum of one message per week. Use Customer.io's suppression lists and frequency capping to enforce this automatically. Re-engagement campaigns sent at high volume to dormant users accelerate unsubscribes and hurt your sender reputation — the opposite of what you need.