opensequence

A self-hosted lemlist alternative, and the teams that should stay on lemlist

lemlist's Email plan is $55 a month flat and Multichannel is $87 per user. When your own Gmail and Postgres sequences beat it, and when they do not.

By Leo Guerberg10 min read

  • lemlist
  • cold-email
  • self-hosting
  • pricing
On this page

A self-hosted lemlist alternative runs the sequencing engine on your own servers. Emails go out from each rep's own Google Workspace mailbox, LinkedIn steps become tasks a rep does by hand, and every send, reply and bounce becomes a row in a Postgres database you own. We make one, OpenSequence, which is open source under Apache-2.0, so read this page with that in mind.

As of October 2026, lemlist's Email plan costs $55 a month, billed yearly, for unlimited users and 50,000 emails. That is about what hosting your own engine costs. Self-hosting saves money only against lemlist's Multichannel plan, which costs $87 per user per month billed yearly. So the reason to leave lemlist is rarely the email bill. It is where the data lives, who sets the limits, and whether sequencing should run inside your own CRM or product.

What lemlist does well

lemlist's strongest feature is personalization. Its editor makes a custom image for each lead from a template. Text and lead-photo layers fill in {{firstName}} or {{companyName}}, or the editor pulls a per-lead image URL from a CSV column (lemlist help: create an image template). OpenSequence does not do that.

Deliverability tooling is the second strength. lemlist includes lemwarm, its warm-up network, in every plan, according to the FAQ on the pricing page. The plans also list a deliverability hub, inbox rotation, a custom tracking domain, DNS setup tests and deliverability alerts. lemlist connects Google, Microsoft and SMTP mailboxes.

The Multichannel plan adds SMS, an in-app dialer with a power dialer, and LinkedIn automation that covers profile visits, follows, invites, text and voice messages, and InMail. Every plan includes a database of more than 650 million leads and an email and phone finder. The comparison table also lists a unified inbox and AI detection of reply intent and out-of-office replies. A team that wants to find leads, email them and handle the replies in one tab gets all of that in one subscription.

lemlist pricing as of October 2026

We took these prices from lemlist.com/pricing in October 2026. All prices are in USD.

Plan Monthly billing Yearly billing Billed per Senders
Email, 50,000 emails a month $69 $55 account unlimited
Email, 100,000 emails a month $89 $71 account unlimited
Email, 200,000 emails a month $159 $127 account unlimited
Multichannel $109 $87 user 5 per user
Enterprise custom custom custom 5 or more per user

lemlist prices the Email plan by volume, with unlimited users and senders. The usual per-seat argument for self-hosting does not apply to it. Multichannel is per user, so its price grows with headcount. Data costs extra. Lead enrichment starts at $20 a month for 2,000 credits, and buying-intent signals start at $29 a month for 100 signals. Both prices are for monthly billing.

What changes when you self-host

OpenSequence is one Docker image and a Postgres database, version 14 or later. You register senders and contacts, publish sequences as versioned JSON, and enroll people over a REST API, the TypeScript SDK or the MCP server. Signed webhooks tell your app when someone replies, books a meeting or bounces. There is no UI. Your CRM or internal tool is the UI. The install guide covers a production setup.

You bring your own mailboxes, and today they must be Google

lemlist also sends through your mailboxes, so the mailbox bill stays the same. What changes is who holds the connection. Each OpenSequence project registers its own Google OAuth client, and each rep consents once to Gmail and Calendar access (Connect Google). The Gmail API sends each email as the rep, and follow-ups appear in the same thread as the first email.

OpenSequence sends through Gmail only. It does not support Microsoft 365, and SMTP and IMAP adapters are in the "later" phase of the roadmap. If your reps work in Outlook, stop here and stay on lemlist.

Google classifies Gmail scopes as "sensitive". If every sender is in your own Workspace, an internal OAuth app needs no review. If any sender is outside your domain, Google has to verify the app before the consent screen stops showing them a warning.

You own the sending limits

Every sender's email channel has a daily_limit, which defaults to 30 sends in a rolling 24 hours, and a min_gap_seconds, which defaults to 60. When a sender reaches the cap, the step waits an hour and the enrollment shows waiting_limit. Each sequence also has a send window in the contact's time zone. You change a rep's limits with one call (Senders):

bash
curl -X PATCH $SEQ/v1/senders/u_42/channels/email \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"daily_limit":50,"min_gap_seconds":90}'

