Integration · Lifecycle
Iterable
Audit-mode connector for the lifecycle messaging platform. Each Iterable A/B campaign becomes an ExperimentAssignment with assumed_uniform propensity (Iterable doesn't expose per-recipient bucket weights). Outcomes come from your tracked events. The result: doubly-robust lift on campaigns Iterable itself reports as an average lift across the base — including the cohorts the average is averaging away.
The contract
What flows in
- Events API + Campaign API + Users API
- Per-campaign A/B variant exports (recipients per variant + send timestamps)
What flows out
- DR + ESS readout per campaign, with the CATE grid Iterable's reports don't surface
- Hidden-cohort report — the slice being prompted into churn by the winner-on-average (this is the exact cold-outreach hook in our sales playbook)
- Disclosed assumed_uniform provenance
Setup
- 01Connect: paste your Iterable API key (server-side, never shipped to the client)
- 02Pick which campaign families to mirror — typically upgrade prompts, win-backs, dormant-account offers
- 03Map outcome events: cancellation, downgrade, upgrade-completion, whichever map onto your reward_spec
- 04First sync runs immediately; subsequent syncs every 30 minutes
Why audit-mode unlocks Iterable customers fast
Iterable reports the winning variant on average. It does not show you which cohort the winner is pushing into churn. A worked re-analysis of a comparable neobank's upgrade-prompt test surfaced $1.4M/yr hiding in a 14% slice. The cold-outreach script in docs/sales/iterable.md documents the exact framing that converts.
The audit subscription is the foot in the door. Decision-mode upgrades come later, per-experiment, when the cohort math warrants outcome-priced billing on individual flows.
Other lifecycle integrations
Wire Iterable in a 30-minute call.
We pair with your engineer, ship the integration live, and run the first decision on your stack.