Skip to content

feat(notifications): remind members who haven't joined the whatsapp (Issue 1468) - #1480

Open
leahpeker wants to merge 1 commit into
mainfrom
1468-whatsapp-join-reminder-emails
Open

leahpeker wants to merge 1 commit into
mainfrom
1468-whatsapp-join-reminder-emails

Conversation

@leahpeker

Copy link
Copy Markdown
Collaborator

Summary

  • Adds a send_whatsapp_join_reminders management command that nudges active members with has_joined_whatsapp=False. Grace period after signup, then up to 3 reminders 14 days apart, then it stops. Runs daily from cron_daily.sh — the command decides who's due, so re-runs are safe.
  • Members can turn the reminders off from settings (whatsapp_reminder_opt_out, alongside the weekly-digest toggle). The email links straight to it: "not a whatsapp person? let us know here and we'll stop emailing you about it."
  • Ships behind the whatsapp_join_reminders feature flag (off by default), and skips the run entirely when no WhatsApp link is configured.

Idempotency works the way send_attendance_reminders does — a WhatsAppJoinReminder row per send, written only after the send succeeds, so a failed send retries the next day.

Closes #1468

Two things to decide before enabling the flag

  1. The opt-out link is login-gated. /settings sits behind RequireAuth, so a member who never claimed their account can't use the link to stop the emails without logging in first. That's the same shape as the weekly digest, but it bites harder here — "hasn't joined the whatsapp" correlates with "never logged in." A tokenized one-click unsubscribe would fix it properly.
  2. First run emails the whole backlog at once. Every existing eligible member is immediately due, since the first reminder keys off created_at. Worth staggering or backfilling marker rows before flipping the flag.

Test plan

  • make agent-ci (not run locally — CI will cover it)
  • Enable the whatsapp_join_reminders flag and set a WhatsApp link on staging
  • python manage.py send_whatsapp_join_reminders — confirm only members missing whatsapp get mail, and re-running the same day sends nothing
  • Toggle "reminders to join the whatsapp" off in settings, re-run, confirm no email
  • Confirm the command no-ops with the flag off and with no WhatsApp link configured

🤖 Generated with Claude Code

…tsapp

Adds a daily management command that nudges active members with
has_joined_whatsapp=False. Grace period after signup, then up to 3
reminders 14 days apart, then it stops.

Members can turn the reminders off from settings — the email links
straight to the toggle, so there's always a way out of it.

Ships behind the whatsapp_join_reminders flag (off by default) and
skips the run entirely when no WhatsApp link is configured.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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.

Send reminder emails to members who haven't joined WhatsApp

1 participant