Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(emails): Add inactiveAccountFirstWarning email template + partials #18202

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

vpomerleau
Copy link
Contributor

Because

  • We will be sending out warnings before deleting inactive accounts

This pull request

  • Adds new email template for inactiveAccountFirstWarning including l10n and storybook
  • Adds new partials for use in inactive account emails
  • Adds stories for automated email partials

Issue that this pull request solves

Closes: #FXA-10636

Checklist

Put an x in the boxes that apply

  • My commit is GPG signed.
  • If applicable, I have modified or added tests which pass locally.
  • I have added necessary documentation (if appropriate).
  • I have verified that my changes render correctly in RTL (if appropriate).

Screenshots (Optional)

Please attach the screenshots of the changes made in case of change in user interface.

Other information (Optional)

Any other information that is important to this pull request.

@vpomerleau vpomerleau marked this pull request as ready for review January 9, 2025 18:30
@vpomerleau vpomerleau requested review from a team as code owners January 9, 2025 18:30
Copy link
Contributor

@vbudhram vbudhram left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vpomerleau Thank you! On a side note, this email is pretty much identical to https://mozilla-hub.atlassian.net/browse/FXA-10637 minus subject, title and extra note in description . For what it is worth the duplication seems alright to me. I could extact to more partials? What do you think?

@vpomerleau
Copy link
Contributor Author

@vpomerleau Thank you! On a side note, this email is pretty much identical to https://mozilla-hub.atlassian.net/browse/FXA-10637 minus subject, title and extra note in description . For what it is worth the duplication seems alright to me. I could extact to more partials? What do you think?

I'd agree that the duplication seems fine to me, similar to our verification reminder emails. And I assume we'll have separate handlers for each so having 1:1 between handlers and templates seems fine. Keeping them separate makes it easier to tweak the copy of one of the emails if we need to in the future.

@LZoog
Copy link
Contributor

LZoog commented Jan 9, 2025

@vbudhram I think it makes sense to document partials when they can be displayed in various ways, like the userInfo partial. I don't know if it's particularly useful for other partials though - but definitely for our footers it's useful imo!

import { storyWithProps } from '../../storybook-email';

export default {
title: 'Partials/automatedEmail/automatedEmailChangePassword',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we put this under Partials/footers/*? I think it'll make it a lot more obvious for Product etc. when they're looking at storybook, that this is going to show our footers.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure thing.

I think @vbudhram was asking if he should extract more content of these inactive account emails into partials (vs questioning if we should add storybooks for the partials :))

@@ -0,0 +1,4 @@
account-deletion-info-block-communications = If your account is deleted, you’ll still receive emails from { -brand-mozilla-corporation } and { -brand-mozilla-foundation }, unless you <a data-l10n-name="unsubscribeLink">ask to unsubscribe</a>.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of creating terms here, let's hardcode them. This is what we do elsewhere like Firefox since using them are so uncommon.
Also, in these cases we don't want to use the existing Mozilla brand term either. (e.g. Mozilla Corporation and Mozilla Foundation not { -brand-mozilla } Corporationand { -brand-mozilla } Foundation`)

Apart from those reasons, the main reason we probably don't want to use terms is because of issues with fallbacking. If a locale weren't able to translate these emails in time before sending, I'd assume they'd fall back to English. However, terms / strings referenced by a placeholder won't fallback if the referenced term doesn't exist, instead it would just show the placeholder and { -brand-mozilla-corporation } would appear as-is.

@@ -0,0 +1 @@
automated-email-inactive-account = This is an automated email. You are receiving it because you have a Mozilla account and it has been 2 years since your last sign-in.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should use the -product-mozilla-account term here however. (Unless there's a technical reason not to.)

@@ -0,0 +1,10 @@
inactiveAccountFirstWarning-subject = Remember to confirm your account
inactiveAccountFirstWarning-title = Do you want to keep your { -brand-mozilla } account and data?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
inactiveAccountFirstWarning-title = Do you want to keep your { -brand-mozilla } account and data?
inactiveAccountFirstWarning-title = Do you want to keep your { -product-mozilla-account } and data?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From my understanding Mozilla account does mean an individual's account so should we use -product-mozilla-account here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one I wasn't sure about since Mozilla seemed to apply to both the account and the data, but maybe that's fine and localizers can work around it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I too was unsure. Yeah maybe what you have is better in terms of providing localizers the flexibility.

@@ -0,0 +1,10 @@
inactiveAccountFirstWarning-subject = Remember to confirm your account
inactiveAccountFirstWarning-title = Do you want to keep your { -brand-mozilla } account and data?
inactiveAccountFirstWarning-account-description = Your { -product-mozilla-account } is used to access free privacy and browsing products like Firefox Sync, Monitor, Relay, and MDN.</span>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should use the brand terms that exist for Relay, MDN, etc.

Also, "Firefox Sync" we don't treat as a product anymore.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll ask for content review on this in Figma. Our product terms are Mozilla Monitor and Firefox Relay, so I want to confirm what we should do in this case.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just an update that content review is in progress for how to reference 'sync' in this sentence, and the other products will be updated to full names (Mozilla Monitor, Firefox Relay) so we can use the existing brand terms.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bcolsson content was updated/reviewed/approved in Figma based on your comments and I've pushed up changes to this PR. Could you take another look? 🙇‍♀️

Because:

* We will be sending out warnings before deleting inactive accounts

This commit:

* Adds new email template for inactiveAccountFirstWarning including l10n and storybook
* Adds new partials for use in inactive account emails
* Adds stories for automated email partials

Closes #FXA-10636
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.

4 participants