Enrollment spreads the first emails according to that cap. If you enroll 300 contacts for a rep with a cap of 30 a day, the first emails go out over ten days (Enrolling). Google's own limit is higher, at 2,000 messages a day per Workspace user and 500 on a trial account (Gmail sending limits). The cap that protects your domain is the number you set. No vendor algorithm changes it. The channel also stores a weekly_limit, but the executors do not enforce it yet.

Warm-up is your job

OpenSequence is not a warm-up service and runs no warm-up network. A new mailbox on a new domain has no reputation, and a sequencer cannot give it one. You can buy warm-up separately. lemwarm sells standalone at $29 per mailbox per month, or $24 billed yearly, according to lemwarm.com/pricing. Or you can raise the volume by hand. We would start a new mailbox at a daily_limit of 10 and raise it each week while bounces stay low and Postmaster Tools shows no complaints. Our guide to cold email deliverability when you self-host covers the DNS records and the ramp.

Google sets the rules you must meet. Every sender to Gmail needs SPF or DKIM and a spam rate below 0.3% in Postmaster Tools. Senders of more than 5,000 messages a day to Gmail also need SPF, DKIM and DMARC, and one-click unsubscribe (Google's email sender guidelines). Every OpenSequence email includes List-Unsubscribe and List-Unsubscribe-Post headers at any volume. An opt-out, a hard bounce or a complaint suppresses the contact and exits the enrollment (Consent and suppressions).

LinkedIn becomes a task again

This is the largest functional gap against lemlist Multichannel. OpenSequence does not automate LinkedIn. A LinkedIn step is a task. The rep gets "Connect with Dana on LinkedIn" with the profile link and a due date, does it by hand, and completes the task with an outcome. A linkedin_connect task completed as accepted resumes any step waiting on the connection. A linkedin_message task completed as replied counts as a reply in exits and analytics (LinkedIn steps).

We chose tasks because section 8.2 of LinkedIn's User Agreement forbids using "bots or other unauthorized automated methods to access the Services, add or download contacts, send or redirect messages". The account at risk is the rep's own profile. If we ship an automated adapter, it will be off by default behind a channel:linkedin_auto flag. It will need a written opt-in per sender, cap invitations per day and per week, and pause on any restriction signal. Anyone who turns it on still accepts that LinkedIn can restrict the rep's account. None of it ships today.

The data is in your Postgres

Every enrollment, run, message, signal and task is a row in the seq schema of your database (Database). The API and the webhooks are the supported contract. The tables can change between minor versions before 1.0. For an ad hoc question, run a read-only query. This one counts replies and bounces per rep over the last 30 days:

sql
select s.name,
       count(*) as enrolled,
       count(*) filter (where e.replied_at is not null) as replied,
       count(*) filter (where e.exit_reason = 'bounced') as bounced
from seq.enrollments e
join seq.senders s on s.id = e.sender_id
where e.mode = 'live'
  and e.enrolled_at > now() - interval '30 days'
group by s.name
order by bounced desc;

The service reads only the Gmail threads it started, and it stores reply bodies only when the project sets store_inbound_bodies. No third party holds a copy of your prospect list or your reps' replies.

Cost for 3, 10 and 25 senders

A sender here is one rep with one Google Workspace mailbox. We assume each rep sends at most 60 emails per working day, so even 25 reps stay under 33,000 emails a month. That fits inside lemlist's smallest Email tier. Prices are per month, billed yearly where the vendor offers it, as of October 2026.

We sized the hosting ourselves on Render. A 2 GB web service at $25 runs the API and the workers in one container, and a 1 GB Postgres costs $19. At 25 senders we move to a 2 GB Postgres at $40. These are estimates, not benchmarks. Mailboxes are Google Workspace Business Starter at its list price of $7 per user per month on an annual commitment (Google Workspace pricing). You pay for mailboxes with lemlist too.

Per month 3 senders 10 senders 25 senders
lemlist Email $55 $55 $55
lemlist Multichannel $261 $870 $2,175
OpenSequence hosting $44 $44 $65
Workspace mailboxes, any option $21 $70 $175

For email-only outbound, lemlist's Email plan costs about the same as hosting your own engine: $55 a month against $44 to $65. Once you add engineer time, self-hosting does not pay for itself on price there.

Against Multichannel, the gap at 10 reps is $826 a month, or about $9,900 a year. At 25 reps it is $2,110 a month. If you count mailboxes instead of reps, the gap shrinks. If 5 reps hold 5 mailboxes each, those 25 mailboxes need only 5 Multichannel users, or $435 a month.

The table leaves out engineering time. Someone has to deploy the container, register the Google OAuth client, set up DNS, connect each rep, and build the screens where reps see their tasks and enroll people. At $100 an hour, the $826 gap at 10 reps pays for about 8 hours a month. If your reps already work in a CRM or internal tool you control, that may be enough. If not, budget for building one. SMS and dialer calls go through Allo, which bills separately and is not in the table.

What you lose by leaving lemlist

  • A user interface. OpenSequence is headless, so you build the screens.
  • Personalized images and lemlist's template library.
  • Open and click tracking. OpenSequence counts replies and meetings only.
  • A/B tests on content. A split node is on the roadmap, not in the code.
  • Warm-up, inbox rotation and the deliverability hub.
  • Microsoft 365 and SMTP mailboxes.
  • LinkedIn automation, LinkedIn voice notes and WhatsApp.
  • The lead database, the email finder and enrichment credits.
  • A unified inbox. Replies stay in each rep's Gmail, and OpenSequence only detects them and exits the sequence.

In return, OpenSequence gives you things lemlist does not. Sequences are versioned JSON behind an API, so your product or an agent can create sequences and enroll contacts from code. Conditions can read a contact's open deal from Attio at decision time. A contact can be in only one active sequence per project. An enroll call that would break that rule fails with a 409 that names the conflict, so two reps never sequence the same person. OpenSequence stores the facts behind every branch decision.

Who should stay on lemlist

lemlist is the better choice in any of these cases:

  • Your reps send from Outlook or an SMTP server. OpenSequence cannot send through those mailboxes today.
  • Email is your only channel. $55 a month for unlimited users is hard to beat with any server bill.
  • LinkedIn automation brings in a large share of your pipeline, and your reps accept the account risk.
  • Nobody on the team will own a container, a database and an OAuth client.
  • You have no CRM or internal tool to act as the UI.
  • Image personalization or the lead database is the reason you bought lemlist.

Self-hosting fits a narrower team. That team has engineers on staff and Google Workspace mailboxes, triggers sequences from its own CRM or product, and pays for several reps on Multichannel whose LinkedIn steps could be manual. If that is you, the migration guide for replacing your sequencing software covers the move. If you are weighing writing the engine yourself, read what it takes to build your own sales sequencer first. If you also pay Apollo for data, our Apollo alternatives post covers that part.

FAQ

Is there an open source lemlist alternative?

Yes. OpenSequence is open source under Apache-2.0, and you host it yourself. It covers the sequencing part: multi-step email from each rep's Gmail, SMS and call tasks through Allo, LinkedIn steps as manual tasks, and reply, bounce and opt-out detection. It does not include lead data, warm-up, image personalization or a user interface.

How much does lemlist cost in 2026?

As of October 2026, the Email plan starts at $69 a month, or $55 billed yearly, for 50,000 emails with unlimited users and senders. Multichannel is $109 per user per month, or $87 billed yearly, with 5 senders per user. Enterprise pricing is custom. Data add-ons start at $20 a month for 2,000 enrichment credits.

Can I use lemwarm without lemlist?

Yes. lemwarm sells standalone on lemwarm.com/pricing. As of October 2026, Essential is $29 per mailbox per month, or $24 billed yearly, and Smart is $49, or $40 billed yearly. lemlist also includes lemwarm in every lemlist plan.

Is LinkedIn automation against LinkedIn's terms?

LinkedIn's User Agreement, section 8.2, forbids bots and other unauthorized automated methods that add contacts or send messages. LinkedIn can restrict the account that does it, which is the rep's own profile. That is why OpenSequence turns LinkedIn steps into tasks a person performs.

Does self-hosted cold email software improve deliverability?

Not by itself. Inbox placement depends on the domain's and the mailbox's reputation, SPF, DKIM and DMARC, volume and complaint rates. Self-hosting gives you exact control over daily caps and gaps per mailbox, but it adds no warm-up. You still have to ramp up new mailboxes and watch Postmaster Tools.

Do I need Google Workspace to self-host OpenSequence?

For email, yes. The email channel sends through the Gmail API with each rep's consent, and meeting detection reads Google Calendar. SMTP and IMAP support is on the roadmap for a later phase, with no date.

Get 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.