Provider Overview
Providers are managed through the dashboard. MessagePipe supports multiple email, message and push notification providers with automatic failover capabilities. This ensures reliable delivery even when individual providers experience issues.
How Provider Failover Works
MessagePipe uses a priority-based system:
- Priority Assignment: Each provider gets a priority number (lower = higher priority)
- Primary Attempt: MessagePipe tries the highest priority provider first
- Automatic Failover: If the primary fails, it tries the next highest priority provider
- Success or Exhaustion: Process continues until successful delivery or all providers fail
Provider Priority Example
Provider A (Priority 1) → Try first
Provider B (Priority 2) → Try if A fails
Provider C (Priority 3) → Try if A and B fail
Preferred Provider
When sending messages, you can specify a preferredProvider to route a particular request through a specific provider regardless of priority order. If that provider fails, the failover chain takes over using priority order.
This is useful when you need to send a WhatsApp message to one user and an SMS to another. You specify the provider per send request rather than reconfiguring priorities each time.
Supported Providers
Email Providers
- SendGrid
- Mailgun
- Amazon SES
- SMTP
Message Providers
SMS
- MessagePipe (built-in, no credentials needed)
- Twilio
- Termii
- Amazon SNS
- Infobip
Apps (Messaging Apps)
- WhatsApp (Meta Business API)
- WhatsApp via Twilio
- Telegram
- Signal
Push Notification Providers
- FCM (Firebase Cloud Messaging) - Android, iOS and Web
Configuration Requirements
Each provider type requires specific configuration parameters. Use the provider schema endpoints to get the exact fields required for any provider.
Email Provider Schemas
Get configuration schemas for all email providers:
GET /email-config/provider-schemas
Authorization: Bearer {your-jwt-token}
Get schema for a specific email provider:
GET /email-config/provider-schemas/{provider}
Authorization: Bearer {your-jwt-token}
Valid values for {provider}: sendgrid, mailgun, ses, smtp
Message Provider Schemas
Get configuration schemas for all message providers:
GET /message-config/provider-schemas
Authorization: Bearer {your-jwt-token}
Get schema for a specific message provider:
GET /message-config/provider-schemas/{provider}
Authorization: Bearer {your-jwt-token}
Valid values for {provider}: messagepipe, twilio, termii, sns, infobip, whatsapp, whatsapp_twilio, telegram, signal
Push Provider Schemas
Get configuration schemas for all push providers:
GET /push-config/provider-schemas
Authorization: Bearer {your-jwt-token}
Get schema for a specific push provider:
GET /push-config/provider-schemas/{provider}
Authorization: Bearer {your-jwt-token}
Valid values for {provider}: fcm
Provider Management
List Configured Providers
Email Providers:
GET /email-config/providers?projectId={projectId}
Authorization: Bearer {your-jwt-token}
Message Providers:
GET /message-config/providers?projectId={projectId}
Authorization: Bearer {your-jwt-token}
Push Notification Providers:
GET /push-config/providers?projectId={projectId}
Authorization: Bearer {your-jwt-token}
Bulk Update Provider Priorities
You can update priorities for multiple providers in a single request, which is more efficient than updating them one at a time.
Email Providers:
PUT /email-config/providers/priorities?projectId={projectId}
Content-Type: application/json
Authorization: Bearer {your-jwt-token}
{
"providers": [
{ "id": "provider-uuid-1", "priority": 1 },
{ "id": "provider-uuid-2", "priority": 2 },
{ "id": "provider-uuid-3", "priority": 3 }
]
}
Message Providers:
PUT /message-config/providers/priorities?projectId={projectId}
Content-Type: application/json
Authorization: Bearer {your-jwt-token}
{
"providers": [
{ "id": "provider-uuid-1", "priority": 1 },
{ "id": "provider-uuid-2", "priority": 2 }
]
}
Push Notification Providers:
PUT /push-config/providers/priorities?projectId={projectId}
Content-Type: application/json
Authorization: Bearer {your-jwt-token}
{
"providers": [
{ "id": "provider-uuid-1", "priority": 1 },
{ "id": "provider-uuid-2", "priority": 2 }
]
}
Provider Status
Providers can be:
- Enabled: Available for message sending
- Disabled: Temporarily excluded from the failover chain
- Priority: Order in the failover sequence
Best Practices
- Configure multiple providers to take advantage of failover
- Set different priorities to control failover order
- Test provider configurations for emails before going live by using the test email endpoint
- Monitor provider performance and adjust priorities as needed
- Keep provider credentials secure and rotate regularly
- Use primary providers with proven reliability for your region