Iterable

iterable.com

KEEP IT

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.

Promptfree, for everyone, and the only version there is
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

$0

Open-source notification infrastructure with workflows across channels.

novuhq/novufree · open source

Listmonk

$0

Self-hosted campaigns and subscriber management.

knadh/listmonkfree · 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

Interest · last 30 days

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

All 33 in Email & newsletters

Not sending yet

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

Esc