notiflowsDocs
LearnBuilding Notiflows

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:

  1. Channel — Which configured channel to use (e.g., "Marketing Email", "Transactional SMS")
  2. Template — The notification content for this step

Supported Channel Types

Channel steps can use any channel type you've configured:

Channel TypeProvidersDescription
EmailSendGrid, Amazon SES, Resend, Mailgun, Notiflows EmailSend emails with rich HTML, visual editor, or plaintext
SMSTwilioSend text messages
Mobile PushApple APNs, Firebase FCMSend push notifications to iOS and Android devices
Web PushWeb Push (VAPID)Send web push notifications
In-AppBuilt-inDisplay notifications in your app's notification center
ChatSlack, WebhookSend 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 TypeTemplate Format
EmailVisual editor, HTML, or plaintext
SMSPlaintext
Mobile PushTitle + body (plaintext)
Web PushTitle + body (plaintext)
In-AppBody + action URL (markdown)
ChatMarkdown 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 → End

Or use control steps to add delays between channels:

Trigger → Email → Wait (1 hour) → Push → End

Or use condition steps to route to different channels based on user preferences:

Trigger → Condition
              ├─ Prefers email → Email → End
              └─ Default → Push → End

Step 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.

On this page