
If you're looking for a Salesforce Marketing Cloud alternative, you've probably already noticed the pattern: the license is expensive, the platform needs its own specialist developers, and the low-code promise runs out exactly where your requirements get interesting.
We keep hearing this story on customer calls. The most recent version came from an engineering team at a healthcare company, mid-migration off Marketing Cloud. Their original mandate was "find a low-code solution for marketing." The engineer running the migration, on where that landed: "I don't know that that's really ever going to be a good answer for the kind of depth that the product offers."
Low code is good in theory. Doing anything moderately complex takes code, so a platform built to hide code from you caps out early. It may be low code, but it's also low functionality. That's the trade nobody prices in.
This post covers why teams move, the architecture that replaces Marketing Cloud without replacing Salesforce, and what the switch costs.
Three reasons come up on nearly every call.
The staffing model. Marketing Cloud is its own discipline: AMPscript, SSJS, Data Extensions, SQL query activities, Journey Builder's quirks. Running it well means hiring Marketing Cloud developers, or contracting them through an agency at $150 to $350 an hour, and those people work on Marketing Cloud, not your product. Nobody plans for that headcount; it arrives after the contract is signed. The healthcare company put it directly: keeping Marketing Cloud meant "an entirely differently configured development team." Courier goes the other way: one of your existing engineers, working with a coding agent like Claude Code, Codex, or Cursor, can build the integration themselves. Their system experts became their notification experts. Same headcount, one less silo.
The pricing model. Salesforce Marketing Cloud Engagement is priced per org and per contact, with message allocations on top: roughly $1,250/month for Professional to $4,200/month for Corporate, billed annually. That's the list price. Implementation partners typically charge 1.5x to 3x the annual license to get you live, and ongoing managed services add $10,000 to $45,000+ a year. You pay for every contact stored whether or not you message them, and industry guides document dozens of add-on costs. A first year on a mid-tier edition regularly clears $200,000 all-in. (Salesforce's newer Growth and Advanced editions, at $1,500 and $3,250 per org per month, keep the same shape: an annual platform commitment sized to your database.)
The product itself. Salesforce Marketing Cloud launched as ExactTarget in 2000 and it shows. Navigation sprawls across Email Studio, Journey Builder, Automation Studio, and Contact Builder, and knowing where a thing lives is tribal knowledge. The engineer we quoted above, after switching: "Salesforce is very old, and it's hard to navigate. Courier's navigation is fairly clean. It's easier for me to use."
The move that works isn't ripping out Salesforce. It's narrowing what Salesforce does.
Salesforce is a system of record, and a good one. Contacts, deals, consent, purchase history: leave all of it where it is. What you take back is the send layer, the part of Marketing Cloud that decides what to send, renders it, and delivers it.
The architecture looks like this:
The healthcare team built exactly this: a facade between the two systems, with Salesforce data rolling over to Courier continuously. Salesforce didn't get worse at anything. It stopped being the bottleneck for everything downstream of the data.
This is also where AI changes the equation. In the age of agents, you want your customer data in a system of record and your capabilities behind clean APIs, because that's what agents can operate. Courier exposes the whole platform through an API and an MCP server, so the same surface your engineers script is one your coding agents can build on: creating templates, wiring journeys, inspecting delivery logs. There's no equivalent move for a platform whose automation lives in a proprietary scripting language behind a certification.
Here's the requirement that pushed the healthcare team past what journey builders express.
Patients qualify for re-engagement campaigns based on criteria, and one patient often qualifies for two campaigns at once. Both journeys fire. The patient gets blasted about one topic, then immediately blasted about another, with neither journey aware of the other. For a healthcare company careful about overloading patients, that's not a cosmetic bug.
The team's first instinct was the classic low-code workaround: set a flag when someone enters any journey, check it on entry everywhere else, delay a day if it's set, re-invoke. It works for two journeys. At three or more it collapses into state management spread across every workflow, where one missed check anywhere breaks the guarantee everywhere. And Salesforce Marketing Cloud Engagement gives you no native cross-journey collision control to reach for; Salesforce's own ecosystem guides recommend planning spreadsheets and hand-built exclusion logic as the standard workaround.
The better shape is a platform primitive, not per-journey bookkeeping. In Courier, a throttle node caps how many messages a user can receive through a point in a journey per time window ("max 1 per 24 hours, per user"), and preference topics group message types so marketing sends respect one shared set of rules while urgent product messages bypass them entirely. Cross-journey coordination is a conversation we're actively having with customers like this one, and it's shaping what we build next.
That last part matters more than the feature list. When this team hit the problem, the fix wasn't a support ticket into a queue behind thousands of larger accounts. It was a design conversation, and the request went on the roadmap that week. AI has collapsed the cost of turning customer requests into shipped features, and small platform teams now out-iterate suites. As the company's IT lead told us: "It's a level of personalization that I don't think we could ever expect to get from a Salesforce."
A developer platform sounds like a trade where marketing loses its tools. It works the other way: the things marketers wait on specialists for in Marketing Cloud have a plain UI in Courier.
In Salesforce Marketing Cloud, personalization beyond merge fields means AMPscript, which means a ticket. A segment usually means a SQL query activity, another ticket. The people who own the campaign can't ship the campaign.
The same work in Courier is self-serve:
The parity is the point. Engineers, marketers, and AI agents work the same platform through different surfaces: UI, API, and MCP. Nobody's workflow is the degraded version.
Salesforce Marketing Cloud vs. Courier isn't a license vs. license comparison. It's platform commitment vs. usage.
| Salesforce Marketing Cloud Engagement | Courier | |
|---|---|---|
| Pricing basis | Per org + per contact stored, annual contract | Per message sent |
| Entry price | ~$1,250 to $4,200+ per org per month | Free tier (10,000 sends/month), then $0.005 per message with volume pricing at scale |
| Implementation | Typically 1.5x to 3x annual license via a partner | Your team, starting on the free tier |
| Specialist staffing | Marketing Cloud devs and consultants, $150 to $350/hr | Your existing engineers |
| Ongoing managed services | $10,000 to $45,000+ per year | None required |
| Unused contacts | Billed | Free (you pay when you send) |
| Channels | Priced and configured per studio | Every channel, same flat rate |
Run the arithmetic for a mid-size team: a Corporate edition license is about $50,000 a year. Implementation at the low end of the typical multiple adds $75,000 in year one. A part-time contracted specialist at $200 an hour, ten hours a week, is another $100,000 a year. The same team sending 300,000 messages a month on Courier pays $18,000 a year, with no implementation partner and no contractor. The numbers vary; the shape doesn't. Marketing Cloud bills on the size of your database and your org chart. Per-send pricing bills on activity.
An honest alternative-to page should tell you when not to switch.
If you're mostly sending product-triggered and lifecycle messages, and the people maintaining your stack are engineers who'd rather work in their own tools, the migration pays for itself in the first contract cycle.
The short version: inventory what actually sends, stand up the Salesforce-to-Courier profile sync, recreate templates, carry over unsubscribes, then rebuild journeys one at a time, running each in parallel before cutting over. Triggered sends cut over cleanly since they're already API calls.
The full concept mapping (Journey Builder to Journeys, Data Extensions to user profiles, AMPscript to send-time data, publication lists to preference topics) lives in our migration guide, written so both your team and your coding agents can work from it.
Yes, and you should. Salesforce stays your system of record for contacts, deals, and consent. A sync you control (platform events, Change Data Capture, or scheduled exports) pushes profile changes into Courier, and audiences recalculate from those attributes automatically. Courier replaces Marketing Cloud's send layer, not your CRM.
Journeys: a visual workflow builder with an API underneath. Entry sources map to triggers (API invoke, inbound webhook, Segment event, or audience membership), and decision splits, waits, and sends map to branch, delay, and send nodes. Journeys add primitives Journey Builder lacks, like throttle nodes for frequency caps and digest nodes that collapse many events into one message.
Your sendable Data Extension becomes Courier user profiles: JSON documents keyed by user ID that accept nested attributes without a schema. Relational Data Extensions stay in your database; you either flatten what a message needs onto the profile at sync time or pass it in the data field at send time.
No. That's most of the point. Courier is a REST API with SDKs, so the engineers who build your product run your notifications, usually with an AI coding agent doing the heavy lifting. No proprietary scripting language, no certification track, no implementation partner.
No. Courier replaces the sending and orchestration layer: journeys, triggered sends, campaigns, templates, and preferences across email, SMS, push, in-app, and chat. It also adds an in-app notification inbox with drop-in web and mobile components, something Marketing Cloud only approximates inside the MobilePush SDK. Landing pages (CloudPages), ad audience activation (Advertising Studio), and marketing attribution stay in Salesforce or elsewhere in your stack.
Courier charges a flat $0.005 per message sent, the same across every channel, with a free tier of 10,000 sends a month, volume pricing at scale, and no charge for stored contacts. Salesforce Marketing Cloud Engagement runs roughly $1,250 to $4,200+ per org per month on an annual contract, plus implementation typically at 1.5x to 3x the annual license, plus specialist staffing.
Triggered and transactional sends cut over in days, since they're already API calls on both sides. Journeys move in phases: rebuild one, run it in parallel against a test audience, cut the entry over, retire the Marketing Cloud version once its send logs go quiet. Most teams complete the send-layer migration within a quarter while both systems run side by side.
Both, with parity. Marketers build templates in Design Studio, manage audiences with a rule builder, run one-time sends through Broadcasts, and edit journeys visually. Engineers and AI agents do the same things through the API and MCP server. Neither surface is the limited version.
Start with the migration guide, or create a free account and wire a test audience against synced Salesforce data before you commit to anything.

How to send messages and not piss off your customers
Every notification looks reasonable in isolation. Your customers don't experience them one at a time, they experience all of them before lunch. Here's why sending less beats sending more.

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.

Apple Intelligence finally got smart. Here's how it changes the notifications your users see.
Apple Intelligence's on-device models got dramatically better in iOS 27, and they now summarize, rank, and filter notifications before your users ever see them. There's no API to control that, so the words you send are the only lever you have. Here's how notification summaries work and how to write for them.
© 2026 Courier. All rights reserved.