Which type of notification are you sending?
Start with the channel you need. Each introduction page lists that category’s providers, the profile fields that address a recipient, and the send-time overrides.From Amazon SES and SendGrid to a generic SMTP relay.
SMS
Twilio, Vonage, Sinch, and regional carriers.
Push
For iOS, Android, web, and React Native.
Chat & direct message
Slack, Teams, WhatsApp, and Discord.
In-app
Courier Inbox, on the In-App tab. Nothing to connect.
Other Providers
On-call alerting, support tools, and webhooks to anywhere else.
Customer data platforms
Sync profiles and trigger sends from Segment or RudderStack events.
Observability
Export delivery metrics to Datadog, New Relic, or OpenTelemetry.
Most-used providers
Each channel’s full list lives on its introduction page. These are the ones teams reach for most often, most popular first:SendGrid
Amazon SES
Mailgun
Postmark
Resend
SMTP
SMS
Twilio
Vonage
Bird
Plivo
Sinch
Push
Firebase FCM
Apple APNs
Expo
OneSignal
Chat
Slack
Microsoft Teams
Discord
Alerting
PagerDuty
Opsgenie
Connecting a provider
1
Get credentials from the provider
Get the API key or authentication token from the provider. Your channel’s introduction page links to each provider’s page, which names the credentials that provider needs.
2
Add the provider in Courier
Open the and add the provider.
3
Test the connection
Verify your credentials and confirm Courier can send through the provider.
4
Add the channel to a template
A configured provider only sends once its channel is on a template. Set the channel’s behavior and priority in .
What Courier handles for you
Once a provider is connected, delivery behavior comes from Courier, not your code:- Routing and failover. Courier picks the channel and provider per send. It moves to the next one when a provider fails. See .
- Provider metrics. Delivery rates, latency, and error rates per provider appear in the Analytics dashboard. See .
- Rate limit backoff. Provider 429s are queued and retried on the schedule below.
Rate limit management
When a provider returns a rate limit error (HTTP 429), Courier queues the message and retries with exponential backoff:
Retries continue for up to 24 hours (approximately 104 total attempts). A provider
Retry-After header overrides the default backoff schedule.
After retries are exhausted, Courier attempts to another configured provider or channel. With no alternative, the message is marked UNDELIVERABLE.





