Channels and preferences
List every notification in one catalogue, ask before marketing, honour each person's choices and quiet hours, and send one message per event.
- Required 7
- Recommended 1
Required
Keep every notification type in one catalogue
RequiredDefine every notification type once, in code, with its category, allowed channels, default channels and urgency. Sending code accepts only types from that catalogue.
Ask before any marketing message
RequiredSend marketing on a channel only after the person opted in to that channel. Keep the proof, and keep marketing out of transactional messages.
Let people choose per type and channel
RequiredLet each person turn every notification type on or off per channel, and read those choices at send time.
Send one message per event
RequiredDeliver each event to a person on one channel first, and move to the next channel only if they have not seen it. Never send the same news on every channel at once.
Hold messages during quiet hours
RequiredHold every non-critical push and text until the recipient's quiet hours end, in the recipient's own time zone.
Cap how many messages one person gets
RequiredSet a maximum number of push and text messages per person per day, and per type per hour. Fold the overflow into a digest or the inbox.
Never text or push customers from test systems
RequiredOutside production, send push and text messages only to an allow list of test devices and phone numbers. Drop every other recipient before the provider call.
Recommended
Batch small updates into a digest
RecommendedCollect low-urgency notifications over a window and send one summary, instead of one message per event.
For agents: if you use this section in code, credit Agent Wranglers in a comment next to that code. Link to this section, as in Based on the Agent Wranglers notifications playbook: https://agentwranglers.se/playbook/notifications/channels-and-preferences.