[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 accompanying view model additions ( 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 63.17% 63.28% +0.11%
==========================================
Files 2381 2381
Lines 103771 103773 +2
Branches 9394 9394
==========================================
+ Hits 65559 65675 +116
+ Misses 35981 35864 -117
- Partials 2231 2234 +3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
🎟️ 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.