Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
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 | |
| 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 |
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 |
|---|---|
| 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.