API ReferenceEvent Referencemember.milestone.unlocked.v1

member.milestone.unlocked.v1

member.milestone.unlocked.v1 — emitted when a member reaches a protocol milestone (e.g. first 30 days on a protocol).

Constant

import { EVENT_NAMES } from "@platform/contracts";
 
EVENT_NAMES.MEMBER_MILESTONE_UNLOCKED_V1;

Publishers

No service currently publishes this event.

Subscribers

No service currently subscribes to this event.

Payload schema

z.object({
  user_id: z.string(),
  email: z.string().email(),
  brand_id: z.string(),
  protocol_name: z.string(),
  milestone_days: z.number().int().positive(),
  milestone_id: z.string(),
  recap: z.string(),
  next_step_url: z.string().url(),
}

Delivery semantics

  • At-least-once delivery. Consumers must dedupe by event ID.
  • Fanned out to both NATS (in-cluster) and EventBridge (durable). See Events concept.