New: an MCP server — your AI assistant drafts, you send

Newsletter infrastructure that holds at scale

Connect the SMTP provider you already pay for, then send to seven-figure lists on a schedule that looks human, segment on what readers actually do, and measure without counting the bots. Do the groundwork from your AI assistant if you like — every campaign it builds waits for you to press send.

Monthly or annual plan, card required at signup. You bring the SMTP — SendGrid, Mailgun, SES or any host.

1M+
Recipients in a single campaign send
Your SMTP
SendGrid, Mailgun, Postmark, SES — or your own relay
24
Segment fields, with 13 operators and match all, any or none
15
MCP tools for your AI assistant — and not one of them can send

Sending

You bring the pipe. We do the rest.

Carrier Crow is not an email service provider and has no interest in becoming one. Point it at an SMTP account you already have and it handles everything between your template and that connection.

Settings → Send configurations → New
Try it

Pick your sending provider

SendGrid uses the literal string “apikey” as the username; your API key is the password.

A sandbox: nothing is sent and nothing you type leaves your browser. The fields, provider presets and ports are the real ones.

You bring

  • Your provider

    SendGrid, Mailgun, Postmark, Amazon SES, your own Postfix — anything that speaks SMTP.

  • Your domain

    Your sending domain, your SPF, DKIM and DMARC records, under your control.

  • Your reputation

    Deliverability stays with the provider you chose, and moves with you if you switch.

We do

  • Per-recipient rendering

    Templates compiled once, then personalised per subscriber on a fast substitution path.

  • Scheduling and pacing

    A blast, a throttled send, or organic timing inside the hours you choose — resolved before a single message is handed over.

  • Throttling and retries

    Pooled connections, backoff and idempotent retries, so a hiccup is not a duplicate send.

  • One-click unsubscribe

    The List-Unsubscribe headers Gmail and Yahoo require, on every campaign, whichever provider sends it.

  • Tracking that knows a bot

    Opens, clicks and ad impressions, scored for automation as they arrive and attributed per campaign.

  • Consent and suppression

    Unsubscribes, opt-in records and suppression enforced before anything is queued.

Webhooks

Included

Deliver each send as an HTTPS request to a CRM, a gateway or your own service — rendered per recipient, JSON or form-encoded, and HMAC-signed when you set a secret.

SMS

On request

Through Twilio, with consent kept per channel: STOP revokes it, START restores only what STOP removed, and big sends ask you to confirm the estimated cost first.

Works with your AI

Let your AI do the groundwork. Press send yourself.

Carrier Crow is an MCP server, so the assistant you already use can work with your lists. Ask in plain English: it can look up subscribers and saved segments, import a list, write and edit templates, and set up a campaign — as a draft, every time.

Any assistant that speaks MCP

Standard Model Context Protocol over HTTPS, so it connects to Claude or any other assistant or editor that supports remote MCP servers.

Sign in, or use a key

Clients that support it sign in with your Carrier Crow login and see only the projects you pick — revoke any time from Connected apps. Others can send an API key.

Drafts, never sends

Fifteen tools, and not one of them can send, schedule or resume a campaign. That stays a deliberate click in the app.

Every project, any size of list

One connection can span several projects. Imports run in bulk, and reads return only the fields you ask for.

Your AI assistant · Carrier Crow MCP server

Tool names are the MCP server’s own. A dramatisation of one request, not a recording.

And an AI Email Builder in the app

Describe the email and get a finished template in the visual editor, then refine it in plain English. It writes with your real merge fields, so the personalisation it adds is personalisation your send can fill.

Campaigns

Send like a person, not a cron job

Every message in a blast leaves in the same instant. Throttle it to a steady rate, or let organic timing spread the list across the hours you choose, with each gap drawn the way real traffic arrives.

Campaigns → Sending pattern
Try it
Window
Rate
One-time blastAll 150 at 9am — the same second
Throttled10 every 15 min, until 12:30pm — a metronome
Organic timingDone by 3:38pm · gaps from 14s to 10m
6am9am12pm3pm6pm9pm

150 recipients. The organic lane runs the product’s own pacing in your browser: an exponentially distributed gap before each message, sized so the list fills three quarters of the window, bent by the business-hours curve when you pick it. The shaded band is the window.

One-time or scheduled

Send now, or at a set time in your own timezone.

Throttled

A fixed batch on a fixed interval, for providers with rate limits you would rather not meet.

Organic timing

A randomly drawn gap before every message, inside the hours you allow. Start it outside them and it waits, marked Scheduled, until the window opens.

Repeat

Run a one-time, throttled or organic campaign hourly, daily or weekly, on the days you pick. The series keeps a performance history across its runs.

Approval links

Send a link to a client or editor. They check the desktop and mobile previews, then send or schedule it — no account needed.

Data lease

On request

Share engaged readers with a partner: subscribers who meet your open or click rule on linked campaigns are copied to the partner’s list, once each.

Audience

Segment on what people did. Keep consent straight.

Slice the list by behaviour as well as by profile, let readers choose what they hear, and make sure a withdrawn yes stays withdrawn.

Segments on what people did

