Skip to main content

Personal email collection

Prompts active students to add or confirm a personal (non-school) email on their profile, so Handshake can reach them outside their school inbox.

Attribute
ChannelsVaries by version: v1 in-app; v2 push; v3 email; v4 email and push; v5 all channels (use channels_filter to scope)
User typesStudents
RegionsNA, EU
Platformsweb, iOS, Android
Product areaProfile
Notification preferencepersonal_email_collection
Notification config/v1/personal_email_collection.yml (v1 example)

Audience

Active students. The intent is to grow coverage of non-school email addresses (personal inboxes) for product and lifecycle messaging, independent of school-provided email.

Trigger

Sent manually for now (no automated producer in this repo). After experimentation, a DAG on a fixed cadence is a likely follow-up once the team settles on timing and eligibility rules.

Additional info

Versions

VersionChannelsConfig
v1in-apppersonal_email_collection.yml
v2pushpersonal_email_collection.yml
v3emailpersonal_email_collection.yml
v4email, pushpersonal_email_collection.yml
v5email, push, in-apppersonal_email_collection.yml

Callers use the same notification_name (personal_email_collection) and select the notification_version that matches the channel mix they want to send. New callers should prefer v5 and use the channels_filter field on the send request to scope which channels fire (e.g. ["in_app"] or ["email", "push"]); v1–v4 are retained for backwards compatibility.

Sending

  • Email (v3, v4, v5): Mailgun, PersonalEmailCollectionMailer#email.
  • Push (v2, v4, v5): Firebase.

Aliases

  • Personal email collection