trycourier

courier-notification-skills

0
0
# Install this skill:
npx skills add trycourier/courier-skills

Or install specific skill: npx add-skill https://github.com/trycourier/courier-skills

# Description

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.

# SKILL.md


name: courier-notification-skills
description: 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.


Courier Notification Skills

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

Use the routing tables below to find implementation details for your specific task.

Official Courier Documentation

For complete and current documentation, fetch the index at:
https://www.courier.com/docs/llms.txt

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/DMARC Email
Send SMS, handle TCPA/10DLC compliance SMS
Send push notifications, handle iOS/Android differences Push
Build in-app notification center Inbox
Send Slack messages with Block Kit Slack
Send Microsoft Teams messages MS Teams
Send WhatsApp messages with templates WhatsApp

By Transactional Type

Need to... See
Build password reset, OTP, verification, security alerts Authentication
Build order confirmations, shipping, delivery updates Orders
Build receipts, invoices, dunning, subscription notices Billing
Build booking confirmations, reminders, rescheduling Appointments
Build welcome messages, profile updates, settings changes Account
Understand transactional notification principles Transactional Overview

By Growth Type

Need to... See
Build activation flows, setup guidance, first value Onboarding
Build feature announcements, discovery, education Adoption
Build activity notifications, retention, habit loops Engagement
Build winback, inactivity, cart abandonment Re-engagement
Build referral invites, rewards, viral loops Referral
Build promotions, sales, upgrade campaigns Campaigns
Understand growth notification principles Growth Overview

Cross-Cutting Guides

Need to... See
Route across multiple channels, set up fallbacks Multi-Channel
Manage user notification preferences Preferences
Ensure GDPR, TCPA, CAN-SPAM compliance Compliance
Handle retries, idempotency, error recovery Reliability
Combine notifications, build digests Batching
Control frequency, prevent fatigue Throttling
Plan notifications for your app type Catalog

Minimal File Sets by Task

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

Task Files to Read
OTP/2FA implementation authentication.md, sms.md
Password reset authentication.md, email.md
Order notifications orders.md, multi-channel.md
Email setup & deliverability email.md, compliance.md
SMS setup & compliance sms.md (includes 10DLC, TCPA)
Push notification setup push.md
In-app inbox setup inbox.md
Onboarding sequence onboarding.md, multi-channel.md
Security alerts authentication.md, multi-channel.md
Digest/batching batching.md, preferences.md
Payment/billing notifications billing.md, reliability.md
Appointment reminders appointments.md, sms.md
WhatsApp templates whatsapp.md
Slack/Teams integration slack.md or ms-teams.md

Start Here

New app?
Start with the Catalog to plan which notifications your app needs, then set up Email deliverability and review Multi-Channel routing.

Building transactional notifications?
Check Transactional Overview for principles, then dive into the specific type you're building (authentication, orders, billing, appointments, or account).

Building growth notifications?
Check Growth Overview to understand consent requirements and lifecycle stages, then dive into onboarding, adoption, engagement, re-engagement, referral, or campaigns.

Compliance concerns?
Review Compliance for regulations by channel, then check channel-specific requirements in SMS (TCPA/10DLC) and Email (CAN-SPAM).

Deliverability issues?
For email going to spam, check Email. For SMS delivery issues, check SMS for 10DLC registration requirements.

# README.md

Courier Notification Skills

A comprehensive agent skill for building production-ready notification systems across multiple channels. Covers everything from email deliverability to push permission priming, with a focus on user experience, compliance, and reliability.

For AI Agents & Developers: This skill provides structured guidance for implementing notifications with the Courier API. Use it to send emails, SMS, push notifications, Slack messages, and more through a unified interface.

Why Use This Skill

  • Multi-channel notifications β€” Send messages via email, SMS, push, Slack, Microsoft Teams, WhatsApp, and in-app inbox from a single API
  • Production-ready patterns β€” Battle-tested code examples for authentication flows, order updates, billing alerts, and more
  • Compliance built-in β€” GDPR, TCPA, CAN-SPAM, and CCPA guidance for every channel
  • Developer-first β€” TypeScript/JavaScript, Python, Ruby, Go, and cURL examples throughout

Who This Is For

  • Developers building SaaS, e-commerce, marketplaces, or mobile apps
  • Teams consolidating notification providers into a single API
  • Engineers implementing user preferences, unsubscribe handling, or multi-channel routing

Installation

Cursor (global, available in all projects):

git clone https://github.com/trycourier/courier-skills.git ~/.cursor/skills/courier-skills

Cursor (project-specific):

git clone https://github.com/trycourier/courier-skills.git .cursor/skills/courier-skills

Claude Code (auto-discovered from personal skills folder):

git clone https://github.com/trycourier/courier-skills.git ~/.claude/skills/courier-skills

