Action guide

Prove a customer moved from plan X to plan Y, and when

POST/v1/events · subscription.upgraded

Emit a `subscription.upgraded` event every time a customer moves to a higher-tier plan. Keep the from/to plan slugs in metadata for cohort analysis.

When to emit

After the provider confirms the subscription update and your own DB is in sync.

Example payload
await recalled.events.create({
  action: "subscription.upgraded",
  actor: { id: user.id, email: user.email },
  organization: user.organizationId,
  metadata: {
    fromPlan: "value",
    toPlan: "value",
    mrrDelta: "value"
  },
});
Metadata to include

Keep metadata flat and consistent across your service so it plays well with search and CSV exports.

KeyPurpose
fromPlanPlan slug before the change
toPlanPlan slug after the change
mrrDeltaMonthly recurring revenue delta in smallest unit
Suggested retention

Keep forever, plan change history is priceless for churn and LTV analysis.

Related actions