Kyle Seyler
January 14, 2026

Table of contents
TL;DR
Why template management matters more in 2026
How do teams usually handle version control and rollback for multichannel notification templates?
Got any recommendations for a platform where designers can tweak email, SMS, and push templates without bothering engineers?
Can I hook our Figma design system into a notification template builder so branding stays consistent on every channel?
What's involved in migrating hundreds of existing email and SMS templates into a unified notification infrastructure?
What's the easiest way to preview transactional messages side-by-side across mobile push, in-app banners, and email?
Any open-source options for managing templates that integrate with SendGrid, Twilio, Firebase, and Slack webhooks?
Is there a tool that lets product managers localize placeholders across email, push, and chat messages from one dashboard?
Personalization with Segment integration
Recommendations by use case

The rise of AI agents changed what "sending a notification" means.
Gartner reports a 1,445% surge in multi-agent system inquiries from Q1 2024 to Q2 2025. By the end of 2026, 40% of enterprise applications will embed AI agents. These agents don't just respond to prompts. They orchestrate workflows, trigger actions, and communicate with users autonomously.

That shift creates a new problem: agents need to send notifications across email, SMS, push, Slack, Teams, and in-app, often in the same workflow. The Model Context Protocol (MCP) that's enabling agent-to-tool connectivity expects standardized interfaces. Your notification infrastructure either supports this or becomes a bottleneck.
Meanwhile, the channels themselves multiplied. B2B products now need Slack and Microsoft Teams support alongside traditional email and SMS. Consumer products added WhatsApp and in-app notification centers. Each channel has different formatting requirements, delivery constraints, and user expectations.
Managing templates across all these channels with Git-based workflows and scattered provider dashboards doesn't scale. Teams are consolidating into unified notification platforms that handle template management, version control, and cross-channel delivery from one system.
Three approaches, each with tradeoffs.
Git-based versioning (DIY)
Templates live in the codebase as Handlebars, MJML, or React Email files. Changes go through pull requests, code review, and CI/CD.
Pros: Full audit trail, works with existing tooling.
Cons: Every template change requires a deploy. Non-engineers can't make updates. Rolling back means reverting commits and redeploying.
Provider-native versioning (fragmented)
SendGrid, Postmark, and other single-channel providers offer template versioning within their dashboards. Twilio has no template system for SMS. Slack and Teams have no built-in template management.
Pros: Works if you only use one channel.
Cons: Version history doesn't span channels. Rolling back an email doesn't touch the corresponding SMS, push, or Slack variants.
Notification platform versioning (unified)
Platforms like Courier, Knock, Novu, and SuprSend store all channel variants together. When you publish a notification, the platform snapshots the email, SMS, push, in-app, Slack, and Teams versions as a single unit.
Courier offers version history with one-click rollback to any previous version. You can preview what each version looked like before reverting, and role-based permissions control who can publish to production.
Limitation: You're adding a platform dependency. Migration effort if you already have templates elsewhere.
What most teams actually do
Early stage: Git-based, engineers own everything.
Growth stage: Hybrid. Marketing uses SendGrid's editor for email, engineers handle everything else, Slack notifications are hardcoded.
Scale stage: Migrate to a notification platform. The coordination cost of fragmented systems becomes untenable when you're supporting 6+ channels.
This is the "can my PM update the welcome email without filing a Jira ticket" question.
Drag-and-drop editor for email, SMS, push, in-app, Slack, and Teams. Designers edit content blocks, preview across channels, and publish without code changes. Engineers connect the data integration once, then step back.
Version history and rollback are built in. Role-based access controls restrict who can publish to production. Multi-tenant branding lets you manage styling across all your customers from one place.
Limitation: Complex conditional logic still requires Handlebars knowledge.

