What's new
in Plunk.

Features and improvements we have shipped, newest first. Plunk is open source, so the full commit history is on GitHub.

October 2026

3 updates

Analytics by stream and period

Analytics splits into overview, deliverability, engagement, and audience tabs. Filter by period or by transactional email, campaigns, or workflows, and see every rate next to the period before.

OverviewDeliverabilityEngagementAudience

Last 30 days

Campaigns
  • Delivery rate99.1%+0.4 pts
  • Open rate42.8%+3.2 pts
  • Bounce rate0.6%−0.2 pts
plunk_check_workflow

Build workflows through the MCP server

Your agent can create workflows with every step type, connect branches, and check a workflow for errors. It asks you to confirm before enabling one that sends email.

September 2026

8 updates

Snooze instead of unsubscribing

Contacts can pause your emails for 2 weeks, 1 month, 6 months, or 1 year instead of leaving for good. Plunk resubscribes them automatically when the snooze ends.

Read the docs: Snooze instead of unsubscribing

Pause emails for

2 weeks1 month6 months1 year

Emails resume on October 11, 2026

text/plain

Plain text alternative on every email

Plunk sends a plain text version alongside the HTML of every email, generated from your content. Spam filters score HTML-only messages more harshly, so this lifts deliverability without any change to your code.

Spam reports: 3

Contacts behind campaign stats

Click a campaign's bounce, spam report, or unsubscribe count to see the contacts behind it. A contact who unsubscribes twice from the same email counts once.

bounce@simulator.amazonses.com

Safe bounce testing with the SES simulator

Emails to the Amazon SES mailbox simulator trigger events, workflows, and webhooks like any other, but never count toward your bounce and complaint rates.

cy

Welsh translations

Unsubscribe and preference pages are now available in Welsh.

Delete account

Delete your account

Delete your account from the account page once you have left or deleted every project.

archived: true

Archive campaigns

Hide campaigns and drafts you no longer need from the campaign list. Their stats are kept, and you can restore them.

August 2026

8 updates

MCP server

Connect Claude, Cursor, or any MCP client to your project. Your agent can manage contacts, draft campaigns, and send email, and it asks you to confirm before sending a campaign.

Explore the feature: MCP server
claude mcp add plunk -- npx -y @plunk/mcp

Send this campaign to 2,431 people?

SendKeep as draft

Liquid-aware template editor

The editor flags Liquid syntax errors as you type, highlights logic tags, and inserts ready-made if, case, and for blocks from a menu.

Read the docs: Liquid-aware template editor
Hi {{ contact.firstName | upcse }}
Unknown filter “upcse”
CANCELLED → DRAFT

Cancelled campaigns return to draft

Cancelling a campaign drops its unsent emails and turns it back into an editable draft.

contact.unsubscribed

Subscribe and unsubscribe events

Plunk tracks an event whenever a contact subscribes or unsubscribes, so workflows can trigger on it.

RATE_LIMIT_ENABLED=true

API rate limits for self-hosted instances

Turn on rate limits, with burst allowances, for the track, send, and contact endpoints.

List-Unsubscribe-Post

One-click unsubscribe

Marketing emails include the RFC 8058 headers, so the unsubscribe button built into inboxes works without opening a page.

Insert Step

Insert steps anywhere in a workflow

Add a step between two existing steps, or disconnect and reconnect branches, without rebuilding the workflow.

sv

Swedish translations

Unsubscribe and preference pages are now available in Swedish.

July 2026

4 updates

Liquid templating

Subjects and bodies render with LiquidJS, so templates get conditionals, loops, filters, and fallback values on top of plain variables.

Read the docs: Liquid templating
Rendered for Ana

Hi Ana, your order is on its way

  • Linen shirt× 2
  • Canvas tote× 1
Precedence: bulk

Headers per email type

Marketing, transactional, and headless emails each get only the standard headers their type calls for.

Idempotency-Key

Idempotency keys for sends and events

Retry requests safely. A key reused within 24 hours is rejected, so the same email or event is never sent twice.

June 2026

3 updates

Tables with filters and bulk actions

Contacts, templates, campaigns, and workflows share one table with sorting, faceted filters, and bulk delete.

Search campaignsStatus: Sent
  • August newsletter
  • Win-back, Pro users
  • Spring launch
2 selectedDelete
ja

Japanese translations

Unsubscribe and preference pages are now available in Japanese.

Ana@X.com → ana@x.com

Normalized contact emails

Differences in letter case or stray whitespace no longer create duplicate contacts.

May 2026

8 updates

Segments built from segments

Filter on membership of another segment, or on events a contact has not triggered recently. A win-back audience takes 2 rules.

Explore the feature: Segments built from segments
  • In the segment Pro customers
  • No session in the last 30 days
Matching contacts1,284
Preview as

Preview campaigns as a contact in the segment

Preview as now lists contacts from the campaign's segment, so you check the email with data from someone who will receive it.

MAIL_FROM_SUBDOMAIN=emails

Custom MAIL FROM subdomain

