
Last updated: September 2026
Courier vs Customer.io is a choice between two ways of running messaging. Both send across email, push, SMS, and in-app. Courier is messaging infrastructure that also covers the campaign surface. Customer.io is a lifecycle marketing platform that also sends transactional messages. What fits depends on who runs your messaging and how you are billed.
Courier fits most product, growth, and engineering teams better than Customer.io, because it bills per send instead of per profile. Journeys, experiments, broadcasts, an in-app inbox, preferences, and 50+ delivery providers sit on one platform that people and AI agents both operate. Customer.io fits better when a marketing team owns messaging end to end and needs behavioral segmentation on custom objects and nested data.
Every fact here comes from each vendor's own product pages, docs, and pricing page, and each competitor figure links to its source. Where a vendor does not publish something, we say so. We weighted delivery and architecture at 35, pricing at high volume at 25, journeys and testing at 20, and in-app plus preferences at 20.
| Courier | Customer.io | |
|---|---|---|
| Pricing model | Per send, any channel | Per maximum unique profile and object |
| Free tier | Yes, 10,000 sends a month | No free tier. Startup Program gives a free year under $10M raised |
| Entry paid plan | $0.005 per send, pay as you go | Essentials from $100 a month, 5,000 profiles and 1M emails |
| Channels | Email, SMS, mobile and web push, in-app inbox, Slack, Microsoft Teams, WhatsApp, webhooks | Email, push, in-app, inbox, SMS, WhatsApp, Slack, webhooks plus LINE |
| Microsoft Teams | Native customer-facing channel | Not present in its channel docs |
| Slack | Customer-facing channel with DMs and multi-workspace auth | Internal team alerts via a bot |
| Provider abstraction | 50+ providers with routing and automatic failover | Channel execution, no documented failover |
| Visual journey builder | Journeys, with an AI Agent node | Journeys, with multivariate campaign testing |
| Drop-in UI components | Inbox, Toasts, preference center web component, Courier Create | In-app messages via web and mobile SDKs |
| Self-hosting | No, cloud only | No, cloud only |
| AI tooling | MCP server, CLI, AI Agent node, AI Translations | MCP, CLI, and an AI Agent for campaign work |
| Best for | Product messaging plus lifecycle, run by engineers, marketers, and agents together | Marketer-led lifecycle programs on deep profile data |
Courier connects product events and profile data to messages across channels. Your app fires an event, and Courier picks the channel and provider, renders the template, applies preferences, and sends. Journeys, Broadcasts, Experiments, Inbox, Design Studio, Preferences, and Routing sit on one platform, so transactional and lifecycle messaging need one stack. Twilio, LaunchDarkly, CircleCI, and Nav run on it.
Everything in Courier's UI is on the API. Journeys, templates, brands, routing, preferences, audiences, tenants, users, and translations are first-class API objects. A marketer builds a journey by clicking, an engineer manages it as code, and an AI agent edits it through the MCP server. Courier Create goes further: embed a branded, no-code designer in your own product, scoped per tenant, so your customers design their own messages.
Customer.io is built for marketing teams who want campaign orchestration with deep segmentation around customer profiles: custom objects, anonymous data, nested attributes. Its API ingests data and triggers campaigns, but the flow itself is still built by clicking, and there is no embeddable designer.
Courier integrates with 50+ providers including SendGrid, Twilio, SES, APNs, Firebase, and Slack. It sits on top of what you already use. Providers sit behind an abstraction, so you swap or combine them per channel without rewriting send logic. If your primary email provider goes down, Courier fails over on its own. Routing rules run per message and per channel with fallback, so a push that goes unread hands off to email and then SMS. Courier also delivers natively to Slack and Microsoft Teams with DMs, channel messages, and email fallback. SDKs cover Node.js, Python, Go, Ruby, Java, PHP, and C# on the server, plus JavaScript, React, iOS, Android, Flutter, and React Native on the client.
Customer.io documents email, push, in-app, inbox, SMS, WhatsApp, Slack, and webhooks plus LINE, with SDKs for web, iOS, Android, React Native, Flutter, and Expo. LINE is a real strength if your users are in Japan, Thailand, Taiwan, or Indonesia, and Courier has no LINE channel. Customer.io's Slack support is a bot posting to your own workspace for internal alerts, not a customer-facing channel with per-user DMs and multi-tenant auth. Microsoft Teams is absent from its channel docs, so a product whose users live in Teams cannot reach them there.
Both have visual journey builders. What differs is how flows trigger and who operates them afterward.
Courier Journeys start from an API call, an inbound webhook, a CDP event, or the moment a user matches an audience. Nodes cover Send, Branch, Delay, Fetch Data, Throttle, Batch, Digest, and AI Agent, plus quiet hours in the user's time zone. A journey cancels the moment a user takes the action you were driving. Custom Environments promote a journey from staging to production the way you promote code, and Courier's customer journey tooling covers onboarding, upgrade, and renewal flows.
Experiments live inside a journey. At any send point, test 2 to 10 template variants split by weight, with per-variant metrics. Recipients stay in the same variant. Broadcasts are separate: a one-off send to a whole list or audience, reusing the same templates, preferences, and routing.
Customer.io's journey builder is deeper on marketing experimentation, with multivariate testing and conversion tracking layered into campaigns and segmentation woven into the journey logic. That depth is real. For product-driven messaging it is more than most teams will use.
In-app messaging and a notification center are not the same thing.
Courier Inbox is a real-time notification center you drop into your product. It tracks read state, supports filtering and archiving, syncs across devices, and ships with SDKs for React, JavaScript, iOS, Android, Flutter, and React Native. Toasts cover in-app pop-ups.
Customer.io has in-app messages on web and mobile through its SDKs, plus an inbox message type. What is not documented is a persistent, per-user notification feed on the web with read state and archiving, which is the gap Inbox fills.
Add a language and Courier's AI Translations handle the whole template, subject lines and buttons included, with side-by-side review before you publish. Change the source copy and Courier flags what is out of date. Customer.io localizes too, including an AI translator in its Design Studio. Customer.io translates as you build a message. Courier picks the language per recipient at send time, in the same pipeline as routing and preferences.
Courier's preference system covers a hosted preference page, an embeddable web component you theme, and headless APIs for your own UI. Topics and sections, per-topic channel choices, quiet hours, and digest subscriptions are all first class. Courier enforces every choice at send time, so a user who opts out of a category on one channel does not receive it on another. For B2B products, preferences can be configured per tenant.
Customer.io handles subscription preferences and privacy management, and covers unsubscribes and consent well. Its docs do not describe per-topic, per-channel preference centers with cross-channel enforcement, or per-tenant configuration.
Pricing is the clearest reason product teams pick Courier. In September 2026 they still bill on different units, which makes a direct comparison awkward.
Courier is send-based and public. Developer is free with 10,000 sends a month and includes Journeys, Broadcasts, the MCP server, the CLI, and the SDKs. Business is $0.005 per send on any channel, pay as you go with no volume cap. It adds AI Translations, the AI Agent node, and cross-device email testing. Enterprise is custom volume pricing with an Enterprise SLA, EU data residency, role-based access control, a dedicated Slack channel, and observability integrations. An in-app notification costs the same as an email, with no per-seat fees.
Customer.io is profile-based, billed on "your account's maximum number of uniquely identified people and objects." Essentials includes 5,000 profiles and 1 million emails a month, and AI credits are $10 per 100,000. Plan prices are starting prices, so your real number needs a quote. There is no free tier, though the Startup Program gives a full year free if you have raised under $10M.
A product with 100,000 registered users sending 30,000 targeted messages a month pays $100 a month on Courier. The first 10,000 sends are free, and the next 20,000 run at $0.005. On Customer.io, those 100,000 profiles are 95,000 over the Essentials allowance. At the published $0.009 overage that is $855 a month in profile overage on top of the $100 Essentials base, so about $955 a month. Send-based pricing wins when your user base is large or partly dormant. It goes the other way if you send high-frequency campaigns to a small list, because Essentials includes a million emails a month.
| Courier | Customer.io | |
|---|---|---|
| Entry | Free, 10,000 sends a month | No free tier; Startup Program under $10M raised |
| Billing unit | Sends, any channel | Maximum unique profiles and objects |
| Published price | $0.005 per send | Essentials from $100/mo billed monthly, Premium from $1,000/mo billed yearly |
| Overage | None, pay as you go | $0.009 per profile, $0.12 per 1,000 emails |
| Enterprise | Custom volume pricing | Custom, quote required |
Choose Courier if product events drive your messaging, your user base dwarfs your send volume, or you need an in-app inbox and per-tenant preferences.
Courier is messaging infrastructure that also runs lifecycle campaigns, and Customer.io is a lifecycle marketing platform that also sends transactional messages. Courier bills per send and fronts 50+ delivery providers with one API. Customer.io bills per profile and goes deeper on segmentation.
Courier is a strong Customer.io alternative for most product, growth, and engineering teams. It covers the same channels and adds a drop-in notification center and an API a person or an AI agent can drive. Customer.io stays the better pick when marketing needs its segmentation depth.
Courier is usually cheaper than Customer.io, because Courier charges $0.005 per send while Customer.io charges per profile. Courier includes 10,000 sends a month free. Customer.io Essentials starts at $100 a month for 5,000 profiles, and extra profiles cost $0.009 each. That puts 100,000 users at about $955 a month.
Courier and Customer.io overlap on email, push, SMS, and in-app, and each reaches somewhere the other does not. Courier adds Microsoft Teams and customer-facing Slack with per-user DMs. Customer.io adds LINE, and its Slack support only posts internal alerts to your workspace.
Both Courier and Customer.io support in-app messaging, and they build it differently. Courier Inbox is a persistent notification center on web and mobile, with read state, filtering, and archiving. Customer.io offers campaign-style in-app messages that fit onboarding prompts, not a per-user feed.
Courier supports A/B testing through Experiments, and Customer.io supports it through campaign testing. Courier Experiments test 2 to 10 template variants at any send point inside a journey, split by weight. Customer.io goes further for marketing campaigns, with multivariate testing and conversion tracking.
Courier gives stronger preference controls than Customer.io, based on the docs we reviewed. Courier offers a hosted preference page, an embeddable web component, and headless APIs, with per-topic and per-channel choices enforced at send time. Customer.io covers subscription and privacy management without the same documented enforcement.
Choose Customer.io over Courier when a marketing team owns messaging end to end. Customer.io is the better pick for behavioral segmentation on custom objects and nested data. It also wins for multivariate campaign testing, conversion reporting, or a native LINE channel.
For most product, growth, and engineering teams, Courier is the better choice and a clean replacement for Customer.io. Unless marketing owns your messaging end to end, you are paying for a database instead of for messages.
Start free with 10,000 sends a month, fire a journey, split a send into an experiment, and drop in the Inbox, or book a demo.

Customer messaging tools that don't need engineers
Most companies run two systems: a marketing tool for campaigns, and something else for product notifications. Here are nine tools product and growth teams can run without engineering, what still needs a developer, and what each one costs.

Courier Skills: teach your AI agent to build with Courier
Courier Skills is a free, open-source knowledge base that teaches your AI coding agent how to build and debug notifications with Courier: the right primitive for each use case, the exact payload shapes, and the mistakes that produce unhelpful errors. The rebuilt version is smaller, leads every reference with the failure modes, and installs on any agent that reads skills with one command: `npx skills add trycourier/courier-skills`.

How Apple's on-device AI works, and what it changes for your users
Apple's 2026 on-device models (AFM 3) are good enough to read, rank, and summarize everything that lands on your phone, locally and for free. Here's how they actually work, in plain terms, and how a model that reads every message before your users do changes what you should send.