Skip to content

feat(#251): Add waitlist notification builder and signup endpoint#307

Merged
bllr777 merged 1 commit into
mainfrom
feature/251-waitlist-landing-page
May 21, 2026
Merged

feat(#251): Add waitlist notification builder and signup endpoint#307
bllr777 merged 1 commit into
mainfrom
feature/251-waitlist-landing-page

Conversation

@bllr777
Copy link
Copy Markdown
Collaborator

@bllr777 bllr777 commented May 21, 2026

Summary

Implements the API side of ADO work item #251 (pre-launch marketing motion) — waitlist signup endpoint with Brevo contact creation and confirmation email.

Changes

New endpoint: POST /api/email/waitlist-signup

  • Verifies Cloudflare Turnstile token (action: waitlist-signup)
  • Adds contact to Brevo list 5 (Waitlist) — list ID hardcoded server-side, not trusted from client
  • Fires confirmation email asynchronously (fire-and-forget with CancellationToken.None)
  • Returns 200/400/500 appropriately

Notification builder

  • EmailTemplate.WaitlistConfirmation = 8 added
  • BrevoListIds.Waitlist = 5 added to BrevoService
  • INotificationMessageBuilder.BuildWaitlistSignup(string email) + implementation
    • Subject: "You're on the JobFlow waitlist — your rate is reserved"
    • Body: founding-member $19/mo lock-in confirmation
  • INotificationService.SendWaitlistSignupNotificationAsync(string email) + implementation

Tests

  • NoOpNotificationService stub in FollowUpAutomationServiceTests updated to implement new interface method

Testing

  • All 54 unit tests pass
  • Release build clean (all 6 projects)

Related

- Add EmailTemplate.WaitlistConfirmation = 8
- Add BrevoListIds.Waitlist = 5 to BrevoService
- Add INotificationMessageBuilder.BuildWaitlistSignup + implementation
  (confirmation email: founding-member $19/mo rate reserved)
- Add INotificationService.SendWaitlistSignupNotificationAsync + implementation
- Add POST /api/email/waitlist-signup endpoint: Turnstile verify (waitlist-signup),
  adds contact to Brevo list 5 (hardcoded, not client-supplied), fires
  confirmation email fire-and-forget with CancellationToken.None
- Add SendWaitlistSignupNotificationAsync stub to NoOpNotificationService in tests

ADO: #251, #254
@bllr777 bllr777 merged commit 38102c9 into main May 21, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant