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. Here are the most popular, in order: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
To send through the provider from a template, activate its channel’s tab in Design Studio and include that channel in the template’s . The strategy also sets the fallback order and provider priority.
Provider API keys are configured per environment. SendGrid set up in Production also needs its API key added in Test to send test messages. A missing provider configuration gives a
MISSING_CONFIGURATION error in your message logs.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.





