Make reviewer/decision email copy more empathetic and constructive#25032
Make reviewer/decision email copy more empathetic and constructive#25032bacharakis wants to merge 4 commits into
Conversation
Update developer-, user-, and reporter-facing email templates to use a
warmer, more respectful and constructive tone while keeping the required
actions clear and the policy/legal/appeal content intact.
Copy sourced from the "addons-server emails" review doc. Changes are
scoped to the specific wording that needed updating to keep diffs easy
to review. Note: templates wrapping copy in {% blocktrans %} will need
re-localization in Pontoon.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
I went over some of the changes with Christos over zoom. The general feedback theme that emerged was to consider making the texts less casual and more professional without sacrificing the constructive tone. Before merging, we'd likely need to do a thorough accuracy review, as I spotted some additions that are unactionable or impossible, for example in the user-deleted email. |
Removed notes about framing and permanence from email template.
|
|
||
| Your add-on can be subject to human review at any time. Reviewers may determine that it requires changes or should be removed. If that occurs, you will receive a separate notification with details and next steps. | ||
| Add-ons may be reviewed by a person at any time, and a reviewer may ask for changes or determine that an add-on should be removed. If that happens, we'll send you a separate message with the details and clear next steps. |
There was a problem hiding this comment.
Small edit: I'd remove a "the" in the final sentence so it reads: ".... we'll send you a separate message with details and clear next steps."
| @@ -1,23 +1,23 @@ | |||
| Hello, | |||
|
|
|||
| Previously, your {{ type }} was suspended/removed from Mozilla Add-ons, based on a finding that you had violated Mozilla's policies. | |||
| Your {{ type }} had previously been suspended or removed from Mozilla Add-ons following a review of our policies. | |||
There was a problem hiding this comment.
We should try to avoid passive verb usage ("had been suspended") whenever possible. Suggested edit: "Your {{ type }} was previously suspended or removed from Mozilla Add-ons following a review of our policies."
| @@ -1,8 +1,8 @@ | |||
| {% extends "abuse/emails/base.txt" %}{% block content %} | |||
| Your account on {{ SITE_URL }} was manually reviewed by the Mozilla Add-ons team, {% if is_third_party_initiated %}based on a report we received from a third party{% else %}in an assessment of your account activity that we performed on our own initiative{% endif %}. | |||
| Your account on {{ SITE_URL }} was manually reviewed by the Mozilla Add-ons team, {% if is_third_party_initiated %}after a report we received from a third party{% else %}as part of an assessment of your account activity that we carried out on our own initiative{% endif %}. | |||
There was a problem hiding this comment.
The first comma after "Mozilla Add-ons team" is unnecessary.
| {% include 'abuse/emails/includes/policies.txt' %} | ||
|
|
||
| Based on that finding, your rating has been permanently removed from {{ SITE_URL }}, and is no longer visible anywhere in the world. | ||
| As a result, your rating has been permanently removed from {{ SITE_URL }} and is no longer visible anywhere in the world. |
There was a problem hiding this comment.
Do we need to state "anywhere in the world"? It seems obvious that would be the case and if the intent of this copy edit is to provide more of a human touch and feel, perhaps we cut this part?
There was a problem hiding this comment.
It's supposed to distinguish from regional restrictions. I think above we replaced it by "globally". Did we forget to do that here?
| {% include 'abuse/emails/includes/policies.txt' %} | ||
|
|
||
| Based on that finding, your collection has been permanently removed from {{ SITE_URL }}, and is no longer visible anywhere in the world. | ||
| As a result, your collection has been permanently removed from {{ SITE_URL }} and is no longer visible anywhere in the world. |
There was a problem hiding this comment.
Can we cut the "anywhere in the world" part? Seems unnecessary and projects harshly.
There was a problem hiding this comment.
It's supposed to distinguish from regional restrictions. I think above we replaced it by "globally". Did we forget to do that here?
| @@ -1,8 +1,8 @@ | |||
| {% extends "abuse/emails/base.txt" %}{% block content %} | |||
| Your {{ type }} {{ name }} was manually reviewed by the Mozilla Add-ons team {% if is_third_party_initiated %}based on a report we received from a third party{% else %}in an assessment performed on our own initiative of content that was submitted to Mozilla Add-ons{% endif %}. | |||
| Thank you for submitting {{ type }} {{ name }} to Mozilla Add-ons. Our team carried out a manual review {% if is_third_party_initiated %}— prompted by a report we received from a third party —{% else %}— on our own initiative, on content submitted to Mozilla Add-ons —{% endif %}and found that some of your content doesn't meet our policies. | |||
There was a problem hiding this comment.
instead of "doesn't meet our policies" how about " doesn't adhere to our policies"? (With "meet" you might have to add "standards": "doesn't meet our policy standards")
| @@ -1,22 +1,22 @@ | |||
| Hello, | |||
|
|
|||
| Previously, your {{ type }} was suspended/removed from Mozilla Add-ons, based on a finding that you had violated Mozilla's policies. | |||
| Your {{ type }} had previously been suspended or removed from Mozilla Add-ons following a review of our policies. | |||
There was a problem hiding this comment.
Same note as above on passive verb usage. "... was previously suspended..."
| @@ -1,12 +1,12 @@ | |||
| Hello, | |||
|
|
|||
| Previously, your {{ type }} was suspended/removed from Mozilla Add-ons, based on a finding that you had violated Mozilla's policies. | |||
| Your {{ type }} had previously been suspended or removed from Mozilla Add-ons following a finding that it did not meet Mozilla's policies. | |||
|
|
||
| After reviewing your appeal, we determined that the previous decision, that this content does not violate Mozilla’s policies ({{ policy_document_url }}), was correct. Based on that determination, we have denied your appeal, and will not take any action against the account or the content. | ||
| After carefully reviewing your appeal, we found that the earlier decision, that this content is within Mozilla’s policies ({{ policy_document_url }}) was correct. For that reason we won't be taking action against the account or the content. |
There was a problem hiding this comment.
Confusing wording. I think em dashes might help. How about?:
"After carefully reviewing your appeal, we found that the earlier decision — that this content is within Mozilla’s policies ({{ policy_document_url }}) — was correct. For that reason we won't be taking action against the account or the content.
|
|
||
| We reviewed your report and the content in question, and found that it does not violate Mozilla's policies ({{ policy_document_url }}). It will therefore not be subject to any moderation action. | ||
| We reviewed your report and the content in question and found that it is within Mozilla's policies ({{ policy_document_url }}), so it won't be subject to any moderation action. We appreciate you flagging it for us. |
There was a problem hiding this comment.
The last sentence feels a bit disjointed from the overall message.. Consider: "However, we appreciate you flagging it for a closer look."
|
|
||
| We reviewed your report and the content in question, and found that it violates Mozilla's policies ({{ policy_document_url }}), and have therefore removed the content. | ||
| We reviewed your report and the content in question and found that it does not meet Mozilla's policies ({{ policy_document_url }}). We've removed the content as a result. We appreciate you helping keep Mozilla Add-ons safe. |
There was a problem hiding this comment.
Consider flipping some wording to: "As a result, we've removed the content."
|
|
||
| {{ key }} | ||
|
|
||
| If you believe this key was revoked in error, you can create a new one | ||
| at the following location: | ||
| If you expected this, no action is needed. If this wasn't you or you still need API access, you can create a new key here: |
There was a problem hiding this comment.
The "If this wasn't you or you still need API access" is a bit confusing. If in fact it "wasn't you" isn't that an alarmingly different scenario than "still needing access"? If it "wasn't you" doesn't that mean your account is probably compromised?
There was a problem hiding this comment.
Yes, I left the same comment above. I'd suggest going back to the previous copy.
|
|
||
| Please make sure you never share your credentials with anyone. Never include them in a public repository, add-on or any other public place. We encourage you to review your code repositories and your extensions to remove any references to your AMO credentials. | ||
| To help keep your credentials secure going forward, it's best to keep them private and avoid including them in any public repository, add-on, or other public place. Whenever you have a moment, it's worth reviewing your code repositories and extensions to remove any references to your AMO credentials. |
There was a problem hiding this comment.
Consider tweaking "going forward" to "moving forward".
|
|
||
| You have been invited to become an author of {{ addon_name }} on {{ domain }}. Accepting the invitation will give you access to edit the add-on, and may show your name in the authors list on the website. | ||
| Great news, you've been invited to become an author of {{ addon_name }} on {{ domain }}. Accepting will let you help edit the add-on, and your name may appear in the authors list on the website. |
There was a problem hiding this comment.
I'd cut "help" just to streamline: "... will let you edit the add-on..."
|
|
||
| Click on the link below to respond if you want to be added as an author for {{ addon_name }}. | ||
| If you'd like to join, just click the link below to accept the invitation: |
There was a problem hiding this comment.
Edit: "If you'd like to accept the invitation, just click the link below:"
wagnerand-moz
left a comment
There was a problem hiding this comment.
Overall, I'd recommend going through all emails and making sure we are using consistent copy and language across them.
Note that some of my comments are about the same topic in different files, hence the seeming duplication.
| More information about Mozilla's add-on policies can be found at {{ policy_document_url }}. | ||
| {% if appeal_url %}If you believe that you did not violate Mozilla's policies, or that this decision was otherwise made in error, you have the right to appeal this decision within 6 months from the date of this email. See {{ appeal_url }} for details on the appeal process, including how to file an appeal for this specific decision. You may also choose to have this decision reviewed by a third party neutral arbiter, or to seek judicial redress in a court of law.{% endif %} | ||
| You can find more information about Mozilla's add-on policies at {{ policy_document_url }}. | ||
| {% if appeal_url %}If you believe this content is within Mozilla's policies, or that this decision was made in error, you have the right to appeal within 6 months from the date of this email. See {{ appeal_url }} for details on the appeal process, including how to file an appeal for this specific decision. You may also choose to have this decision reviewed by a third-party neutral arbiter, or to seek judicial redress in a court of law.{% endif %} |
There was a problem hiding this comment.
can we use "adheresto the policies"?
|
|
||
| Thank you for your attention. | ||
| Thank you, and we're happy to help if anything is unclear. |
There was a problem hiding this comment.
Can we leave it at "Thank you"?
| @@ -1,23 +1,23 @@ | |||
| Hello, | |||
|
|
|||
| {% if is_listing_rejected %} | |||
| Your {{ type }} has been approved for distribution, but the listing on Mozilla Add-ons remains unavailable until you address the violations and request a further review. You can edit it at {{ target_url }}. | |||
| Good news, your {{ type }} has been approved for distribution. Its listing on Mozilla Add-ons will stay unavailable until the outstanding issue(s) are resolved; once you've made the updates, request a further review and we'll take another look. You can edit it at {{ target_url }}. | |||
There was a problem hiding this comment.
I'd avoid using the casual "taking a look". A review is not done casually.
| @@ -1,23 +1,23 @@ | |||
| Hello, | |||
|
|
|||
| {% if is_listing_rejected %} | |||
| Your {{ type }} has been approved for distribution, but the listing on Mozilla Add-ons remains unavailable until you address the violations and request a further review. You can edit it at {{ target_url }}. | |||
| Good news, your {{ type }} has been approved for distribution. Its listing on Mozilla Add-ons will stay unavailable until the outstanding issue(s) are resolved; once you've made the updates, request a further review and we'll take another look. You can edit it at {{ target_url }}. | |||
There was a problem hiding this comment.
Consider dropping "Good news"
|
|
||
| {% if is_public %} | ||
| We have now determined that your content is within policy, and based on that determination, we have restored your {{ type }}. It is now available at {{ target_url }}. | ||
| We've checked and determined that your content is within policy. We've restored your {{ type }}, and it's now available again at {{ target_url }}. |
There was a problem hiding this comment.
Drop "checked". Wen can use the term "review" here if necessary, but "We've determined..." could also work.
|
|
||
| You have been invited to become an author of {{ addon_name }} on {{ domain }}. Accepting the invitation will give you access to edit the add-on, and may show your name in the authors list on the website. | ||
| Great news, you've been invited to become an author of {{ addon_name }} on {{ domain }}. Accepting will let you help edit the add-on, and your name may appear in the authors list on the website. |
There was a problem hiding this comment.
I'd the drop the "Hello" and the "great news" for consistency. Also, since every user can invite any other random user, this might not necessarily be "great news".
|
|
||
| {{ author_confirmation_link }} | ||
|
|
||
| Kind regards, | ||
| If you weren't expecting this invitation, you can safely ignore this email. |
There was a problem hiding this comment.
I'd recommend checking with Engineering if there is a way to decline an invitation. If so, we can add this here, otherwise I'd drop it.
| Kind regards, | ||
| If you weren't expecting this invitation, you can safely ignore this email. | ||
|
|
||
| We're glad to have you building for Firefox, |
There was a problem hiding this comment.
Can we use consistent language for the footer?
| @@ -1,7 +1,9 @@ | |||
| {% load i18n %}{# L10n: This is an email. Whitespace matters! #}{% blocktrans %}Hello, | |||
|
|
|||
| You’re receiving this message because your user account {{ name }} on {{ site_url }} has been deleted. This could have been done automatically if you recently deleted your Mozilla account. | |||
| You’re receiving this message to let you know that your user account {{ name }} on {{ site_url }} has been deleted. If you recently deleted your Mozilla account, this may have happened automatically as part of that process. | |||
There was a problem hiding this comment.
"You’re receiving this message to let you know that" sounds odd.
|
|
||
| Regards, | ||
| Thank you for having been part of the Firefox add-ons community. If you believe this was a mistake or have any questions, please get in touch with us. |
There was a problem hiding this comment.
Drop the "If you believe this was a mistake or have any questions, please get in touch with us."
Update developer-, user-, and reporter-facing email templates to use a warmer, more respectful and constructive tone while keeping the required actions clear and the policy/legal/appeal content intact.
Copy sourced from the "addons-server emails" review doc. Changes are scoped to the specific wording that needed updating to keep diffs easy to review. Note: templates wrapping copy in {% blocktrans %} will need re-localization in Pontoon.
Fixes: https://mozilla-hub.atlassian.net/jira/software/c/projects/ADDONSOPS/boards/9962?assignee=60482cdb116c460070eca811&selectedIssue=ADDONSOPS-1791
Description
Context
Testing
Checklist
#ISSUENUMat the top of your PR to an existing open issue in the mozilla/addons repository.