Iterable
The value is the network, the data or the infrastructure. Keep paying.
Cross-channel marketing for larger companies: journeys across email, push, SMS and in-app, with experimentation and a data model built for scale.
Understand the size question first. **This category is bought for volume and channel breadth.** If you send a few hundred thousand emails a month across one or two channels, the buildable version below is genuinely enough. If you are orchestrating across four channels at scale with contractual guarantees, keep paying. STACK - Node 20+ with Fastify - SQLite through better-sqlite3, WAL mode - Worker processes for the journey engine - A relay for email, a provider for push and SMS - Caddy in front THE DATA MODEL - profiles: id, external_id, attrs_json, channels_json with per-channel consent and timestamps - events: id, profile_id, name, props_json, at — one table, new behaviours are new names - journeys: id, name, version, definition_json, is_active - enrolments: id, profile_id, journey_id, journey_version, node_id, next_at, entered_at, exited_at, exit_reason - sends: id, profile_id, journey_id, node_id, channel, template_version, at, provider_ref - experiments and holdouts THE JOURNEY ENGINE - A directed graph of nodes: wait, send, branch on a condition, split for an experiment, webhook, exit - **Detect cycles and refuse to activate a journey containing one**, unless there is an explicit cap. An accidental loop at scale sends a very large number of messages very quickly - Every enrolment carries the journey version; editing a live journey never moves people already inside it - Idempotency per profile per node, a lease on the queue, retries with backoff, a dead-letter with replay TEMPLATES AND DATA - Templates versioned, with the version recorded on every send. **A report about a campaign is meaningless if the template it refers to has since been edited** - Personalisation with a required fallback for every field - A render preview against a real profile, showing every channel's output THE RULES THAT PROTECT PEOPLE - One frequency cap across every channel, not one per channel - Quiet hours in the profile's timezone, enforced globally - Consent per channel, recorded with source and time, and honoured separately — **SMS consent is legally distinct from email consent nearly everywhere** - A suppression list checked before every send on every channel MEASUREMENT - A permanent global holdout receiving nothing, so the programme's total effect is measurable rather than assumed - Per-journey experiment splits assigned deterministically, reported with confidence intervals and a minimum sample - Unsubscribe and complaint rates per journey, shown as prominently as the revenue OPERATIONS - A per-journey kill switch effective in seconds - A dry-run mode that evaluates a journey against real profiles and sends nothing - Queue depth, oldest pending enrolment and dead-letter size on a health endpoint, with alerts WHAT MATTERS MOST Versioned journeys and enrolments, a global frequency cap, and a kill switch. Those three are what make an engine like this safe to run at any size.
What you lose
- Journeys across four channels with one profile behind them
- Delivery infrastructure at high volume
- Experimentation embedded in every journey
- The support and guarantees that come with the contract
If you would rather not build
- Customer.io, if the scale genuinely justifies it
The escape hatch
open source · no votes, no paid placement
Novu
$0Open-source notification infrastructure with workflows across channels.
novuhq/novufree · open source
Why this verdict
our own opinion · changed only by a person
22/100
Verdict no at 22 on scale grounds, with a complete buildable design for ordinary volumes. Cycle detection and versioned enrolments are the two engine-level rules that matter most.
History
tracked since 14 Aug 2026 · nothing is ever overwritten
Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.
Questions about Iterable
answered from the record above
Is Iterable free?
Iterable does not publish a price; it is quoted by contact volume and channels.
Can you replace Iterable by building your own?
KEEP IT. The value is the network, the data or the infrastructure. Keep paying. Replacement score 22 out of 100, build time longer than it saves. Read what you lose before you decide.
How much does Iterable cost?
Iterable has no public headline price. The tier we track is the entry plan.
What do you lose by replacing Iterable?
Journeys across four channels with one profile behind them; Delivery infrastructure at high volume; Experimentation embedded in every journey; The support and guarantees that come with the contract. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Iterable?
Yes: Novu, Listmonk. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

