-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
Description
A workflow involving changes to primary and secondary emails in a Mozilla Account can lead to duplicate records in CTMS. This creates inconsistencies in how user data and subscriptions are represented.
Steps to Reproduce
- Create a Mozilla Account using an email address
userA@example.com.- This creates CTMS user 1 with
emails.primary_emailandfxa.primary_emailset touserA@example.com.
- This creates CTMS user 1 with
- Add a second email address
userB@example.comas a secondary email but do not make it the primary email.- In CTMS, this is not recorded. It's only an FxA change at this point.
- Use the secondary email address
userB@example.comto sign up for a newsletter on the website.- This creates CMTS user 2 with
emails.primary_emailset touserB@example.com.
- This creates CMTS user 2 with
- Go back to the Mozilla Account and make the secondary email
userB@example.comthe primary email.- For CTMS user 1 this updates
fxa.primary_emailtouserB@example.comwhile keeping theemails.primary_emailvalue ofuserA@example.com. - CTMS user 1's
fxa.primary_emailnow conflicts with CTMS user 2'semails.primary_email.
- For CTMS user 1 this updates
Observed Behavior
- Two CTMS records are created:
- CTMS user 1 with:
emails.primary_email:userA@example.comfxa.primary_email:userB@example.com
- CTMS user 2 with:
emails.primary_email:userB@example.com.
- CTMS user 1 with:
Steps to Reproduce - Alternate workflow
- Create a Mozilla Account using an email address
userA@example.com.- This creates CTMS user 1 with
emails.primary_emailandfxa.primary_emailset touserA@example.com.
- This creates CTMS user 1 with
- Add a second email address
userB@example.comas a secondary email and make it the primary email.- In CTMS this updates
fxa.primary_emailtouserB@example.com.
- In CTMS this updates
- Use the email address
userB@example.comto sign up for a newsletter on the website.- This creates CMTS user 2 with
emails.primary_emailset touserB@example.com.
- This creates CMTS user 2 with
Observed Behavior
- Two CTMS records are created:
- CTMS user 1 with:
emails.primary_email:userA@example.comfxa.primary_email:userB@example.com
- CTMS user 2 with:
emails.primary_email:userB@example.com.
- CTMS user 1 with:
Expected Behavior
- There should be only one CTMS record for the user:
- To fix this issue, define and implement a solution to merge 2 contacts.
Additional Considerations
- The
emailstable includes abasket_token, which allows users to navigate to the preference center. - If records are merged, take into consideration which
basket_tokenremains functional so users can access the preference center. - Perhaps a system notification email is sent notifying the user of the merge and providing the chosen basket token as a reference. The other basket token will result in a 404 from that point forward.
Metadata
Metadata
Assignees
Labels
No labels