Run your newsletter on autopilot with AI agents
Draft, segment, and schedule campaigns automatically to your whole list — then review and edit everything in a visual editor. Pay for emails sent, never for subscribers stored.
NewLumail in ChatGPT“Prepare next Tuesday's newsletter from my latest article.”
Campaign
Weekly digest #49
Audience
Engaged readers
Schedule
Tuesday · 09:00
A different kind of email tool. Built for people who write, ship and sell on their own — Lumail keeps the whole list in one system, and lets an agent drive it when you would rather not click.
One pipeline
Campaigns, sequences and transactional email leave through the same verified domain, with the same deliverability.
Every action is a tool
89 organization-scoped tools over MCP. Whatever the dashboard can do, your agent can do — with your permissions.
Runs without you
Welcome flows, drips, conditional branches. Build the sequence once and it keeps sending while you write the next one.
Write the email, not the layout
That is not a screenshot — it is the actual editor, running right here. Select a word for the formatting menu, type “/” to drop in a button. In the app, ⌘J tightens the paragraph you selected and never rewrites your voice behind your back.
- Variables and conditional blocks
- Plain-text and HTML from the same draft
- Preview across clients before you send
> who clicked the pricing link but never bought?
⏺ lumail - query_subscribers (MCP)(clicked: "/pricing")
⎿ 312 subscribers
⏺ lumail - bulk_add_tags (MCP)(tags: ["hot-lead"])
⎿ 312 tagged
⏺ lumail - add_subscriber_to_workflow (MCP)(workflow: "Objections")
⎿ 312 enrolled
⏺ Done. The first email goes out in 2 hours.
> show me the numbers on Thursday
Your agent has the same keys you do
Connect Lumail to ChatGPT, Claude, Cursor or your own code, and 89 organization-scoped tools show up. Query subscribers, draft a campaign, launch a sequence, read the numbers — in the conversation, not in a dashboard.
- MCP server, REST API, CLI and SDK
- Scoped to one organization, revocable at any time
- Every agent action lands in the activity log
Trigger
Send email
Wait
Condition
Yes path
No path
Sequences that keep running
Drag a trigger, an email, a wait, a condition. Publish once and Lumail handles enrolment, timing and exits while you go back to writing.
- Triggers on signup, tag, click or API event
- Branches, goals and exit rules
- A/B test any step
Ship your first AI product in 30 days
One email a day. Unsubscribe whenever.
4,190
1,338
31.9%
Somewhere to send the traffic
Describe the page, get a real one on your own domain — with the form already wired to the right tags and the right welcome sequence.
- Your subdomain on lumail.io, or a custom domain
- Views, conversions and conversion rate per page
- Iterate by asking for changes
import { Lumail } from "lumail";
await lumail.emails.send({
to: "[email protected]",
from: "[email protected]",
subject: "Your login code",
content: "# Your code\n\n{{code}}",
});
✓ queued · priority lane
Receipts and login codes, same domain
Point your app at the SDK or at smtp.lumail.io and product email leaves through the reputation you already warmed up with your newsletter. One domain, one dashboard, one bill.
- TypeScript SDK, REST API or plain SMTP
- Markdown, HTML or Tiptap content
- Priority lane, separate from campaign sends
89 tools. Whatever the dashboard does, your agent does.
This list is generated from the live MCP registry — the same organization-scoped tools ChatGPT, Claude, Claude Code, Cursor, Hermes, and OpenClaw get when you connect. Search it.
list_campaignsList email campaigns in your organization with optional filtering by status and search.create_campaignCreate a new email campaign.get_campaignGet detailed information about a specific campaign by ID.get_campaign_progressGet the sending progress of a campaign that is currently being sent.get_campaign_analyticsGet detailed analytics for a sent campaign including opens, clicks, and link performance.duplicate_campaignCreate a complete copy of a campaign including all content and settings.edit_campaignThe ONLY tool for modifying campaigns (name, subject, preview, content).auto_fit_campaign_imagesApply the editor's magic-wand auto-fit to a draft campaign's images: reads each image's natural dimensions and fits it without upscaling.get_available_filtersGet the machine-readable filter schema (types, operators, required fields) used by update_campaign_filters, query_subscribers and segments.update_campaign_filtersUpdate the recipient filters of a DRAFT campaign.send_test_emailSend a test email for a campaign to one or more email addresses (max 5).render_campaignRender a campaign to its final HTML and plain text exactly as delivered (snippets inlined, variables resolved, unsubscribe footer added).schedule_campaignSchedule a DRAFT campaign (status becomes SCHEDULED).cancel_campaign_scheduleCancel a scheduled campaign, reverting it back to DRAFT status.list_campaign_historyList version history entries for a campaign.get_campaign_history_entryGet a specific campaign history entry with full content.restore_campaign_historyRestore a campaign to a previous version from its history.archive_campaignArchive a DRAFT campaign.unarchive_campaignRestore an ARCHIVED campaign back to DRAFT status so it can be edited and scheduled again.
list_subscribersList subscribers in your organization.query_subscribersList subscribers matching composed filters - the same engine the UI uses, cursor-paginated.count_subscribersCount subscribers matching composed filters - same engine as query_subscribers but returns only the total.get_subscriberGet detailed information about a specific subscriber by ID or email.add_subscriberAdd a new subscriber or update an existing one.unsubscribeUnsubscribe a subscriber by ID or email.bulk_add_tagsAdd one or more tags to multiple subscribers at once.bulk_remove_tagsRemove one or more tags from multiple subscribers.create_eventCreate a custom event for a subscriber.list_subscriber_eventsList events for a subscriber.get_subscriber_emailsGet emails sent to a subscriber with their delivery status.
list_workflowsList graph-based workflow automations.get_workflowGet a Workflow draft graph, published version information, settings, and active subscriber count.create_workflowCreate a graph-based Workflow draft.configure_workflow_draftConfigure an entire Workflow draft (steps, edges, waits, branches, actions, goals, settings) in one atomic operation.update_workflow_draftReplace a Workflow draft graph atomically.publish_workflowValidate and publish the current Workflow draft as a new immutable version.update_workflow_statusActivate, pause, or archive a published Workflow.add_subscriber_to_workflowManually enroll a subscriber in an active, published Workflow.remove_subscriber_from_workflowCancel active Workflow runs for a subscriber.delete_workflowDelete an unused Workflow draft, or archive it when published versions or run history must be preserved.list_workflow_groupsList Workflow groups with their conflict strategy and assigned workflow count.get_workflow_groupGet a Workflow group, its assigned workflows, and current active-run counts.create_workflow_groupCreate a Workflow group.update_workflow_groupRename a Workflow group or change its conflict strategy for future enrollments.set_workflow_groupAssign a Workflow to an existing group, or detach it with groupId:null, without replacing its graph or publishing.delete_workflow_groupPermanently delete a Workflow group after a fresh read.
list_segmentsList saved subscriber segments in your organization.get_segmentGet detailed information about a specific segment including all filter configurations.create_segmentCreate a new subscriber segment with filter configuration.update_segmentUpdate a segment's name or filter configuration.delete_segmentPermanently delete a segment.duplicate_segmentCreate a copy of a segment with all its filters.
list_tagsList all tags in your organization.create_tagCreate a new tag in your organization.delete_tagDelete a tag by ID or name.get_or_create_tagsGet existing tags or create new ones by name.
get_org_statsGet overall organization statistics including subscriber counts, campaign metrics, and resource totals.get_subscriber_growthAnalyze subscriber growth over a specified time period.get_subscriber_statsGet subscriber growth and status statistics for your organization.get_subscribers_by_tagGet all subscribers that have a specific tag.count_subscribers_by_statusGet subscriber count by status.
send_emailSend a transactional email to a subscriber.
get_deliverability_healthAssess the organization's deliverability health (sender reputation).list_suppressed_subscribersList suppressed subscribers (BOUNCED and/or COMPLAINED), most recently suppressed first, with pagination.reactivate_subscriberReactivate a suppressed subscriber (BOUNCED, COMPLAINED, or UNSUBSCRIBED) by setting their status back to SUBSCRIBED.
list_domainsList the organization's email sending domains with their verification status.create_domainRegister a new email sending domain and return the DNS records the user must add.get_domain_dns_recordsGet a domain's DNS records with their per-record verification status, to show the user what to configure and what is still pending.verify_domainRe-check a domain's verification, DKIM and MAIL FROM state and return the updated per-record DNS statuses.create_email_senderCreate an email sender (from-address) as localPart@domain on an already VERIFIED domain.
upload_imageImport an image from a public http/https URL into your organization media library.list_imagesSearch the organization media library.describe_imageSet or update the description of an image already in the media library.
import_subscribersBulk import subscribers (up to 500 per call).export_subscribersExport subscribers from your organization.
fetch_web_pageFetch a web page and convert to markdown format
get_available_variablesGet all available variables for email content (built-in, organization, custom fields, snippets)get_skillGet task-specific documentation.
get_writing_styleGet the organization's default writing style for content generation including persona, audience, vocabulary, and rules.update_writing_styleModify writing style settings (persona, audience, vocabulary, rules)get_email_sendersList all configured email senders (from addresses) for this organization.get_custom_fieldsList all custom subscriber field definitions for this organization.get_email_snippetsList email snippets (reusable content blocks) for this organization.get_email_snippetGet a single email snippet by id (snp_...) including its full TipTap JSON content.create_email_snippetCreate a new email snippet (reusable content block).update_email_snippetUpdate an email snippet by id (snp_...): name, description, and/or its TipTap JSON content ({ type: "doc", content: [...] }, same node types as campaigns).archive_email_snippetArchive an email snippet by id (snp_...).unarchive_email_snippetRestore an archived email snippet by id (snp_...).update_organization_settingsUpdate organization name and timezone
“Lumail made me like email — it turned email from a side thing into the main marketing channel for my Linkhub business.”