Self-hosted instances can choose the subdomain used as the MAIL FROM domain for verified domains.

POST /users/{{ contact.id }}

Variables in webhook steps

Use contact and event data in the URL, headers, and body of a workflow webhook step.

Onboarding (Copy)

Duplicate a workflow

Copy a workflow with all its steps and branches, then edit the copy.

subscribed: false

Change subscriptions from a workflow

The Update contact step can now subscribe or unsubscribe the contact.

v=spf1 include:amazonses.com

Free email tools

Check SPF, DKIM, DMARC, and MX records, inspect email headers, or test an email for spam.

ana@x.com, ben@y.com

Paste contacts into a static segment

Paste a list of email addresses to add the matching contacts to a static segment in one go.

April 2026

6 updates

Command palette

Jump to any page, recent item, or project from anywhere in the dashboard.

loop⌘K
  • Switch to Loop Studio
  • Loop Studio (staging)
  • Campaign: Loop weekly

Guided onboarding

New projects start with a short checklist based on what you use Plunk for: campaigns, transactional email, or automations.

Get started

2 of 4
  • Verify your domain
  • Send your first event
  • Create a template
  • Build a workflow
MAX_ATTACHMENT_SIZE_MB

Configurable attachment limits

Self-hosted instances can raise the attachment size and count, up to the 40 MB that SES allows.

"plan": null

Remove contact fields with null

Set a field to null to remove it from a contact. Empty strings are ignored, so they never overwrite existing data.

emailId

Email IDs on webhook events

Delivery, open, and bounce events include the ID returned by the send request, so you can match each one to its email.

type: HEADLESS

Headless templates

Send your own HTML without the Plunk footer. Unsubscribed contacts are still skipped.

March 2026

3 updates

Multi-branch conditions

A condition step can split into as many branches as you need, like a switch statement, with a default branch for everything else.

Explore the feature: Multi-branch conditions

Condition

Which plan are they on?

ProSend Pro tips
TeamInvite your team
Everyone elseSend welcome
zh-CN zh-TW zh-HK

Chinese translations

Unsubscribe and preference pages are now available in Simplified, Traditional, and Hong Kong Chinese.

it

Italian translations

Unsubscribe and preference pages are now available in Italian.

February 2026

5 updates

Inbound email

Receive email at any address on your domain. Senders are added as contacts, and every message triggers an event and a webhook.

Explore the feature: Inbound email

Ana Ruiz

To support@

now

Can you resend my invoice?

New contact

Ana Ruiz

type: STATIC

Static segments

Add contacts to a segment by hand. Its members only change when you change them.

es pl cs

Spanish, Polish, and Czech translations

Unsubscribe and preference pages are now available in Spanish, Polish, and Czech.

trigger: user.upgraded

Change a workflow trigger

Switch an existing workflow to a different trigger event without rebuilding it.

to: team@yourdomain.com

Custom recipients in workflows

Send a workflow email to your team or any other address, not only the contact.

January 2026

5 updates

Inline images

Attach an image with a Content-ID and reference it from your HTML. It appears in the email body instead of as an attachment.

Read the docs: Inline images

Thanks for your order

Receipt #4021 from Loop Studio

email.bounced

Bounce and complaint filters

Filter the activity feed to bounces and complaints, the events that affect your sending reputation.

pt bg

Portuguese and Bulgarian translations

Unsubscribe and preference pages are now available in Portuguese and Bulgarian.

olderThan 30 days

Older-than segment filter

Match contacts whose date field is more than a set number of days, weeks, or months in the past.

DISABLE_SIGNUPS=true

Disable signups on self-hosted instances

Block new account signups so only existing users can sign in.

December 2025

7 updates

Email previews in activity

Open any sent email from a contact's page or the activity feed to see exactly what they received.

Welcome to LoopDelivered

Welcome to Loop

From hello@loopstudio.io

Hi Ana, your workspace is ready. Here are three things to try first.

Translated unsubscribe and preference pages

Set a language per project, or per contact with a locale field, and these pages follow it. Plunk supports 17 languages today.

Français

Se désabonner

Ne plus recevoir les e-mails de Loop Studio ?

Se désabonner

Security center

See your project's bounce and complaint rates next to Plunk's thresholds, with a warning well before a rate is high enough to disable the project.

Last 7 days

Healthy
  • Bounce rate1.2%

    Warning at 5%

  • Complaint rate0.02%

    Warning at 0.075%

POST /v1/verify

Email verification endpoint

Check an address for valid syntax, disposable domains, plus-addressing, and MX records before you add it.

Select all 12,480

Bulk actions on contacts

Select contacts across pages, or every contact at once, then subscribe, unsubscribe, or delete them together.

Duplicate campaign

Campaigns from templates or past campaigns

Start a campaign from a template, or duplicate a campaign you already sent.

<table role="presentation">

HTML code editor

Hand-written HTML templates open in a CodeMirror editor with syntax highlighting and code folding.

Start sending with Plunk.

Start on the free plan with 1,000 emails a month, no credit card needed. When you need more, every email is $0.001, with unlimited contacts and every feature included.