Awesome-omni-skill courier-notification-skills

Use when building notifications across email, SMS, push, in-app, Slack, Teams, or WhatsApp. Covers transactional messages (password reset, OTP, orders, billing), growth notifications (onboarding, engagement, referral), multi-channel routing, compliance (GDPR, TCPA, CAN-SPAM), and reliability patterns.

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/courier-notification-skills" ~/.claude/skills/diegosouzapw-awesome-omni-skill-courier-notification-skills && rm -rf "$T"
manifest: skills/development/courier-notification-skills/SKILL.md
source content

Courier Notification Skills

Guidance for building deliverable, compliant, and engaging notifications across all channels.

How to Use This Skill

  1. Identify the task — What channel, notification type, or cross-cutting concern is the user working on?
  2. Read only what's needed — Use the routing tables below to find the 1-2 files relevant to the task. Do NOT read all files.
  3. Check for live docs — For current API signatures and SDK methods, fetch
    https://www.courier.com/docs/llms.txt
  4. Synthesize before coding — Plan the complete implementation (channels, routing, compliance, error handling) before writing code.
  5. Apply the rules — Each resource file starts with a "Quick Reference" section containing hard rules. Treat these as constraints, not suggestions.
  6. Check universal rules — Before generating any notification code, verify it doesn't violate the Universal Rules below.

Universal Rules (Never Violate)

  • NEVER send promotional content in transactional notifications (CAN-SPAM violation)
  • NEVER batch or delay OTP, password reset, or security alert notifications
  • NEVER send SMS without TCPA-compliant consent records
  • NEVER skip idempotency keys for transactional sends
  • NEVER send during quiet hours (10pm-8am local) unless critical/security
  • NEVER expose full email/phone in security change notifications (mask them)
  • ALWAYS include "I didn't request this" links in security-related emails
  • ALWAYS use E.164 format for phone numbers
  • ALWAYS configure SPF + DKIM + DMARC before sending production email
  • ALWAYS respect user opt-out preferences immediately
  • ALWAYS use
    method: "single"
    unless the notification is critical enough to warrant all channels

Official Courier Documentation

When you need current API signatures, SDK methods, or features not covered in these resources:

  1. Fetch
    https://www.courier.com/docs/llms.txt
    — returns a structured index of all Courier documentation
  2. Use it to find specific endpoint details, SDK method signatures, and configuration options
  3. Prefer the patterns in THIS skill for best practices; use llms.txt for API specifics

Architecture Overview

[User Action / System Event]
            │
            ▼
    ┌───────────────┐
    │ Notification  │
    │   Trigger     │
    └───────┬───────┘
            │
            ▼
    ┌───────────────┐
    │   Routing     │──── User Preferences
    │   Decision    │──── Channel Availability
    └───────┬───────┘──── Urgency Level
            │
            ▼
    ┌───────────────────────────────────────┐
    │           Channel Selection           │
    ├───────┬───────┬───────┬───────┬──────┤
    │ Email │  SMS  │ Push  │ Inbox │ Chat │
    └───┬───┴───┬───┴───┬───┴───┬───┴───┬──┘
        │       │       │       │       │
        ▼       ▼       ▼       ▼       ▼
    [Delivery] [Delivery] [Delivery] [Delivery] [Delivery]
        │       │       │       │       │
        └───────┴───────┴───────┴───────┘
                        │
                        ▼
                ┌───────────────┐
                │   Webhooks    │
                │   & Events    │
                └───────────────┘

Quick Reference

By Channel

Need to...See
Send emails, fix deliverability, set up SPF/DKIM/DMARCEmail
Send SMS, handle TCPA/10DLC complianceSMS
Send push notifications, handle iOS/Android differencesPush
Build in-app notification centerInbox
Send Slack messages with Block KitSlack
Send Microsoft Teams messagesMS Teams
Send WhatsApp messages with templatesWhatsApp

By Transactional Type

Need to...See
Build password reset, OTP, verification, security alertsAuthentication
Build order confirmations, shipping, delivery updatesOrders
Build receipts, invoices, dunning, subscription noticesBilling
Build booking confirmations, reminders, reschedulingAppointments
Build welcome messages, profile updates, settings changesAccount
Understand transactional notification principlesTransactional Overview

By Growth Type

Need to...See
Build activation flows, setup guidance, first valueOnboarding
Build feature announcements, discovery, educationAdoption
Build activity notifications, retention, habit loopsEngagement
Build winback, inactivity, cart abandonmentRe-engagement
Build referral invites, rewards, viral loopsReferral
Build promotions, sales, upgrade campaignsCampaigns
Understand growth notification principlesGrowth Overview

Cross-Cutting Guides

Need to...See
Route across multiple channels, set up fallbacksMulti-Channel
Manage user notification preferencesPreferences
Ensure GDPR, TCPA, CAN-SPAM complianceCompliance
Handle retries, idempotency, error recoveryReliability
Combine notifications, build digestsBatching
Control frequency, prevent fatigueThrottling
Plan notifications for your app typeCatalog
Reusable code patterns (consent, quiet hours, masking, retry)Patterns

Minimal File Sets by Task

For common tasks, you only need to read these specific files:

TaskFiles to Read
OTP/2FA implementationauthentication.md, sms.md
Password resetauthentication.md, email.md
Order notificationsorders.md, multi-channel.md
Email setup & deliverabilityemail.md, compliance.md
SMS setup & compliancesms.md (includes 10DLC, TCPA)
Push notification setuppush.md
In-app inbox setupinbox.md
Onboarding sequenceonboarding.md, multi-channel.md
Security alertsauthentication.md, multi-channel.md
Digest/batchingbatching.md, preferences.md
Payment/billing notificationsbilling.md, reliability.md
Appointment remindersappointments.md, sms.md
WhatsApp templateswhatsapp.md
Slack/Teams integrationslack.md or ms-teams.md

Decision Guide

What are you building?

  • A specific notification (OTP, order confirm, password reset, etc.) → Use the Minimal File Sets table above to find exactly which 1-2 files to read.

  • A new notification channel (email, SMS, push, Slack, etc.) → See By Channel for the channel-specific guide.

  • Notification infrastructure (routing, preferences, reliability, batching) → See Cross-Cutting Guides for the relevant guide.

  • Planning which notifications to build for a new app → Start with Catalog, then Email, then Multi-Channel.

  • Growth / lifecycle notifications (onboarding, engagement, referral) → Read Growth Overview for consent requirements first, then the specific type.

  • Compliance concerns (GDPR, TCPA, CAN-SPAM) → Read Compliance, then channel-specific rules in SMS or Email.

  • Debugging delivery issues → Email going to spam? Email. SMS not arriving? SMS. General failures? Reliability.

  • Reusable code patterns (consent check, quiet hours, idempotency, fallback) → See Patterns for copy-paste implementations.