opensequence

Sales sequences, as code.

Own your sales sequencing infrastructure without building it from scratch.

UK facilities v1 · livePublish
Enrolled
Intro emailsend · Max's Gmail
Wait 3 daysweekdays · 09:00 to 17:00
Follow-upreply in thread
Replied
Exitreason: reply
No reply
Call taskfor Max · due 1d
Add a step 100%

Save $2,000+ a month on Outreach, Salesloft, Apollo, lemlist and Customer.io.

List prices for a 15-rep team: Outreach and Salesloft run $100 to $175 a seat each month, Apollo and lemlist $79 to $119 a seat plus credits, and Customer.io Premium starts at $1,000 a month. OpenSequence runs on one container and a Postgres.

Build with agents

MCPllms.txt

01Use cases

Every use case, in one TypeScript file

Choose an example

02Why own it

Why teams own their sequencing

Price is the obvious reason. Here are the others.

  • Headless by design

    OpenSequence has no UI of its own. Reps run sequences from the CRM they already use.

  • Data in your Postgres

    Contacts, messages and replies live in your own Postgres, in the region you choose. No vendor stores your prospect data.

  • Your deliverability

    Mail leaves each rep's own Gmail, not a shared sending pool. Another company's bad list cannot hurt your domain's reputation.

  • Sequences as code

    A sequence is versioned JSON. Diff it, review it in a pull request and test it against mock providers in CI.

  • Agent-native

    The MCP server ships with the engine. An agent with an enroll key can enroll contacts and read journeys, but cannot edit sequences, senders or settings.

  • No black boxes

    The engine writes every decision to a ledger, with the branch it took and the facts it read. One GET returns the whole journey.

  • Multi-tenant

    One deployment holds a project per customer, each with its own keys. Add sequencing to your own SaaS without building the engine.

  • Extensible

    Channels, node types and providers register by name. Add WhatsApp or your own dialer without forking the engine.

You can vibe-code a sequence. Not a sequencing service.

The first version takes a weekend. The next two years go to edge cases, and you find each one in production.

If you build it yourself

  1. Day 1

    A cron job and a loop send the first email. It works, and everyone moves on.

  2. Week 3

    A worker restarts mid-send. Forty prospects get the same email twice.

  3. Month 2

    The code matches replies by subject line, so people who answered still get the follow-up.

  4. Month 6

    Texts arrive at 11 pm in the contact's time zone. Opt-outs climb, and you are the one on call.

03Nine problems

What you would have to solve

Hover or tap a card to see how OpenSequence solves it

04FAQ

Questions

What people ask before the quickstart.

Is this a free alternative to Apollo, Lemlist or Outreach?
It is the sequencing part of those tools, as an open source engine you run. It covers multi-step email, SMS and call-task sequences, replies and exits, webhooks and analytics. All of it sits behind an API, so your own product is the UI. There is no per-seat price. You pay for the Postgres and the container it runs on. It is not a prospect database or a warm-up service.
What does headless mean here?
OpenSequence has no user interface. Your CRM, an internal tool or an agent shows sequences, enrollments, tasks and analytics, and talks to the engine through the API. You keep your design, your permissions and your workflow.
Can I configure everything through the API?
Yes. Projects, keys, senders, channels, contacts, sequences and versions, enrollments, tasks, webhooks, settings and analytics are all endpoints, 81 operations in the OpenAPI file. The TypeScript SDK and the MCP server call the same API, and the oseq CLI runs the same use cases.
How do agents use it?
Connect the MCP server with an API key. Claude Code, Cursor and any MCP client get tools to list sequences, upsert contacts, preview and enroll, read a journey and pull analytics. Give agents a key with the enroll scope, and they cannot edit sequences, senders or settings.
Does it send email itself?
Yes, through the Gmail API with each sender's own consent and your own Google OAuth client. It sets its own Message-ID, adds List-Unsubscribe, replies in thread when asked, and never exceeds the channel's daily limit. There is no shared sending pool.
What do I need to run it?
You need the Docker image (Node 22), Postgres 14 or newer, and Redis only if you want it as the queue. Migrations run at boot. One process serves the API and runs the workers, and you can split the roles when you scale.

05Get started

Stop paying per seat to send sequences.

Start the image, create a project and follow the six calls in the quickstart. Mock providers are on in development, so nothing leaves your machine until you connect a real account.