Cadence is a deterministic infrastructure layer. Claude Code or Codex spin up a team, author emails, build linear sequences, wire triggers, and read stats — entirely over an MCP server. No journey-builder UI.
No durable run per enrollment — always-latest content, no wait-for ceilings, trivially indefinite.
Any source → Zapier or a direct webhook hits one authenticated endpoint. The source's stable id is the idempotency key.
Every active sequence whose trigger + equality filter passes enrolls the contact independently. Roofing and siding, never branching.
A scheduled task claims due enrollments under a lease, renders the currently-stored template, sends once, advances on cadence.
Reach the last email and park. Append email 13 and parked contacts wake to receive it. Only compliance stops a send.
The app guarantees correctness — idempotency, leasing, tenant isolation, compliance. Agents bring the copy and the config.
Isolated workspaces with their own contacts, sending identity, and API key. RLS from day one.
Authored in React/MJML, rendered to inert HTML, pushed per team. No deploy, public-safe, previewable.
Strictly linear and open-ended. Agents append emails over time; contacts park and resume.
contact_added · audience_added · event, each with an optional equality/in filter. No OR, no negation.
Idempotent named events and static audiences — the other two ways a contact enters a cadence.
Sends, opens, bounces, unsubscribes on one table. Per-email, over time. No clicks, no cron.
new client → create_team → wire the webhook → author emails → create_sequence → live. The same API a public tier would expose.
A contact who reaches the latest email parks. Write email 13 and they wake and receive it on cadence. The only stops are unsubscribe, hard bounce, and complaint — enforced at ingest and re-checked before every send.
Nurture inbound leads indefinitely — authored in code, operated by your agent, observed here.