Skip to main content

Waitlist signup

Triggered when a user clicks a coming_soon agent's "Notify me" CTA.

Idempotency

The unique index on (agentId, email) plus ON CONFLICT DO NOTHING makes duplicate submits safe. A second submit still returns 200, and the interaction row is not written a second time (the service checks).

Anonymous waitlist

Signed-out submission is allowed. The handler still writes both rows; userId is NULL, userEmail is the form value.

Status query

GET /agents/:agentId/waitlist/me lets the UI decide whether to show the form or the success state on next visit. For unauth users it returns { notified: false } without erroring.

Email fan-out

Best-effort. The InteractionsService.record() call fires emails synchronously (or with a short-lived queue depending on environment) and writes notifyError if any fail. There's no retry.

If you need reliable notification:

  • Add a real queue (BullMQ, SQS) and have InteractionsService enqueue rather than send.
  • Or rely on a SaaS like Resend / Postmark with their own retry semantics.

When to flip to active

When the agent is ready, run:

SELECT email FROM agent_waitlist WHERE agent_id = '<id>' ORDER BY created_at;

…and email the list from your preferred tool. There's no built-in "notify waitlist now" button yet.