24 fields and 13 operators: profile, tags, groups and custom attributes, plus engagement — who opened or clicked a particular campaign, how long since they last did. Match all, any or none, in nested groups.

One-click opt-ins

Drop a trigger link into any email and a single click moves that reader into a new list — no form, no login. Each link is signed per recipient, so it can’t be forwarded into someone else’s subscription.

A preferences centre

Readers choose which groups they hear from, so leaving one isn’t leaving everything. Every opt-out — a single group or the whole list — lands on that subscriber’s timeline.

Consent kept straight

Opt-outs are never silently reversed: someone who unsubscribed has to say so again, explicitly. Every opt-in is written to an append-only log, and double opt-in is supported.

Imports that don’t time out

Large CSV imports run in the background in chunks, and the whole list exports as a stream rather than a file assembled in memory.

Email or phone

A subscriber can be known by email, phone or both, so an SMS-only list is a list like any other.

Audience → Segments → New segment
Try it
Match
920 of 2,480 subscribers match (37.1%)
EmailNameSigned upOpens 30d
hana.okafor1@post.ioHana Okafor2025-07-190
vic.moreau4@mailbox.devVic Moreau2025-05-040
chi.kowal7@post.ioChi Kowal2026-05-010
wren.tan9@mailbox.devWren Tan2025-07-290
sam.grant15@post.ioSam Grant2025-05-240

A sandbox of 2,480 generated subscribers, filtered in your browser, using the product's own thirteen operators. The real builder has 24 fields, custom attributes, nested groups, and conditions on specific campaigns someone opened or clicked.

Sponsorship

Run the ad. Then find out if it worked.

Most tools will happily tell you 4.1% beat 3.8% on two hundred impressions. That is not a result, it is noise with a decimal point. This one knows the difference.

01

Build the creative

Headline, copy, button and artwork — or image-only when the sponsor supplies finished art. Rendered into email-safe markup, so a creative can’t break the surrounding template.

02

Drop a slot in the template

Write {% ad "primary" %} wherever the unit belongs. Bind two or more creatives to that slot and it becomes an A/B test — there is no separate switch to find.

03

Read the result, not the noise

Every reader sees one variant consistently. The report shows impressions, clicks and CTR with a confidence range, and refuses to crown a winner until the numbers support one.

“Not enough data yet” is a real answer

Below the sample floor no rate is shown at all. Above it, a winner is named only when a two-proportion test says the gap is bigger than chance. You will see that message more often than a trophy — which is the point.

Drag the slider and watch a real test refuse to be rushed:

Campaign → Ad performance
Try it
Creative A

How two people shipped a warehouse OS

A short read on going from spreadsheet to system in one quarter.

Read the story →
Impr.
320
Clicks
10
CTR
3.13%

95% confidence: 1.71% – 5.66%

Creative B

30 days of Northwind, free

Inventory software your team will actually open. Set up in an afternoon.

Start the trial →
Impr.
320
Clicks
13
CTR
4.06%

95% confidence: 2.39% – 6.83%

320

Rates appear at 200 impressions per creative; a verdict unlocks at 1,000. Drag to watch it change as the send progresses.

Keep running

Not enough data yet — 1,000 impressions per creative are needed before a winner means anything (lowest so far: 320).

Simulated from a fixed random seed, but the arithmetic is the product's own — the same two-proportion test, Wilson intervals and sample floors, copied from the reporting service.

Reporting

Count what people did, not what the bots did

Every open and click is scored for automation as it arrives, so the rates you report are human ones. Then ask the awkward questions: how long do subscribers really stay, who is still opening but never clicking, what is growth once you net off churn?

Engagement, as it arrives
  • ClickSecurity scanner following every linkLeft out
  • ClickNo user agent at allLeft out
  • OpenApple Mail Privacy ProtectionFlagged
  • OpenGmail image proxy — a real readerCounted
  • ClickOutlook on a laptopCounted

The default rule: 70 and up stays out of your rates. A stricter setting also drops Apple Mail Privacy Protection opens. Raw events are kept, so changing the rule restates your history.

Reports → Subscriber lifetime
18 months
Median subscriber lifetime
90 days
88%
180 days
79%
1 year
64%
0%50%100%0mo6mo12mo18mo24mo

Sample data. The real report is a Kaplan–Meier estimate over your own list: someone who is still subscribed counts for as long as they have been with you, instead of being dropped.

Or build the report yourself

Filter on any subscriber property and choose the shape of the answer. Save it, pin it to a dashboard, and it re-runs on a rolling window from then on.

Subscriber lifetimeAttritionRolling date rangesCustom attributesDashboards on your home pageRepeat-campaign historyStreaming CSV export

Count

How many match, split by status.

List

The rows themselves, with the columns you choose, exportable as CSV.

Breakdown

Grouped by status, group, tag, source, signup month or a custom attribute.

Over time

Signups against churn, by day or by month.

Questions

The things people actually ask

Free tools

Useful before you’ve signed up for anything

Three tools for newsletter operators. They run in your browser, need no account, and keep nothing.

Bring your list. Keep your readers.

Import in minutes, send your first campaign the same day, and find out what your audience is really doing.

Get started