# Changelog | Plunk

Features and improvements we have shipped, newest first. Plunk is open source, so the full commit history is on GitHub: https://github.com/useplunk/plunk/commits/next

## September 2026

- **[Snooze instead of unsubscribing](https://docs.useplunk.com/concepts/contacts)** (Sep 11): 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.
- **Archive campaigns** (Sep 5): Hide campaigns and drafts you no longer need from the campaign list. Their stats are kept, and you can restore them.

## August 2026

- **Cancelled campaigns return to draft** (Aug 30): Cancelling a campaign drops its unsent emails and turns it back into an editable draft.
- **Subscribe and unsubscribe events** (Aug 21): Plunk tracks an event whenever a contact subscribes or unsubscribes, so workflows can trigger on it.
- **[MCP server](/features/mcp)** (Aug 17): 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.
- **API rate limits for self-hosted instances** (Aug 13): Turn on rate limits, with burst allowances, for the track, send, and contact endpoints.
- **[Liquid-aware template editor](https://docs.useplunk.com/guides/template-language)** (Aug 10): The editor flags Liquid syntax errors as you type, highlights logic tags, and inserts ready-made if, case, and for blocks from a menu.
- **One-click unsubscribe** (Aug 9): Marketing emails include the RFC 8058 headers, so the unsubscribe button built into inboxes works without opening a page.
- **Insert steps anywhere in a workflow** (Aug 4): Add a step between two existing steps, or disconnect and reconnect branches, without rebuilding the workflow.
- **Swedish translations** (Aug 4): Unsubscribe and preference pages are now available in Swedish.

## July 2026

- **[Liquid templating](https://docs.useplunk.com/guides/template-language)** (Jul 26): Subjects and bodies render with LiquidJS, so templates get conditionals, loops, filters, and fallback values on top of plain variables.
- **Headers per email type** (Jul 11): Marketing, transactional, and headless emails each get only the standard headers their type calls for.
- **Idempotency keys for sends and events** (Jul 10): Retry requests safely. A key reused within 24 hours is rejected, so the same email or event is never sent twice.
- **[90-day email body retention](https://docs.useplunk.com/guides/data-retention)** (Jul 10): Plunk deletes rendered email bodies after 90 days. Stats and activity are kept.

## June 2026

- **Japanese translations** (Jun 21): Unsubscribe and preference pages are now available in Japanese.
- **Normalized contact emails** (Jun 15): Differences in letter case or stray whitespace no longer create duplicate contacts.
- **Tables with filters and bulk actions** (Jun 11): Contacts, templates, campaigns, and workflows share one table with sorting, faceted filters, and bulk delete.

## May 2026

- **Variables in webhook steps** (May 10): Use contact and event data in the URL, headers, and body of a workflow webhook step.
- **Duplicate a workflow** (May 9): Copy a workflow with all its steps and branches, then edit the copy.
- **Change subscriptions from a workflow** (May 9): The Update contact step can now subscribe or unsubscribe the contact.
- **[Free email tools](/tools)** (May 6): Check SPF, DKIM, DMARC, and MX records, inspect email headers, or test an email for spam.
- **[Segments built from segments](/features/segments)** (May 4): Filter on membership of another segment, or on events a contact has not triggered recently. A win-back audience takes 2 rules.

## April 2026

- **Configurable attachment limits** (Apr 29): Self-hosted instances can raise the attachment size and count, up to the 40 MB that SES allows.
- **Command palette** (Apr 24): Jump to any page, recent item, or project from anywhere in the dashboard.
- **Guided onboarding** (Apr 19): New projects start with a short checklist based on what you use Plunk for: campaigns, transactional email, or automations.
- **Email IDs on webhook events** (Apr 13): Delivery, open, and bounce events include the ID returned by the send request, so you can match each one to its email.
- **[Headless templates](https://docs.useplunk.com/concepts/templates)** (Apr 2): Send your own HTML without the Plunk footer. Unsubscribed contacts are still skipped.

## March 2026

- **Chinese translations** (Mar 24): Unsubscribe and preference pages are now available in Simplified, Traditional, and Hong Kong Chinese.
- **Italian translations** (Mar 18): Unsubscribe and preference pages are now available in Italian.
- **[Multi-branch conditions](/features/workflows)** (Mar 11): A condition step can split into as many branches as you need, like a switch statement, with a default branch for everything else.

## February 2026

- **Static segments** (Feb 23): Add contacts to a segment by hand. Its members only change when you change them.
- **Spanish, Polish, and Czech translations** (Feb 19): Unsubscribe and preference pages are now available in Spanish, Polish, and Czech.
- **Change a workflow trigger** (Feb 18): Switch an existing workflow to a different trigger event without rebuilding it.
- **[Inbound email](/features/inbound-email)** (Feb 17): Receive email at any address on your domain. Senders are added as contacts, and every message triggers an event and a webhook.
- **Custom recipients in workflows** (Feb 17): Send a workflow email to your team or any other address, not only the contact.

## January 2026

- **[Inline images](https://docs.useplunk.com/api-reference/public-api/sendEmail)** (Jan 31): Attach an image with a Content-ID and reference it from your HTML. It appears in the email body instead of as an attachment.
- **Bounce and complaint filters** (Jan 21): Filter the activity feed to bounces and complaints, the events that affect your sending reputation.
- **Portuguese and Bulgarian translations** (Jan 15): Unsubscribe and preference pages are now available in Portuguese and Bulgarian.
- **Older-than segment filter** (Jan 12): Match contacts whose date field is more than a set number of days, weeks, or months in the past.
- **Disable signups on self-hosted instances** (Jan 12): Block new account signups so only existing users can sign in.

## December 2025

- **Email previews in activity** (Dec 29): Open any sent email from a contact's page or the activity feed to see exactly what they received.
- **[Email verification endpoint](https://docs.useplunk.com/api-reference/public-api/verifyEmail)** (Dec 24): Check an address for valid syntax, disposable domains, plus-addressing, and MX records before you add it.
- **Translated unsubscribe and preference pages** (Dec 21): Set a language per project, or per contact with a locale field, and these pages follow it. Plunk supports 16 languages today.
- **Bulk actions on contacts** (Dec 18): Select contacts across pages, or every contact at once, then subscribe, unsubscribe, or delete them together.
- **Security center** (Dec 11): 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.
- **Campaigns from templates or past campaigns** (Dec 10): Start a campaign from a template, or duplicate a campaign you already sent.
- **HTML code editor** (Dec 9): Hand-written HTML templates open in a CodeMirror editor with syntax highlighting and code folding.

[Pricing](/pricing) | [Documentation](https://docs.useplunk.com)
