Channel Step
Send notifications through a configured channel
The channel step sends a notification to the recipient through a specific channel. Each channel step is linked to a channel you've configured in your project.
Configuration
When adding a channel step, you select:
- Channel — Which configured channel to use (e.g., "Marketing Email", "Transactional SMS")
- Template — The notification content for this step
Supported Channel Types
Channel steps can use any channel type you've configured:
| Channel Type | Providers | Description |
|---|---|---|
| SendGrid, Amazon SES, Resend, Mailgun, Notiflows Email | Send emails with rich HTML, visual editor, or plaintext | |
| SMS | Twilio | Send text messages |
| Mobile Push | Apple APNs, Firebase FCM | Send push notifications to iOS and Android devices |
| Web Push | Web Push (VAPID) | Send web push notifications |
| In-App | Built-in | Display notifications in your app's notification center |
| Chat | Slack, Webhook | Send messages to Slack workspaces or HTTP endpoints |
See Channels & Providers for setup instructions for each provider.
Templates
Each channel step has an associated template that defines the notification content. The template format depends on the channel type:
| Channel Type | Template Format |
|---|---|
| Visual editor, HTML, or plaintext | |
| SMS | Plaintext |
| Mobile Push | Title + body (plaintext) |
| Web Push | Title + body (plaintext) |
| In-App | Body + action URL (markdown) |
| Chat | Markdown or JSON (for Slack Block Kit) |
See Templates for details on writing template content.
Example
A channel step configured for email might use a template like:
Subject: Your order has shipped!
Hi {{ recipient.first_name }},
Great news! Your order #{{ data.order_id }} is on its way.
Track your package: {{ data.tracking_url }}Multiple Channel Steps
A notiflow can have multiple channel steps to send notifications across different channels:
Trigger → Email → Push → EndOr use control steps to add delays between channels:
Trigger → Email → Wait (1 hour) → Push → EndOr use condition steps to route to different channels based on user preferences:
Trigger → Condition
├─ Prefers email → Email → End
└─ Default → Push → EndStep Conditions
You can add conditions to a channel step to control whether it executes. If the conditions aren't met, the step is skipped and execution continues to the next step. This is different from condition steps which route the entire flow into branches — see Condition Step.