Email Marketing arenaEmail Marketing
Email marketing platforms — the campaign and lifecycle engine a startup points at its own audience: broadcasts, segments, automation flows, deliverability, and the AI-era heart of the arena: whether an agent can build a segment, draft a campaign, and drive sends through real APIs and MCP servers. Loops anchors the agent era with a hosted MCP server, agent skills, and llms.txt docs; Customer.io and Klaviyo ship official MCP servers of their own; Kit's v4 API is real but paid-plan-gated; Mailchimp is the legacy incumbent with a deep REST API and no agent surface; Bento is the indie SaaS favorite with marketing and transactional in one API. Scope, honestly drawn: transactional email APIs (Resend, Postmark, SendGrid) are the planned email-apis arena, agent-first mail clients are judged in email, and creator newsletter publishing (Substack, beehiiv) is the planned newsletter-platforms arena.
58 user stories · 348 judged cells · updated 2026-09-15 · Evidence as of 2026-09-14
Leaderboard — every product ranked by evidenceLeaderboard
| 1 | subscription-flat vs Loops ↗ | 45/100 | 54/100 | 34/100 | 5/100 | 47/100 | 19/35 verified · 1 disputed | 38/100 integrity | |||
| 2 | free-tier vs Customer.io ↗ | 60/100 | 21/100 | 38/100 | 10/100 | 20/100 | 17/29 verified | 54/100 integrity | |||
| 3 | subscription-flat vs Customer.io ↗ | 33/100 | 42/100 | 0/100 | 11/100 | 40/100 | 13/28 verified | 40/100 integrity | |||
| 4 | free-tier vs Customer.io ↗ | 39/100 | 15/100 | 19/100 | 12/100 | 11/100 | 4/23 verified | 0/100 integrity | |||
| 5 | free-tier vs Customer.io ↗ | 39/100 | 28/100 | 0/100 | 12/100 | 21/100 | 11/18 verified | 10/100 integrity | |||
| 6 | free-tier vs Customer.io ↗ | 24/100 | 17/100 | 0/100 | 9/100 | 17/100 | 8/22 verified · 2 disputed | 10/100 integrity |
Best by user type — persona-weighted winnersBest by user type
Per persona, the product with the highest persona-weighted coverage over just that persona's stories — not the same ranking as the overall PA Score leaderboard above.
Story matrix — every product × every judged storyStory matrix
Agenticness — how well agents can access and operate the productAgenticness
Agent access
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Agenticness — how well agents can access and operate the productPoint an agent at llms.txt or agent-oriented docs | ai-native | fullT 9/10 | fullT 9/10 | none 0/10 | fullT 7/10 | fullT 9/10 | fullT 9/10 |
| Agenticness — how well agents can access and operate the productRun the product headlessly / in CI for automation | ai-native | partialT 6/10 | partialT 6/10 | partialC 6/10 | partialX 4/10 | partialT 3/10 | partialT 3/10 |
| Agenticness — how well agents can access and operate the productPlug MCP servers into this product so it can use their tools | ai-native | n/a | none 0/10 | none 0/10 | n/a | n/a | none 0/10 |
| Agenticness — how well agents can access and operate the productConnect an agent via an official MCP server | ai-native | fullT 8/10 | fullT 8/10 | fullT 8/10 | none 0/10 | fullT 8/10 | fullT 8/10 |
| Agenticness — how well agents can access and operate the productUse an official CLI | ai-native | fullC 8/10 | partialC 5/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productDrive the product through a documented public API | ai-native | fullT 9/10 | fullT 9/10 | fullC 9/10 | fullC 8/10 | fullT 8/10 | fullT 7/10 |
| Agenticness — how well agents can access and operate the productIssue scoped/least-privilege API credentials for an agent | ai-native | none 0/10 | partialT 5/10 | partialC 6/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productBuild against official SDKs | ai-native | fullT 8/10 | partialT 6/10 | fullC 8/10 | none 0/10 | none 0/10 | partialT 3/10 |
| Agenticness — how well agents can access and operate the productSubscribe to events via webhooks | ai-native | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Agentic features
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Agenticness — how well agents can access and operate the productGet AI-generated insights and suggestions from my data inside the product | ai-native | none 0/10 | partialC 5/10 | none 0/10 | partialC 5/10 | partialT 4/10 | partialT 4/10 |
| Agenticness — how well agents can access and operate the productSet up automations that run autonomously in the background | ai-native | fullC 6/10 | fullC 8/10 | partialC 5/10 | partialC 3/10 | partialT 5/10 | fullC 7/10 |
| Agenticness — how well agents can access and operate the productDelegate tasks to a built-in AI assistant inside the product | ai-native | none 0/10 | partialT 6/10 | none 0/10 | partialC 3/10 | none 0/10 | partialC 3/10 |
| Agenticness — how well agents can access and operate the productOperate the product with natural-language commands | ai-native | partialT 6/10 | fullT 8/10 | partialT 6/10 | none 0/10 | fullT 7/10 | fullT 7/10 |
Api quality
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Agenticness — how well agents can access and operate the productExplore an interactive API reference with runnable examples | ai-native | partialT 4/10 | partialT 5/10 | partialC 5/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productDownload a machine-readable API spec (OpenAPI or equivalent) | ai-native | fullT 9/10 | fullT 9/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productTest against a sandbox environment without touching production data | ai-native | none 0/10 | none 0/10 | fullC 7/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productRely on versioned APIs with a documented deprecation policy | ai-native | partialT 3/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Analytics attribution — stories about analytics attribution in this arenaAnalytics attribution
Api metrics
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Analytics attribution — stories about analytics attribution in this arenaPull campaign and flow performance metrics through the API into my own warehouse or dashboards | developer | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Attribution
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Analytics attribution — stories about analytics attribution in this arenaAttribute signups or revenue to specific emails and flows, not just opens and clicks | founder | partialC 5/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | partialC 6/10 |
Reporting core
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Analytics attribution — stories about analytics attribution in this arenaRead opens, clicks, unsubscribes, and conversions per campaign and per automation step, over time | marketer | none 0/10 | none 0/10 | none 0/10 | partialC 3/10 | none 0/10 | partialC 4/10 |
Audience segmentation — stories about audience segmentation in this arenaAudience segmentation
Agent segments
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Audience segmentation — stories about audience segmentation in this arenaAn agent can translate a plain-language audience description into a real segment via the platform's programmatic surface | ai-native | none 0/10 | partialT 4/10 | partialT 4/10 | none 0/10 | none 0/10 | none 0/10 |
Api contacts
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Audience segmentation — stories about audience segmentation in this arenaCreate, update, and suppress contacts with custom properties through the API at production scale | developer | partialT 4/10 | partialT 6/10 | partialC 5/10 | partialX 3/10 | none 0/10 | partialT 5/10 |
Api segments
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Audience segmentation — stories about audience segmentation in this arenaCreate and update segments, tags, or lists programmatically and read back exactly who is in them | developer | partialT 4/10 | partialX 3/10 | none 0/10 | none 0/10 | none 0/10 | partialT 6/10 |
Segment core
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Audience segmentation — stories about audience segmentation in this arenaBuild audience segments from profile attributes, tags, and behavioral events, and they stay live as data changes | marketer | partialC 5/10 | fullX 7/10 | partialC 3/10 | partialC 4/10 | partialC 3/10 | fullC 7/10 |
Automation depth — how much of the product can run unattendedAutomation depth
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Automation depth — how much of the product can run unattendedPerform bulk operations across many items at once | ai-native | none 0/10 | partialC 5/10 | none 0/10 | disputedD 4/10 | partialT 5/10 | partialC 6/10 |
| Automation depth — how much of the product can run unattendedDefine rules that trigger actions automatically on events | ai-native | partialC 6/10 | fullC 8/10 | partialC 3/10 | partialC 4/10 | partialC 4/10 | fullC 7/10 |
| Automation depth — how much of the product can run unattendedSchedule recurring jobs or workflows | ai-native | partialC 4/10 | partialT 6/10 | partialC 3/10 | partialC 3/10 | partialC 3/10 | partialC 3/10 |
| Automation depth — how much of the product can run unattendedVersion, review, and roll back my automations | ai-native | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Campaign sending — stories about campaign sending in this arenaCampaign sending
Agent campaigns
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Campaign sending — stories about campaign sending in this arenaAn agent can draft a campaign against a segment and leave it scheduled or queued for a human to approve before send | ai-native | partialC 6/10 | partialT 5/10 | partialC 4/10 | none 0/10 | partialC 6/10 | partialT 4/10 |
Api campaigns
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Campaign sending — stories about campaign sending in this arenaCreate and schedule a campaign or broadcast entirely through a documented public API, without touching the dashboard | developer | partialC 4/10 | partialC 3/10 | partialC 6/10 | partialC 5/10 | fullT 7/10 | none 0/10 |
Campaign core
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Campaign sending — stories about campaign sending in this arenaCompose an email campaign, pick its audience, and send or schedule it — the arena's table-stakes loop | marketer | fullC 7/10 | fullC 7/10 | fullC 7/10 | fullX 7/10 | fullC 8/10 | partialC 5/10 |
Experiments
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Campaign sending — stories about campaign sending in this arenaA/B test subject lines or content variants and have the winner picked from real engagement | marketer | none 0/10 | none 0/10 | none 0/10 | partialC 5/10 | partialC 4/10 | none 0/10 |
Deliverability domains — stories about deliverability domains in this arenaDeliverability domains
Deliverability signals
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Deliverability domains — stories about deliverability domains in this arenaSee bounce, complaint, and blocklist signals per send and get actionable guidance when deliverability degrades | marketer | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Domain auth
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Deliverability domains — stories about deliverability domains in this arenaAuthenticate my own sending domain — SPF, DKIM, DMARC alignment — with guided DNS setup and verification | ops | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Suppression
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Deliverability domains — stories about deliverability domains in this arenaUnsubscribes, bounces, and spam complaints are suppressed automatically and honored across every send type — CAN-SPAM/GDPR hygiene by default | ops | none 0/10 | partialC 3/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Integrations webhooks — stories about integrations webhooks in this arenaIntegrations webhooks
First party integrations
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Integrations webhooks — stories about integrations webhooks in this arenaConnect the platform to my existing stack — Stripe or Shopify, a CDP like Segment, my product database — with maintained first-party integrations | ops | none 0/10 | partialC 4/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Webhooks
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Integrations webhooks — stories about integrations webhooks in this arenaSubscribe webhooks to delivery and engagement events — sends, opens, clicks, bounces, unsubscribes — with a documented, signed payload | developer | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Lifecycle automation — stories about lifecycle automation in this arenaLifecycle automation
Automation core
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Lifecycle automation — stories about lifecycle automation in this arenaBuild multi-step lifecycle automations — welcome series, onboarding, winback — with branches, delays, and exit rules | marketer | partialC 5/10 | partialX 6/10 | partialC 4/10 | none 0/10 | partialC 4/10 | partialC 6/10 |
List portability — stories about list portability in this arenaList portability
Export
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| List portability — stories about list portability in this arenaExport my entire audience — contacts, custom fields, tags, engagement history, and suppression list — in an open format, self-serve | founder | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | partialC 3/10 |
Import migration
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| List portability — stories about list portability in this arenaMigrate in from another email platform with guided list import that preserves tags, custom fields, and unsubscribe state | marketer | partialC 5/10 | none 0/10 | none 0/10 | partialC 2/10 | none 0/10 | partialX 5/10 |
Marketing data access — stories about marketing data access in this arenaMarketing data access
Agent access
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Marketing data access — stories about marketing data access in this arenaAn agent can pull my whole email program — audiences, live automations, recent campaign results — programmatically and report on what's working | ai-native | partialT 5/10 | partialT 6/10 | partialT 6/10 | partialC 5/10 | partialT 4/10 | partialT 6/10 |
Api access
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Marketing data access — stories about marketing data access in this arenaRead per-person engagement history — what was sent, opened, clicked — through the API for any contact | developer | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Scoped access
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Marketing data access — stories about marketing data access in this arenaMint scoped or read-only API credentials so an agent or contractor can read analytics without the power to send | ops | none 0/10 | none 0/10 | partialC 6/10 | none 0/10 | none 0/10 | none 0/10 |
Openness — open source, data portability, and self-hosting storiesOpenness
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Openness — open source, data portability, and self-hosting storiesDo everything through the API that I can do in the UI | ai-native | partialT 6/10 | disputedD 4/10 | partialC 5/10 | partialX 5/10 | partialT 5/10 | partialT 5/10 |
| Openness — open source, data portability, and self-hosting storiesExport all of my data in open formats and leave | ai-native | none 0/10 | none 0/10 | none 0/10 | disputedD 3/10 | none 0/10 | partialC 3/10 |
| Openness — open source, data portability, and self-hosting storiesRead the product's source under an open license | ai-native | none 0/10 | n/a | n/a | none 0/10 | n/a | none 0/10 |
| Openness — open source, data portability, and self-hosting storiesSelf-host the core product | ai-native | n/a | n/a | n/a | none 0/10 | n/a | none 0/10 |
Privacy posture — data-handling and privacy storiesPrivacy posture
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Privacy posture — data-handling and privacy storiesChoose where my data is stored (region/residency) | ai-native | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Privacy posture — data-handling and privacy storiesPrevent my data from being used to train AI models | ai-native | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Privacy posture — data-handling and privacy storiesControl data retention and deletion | ai-native | none 0/10 | partialC 6/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Privacy posture — data-handling and privacy storiesOpt out of telemetry and usage tracking | ai-native | none 0/10 | none 0/10 | none 0/10 | n/a | none 0/10 | none 0/10 |
Template content — stories about template content in this arenaTemplate content
Ai content
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Template content — stories about template content in this arenaHave the platform's built-in AI draft or refine subject lines and email copy from a brief, inside the composer | marketer | none 0/10 | partialC 5/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Editor
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Template content — stories about template content in this arenaDesign on-brand emails with a visual editor, reusable templates, and personalization tokens that render correctly across clients | marketer | partialX 6/10 | partialC 5/10 | partialC 4/10 | partialX 3/10 | none 0/10 | none 0/10 |
Templates as code
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Template content — stories about template content in this arenaManage email templates as code — HTML/MJML or API-managed templates with variable substitution — under version control | developer | partialX 6/10 | partialX 3/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Transactional sending — stories about transactional sending in this arenaTransactional sending
Transactional api
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Transactional sending — stories about transactional sending in this arenaSend one-to-one transactional email — receipts, magic links, notifications — through the same platform's API alongside marketing sends | developer | fullT 8/10 | partialC 6/10 | none 0/10 | partialX 5/10 | none 0/10 | fullC 8/10 |
Transactional hygiene
| Story | Persona | ||||||
|---|---|---|---|---|---|---|---|
| Transactional sending — stories about transactional sending in this arenaTransactional email is kept separate from marketing — its own templates, suppression rules, and reputation — so a receipt still delivers to an unsubscribed contact | ops | partialC 4/10 | partialC 5/10 | none 0/10 | partialX 4/10 | none 0/10 | partialC 5/10 |
Adjacent arenas — categories often shopped togetherAdjacent arenas
Shopping this category often means shopping these too.