v2

latestOpenAPI 3.1.0Commercial API license2026-08-01592492.6 KB
internal

Daily sweep: nudge paid orgs that signed up 24h+ ago and never made a call

Daily cron targeting paid orgs that have NEVER used their API key.

Audience (2026-07-10, real-data-driven — found via a live org/usage cross-reference that a paying customer sat unactivated for 2 weeks with no template able to reach them):

  • status='active' (skip canceled / past_due / payment_at_risk)
  • tier IN ('basic', 'physical', 'pro', 'realtime') — free-tier excluded, same reasoning as win-back's own audience gate (cooling-off is evaluation behavior, not a signal worth a nudge). Deliberately wider than win-back's own tier list (which omits 'realtime' — a pre-existing gap in that older cron, not fixed here; tracked in KNOWN_DEBT.md).
  • created_at at least 24h ago (matches dino.markets' proven activation-first-call cadence).
  • NO api_keys row for the org has a non-null last_used_at — i.e. every key they've ever held (including a rotated-away one) has never been used even once. A rotated key's OLD row keeps its original last_used_at (rotation never touches it), so this correctly reads "activated" for an org that used a key once then rotated.

Once-ever via FREQUENCY_CAPS (same _WELCOME_ONCE_EVER sentinel as welcome) — a daily re-scan while still unactivated is a cheap no-op once the first send lands. Structurally disjoint from win-back's audience: win-back requires a real last_used_at in the 30-90d band, which an org with zero usage can never have.

post/internal/cron/activation-first-call

Headers

x-internal-secretstring nullable

Response

Successful Response

object required