Claude Code automatically loads skills from ~/.claude/skills/. No additional configuration needed.

Also works with Windsurf, Cline, and other AI coding assistants that support skills.

What This Skill Covers

Channels
- Email (deliverability, SPF/DKIM/DMARC, design)
- SMS (TCPA, 10DLC, character limits)
- Push notifications (iOS/Android, permission priming)
- In-app inbox (real-time, badges, read states)
- Slack (Block Kit, bot setup)
- Microsoft Teams (Adaptive Cards)
- WhatsApp (templates, 24hr window)

Transactional Notifications
- Authentication (password reset, OTP, verification, security alerts)
- Orders (confirmation, shipping, delivery)
- Billing (receipts, dunning, subscriptions)
- Appointments (booking, reminders, rescheduling)
- Account (welcome, profile updates, settings)

Growth Notifications
- Onboarding (activation, first value, setup)
- Feature adoption (discovery, education, milestones)
- Engagement (activity, retention, habits)
- Re-engagement (winback, cart abandonment)
- Referral (viral loops, invites, rewards)
- Campaigns (promotional, upgrades)

Cross-Cutting Guides
- Multi-channel orchestration and routing
- User preference management
- Compliance (GDPR, TCPA, CAN-SPAM)
- Reliability (idempotency, retry logic)
- Batching and digests
- Throttling and rate limiting
- Notification catalog by app type

Structure

courier-notification-skills/
β”œβ”€β”€ SKILL.md                    # Start here - routes to the right resource
β”œβ”€β”€ README.md                   # This file
β”œβ”€β”€ package.json                # npm package config
└── resources/
    β”œβ”€β”€ channels/               # Channel-specific best practices
    β”‚   β”œβ”€β”€ email.md
    β”‚   β”œβ”€β”€ sms.md
    β”‚   β”œβ”€β”€ push.md
    β”‚   β”œβ”€β”€ inbox.md
    β”‚   β”œβ”€β”€ slack.md
    β”‚   β”œβ”€β”€ ms-teams.md
    β”‚   └── whatsapp.md
    β”œβ”€β”€ transactional/          # Transactional notification types
    β”‚   β”œβ”€β”€ index.md
    β”‚   β”œβ”€β”€ authentication.md
    β”‚   β”œβ”€β”€ orders.md
    β”‚   β”œβ”€β”€ billing.md
    β”‚   β”œβ”€β”€ appointments.md
    β”‚   └── account.md
    β”œβ”€β”€ growth/                 # Growth & lifecycle notifications
    β”‚   β”œβ”€β”€ index.md
    β”‚   β”œβ”€β”€ onboarding.md
    β”‚   β”œβ”€β”€ adoption.md
    β”‚   β”œβ”€β”€ engagement.md
    β”‚   β”œβ”€β”€ reengagement.md
    β”‚   β”œβ”€β”€ referral.md
    β”‚   └── campaigns.md
    └── guides/                 # Cross-cutting concerns
        β”œβ”€β”€ multi-channel.md
        β”œβ”€β”€ preferences.md
        β”œβ”€β”€ compliance.md
        β”œβ”€β”€ reliability.md
        β”œβ”€β”€ batching.md
        β”œβ”€β”€ throttling.md
        └── catalog.md

Quick Start

Open SKILL.md - it has a routing table that directs you to the right resource based on what you need to do.

Integrations & Providers

This skill covers best practices for working with:

Channel Providers
Email SendGrid, Amazon SES, Postmark, Mailgun, Resend, SparkPost
SMS Twilio, MessageBird, Vonage, Plivo, Telnyx
Push Firebase Cloud Messaging (FCM), Apple Push Notification Service (APNs), Expo
Chat Slack, Microsoft Teams, Discord
Messaging WhatsApp Business API, Facebook Messenger

Frequently Asked Questions

How do I send a notification with Courier?
Use the courier.send() method with a recipient, template, and data object. See the channel-specific guides for examples.

What's the difference between transactional and marketing notifications?
Transactional notifications are triggered by user actions (password reset, order confirmation). Marketing notifications are sent proactively for engagement. Different compliance rules apply.

How do I handle notification preferences?
See resources/guides/preferences.md for implementing user preference centers, channel opt-outs, and frequency controls.

How do I ensure email deliverability?
Configure SPF, DKIM, and DMARC. Warm up your sending domain. Monitor bounce rates. Full guide in resources/channels/email.md.

What about rate limiting and throttling?
Courier handles provider rate limits automatically. For custom throttling logic, see resources/guides/throttling.md.

Contributing

Found an issue or want to add a notification pattern? PRs welcome.

License

MIT


Built for the Courier notification platform. Works with any AI coding assistant that supports agent skills.

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.