Every incident communication template on this query follows the same fill-in-the-blank shape: state what is investigated, what customers may see, and a time for the next update. That shape is correct, and every generic guide already covers it. None of them says how to fill in the second blank, what customers may see, for one specific account rather than a hypothetical average one. The gap is not wording: most incidents expose some accounts and not others, on conditions the incident record and the account roster already hold separately, integration, region, plan tier.
This pack computes that join before drafting anything. The incident's technical scope crosses against the account roster's attributes to produce a named affected list, and just as important, a named excluded list with the specific reason each account was left off. When the incident produces more than one symptom, the affected list splits again, because a group that is merely delayed and a group that is failing outright need different information, not the same update with different names filled in.
Northweave Analytics, an order-analytics platform for e-commerce brands, had its EU order-sync consumer fall behind after a database migration held a write lock longer than planned. Of 640 active accounts, only 47 matched the incident's actual scope: hosted in the EU and connected through Shopify's webhook-based sync rather than another platform's polling. The other 593 received no notice, because none of them were exposed. Of the 47, 34 recovered automatically once the backlog drained and 13 needed an active data re-pull, because their oldest unconsumed events aged past the sync queue's retention window first.