Course & membership events

Standard lifecycle events for online courses and memberships — what to send, which properties matter, and how journeys use them.

If you sell courses or memberships, Leadara works best when your checkout and learning platform send a consistent set of events into your workspace. You do not need a product catalog in Leadara — pass course_id, course_slug, and amounts on each event instead.

Course lifecycle events in 3 minutesTutorial · 2–4 min · Not recorded yet

Script to read

Hey — quick one on edtech-style events in Leadara. Imagine you run an online course business: someone browses a course, starts checkout, buys, then starts lessons. Leadara only automates well when those steps show up as named events with a few properties.

From your server — not the browser alone for purchases — you send things like course_viewed, checkout_started, and purchase_completed. Each payload should include who it is (userId or email), which course (course_id or course_slug), and money fields when relevant (amount, currency).

Once events land, you build segments (“viewed course X in the last 7 days”) and journeys (“48 hours after course_viewed, send SMS”). I'll open Events in the dashboard in a second… there — you can confirm the stream is arriving before you turn on a journey.

Traits help too: store favorites like favorite_instrument, owned_course_ids, or wallet_credit so templates feel personal. That's the whole loop — send events, segment, journey. If you're on SMS, wire SMS Logs and Unsubscribes under Channels for compliance.

Canonical events

Send these from your backend where possible (especially purchases):

EventWhen to sendKey properties
signed_upAccount createdsource, locale
course_viewedCourse sales page viewedcourse_id, course_slug, instrument
checkout_startedCheckout openedcourse_id, amount, currency
purchase_completedPayment succeededcourse_id, amount, currency, order_id
lesson_startedLearner opens a lessoncourse_id, lesson_id
lesson_completedLesson finishedcourse_id, lesson_id
assessment_completedQuiz or exam submittedcourse_id, score
practice_submittedPractice assignment sentcourse_id
referral_completedReferral reward earnedreferral_code
credit_earnedWallet or store credit addedamount, currency

Example: purchase completed

{
  "event": "purchase_completed",
  "userId": "usr_abc123",
  "properties": {
    "course_id": "piano-101",
    "course_slug": "piano-101",
    "amount": 49.99,
    "currency": "USD",
    "order_id": "ord_9981"
  }
}

Set traits when you identify users so SMS and email stay relevant:

  • favorite_instrument — personalization in copy
  • owned_course_ids — suppress promos for courses they already own
  • last_course_viewed — quick segmentation
  • wallet_credit — offers that mention balance
  • locale — Persian vs English messaging

Journeys that fit course businesses

Use Create from template for starters:

  • Course interest recoverycourse_viewed → wait 48h → SMS
  • Post-purchase onboardingpurchase_completed → wait 2d → SMS
  • Learning progress nudgelesson_started → wait 7d → SMS
  • Win-back — inactive segment → wait 30d → SMS

Waits can run up to 90 days; longer delays are capped automatically.

SMS vs one-time passwords

Use your application for login OTPs. Use Leadara for lifecycle SMS (welcome, recovery, win-back) so logs and unsubscribes stay in one place under Channels.

Next steps

Open Journeys to activate a template, or Segments to define who should enter scheduled win-back flows.