[PM-40167] feat: Update billing domain email copy - #8203
Conversation
Refreshes subject lines and body copy for nine billing emails
(license, seat limits, provider payment method, and Families for
Enterprise sponsorship) per the PM-38898 terminology epic. Copy
ships in-place with no feature flag per product decision.
Also removes the unused offerAcceptanceDate parameter from
SendFamiliesForEnterpriseRemoveSponsorshipsEmailAsync, sanitizes
the sponsor org name in offer emails, and fixes the sponsorship
reverting text template referencing a nonexistent {{Date}} property.
ℹ️ Limited Platform familiarityThis PR touches a platform-community area. The Platform team owns this code but does not actively develop it, so a Platform review here may be less authoritative than usual. |
🤖 Bitwarden Claude Code ReviewOverall Assessment: APPROVE Reviewed copy updates across nine billing-domain email templates (HTML + text), the Code Review DetailsNo findings at or above the reporting threshold. Notes considered and intentionally not raised as findings:
|
…n-license-subscription-seats-sponsorship-billing
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8203 +/- ##
=========================================
+ Coverage 0 63.33% +63.33%
=========================================
Files 0 2381 +2381
Lines 0 103759 +103759
Branches 0 9385 +9385
=========================================
+ Hits 0 65717 +65717
- Misses 0 35810 +35810
- Partials 0 2232 +2232 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…n-license-subscription-seats-sponsorship-billing
djsmith85
left a comment
There was a problem hiding this comment.
Approving for platform
🎟️ Tracking
https://bitwarden.atlassian.net/browse/PM-40167
📔 Objective
Refreshes subject lines and body copy for nine billing-domain emails (HTML + text variants) per the PM-38898 terminology epic:
OrganizationNameto the view models viaCoreHelpers.SanitizeForEmail)Additional changes riding along:
offerAcceptanceDateparameter fromSendFamiliesForEnterpriseRemoveSponsorshipsEmailAsync(interface, both implementations, caller, tests)CoreHelpers.SanitizeForEmail, matching the sibling sponsorship-removal email{{Date}}property (previously rendered a blank date); both variants now use{{date ExpirationDate 'MMMM dd, yyyy'}}Notes for reviewers:
vfo1-foundationflag as duplicate V2 templates — that's stale. Nick Krantz confirmed the copy ships in-place with no flag; the ticket AC predates that decision.