“I'm not a marketer, but email is powerful. Thanks to the Codex integration, Codex actually implements all the marketing for me.”

“I was using MailerLite and sending emails was a constant stress. Now my agent reviews it, fixes it, and sends it for me. I've sent over 3 million emails with Lumail.”

Creators, indie founders and small teams send with Lumail every day.
You pay for emails sent. Never for subscribers stored.
Growing your list should not raise your bill. Import 50,000 contacts on the free plan if you want — you are billed on what actually leaves.
Everything working end to end, for nothing.
- 3,000 emails/month included
- No overage — the send simply stops
- 2 team members
- 100 AI credits/month
- 1 sending domains · 10 workflows
- MCP, API, CLI and SDK access
For a list that pays for itself.
- 20,000 emails/month included
- Then $0.0006 per extra email
- 10 team members
- 1,000 AI credits/month
- 5 sending domains · 10 workflows
- Bring your own ChatGPT or Claude subscription
High volume, more seats, lower rate per email.
- 400,000 emails/month included
- Then $0.0004 per extra email
- 100 team members
- 10,000 AI credits/month
- Unlimited domains and workflows
- Bring your own ChatGPT or Claude subscription
Transactional and marketing email share the same quota. No card for the free plan.
Full pricing22 things you get on every plan. Free included.
No feature paywall, no “contact sales” tier, no per-subscriber tax. You pay for emails delivered — the product itself is the same on every plan.
- Unlimited subscribers — no per-contact pricing
- Unlimited lists, tags and segments
- Unlimited campaigns and broadcasts
- No line on the invoice for list size
- Dormant contacts cost you nothing
- 3,000 emails a month free, no card
- Visual workflow builder with branches and goals
- A/B test any step of a sequence
- AI-assisted editor with ⌘J rewrites
- Variables and conditional blocks
- Plain-text and HTML from one draft
- Capture pages on your own domain
- Filter builder for segments
- Inbox preview before you send
- MCP server with 89 organization-scoped tools
- REST API, TypeScript SDK and CLI
- SMTP relay at smtp.lumail.io:587
- Transactional email on a separate instant lane
- Guided SPF, DKIM and DMARC setup
- Activity log for every action, human or agent
- Open, click and conversion analytics
- CSV import with no list-size fee
- The “Sent with Lumail” badge switches off
- Bring your own ChatGPT or Claude subscription
- More seats, more domains, more AI credits
Do you charge per subscriber?
No. There is no subscriber limit on any plan, and no line on your invoice for list size. Import 50,000 contacts on day one if you want — the price only moves when you send.
So what will it actually cost me?
The first 3,000 emails each month are free, no card required. Premium is $20/month with 20,000 emails included, then $0.0006 per extra email. A 20,000-person list emailed four times a month is 80,000 emails — $20 plus $36 of overage, so $56. Run your own numbers in the calculator on this page.
How is this different from Mailchimp, Kit, or Beehiiv?
Some competitors now expose MCP too, so compare the real workflow instead of the AI label. Lumail's full catalog has 89 organization-scoped tools across campaigns, workflows, subscribers, analytics, and transactional email, with a visual app, CLI, SDK, and API beside them. The billing model is the other difference: Lumail prices emails delivered and stores unlimited subscribers, so a dormant record does not raise your bill.
Can Lumail send my app's transactional emails too?
Yes, and that's the point. Point your app at our SMTP relay (smtp.lumail.io:587, STARTTLS) or the API and your password resets, receipts, and OTPs ship from the same place as your newsletter. They travel in a separate instant lane, so a 50,000-recipient campaign can never make a login code wait.
Do I need to be a developer to use Lumail?
No. Everything runs from the dashboard: a visual workflow builder, a filter builder for segments, and an AI-assisted editor. The API and SDK are there when you want them, not a prerequisite.
Can my AI agent run my newsletter?
If you already work in Claude Code, Cursor, or another MCP client, add your API token and 89 organization-aware tools show up. Ask for a campaign, a segment, or last month's numbers and the agent does it. Entirely optional — the dashboard does the same job.
Don't take our word for it.
Pick the question you actually have. We hand it to the assistant you already trust — unedited, with our own site in scope.
“I run a newsletter and I'm considering Lumail (lumail.io) for it. Read their site and tell me honestly who Lumail is a good fit for, who it is a bad fit for, and what I should check before switching.”
Import your list, send tonight.
3,000 emails a month on the free plan, no card. Bring your domain, bring your agent, keep your subscribers.