v8.0.2
Patch
Current version
October 8, 2026
An Ask AI button on every page, so ChatGPT, Claude, Grok or Perplexity can explain what you are looking at.
- A new Ask AI button sits at the bottom-right of every page. Click it to open ChatGPT, Claude, Grok or Perplexity with a ready-made question about the page you are on, or copy the question and paste it into any other assistant such as DeepSeek or Gemini
- The question only names the page and links to the matching help page on subsimail.com. None of your contacts, campaigns, mailboxes or other data is ever included, and nothing is sent anywhere until you click a button
- Upgrading from 8.0.1 needs nothing special -- docker compose pull and up -d, or replace the binary
v8.0.1
Patch
October 7, 2026
Workspace switcher in the top bar, a simpler Add workspace page, and a faster dashboard.
- The workspace switcher now lives in the top bar and is always there, even with a single workspace, with Add workspace one click away
- Add workspace has its own page with three short steps, and renaming a workspace is a small Rename link instead of an always-open text box
- Faster pages: pages, scripts and the stylesheet are now compressed and cached by your browser, so the app opens quicker, most noticeably on a slow connection or a server far away
- The domain health card no longer slows the dashboard down: its checks run in parallel and are kept ready in the background, and it shows only the current workspace's domains
- The license check now also tells us which build you run (Linux, Windows or Docker, and the CPU type) so we know which downloads matter; nothing about your computer or network is sent
- Upgrading from 8.0.0 needs nothing special -- docker compose pull and up -d, or replace the binary
v8.0.0
Major
October 6, 2026
Workspaces: run every client from one install, one login and one URL, with each client's contacts, campaigns, mailboxes and plan kept completely separate.
- Workspaces: a workspace keeps one client's contacts, lists, campaigns, mailboxes, templates, webhooks, API keys, inbox and dashboard apart from every other workspace. Switch between them from the menu on the left; an address that hard-bounced is blocked everywhere, while unsubscribes and complaints stay inside their workspace
- One license per workspace: each workspace has its own plan, billing cycle and token, bought on your subsimail.com account. Two workspaces are free; the second paid workspace is 20% off and every one after that 10% off. Add one in the app by pasting its token
- Roles per workspace: the same person can be an admin in one workspace and view-only in another. People only see, and can only switch to, the workspaces they are given; admins can only give access to workspaces they run themselves
- People who leave: pause (blocks sign-in until you enable it), archive (hidden, email free to reuse, optional hand-over of what they created) or remove from one workspace; super admins and admins can also change someone's sign-in email
- Several Google and Microsoft apps per workspace: connect Gmail or Outlook accounts from different organisations, each through its own app. For Gmail we now strongly recommend SMTP/IMAP with an app password (no 7-day reconnecting)
- Tracking on its own port: open, click and unsubscribe links are served by a tracking-only port (3001 by default), so your login can stay behind a VPN while tracking stays public. Give each client its own tracking domain and use "Check my tracking domain" on your subsimail.com account to confirm it works
- One license, one install: a license now runs on one SubsiMail install at a time (restoring a database backup keeps working; "Release this install" and a 24-hour silence handle moves)
- Upgrading from 7.x needs nothing special -- docker compose pull and up -d, or replace the binary. Everything you have becomes the Default workspace, and your license, users and opt-outs move across automatically
v7.0.0
Major
October 2, 2026
A unified inbox for every reply, mailbox rotation, email verification, AI drafts with your own key, call tasks and domain-health checks.
- New Inbox: every email exchange with someone in your contacts, across all your connected mailboxes (IMAP, Gmail and Outlook), in one place — with unread counts, labels, search inside emails, a formatted-email view, and a rich-text reply that stays in the same thread
- Instant on-screen alerts: a small notification appears on any page the moment a new email arrives, and clicking it opens that conversation; mailboxes are now checked every minute instead of every five
- Mailbox rotation: send one campaign from several mailboxes. Contacts are dealt out evenly, each stays with one mailbox so threads stay together, edits copy to every mailbox, and a rotation group counts as one campaign against your plan
- Email verification: a free automatic basic check on every contact (and campaigns now skip addresses that are certainly bad — switch it off in Settings), plus optional deep checks through your own ZeroBounce or MillionVerifier account
- AI drafts with your own key: connect Claude or any OpenAI-compatible service to draft inbox replies and sequence emails. A person always presses Send; nothing is sent automatically and there is no markup on your provider's charges
- Call tasks: add a phone-call step to a sequence. A new Calls page queues each call with a tap-to-call number and your notes, and records how it went
- Domain health on the dashboard: SPF, DMARC and DKIM checked for every sending domain, with plain-language fixes
- Webhooks now post readable messages straight to Slack incoming-webhook addresses; the contact page opens as a read-only summary with a single Edit button, and replies use a rich-text editor with no subject box
- REST API: sequence steps now carry a kind (email or call), and edits made through the API follow a rotation group's mailboxes
- Upgrading from 6.x needs nothing special — docker compose pull and up -d, or replace the binary. After upgrading, existing contacts get the background email check and the inbox begins storing emails with your contacts (both can be tuned in Settings)
v6.0.0
Major
September 23, 2026
A new Postgres-backed engine for accounts sending at real scale, real bounce and deliverability protection, and a hosted live demo you can try with no install and no card.
- Switched the underlying database to Postgres (bundled, zero-config) so large contact lists, imports, and tracking events stay fast and reliable at scale — existing installs upgrade in place, no data migration steps required
- New deliverability protection: real bounce detection, a daily per-mailbox sending ceiling, automatic warm-up ramp for new accounts, a small test batch before a full send, and an early pause that asks before a problem becomes a deliverability incident
- The Dashboard and campaign pages now show plainly why sending stopped — the real error, mailbox bounce health, and the exact checkpoint decision — instead of just going quiet
- Closed two bounce-visibility blind spots: a broken IMAP/OAuth connection now surfaces clearly instead of silently failing, plus an escape hatch for accounts stuck in a bad health state
- Sequence steps can now wait for a reply and branch — with automatic reply detection (via IMAP UID scan) and optional auto-reply — instead of every step firing on a fixed schedule regardless of what the recipient did
- Sending Calendar now shows an exact forecast with full per-day tooltips, a readable list layout on narrow screens, and dark-mode fixes
- Contact list import got a friendlier column-mapping map UX, lists can now be archived instead of only deleted, and a handful of system fields (source, imported-at) are tracked automatically per contact
- Click-tracking links now filter out known bot/prefetch traffic so open and click rates better reflect real humans
- New: try SubsiMail instantly at demo.subsimail.com — a real, working, pre-seeded copy of the app in your browser, no install and no card details needed
v5.0.0
Major
September 18, 2026
Three-way duplicate handling for contact imports, CSV exports on every stat card, and client-side pre-import validation.
- Contact imports (and the ‘Add a contact’ form) now support three duplicate rules — Skip, Merge (fill in blanks), or Replace (overwrite entirely) — plus an ‘existing contacts only’ scope for re-syncing enrichment data without creating new contacts
- Add several contacts at once from the same form with a ‘+’ button, instead of a CSV round-trip for just a handful of rows
- Every dashboard and campaign stat card now offers a ‘Download CSV’ of the exact filtered rows behind that number
- New ‘Validate file’ button on the import mapping screen checks your file for bad emails, dates, and numbers entirely in your browser before you import — nothing is sent to the server for this step
- Failed sends now record why, visible in the drill-down table and its CSV export
- Fixed: the upgrade prompt on the Accounts page could get stuck open, blocking clicks elsewhere on the page
- The Sending Calendar's campaign list now shows the same ‘License limit reached’ badge as the rest of the app
- The license page's ‘Reconfirm now’ button now shows clear success feedback instead of a silent redirect
v4.0.0
Major
September 2026
License limits are now visible and enforced everywhere in the UI, not just silently at send time.
- Connecting more mailboxes than your plan covers now shows a clear ‘License limit reached’ badge on that account, with a one-click upgrade prompt — instead of the account silently never sending, with no indication anywhere why
- The same badge and upgrade prompt now show on the Dashboard, Campaigns list, a campaign's own page, the Sending Calendar, and the New Campaign / connect-account flows for any campaign or account beyond your plan's seat count
- A site-wide banner now appears whenever more accounts are connected than your license covers (e.g. after a downgraded or lapsed subscription), telling you exactly how many are paused and linking straight to your plan
- The License settings page and Accounts page both show a plain ‘Email accounts: used / limit’ count, in red with a tooltip explaining which accounts are affected once you're over
- New per-campaign ‘Sent via SubsiMail’ backlink toggle: still mandatory on the free plan, but now a free choice for every paid plan (previously it was only ever shown on the free tier, with no way to opt in on a paid one)
v3.2.0
Minor
September 2026
Contact imports now run in the background, scale to hundreds of thousands of rows, and notify you when done.
- Importing a CSV or XLSX file no longer ties up the page (or a reverse proxy's request timeout) for the whole import — it now runs as a background job with a live progress page (row count, percentage, and a created/updated/duplicate/skipped breakdown updating every few seconds)
- CSV imports stream row-by-row instead of loading the entire file into memory, and rows commit in batches instead of one at a time — roughly a 75-100x throughput improvement, so a six-figure-row file finishes in minutes instead of the better part of an hour
- Every skipped row is now recorded with why (missing/invalid email, or the underlying error), downloadable as a CSV with reasons right from the import summary
- Safe to close the tab: the Contacts page's Lists table shows a live “Importing… N%” badge on any list with a running import, so navigating away and coming back — even much later — always finds your way back to that job's progress
- If you've configured system email, you now get a completion email with the final counts and links to the imported list and any failed-rows download
v3.1.1
Patch
September 2026
Multi-step sequences now thread correctly over Amazon SES, plus deeper campaign/dashboard drill-downs.
- Fixed a bug where a sequence's follow-up steps could send with a blank subject and land as a disconnected new email instead of a reply in the same thread — root-caused to Amazon SES silently replacing the Message-ID on every send; the app now reads back SES's real assigned ID and anchors the next step to it
- Fixed the REST API's step-creation endpoint sending a blank subject on follow-up steps (the web UI's own form was never affected)
- Every dashboard and campaign Insights stat card (including Unsubscribes) is now clickable, drilling into the same paginated per-contact table — previously only the dashboard's per-campaign table cells linked anywhere
- That drill-down table now shows the request's User-Agent on opens/clicks, so a corporate link-scanner's automated hit is easy to tell apart from a real recipient
- Contact name and email are now clickable through to that contact's own page everywhere a contact list is shown, including for contacts with no name on file
- The campaign Preview tab's contact picker is now a type-to-search box instead of loading every enrolled contact into one dropdown
v3.1.0
Minor
September 2026
Campaign schedule visibility, an A/B message preview, and password-field usability.
- Campaign list and dashboard gain a “Schedule” column — at a glance, when a campaign is due to start or when it actually started, shown in its own timezone
- An active campaign that isn't currently sending now explains why right on its detail page (account paused, or outside the account's or campaign's own sending window) instead of leaving you guessing
- A/B test steps get a read-only side-by-side view of both variants, plus a badge marking which steps have a B variant
- Adding contacts from a list that's already fully enrolled now shows exactly which list(s) matched, instead of silently doing nothing
- Every password field in the app now has a show/hide toggle
- Google/Microsoft OAuth setup and the SMTP/IMAP connect form moved into proper dialogs for consistency with the rest of the app
- License and setup pages now show every timestamp in your own timezone and 12-hour time, matching the rest of the app
v3.0.0
Major
September 2026
A/B testing, a real batch-sending engine per account, and full timezone support.
- A/B testing on any campaign — split contacts into groups A/B at enrollment and test subject, body, and/or send-time independently per step; results show side by side in Insights, with no auto-declared winner
- Sending limits rebuilt from the ground up: each account now has its own timezone and AM/PM sending window, and sends in randomized batches (e.g. 10–30 emails every 15 minutes) shared fairly across every campaign using that account at once, instead of a flat seconds-based gap
- An account now pauses itself automatically if a send attempt looks like the provider blocking it for volume (clears on its own the next day) or any other account-wide error (shows the actual provider error text) — Resume is always available either way
- A live “will this reach your daily limit” hint on the sending-limits dialog, so you don't have to do that math by hand; an auto-calculate mode still works out batch size/interval from a daily target
- Reply-To on a campaign is now a picker over your connected accounts (or any outside address), with a Connected / Not connected note explaining whether reply/bounce metrics will actually be tracked
- Every timezone picker in the app (campaigns, sending accounts, the dashboard calendar) now offers the full real-world zone list with each one's current UTC offset shown, and a campaign whose timezone differs from its sending account's own gets a non-blocking heads-up
- Sending-hour fields everywhere now show AM/PM instead of a 24-hour number
v2.1.2
Patch
September 2026
Quick date-range presets and a campaign filter on the dashboard.
- Today / Yesterday / This week / Last week / This month / Last month / Custom presets on the dashboard and the per-campaign Insights tab, instead of only manual From/To dates
- New campaign filter on the dashboard — a multi-select checkbox dropdown, scoping every chart, the map, and the campaign breakdown table to just the campaigns you pick
- Dashboard's default range is now “this week” instead of a rolling 30 days
v2.1.1
Patch
September 2026
A Settings hub, and a fix for API key creation.
- New Settings page in the sidebar — one place for API keys, your profile, license, and (for admins) organization, webhooks and team
- API keys are finally reachable from the UI (they were there all along, just unlinked)
- Fixed: reloading the page right after creating an API key no longer silently creates another one
- The “Copy” button on a new API key now confirms it copied
v2.1.0
Minor
September 2026
Visual analytics with a world map, and typed custom fields.
- Dashboard charts — open / click / reply / bounce rates, activity over time, an engagement funnel, and a campaigns-by-volume bar, all for the date range you pick
- World map of where your opens come from, plus a country ranking — country resolved locally from the open, nothing sent to a third party
- New “Insights” tab on every campaign: the same charts scoped to one campaign, plus a per-step performance breakdown
- Open and click events now record their country; it shows in the drill-down tables too
- Custom fields are now typed — text, number, email, phone, URL, date, date & time, or yes/no — with the right input on the contact form and validation on save and import
- Everything ships inside the binary as always: no CDN, no external calls, upgrade with a plain docker pull
v2.0.1
Minor
September 2026
Smart Search, a one-command database backup, and hardened login security.
- Smart Search — a query language (plus a point-and-click builder) for finding contacts by status, activity, custom fields, lists, campaigns and more — in the app and over the API
- New API endpoint: GET /api/v1/contacts/search, same query language, same auth
- backup-db CLI command — a one-off, consistent database snapshot to any path you choose
- Accounts now lock temporarily after repeated failed login attempts
- Raspberry Pi / ARM64 Docker images built natively, no emulation
- A fresh install now checks for a newer version on first run
v2.0.0
Major
September 2026
Team-grade access control, a full audit trail, and a public REST API.
- Universal audit trail — every change records who, when, and from where
- Archiving and soft-delete everywhere — nothing is ever hard-deleted, restore any time
- Per-user sharing and access control on campaigns, contacts, and templates
- Full JSON REST API (/api/v1) with personal API keys — drive SubsiMail from n8n, Zapier, or your own code
- IP capture and client-timezone awareness in the audit log
- Per-campaign Reply-To override
v1.2.0
Minor
July 2026
Encrypted credentials, scheduling, and a rebuilt campaign workspace.
- OAuth tokens and SMTP/IMAP passwords encrypted at rest
- Outbound webhook delivery for API integrations
- Campaign scheduling with timezone-aware sending windows
- Campaign detail page rebuilt with inline sequence editing and a settings tab
- Free tier set to 1 connected mailbox, with an attribution footer on its outgoing mail
v1.1.0
Minor
July 2026
Team roles, real licensing, and a faster contacts workspace.
- Multi-user accounts with role-based access control
- Signed (Ed25519) license verification, replacing the early activation stub
- Contacts search, filtering, and pagination
- License account limit enforced at send time, not just at connect time