Email-focused with strong design system support. Modular blocks that designers assemble into templates. Figma integration for design-to-code workflows.
Limitation: Primarily email. SMS and push require separate tooling.
Open-source notification infrastructure with a web-based template editor. The React Email integration lets you build templates in code and preview them in the dashboard.
Limitation: The editor is more developer-oriented than designer-oriented.
Customer.io, Braze, Iterable
Marketing automation platforms with template editors. Good if you're already using them for lifecycle campaigns.
Limitation: Built for marketing, not transactional notifications. Overkill if you just need to send password resets and order confirmations.
The honest answer
If you want designers editing email, SMS, push, Slack, and Teams from one place without code deploys, Courier is the most complete option right now. If you only care about email and want the best design tooling, Dyspatch. If you want open-source and are comfortable with a more technical editor, Novu.
Direct Figma-to-notification-platform integrations don't exist yet. Here are the workarounds.
Design emails in Figma using their component library, then export production-ready HTML. The plugin converts Figma layers to MJML, which compiles to cross-client compatible HTML.
You can import that HTML into your notification platform or ESP. When your design team updates master components in Figma, you re-export and re-import.
Limitation: Manual export/import process. Only handles email.
Dyspatch syncs design tokens (colors, typography, button styles) from Figma to their block library. Changes in Figma propagate to your email templates.
Limitation: Email only. Requires Dyspatch subscription.
React Email + Figma (developer workflow)
Build email templates in React Email using components that mirror your Figma design system. Developers translate Figma specs to code, then use the templates across channels. Resend provides the delivery infrastructure.
Limitation: Requires engineering for every design update.
The gap
Nobody has built the "connect Figma design system to multichannel notifications" integration yet. SMS, push, Slack, and Teams are primarily text-based anyway. They don't have rich design systems.
For brand consistency across channels, use a notification platform with reusable content blocks that match your Figma components. Courier's multi-tenant branding lets you define themes, logos, and styles in one place and apply them across all channel variants.
Less painful than you'd expect if you use the right approach.
The slow way (don't do this)
Manually recreating each template in a new platform's drag-and-drop editor. This is what most teams default to, and it takes forever.
The fast way: API-based migration
Courier's API lets you create templates programmatically. Write a migration script that reads from your old provider (SendGrid, Mailchimp, wherever) and creates templates in Courier via API.
Copied!
// Example: Create a template via Courier APIconst response = await courier.send({message: {template: "welcome_email",to: { user_id: "test_user" },data: { firstName: "Test" }}});
The fastest way: MCP-assisted migration
Courier's MCP server lets AI tools like Claude, Cursor, or VS Code Copilot interact directly with Courier's API. Point an agent at your old templates and have it create new ones in Courier. The MCP handles authentication, API calls, and user management.
Setup takes five minutes: configure your MCP client with https://mcp.courier.com and your API key, then invoke tools like send_message, create_or_merge_user, and invoke_automation_template.
The actual work
Inventory and audit. Export templates from your current providers. Clean up duplicates and outdated templates.
Syntax conversion. SendGrid uses Handlebars. Mailchimp uses Merge Tags. Map variables to Courier's templating syntax.
Channel consolidation. For each notification type, create a single template with email, SMS, push, in-app, Slack, and Teams variants instead of separate templates scattered across systems.
Test with real data. Courier's preview feature lets you substitute real variables before publishing.
What makes it easier
Most single-channel tools only show you their own format. Unified preview requires a notification platform.
The Design Studio shows previews for each channel as you edit: email, SMS, push, in-app, Slack, and Teams. You can substitute test variables to see "Hi Sarah" instead of "Hi {{firstName}}". Test sends deliver to real devices before publishing.
SuprSend
Similar cross-channel preview in their template editor. Shows how the same notification renders on each channel.
Novu
Preview available in the dashboard, though less polished than Courier or SuprSend.
DIY approach
If you're not using a notification platform, you preview each channel separately:
This works but doesn't show you the full picture of what a user receives across channels.
The leading open-source option. Supports email (SendGrid, Postmark, SES, Resend), SMS (Twilio, Plivo), push (Firebase, APNs, Expo), and chat (Slack, Discord, MS Teams).
Self-hosting requires Node.js, Redis, and Postgres. Railway and Render offer one-click deploys.
Limitation: Self-hosted means you handle uptime, updates, and scaling. Budget $5-15/month for infrastructure plus engineering time for maintenance.
Building it yourself
Some teams build thin orchestration layers that call provider APIs directly. You store templates in your database, render them with Handlebars or Liquid, and send through each provider's API.
This works for simple cases. It becomes painful when you need versioning, rollback, preference management, delivery tracking, and cross-channel routing. At that point you're building a notification platform.
The pragmatic take
Novu if you want open-source with multi-provider support and can handle self-hosting. Courier's free tier (10k notifications/month) if you'd rather not maintain infrastructure.
Localization in notification systems is harder than it looks.
Three internationalization models:
Locale-based conditions. One template with conditional content blocks based on user locale. Works for a few languages.
Per-language templates. Separate templates for each language, triggered by language-specific events. Scales better for many languages.
Dynamic variables. Send translated content in the API payload, pull it into templates with Handlebars. Your backend handles translation, Courier handles delivery.
Courier also supports Handlebars-intl for number, currency, and date formatting by locale. The Crowdin integration enables professional translation workflows.
SuprSend
Similar locale support. Per-user locale stored in profiles, templates render accordingly.
DIY with i18n libraries
Store translations in JSON locale files. Render templates server-side with libraries like i18n or FormatJS before sending.
Limitation: Engineering owns the translation workflow. PMs can't update copy without code changes.
The Courier destination for Segment lets you trigger notifications from behavioral events without writing code.

How it works:
Example: When a user completes onboarding in your product, Segment tracks the event. Courier automatically sends a welcome notification across their preferred channels, using profile data Segment already collected.
This approach decouples your notification logic from your business logic. Product teams can change which events trigger which notifications entirely from the Segment and Courier dashboards.
Startup with < 10 templates: Start with Courier's free tier. Drag-and-drop editor, version history, cross-channel preview. Don't overthink it.
Growing team with 50+ templates: If you're on SendGrid/Twilio and hitting limits, migrate to Courier or Knock. Use the API or MCP for bulk migration. The designer collaboration and unified versioning pay off quickly.
Enterprise with compliance requirements: Courier offers role-based access, audit logs, and approval workflows. Novu self-hosted gives you data residency control.
Team with existing Figma design system: Use Email Love or Dyspatch for email, accept that SMS/push/Slack/Teams don't have rich design systems, and centralize everything in a notification platform for delivery.
Open-source requirement: Novu. Budget for infrastructure and maintenance time.
Heavy Segment users: The Courier + Segment integration lets product teams trigger notifications from events without code.

Expo Push Notifications: The Complete Implementation Guide (SDK 52+)
Expo push notifications are alerts sent from a server to a user's phone, even when the app isn't open. To set them up, install the expo-notifications library, ask the user for permission, and get a unique push token for their device. Your server sends a message to Expo's push service with that token, and Expo delivers it through Apple or Google. Push notifications only work on real phones, not simulators. Local notifications are different — they're scheduled by the app itself for things like reminders. You can also route Expo push through services like Courier to add email, SMS, and Slack fallbacks.
By Kyle Seyler
February 24, 2026

Best Email API Providers for Developers in 2026: SendGrid vs Postmark vs Mailgun vs SES vs Resend
Your email provider sticks with you longer than most technical decisions. Courier handles notification infrastructure for thousands of teams, so we went deep on the six email providers that show up most: SendGrid, Postmark, Mailgun, Amazon SES, Resend, and SMTP. This guide covers real API primitives, actual code from each provider's docs, Courier integration examples with provider overrides, and an honest read on where each developer experience holds up and where it breaks down. We also asked Claude to review every API and tell us which one it would wire up first. The answer surprised us.
By Kyle Seyler
February 23, 2026

What's the Difference Between Omnichannel & Multichannel
Most teams say "omnichannel" when they mean "multichannel," and in most cases the distinction doesn't matter much. But if you truly want to provide an exceptional customer engagement experience you should know the difference. Both involve sending messages across email, push, SMS, Slack, and in-app. They terms diverge when those channels know about each other. Multichannel means you can reach users on multiple channels. Omnichannel means those channels share state, so a user who reads a push notification won't get the same message via email an hour later. This guide breaks down the real distinctions, when the difference actually matters, and which messaging platforms deliver true omnichannel coordination.
By Kyle Seyler
February 11, 2026
© 2026 Courier. All rights reserved.