Guides / SaaS

Track User Activation Milestones in Your SaaS

4 min read·SaaS

What Is Activation?

Activation is the moment a user first gets value from your product. For a project management tool it might be "invited a teammate." For an analytics tool it might be "viewed their first chart." For a payment tool it might be "received their first payment."

Logging these milestones turns a vague metric into a real-time signal.

Step 1: Define Your Activation Milestones

ts
// lib/activation.ts
import { logit } from "@/lib/logit";

export async function trackActivation(
  userId: string,
  email: string,
  milestone: "connected_integration" | "invited_teammate" | "first_export" | "first_payment_received"
) {
  await logit.now("activation", {
    event: `Activation: ${milestone}`,
    description: `${email} reached "${milestone}"`,
    icon: "✅",
    notify: false,
    tags: { milestone, userId },
    metadata: { userId, email, milestone, achievedAt: new Date().toISOString() },
  });
}

Step 2: Call It at the Right Moments

ts
// When user connects their first integration
await db.integration.create({ ... });
await trackActivation(user.id, user.email, "connected_integration");

// When user invites a teammate
await sendTeamInvite(email);
await trackActivation(user.id, user.email, "invited_teammate");

// When user first exports data
await generateExport(userId, format);
await trackActivation(user.id, user.email, "first_export");

Step 3: Add Smart Action for Activation Drop

FieldValue
NameActivation stalled
Channelactivation
Event nameActivation: connected_integration
Threshold1 (inverted — fires only if NOT reached)
Window24 hours
Cooldown24 hours
ActionPush notification

Use this alongside a daily check: if fewer than N users hit your key milestone today, investigate.

What You Get in the Dashboard

Filter by milestone tag to see a timeline of each activation event. You can see:

  • How long after signup users reach each milestone
  • Which milestones users skip (drop-off indicators)
  • Whether a product change improved or hurt activation

Tips

  • Pick 3–5 milestones maximum. Too many and the channel becomes noisy.
  • Use consistent event name prefixes like "Activation: " so they group nicely in the dashboard.
  • Log the same user ID in every event so you can trace a single user's full activation journey.

Try LogIt free

7-day trial. No credit card required.

Start free