# Changelog for Broadcast

> Read about the latest updates, new features, and improvements to Broadcast.

Source: https://sendbroadcast.net/changelog

## Release Timeline

# Changelog

Track all updates, new features, and improvements to Broadcast

## October 22, 2026

Version 2.51.1  Released

- Fixed: Security hardening for first-time setup and the admin areas.
- Improved: The background jobs dashboard now needs the system monitoring permission. Sudo users keep access.
- Improved: The public demo has tighter limits, and visitors can now try sending, exports and profile changes.

## October 21, 2026

Version 2.51.0  Released

- New: Sequences now list the subscribers that stopped with an error. You can retry the failed step for one subscriber, or retry or dismiss all of them at once.
- New: Sequence webhooks report retried and dismissed subscribers (sequence.subscriber_resumed with reason "retry", sequence.subscriber_removed with reason "dismissed").
- Fixed: Subscribers with a suppressed address no longer wait forever at a sequence email step. After the upgrade, they skip the email and continue the sequence, so later tag, move and webhook steps run.
- Fixed: A failed SMTP sequence email no longer counts as sent in sequence stats.
- Improved: Team members without permission to manage subscribers no longer see sequence actions they cannot use.
- Improved: The sequence subscriber table now fits smaller screens.

#### Read more about this release

- [When a Sequence Email Fails: Review It, Retry It, or Let It Go](https://sendbroadcast.net/blog/retry-failed-email-sequence-steps)

Version 2.50.4  Released

- Fixed: The subscriber count for a sequence in the API, the dashboard and the sequences page now shows the subscribers who are currently in the sequence.
- Fixed: In the subscriber list of a sequence, a step time that is in the past now shows "due ... ago" instead of "in ...".
- Fixed: The status badges for sequence subscribers (Active, Paused and the others) now use the language of the dashboard.
- Improved: The Postmark unsubscribe warnings and the footer block hint now have translations in all languages.

## October 19, 2026

Version 2.50.3  Released

- Fixed: Broadcast now logs at the info level in production. Before, it logged every database query, which could fill the server's disk.
- Fixed: The RAILS_LOG_LEVEL setting now changes the log level. An empty or unknown value means info.
- Fixed: The log file for the Application Logs page can no longer grow without limit, and the upgrade removes a leftover file to free disk space.
- Improved: The Application Logs page keeps showing new lines after the server empties the log file.

Version 2.50.2  Released

- Fixed: With Postmark unsubscribe handling, a block email's footer block now uses Postmark's unsubscribe link, so subscribers no longer see two unsubscribe links.
- Improved: Sequence steps that use the broadcast stream now show the Postmark unsubscribe handling notice.
- Improved: The Postmark notice in the editor and the send dialogs now says when the footer block already handles Postmark's link.

Version 2.50.1  Released

- Fixed: The drag-and-drop editor opens for confirmation templates again; it showed an error page instead.
- Improved: When a footer block has its unsubscribe link turned off, the API warning and the editor hint now say how to send the email with no unsubscribe link, such as a double opt-in confirmation.

## October 18, 2026

Version 2.50.0  Released

- New: Sequences have a Reply-To address in their settings, so replies to sequence emails go to the inbox you choose instead of the sender address.
- New: Each Send Email step in a sequence can set its own Reply-To address, which overrides the sequence's.
- New: Each Send Email step on the sequence canvas shows how many emails it sent, opened and clicked, with open and click rates and bounces.
- New: The Sequences API accepts and returns `reply_to` on sequences and on sequence steps.

## October 17, 2026

Version 2.49.0  Released

- New: Every channel now has a default confirmation email, and upgrading adds one to existing channels.
- New: Opt-in popups can show again every N days, set in the form editor.
- New: Mail sent through the Test Server is marked "Captured, not delivered" on broadcasts, transactional emails, the activity table (with a Captured filter) and the CSV export.
- New: The topic unsubscribe page has a Resubscribe button, with its own editable page that names the topic.
- New: A topic's field is locked, and the topic cannot be deleted, while a broadcast, sequence, form or segment uses it; the message lists what uses it.
- New: Tag topics remember when a subscriber turned them off, so only the subscriber can turn them back on.
- Fixed: An address the mail server rejects as unknown is now bounced in broadcasts, sequences and transactional emails.
- Fixed: Bounce and complaint reports for sequence emails now deactivate and suppress the subscriber.
- Fixed: Opt-in forms no longer email addresses that bounced or complained.
- Fixed: An unsubscribe link for someone already unsubscribed shows the done page instead of asking again.
- Fixed: The Recipients card now counts only delivered mail.
- Fixed: The API subscriber list no longer fails for subscribers whose custom data is stored as text.
- Fixed: Older unsubscribe links work again when the latest email was from a sequence.
- Fixed: The "captured in the test inbox" notice no longer disappears when a send finishes at once.
- Improved: Open and click rates leave out mail captured by the Test Server.
- Improved: Imports, the API, sequences and the AI assistant keep topics a subscriber turned off, and the API shows them as false.
- Improved: Manual installs warn at startup when the encryption keys are missing or still the sample placeholders; replace placeholders with real keys before you upgrade.
- Improved: A topic used only by sent broadcasts can now be deleted.
- Improved: The API explains why it refuses to delete the default confirmation template.
- Improved: The license key message explains how to add LICENSE_KEY and links to the setup guide.
- Improved: Help links open the docs for your installed version.
- Improved: "Send now" with no recipients names the topic, and the form editor shows why a save failed.

## October 15, 2026

Version 2.48.0  Released

- New: File Assets API to list, upload (multipart or base64), view and delete images in a channel's file library, with new file asset read and write permissions on API tokens.
- New: Upload several images at once on the File Assets page; files that cannot be uploaded are listed with the reason.
- New: Text and Image + text blocks have a Link colour setting, in the block editor and in the API (styles.linkColor).
- New: Set a subscriber's topics on their profile.
- New: Segments can filter by topic, matching exactly who receives email for that topic.
- New: The agent CLI has file-assets commands to list, show, upload and delete files.
- Fixed: After a failed subscriber save, the custom data field no longer shows invalid JSON.
- Fixed: The colour square next to a colour field now follows a typed hex value.
- Fixed: Saving a subscriber no longer records unchanged empty fields in the history.
- Improved: Only the subscriber can turn a topic back on after turning it off. The profile, the API and imports keep it off, and the API returns a parameter_ignored warning.
- Improved: The subscriber API returns null instead of an empty string for a blank first name, last name or IP address.
- Improved: Field names and validation messages are now translated into all supported languages.

#### Read more about this release

- [Manage a Subscriber's Topics by Hand, and Segment by Topic, Without Overriding Their Choice](https://sendbroadcast.net/blog/manage-subscriber-topics-and-segment-by-topic)

## October 14, 2026

Version 2.47.0  Released

- Fixed: A broadcast no longer stops as failed when Mailgun's new-account hourly limit is reached. It pauses and continues by itself when Mailgun allows sending again.
- Fixed: A broadcast no longer stays stuck in Sending after a temporary error from the email server. It tries again by itself, and a broadcast that fails can always be resumed.
- Fixed: Broadcasts, sequences and transactional emails now wait until the time the email provider gives after a rate limit, instead of trying again too early.
- Fixed: Reaching the AWS SES daily sending quota now pauses sending instead of retrying every few seconds.
- Fixed: Reset rate limit on the email server page now also resumes transactional and sequence emails that are waiting.
- Fixed: The confirm button in dialogs is full width on phones, like the Cancel button.
- Improved: The broadcast page, the email server page and the transactional email notice now say when the email provider paused sending, why, and when sending continues.
- Improved: A broadcast that failed or is waiting to retry now shows the reason on its page.
- Improved: Email provider error messages are shorter and name the provider and the email server only once.

Version 2.46.1  Released

- Fixed: Opt-in form welcome emails were never sent. They now go out after a signup, a confirmation or a resubscribe through a form.
- Fixed: A person who subscribed again through an opt-in form stayed inactive and got no broadcasts. They are now active again. People who resubscribed this way before this release may still be inactive; you can find them under Subscribers and activate them.
- Fixed: Resubscribing an address that is on a suppression list no longer makes it active, sends it a welcome email, or removes its block in Postmark. The API answers with a subscriber_suppressed warning.
- Fixed: Postmark suppression sync no longer uses inactive Postmark servers, and stops at once when Postmark refuses a token.
- Improved: With double opt-in, an unsubscribed person who submits the form again is resubscribed only after they confirm.
- Improved: The Sequences and Sequence Steps APIs refuse a value that is not true or false for a switch, with a 422, instead of saving it as true.
- Improved: A button, privacy policy or legal notice link with a variable or a refused character now shows an error that says so.

Version 2.46.0  Released

- New: Provider tracking setting in Channel Settings. "Off", the default for all channels including existing ones, tells Postmark, Mailgun and SendGrid not to track opens and clicks, so only Broadcast tracks them and links are not redirected twice. If you read opens and clicks in your provider's dashboard, choose "Use the provider's settings".
- New: Channel Settings can turn open and click tracking on by default for new broadcasts and sequences.
- New: Unsubscribes through Postmark's own unsubscribe link now unsubscribe the subscriber in Broadcast, and a resubscribe in Broadcast lifts the Postmark suppression. This is on by default for each Postmark email server.
- New: Broadcast checks the unsubscribe handling of your Postmark broadcast stream and tries to switch it to Custom. When Postmark refuses, the email server page explains the second unsubscribe link and gives you a support request to copy.
- New: The double opt-in confirmation page can show a button that sends subscribers on, for example back to your website.
- New: The confirmation page shows your privacy policy and legal notice links.
- New: The footer block can hide its unsubscribe link.
- New: Opt-in forms can leave the unsubscribe link out of the double opt-in confirmation email.
- New: Channel Settings API (GET and PATCH /api/v1/channel/settings) and a writable Brand Kit API (PATCH /api/v1/channel/design).
- New: The Sequence Steps API accepts include_unsubscribe_link, and the Email Servers API shows the Postmark unsubscribe handling and sync setting.
- Fixed: Sequence and welcome emails sent {{ unsubscribe_url }} as an empty link. The link now works.
- Fixed: Sequences with open or click tracking on now add Broadcast's own tracking, so open and click conditions work without provider tracking.
- Fixed: {{{pm:unsubscribe}}} in a broadcast body, a block email or a sequence step rendered as a broken link.
- Fixed: Unsubscribe and preferences links are never click-tracked.
- Fixed: An email with its own unsubscribe link no longer also gets the channel footer's link.
- Fixed: The broadcast preview now shows the footer that the send adds.
- Improved: Near-miss Postmark tags such as {{pm:unsubscribe}} are corrected when Broadcast sends, and on other providers they become Broadcast's own unsubscribe link.
- Improved: A hand-written unsubscribe or preferences link that has no address is removed, not sent as an empty link.
- Improved: The broadcast editor warns when Postmark will add its own unsubscribe link.
- Improved: The sequence step HTML preview shows the footer that the send adds.

## October 12, 2026

Version 2.45.0  Released

- New: Block emails created through the API can leave out the channel footer when the design has its own unsubscribe link, for example a footer of your own in an HTML block.
- Fixed: Unsubscribe links written as {{ unsubscribe_url }} with spaces inside an HTML block now work. Before, the link in the sent email was broken.
- Fixed: A block email can no longer go out without an unsubscribe link when its footer setting is turned off through the API.
- Fixed: A sequence step created or updated through the API now keeps a block design sent as a JSON object.
- Fixed: An unknown value for a field with a fixed list of values, such as an email server vendor, now returns a clear error that lists the accepted values instead of a server error.
- Improved: The API now warns when it ignores or changes a value you sent, including unknown keys in nested settings and block designs, block styles and HTML that an email cannot use, and settings that another setting decides.

Version 2.44.0  Released

- New: A Low memory mode for the job server, chosen on the Jobs page, runs all background work in one process so small servers such as 2 GB have much more free memory.
- Fixed: Setting SOLID_QUEUE_SUPERVISOR_MODE=async without SOLID_QUEUE_IN_PUMA no longer stops the web app from starting.
- Fixed: SOLID_QUEUE_IN_PUMA=false now really turns off running background jobs inside the web server.

#### Read more about this release

- [Broadcast Fits on a 2 GB Server Again](https://sendbroadcast.net/blog/run-email-marketing-on-a-2-gb-server)

## October 10, 2026

Version 2.43.0  Released

- This is a huge release: the email sending engine has been improved. With changes this large there may be bugs, so we recommend that you try this release with a small broadcast send first. Please report any bugs to simon@sendbroadcast.net.
- New: Transactional email goes first. Login codes and password resets now send before sequence and broadcast email, on their own background worker, so a large broadcast never delays them.
- New: Each email server keeps part of its hourly limit for higher-priority email. Broadcasts stop at 80% or 90% when the server also sends sequences or transactional email. A server used only for broadcasts keeps its full limit.
- New: A new webhook event, email.send_delayed, tells you when a transactional email has to wait for room on its email server.
- New: Notices in the app when transactional email waits more than 30 minutes for room, or fails after 24 hours at the hourly limit.
- Fixed: Broadcasts no longer send more emails than the email server's hourly limit, also when several broadcasts share one server.
- Fixed: Pausing a broadcast now stops it within a moment, instead of after up to 100 more emails.
- Fixed: Pausing and then resuming a broadcast quickly no longer counts some recipients twice.
- Fixed: The "Sending appears stalled" warning no longer shows while a broadcast waits for its hourly limit.
- Fixed: Reset rate limit now continues broadcasts that are waiting for room.
- Improved: A broadcast larger than the hourly limit sends what fits, then continues by itself when room frees up, without holding a background worker.
- Improved: Sequence emails that wait for room try again every minute and no longer count as a failed step.
- Improved: The broadcast page, the email server page and sequence enrollments show when sending waits for room and when it continues.
- Improved: The email server form shows how much of the limit each email type can use, and recommends separate servers for broadcasts and for transactional email.
- Improved: Sending is more reliable when Broadcast restarts in the middle of a send.
- Improved: The new screens are translated into all 11 languages.

## October 08, 2026

Version 2.42.0  Released

- New: Broadcasts, sequences and Autopilot can exclude segments, so nobody in an excluded segment gets the email, even when they are in the audience.
- New: A segment that a broadcast, sequence or autopilot excludes cannot be deleted, and the message names what uses it.
- New: The API can create a subscriber who has already unsubscribed in one request, so a migration keeps its opt-outs with no gap.
- New: The API accepts excluded_segment_ids on broadcasts, sequences and autopilots.
- Fixed: With parallel sending turned on, a broadcast to segments no longer fails before it sends.
- Fixed: The broadcast Segments dialog now shows the saved segments, so saving it without changes no longer sends the broadcast to all subscribers.
- Fixed: Choosing All subscribers in the composer now clears the chosen segments when you save.
- Fixed: A tag no longer starts a sequence for an inactive or unsubscribed subscriber.
- Fixed: The AND/OR labels between the rules of a segment group now follow the group's match type.
- Improved: Imports read the separator from the file's header row, so a CSV file dropped on the TSV option is read correctly, and the preview says how the file was read.
- Improved: A semicolon-separated import file now gets a message that says how to save it as CSV, instead of a missing Email column error.
- Improved: The segment builder warns when a Match ALL group matches nobody but people match one of its rules.
- Improved: The broadcast Audience card now shows the topic.

Version 2.41.2  Released

- New: The "Send Broadcast?" dialog now says how many subscribers the broadcast goes to.
- Fixed: A retry of a failed broadcast (only the subscribers it did not reach) now goes to that broadcast's own audience, not to the audience of an older broadcast it was copied from.
- Fixed: A retry no longer emails people who already got the broadcast, also when two retries are made from the same failed broadcast.
- Fixed: Resuming an interrupted broadcast no longer skips some subscribers.
- Fixed: A retry to all subscribers no longer includes redacted subscribers, and its recipient count no longer includes unsubscribed people.
- Fixed: The recipient count, the "no recipients" check before sending and Ask AI now count a retry correctly.
- Fixed: With parallel sending turned on, a broadcast with nobody left to send to no longer stays in "Sending".
- Fixed: A copy of a deleted broadcast opens again, and its retry sends to nobody instead of getting stuck in "Sending".
- Improved: The Audience card of a retry says it reaches only the people who missed the broadcast.
- Improved: When a retry has nobody left to send to, the message says that everyone already got it, and the send dialog closes.
- Improved: The retry option now says it reaches subscribers not reached yet and leaves out addresses the email provider rejected.
- Improved: Retries prepare their audience much faster on large lists.

Version 2.41.1  Released

- New: Opt-in forms can show a checkbox for a subscriber topic, so a signup records which topics the person chose; an unticked box is saved as an explicit "no".
- New: The form page preview shows the popup on every reload, and your own visits no longer hide the popup on your site.
- Fixed: A broadcast sent to a tag-based topic together with a segment failed to send.
- Fixed: A scheduled or "Send now" broadcast to a topic with no receivers was marked sent to nobody; it now stops with a "no subscribers" message, and Ask AI shows the topic's real audience size.
- Fixed: Clicking an unsubscribe link a second time, or a topic unsubscribe link after unsubscribing from everything, no longer adds duplicate history entries or webhook events.
- Fixed: List endpoints in the API returned a server error for a negative or non-numeric limit or offset; they now return 422, and paging no longer repeats rows across pages.
- Fixed: The opt-in form editor did not show error messages, could report a refused change as saved, and could ask about unsaved changes after a successful update.
- Fixed: Duplicating an opt-in form now also copies its thank-you message, and forms with an older popup frequency setting can be duplicated again.
- Fixed: The form preview drew input borders darker than the real form, and checkbox ticks sat off-centre.
- Fixed: Buttons on the unsubscribe and preference pages wrap long labels on phones instead of running past the card.
- Improved: The API now refuses an unknown popup frequency instead of saving it, and list endpoints accept a limit from 1 to 1000.
- Improved: A popup set to "Every visit" or "Once per day/week" is now handled the same by old and new embed codes.
- Improved: The unsubscribe page editor previews your real topics and groups its preview tabs by flow.
- Improved: Deleting a topic that is in use now says what uses it, and a broken preference link says it is a preference link.
- Improved: Breadcrumbs end on the current page throughout the app.

## October 07, 2026

Version 2.41.0  Released

- New: Subscriber topics let subscribers choose which kinds of email they get, such as webinars or offers, each stored in a custom data field or a tag you choose.
- New: Send a broadcast or sequence to a topic, and it reaches only the subscribers who receive that topic.
- New: On an email sent to a topic, the unsubscribe link and the Gmail and Yahoo one-click button turn off only that topic and keep the subscriber subscribed, unless you set the channel to unsubscribe from everything.
- New: A hosted preference page lets subscribers switch their topics, linked with the {{ preferences_url }} merge tag or the footer block.
- New: The subscriber.preferences_updated webhook records every topic change with the old and new value, the time and where it came from, and every subscriber webhook now says where a change came from.
- New: The Topics API and CLI command, topic_id on broadcasts and sequences, and an optional merge mode for updating a subscriber's custom data.
- New: Choose which API token an agent setup link uses.
- New: The CLI now covers every channel API endpoint, including a raw "broadcast api" command.
- New: The API can replace an opt-in form's whole after-submission view.
- Fixed: A security issue in the text editor.
- Fixed: The Copy button on agent setup links now copies the link.
- Fixed: API list endpoints return 250 records per page, as documented.
- Fixed: Opt-in forms read through the API now return the same settings you can create and update.
- Improved: The capability manifest for agents lists every API endpoint.
- Improved: The broadcast composer shows "1 subscriber" instead of "1 subscribers".

## October 03, 2026

Version 2.40.0  Released

- New: The migration API exports each channel's own suppression list (GET /api/migration/v1/unsubscribed_emails), and the Ruby, Node, Python and PHP SDKs can page through it.
- Fixed: When an upgrade cannot start because a send is in progress, the dashboard now says so and shows why, instead of waiting for an upgrade that never begins.
- Fixed: Exports made with the migration API can now include the channel suppression list, which no migration endpoint returned before.
- Fixed: What's New slides and the release notes on the updates page show bold and italic text instead of raw asterisks.
- Fixed: The "full changelog" link in What's New opens the updates page instead of an error.
- Fixed: The Agents page always uses the same API token for the introduction and the setup link: the oldest token, listed first.

## October 02, 2026

Version 2.39.0  Released

- New: The dashboard is now available in Italian, French, German, Spanish, Portuguese (Brazil), Dutch, Polish, Swedish, Danish, Norwegian and Finnish, and each user picks their own language on My Profile.
- New: Password reset emails, channel maintenance logs and live progress for imports and sends appear in each user's chosen language.
- Fixed: Several security issues are fixed. Upgrading is recommended.
- Fixed: Global subscriber search and the autopilot run history no longer fail when you go past the first page.
- Fixed: Saving My Profile with an empty name now shows the error instead of a failed page.
- Fixed: A refused step in the hosted domain setup now shows the form again instead of an error page.
- Fixed: The broadcast status badge reads "Partial failure" instead of "Partial_failure".
- Fixed: Counts of one read correctly, for example "1 email added" instead of "1 emails added".

#### Read more about this release

- [Your Team Should Not Need English to Send Your Newsletter](https://sendbroadcast.net/blog/email-marketing-dashboard-in-your-language)

## September 29, 2026

Version 2.38.0  Released

- New: Failed broadcasts can be resumed after you fix the problem, and they pick up where they stopped without re-sending to anyone.
- New: Webhook endpoints that stop responding are marked Delayed; their events are held and delivered once the endpoint recovers instead of being lost.
- New: The Webhooks page shows each endpoint's health, a banner when any are delayed, and the queue of waiting deliveries.
- New: Parallel broadcasts send one broadcast.batch_completed webhook per batch instead of email.sent or email.failed for each recipient; subscribe your endpoints to the new event if you use parallel sending.
- New: The suppression list shows where each entry came from and what it blocks, and the suppressions API returns the source and reason.
- New: A channel setting lets provider hard bounces also block transactional email.
- New: Broadcast stats show emails sent separately from deliveries your provider confirmed.
- New: The transactional email API returns each email's status and error.
- New: The CLI can move subscribers between sequences.
- Fixed: With a real email server active, some broadcast, sequence and transactional email went to the Test Server and was silently captured instead of delivered.
- Fixed: Password reset emails are delivered through your channel's email server; before, they failed while the page said they were on their way.
- Fixed: One suppressed Postmark address no longer stops a whole broadcast.
- Fixed: A Postmark spam complaint about a newsletter no longer blocks that person's password resets and receipts.
- Fixed: With an SMTP server, a retried or resumed send now delivers the email instead of marking the recipient sent without sending it.
- Fixed: In parallel sending, a revoked token or broken server stops the broadcast so it can be resumed, instead of marking every remaining recipient failed.
- Fixed: In parallel sending, a broadcast could be marked sent before all its batches were created and skip recipients.
- Fixed: A failing webhook no longer stops a send or makes an API request fail, and sequences no longer send a step twice after a webhook error.
- Fixed: Broadcasts sent through plain SMTP no longer show 0 sent.
- Fixed: Postmark soft bounces and auto-replies no longer suppress subscribers.
- Fixed: Tag changes made by sequence steps and opt-in forms are recorded in subscriber history and sent as subscriber.updated.
- Fixed: Renaming a tag or setting a sequence entry tag no longer removes people who joined the sequence another way.
- Fixed: Transactional emails without an unsubscribe link no longer show an Unsubscribe button in mail clients.
- Fixed: {{ channel_name }} renders in opt-in confirmation emails.
- Fixed: The webhook Test button works for every endpoint.
- Fixed: The import summary counts imported rows, not rejected ones.
- Fixed: The CLI's create --tag no longer replaces a subscriber's existing tags.
- Fixed: A resumed parallel broadcast no longer shows 100% while it is still sending.
- Improved: Sending a broadcast to an empty audience is refused instead of being marked sent, and the dashboard Send button runs the same checks as the API.
- Improved: Adding a real email server switches off the channel's Test Server, unless something is still set to use it.
- Improved: New channels ask people to confirm before unsubscribing, so corporate link scanners no longer unsubscribe them.
- Improved: When an SMTP server rejects one recipient's mailbox, only that recipient fails and the broadcast keeps going.
- Improved: Sequences stop sending to an address the provider rejects on the first attempt instead of retrying it five times.
- Improved: The email tidy-up deactivates the untidy copy of a duplicate address.
- Improved: The CLI reports enrollment results and rejects unknown options.

## September 25, 2026

Version 2.37.0  Released

- New: Two new webhook events, subscribers.purged and subscribers.purge_failed. Purging a channel's subscribers now sends one event for the whole list, with how many subscribers were removed, instead of a subscriber.deleted for every subscriber, and tells you if a purge stops before it finishes.
- Fixed: Purging all subscribers copes better when someone unsubscribes at the same moment, and tag subscriber counts stay correct even if a purge stops partway.
- Fixed: The code samples under View verification examples on a webhook endpoint are syntax highlighted again.
- Fixed: In the Subscribers, Sequences and Transactional sidebars, the buttons, navigation and filters sit inside the panel again, and the version number stays at the bottom.
- Improved: Send Test for the purge webhooks sends a sample shaped like the real event.
- Improved: The help tooltips on the webhook endpoint form wrap onto a few lines, so the form no longer scrolls sideways on phones and tablets.
- Improved: The Add Subscriber button in the sidebar matches the other sidebars' buttons.

## September 24, 2026

Version 2.36.0  Released

- New: Customise your unsubscribe pages in Settings > Unsubscribe Page, with your own text, legal links, a redirect after unsubscribing, and a live preview.
- New: Unsubscribe and double opt-in confirmation pages are available in 13 languages, and can follow each subscriber's browser language.
- New: The double opt-in confirmation page has its own full-screen editor, with text for each outcome in each of your languages and colours of its own.
- New: Choose how long double opt-in confirmation links stay valid, from 24 hours to never expiring.
- New: Unsubscribe and confirmation pages can use your whole Brand Kit, including logo, colours, font, corner radius and social links, or colours of their own.
- Fixed: The one-click Unsubscribe button in Gmail and Yahoo now actually unsubscribes the subscriber.
- Fixed: Migrating to another installation now keeps confirmation templates, and carries over the Brand Kit, channel language, and unsubscribe and confirmation page settings.
- Fixed: The Default confirmation template checkbox now works, and asks before it changes the default.
- Fixed: Refreshing or bookmarking a page while a dialog is open now shows the full page instead of an unstyled fragment.
- Fixed: Broadcasts created without a name, for example through the API or an autopilot, now take their subject as the name instead of showing a blank title.
- Improved: Messages Broadcast shows on public opt-in forms, such as the thank-you and error messages, now appear in the channel's language.
- Improved: Settings > Design is now called Brand Kit and opens as a full-page editor with a live preview.
- Improved: The confirmation template editor shows the double opt-in flow as a simple diagram and works on phones.
- Improved: The test server now says it captures emails in a test inbox instead of delivering them, and the settings sidebar links to that inbox.
- Improved: Buttons in confirmation dialogs are spaced apart, and sidebar stats and the autopilot status card fit narrow widths.

## September 16, 2026

Version 2.35.0  Released

- New: Built-in MCP server at /api/mcp, so Claude Code and other AI clients can use your Broadcast API with an API token, no install needed.
- New: Users API for admin API tokens: create, update, deactivate and delete users, and manage their channel and system permissions. Sudo users are read-only.
- New: Set a rate limit on each API token, or leave it blank to use the installation default.
- Fixed: Admins can assign channel access to newly created users again, instead of hitting a "route cannot be found" error.
- Fixed: A new user with no channel access now shows the channels you can grant, instead of an empty page.
- Fixed: Autopilot schedules run at the time you picked. Existing schedules saved from a browser outside UTC may now show the time they have actually been running at; run bin/rails autopilots:correct_drifted_schedule_times DRY_RUN=1 to preview a repair.
- Fixed: Autopilot drafts no longer fail with empty answers when a reasoning model spends its whole token budget on thinking.
- Fixed: GDPR-erased subscribers are never returned by the API, and their placeholder email can no longer be used to recreate or re-enroll them.
- Fixed: Deleting a user who had run channel maintenance or confirmed AI actions no longer fails.
- Fixed: Copy buttons on the Agents page and webhook code samples copy again.
- Fixed: API token lists show every permission a token has, including Users, Templates, Suppressions, Autopilot and Opt-In Forms.
- Improved: The subscriber Last Emails tab now shows sequence and personal or transactional emails, not just broadcasts.
- Improved: Autopilot drafts turn bare URLs into links and use today's date.
- Improved: The Send Email form on a subscriber's page no longer mentions Liquid variables.
- Improved: The agent setup guide and API skill manifest now list the Users API, suppressions and each token's real rate limit.

Version 2.34.3  Released

- New: Liquid variables are highlighted in every email preview: broadcasts, templates, sequence steps, transactional emails and autopilot drafts, including the subject line.
- Fixed: A transactional email to someone with no name on file now uses the fallback in {{ first_name | default: "there" }} instead of their email address.
- Fixed: Transactional subjects and preview text now render Liquid variables, like the body already did.
- Fixed: Opening a pending transactional email no longer shows an error page.
- Fixed: An autopilot's GitHub source now fetches the content you tick: commits, pull requests, issues and releases. The boxes had no effect, and every source fetched commits and releases.
- Fixed: Recent pull requests now reach an autopilot draft; GitHub was returning the oldest ones, so an active repository's pull requests were always left out.
- Fixed: A Liquid fallback in an AI-written draft, such as {{ first_name | default: "there" }}, now survives into the email instead of being mangled.
- Fixed: An autopilot's Setup Progress no longer asks you to set a schedule it does not need, and Total Runs counts every run, matching Run History and the API.
- Fixed: Links in an autopilot draft preview keep their Liquid variables, and the plain-text preview no longer indents its first line.
- Improved: AI-written drafts replace em dashes with commas and drop stray backticks.
- Improved: Autopilots no longer keep a separate run counter; the page and the API count runs directly. This is what the database migration in this release removes.

## September 15, 2026

Version 2.34.2  Released

- New: Releases API sources on an autopilot have an optional "Days to look back" setting; leave it blank to include every release, or use 7 for a weekly digest.
- Fixed: Autopilot content sources can no longer fetch private-network or internal addresses, including through redirects.
- Fixed: The Test button on an autopilot content source now really fetches it and shows the result or the error on the page, instead of a placeholder number in a pop-up.
- Fixed: Releases API sources no longer pick up a hidden 7-day limit from the RSS settings, which could stop a product update autopilot from finding your latest release; existing sources keep any limit they were saved with, so check it under Edit.

Version 2.34.1  Released

- Fixed: Autopilots that use the AI provider from application settings now run on their schedule again; previously they were silently skipped and only ran when you clicked Run Now.
- Fixed: Starting a drag-and-drop broadcast or template now opens a "Choose a layout" gallery with Blank plus twelve ready-made layouts, each previewed in your brand kit.
- Fixed: A Liquid fallback in an email's title, such as {{ first_name | default: "there" }}, now renders correctly in drag-and-drop emails instead of coming out blank.

## September 14, 2026

Version 2.34.0  Released

- New: A drag-and-drop email builder for broadcasts, templates, sequence steps and API transactionals, with headings, text, images, buttons, columns, social links, video, a brand header and a footer.
- New: The builder opens in its own window and saves as you work, with undo, a mobile preview, personalisation tags and a preview as any subscriber.
- New: A brand kit on the Design settings page sets your logo, colours, font and social links once, and every drag-and-drop email starts from it.
- New: The brand kit can also style the unsubscribe page, the double opt-in confirmation page and new opt-in forms, each switched on separately.
- New: Save any drag-and-drop design as a template, or start from a gallery of ready-made layouts.
- New: The rich-text editor's colour control offers your brand accent in one click.
- New: The API reads a channel's brand kit at GET /api/v1/channel/design and accepts drag-and-drop designs for broadcasts, templates and transactionals, and the Ruby, Node, Python and PHP SDKs support it.
- New: HTML templates have an "Add the channel footer" setting that applies wherever the template is sent.
- Fixed: Postmark server tokens are no longer written to the application log.
- Fixed: A second test email to the same address is no longer silently skipped, and a test sent to a subscriber's address no longer blocks their copy of the real broadcast.
- Fixed: Postmark setup now creates the broadcast message stream that new Postmark servers lack, so broadcasts no longer fail with "stream 'broadcast' does not exist".
- Fixed: Click tracking no longer rewrites mailto: and tel: links.
- Fixed: The "Include unsubscribe link" checkbox no longer shows a grey tick.
- Improved: Transactional emails made from an HTML template now send as HTML and follow the template's footer setting, and existing HTML templates start with the footer off so nothing changes until you turn it on.
- Improved: The template picker shows each template's type and lists only templates that match the email you are writing.
- Improved: Links in email previews open in a new tab.
- Improved: The autosave switch explains when it is off because the draft is open in another tab, and restoring an unsaved draft is clearer.

## September 12, 2026

Version 2.33.0  Released

- New: Opt-in form checkboxes can act as "select all". Give a checkbox a field key ending in _all (for example city_all) and checking it selects and locks every checkbox sharing that prefix; only the _all key is stored on the subscriber.
- Fixed: Backup file names are now validated, closing a gap where a user with backup permissions could download arbitrary files from the server.
- Fixed: Clicking a tracked link whose redirect record no longer exists returned a server error instead of a not-found page.
- Fixed: Checked boxes on embedded opt-in forms drew two overlapping checkmarks.
- Improved: Email previews in the admin now block scripts and run in a sandboxed frame, so HTML pasted into a broadcast cannot execute in your browser.
- Improved: The checkbox block editor explains the select-all naming convention and how segment rules should match it.

## September 10, 2026

Version 2.32.0  Released

- New: Two-factor authentication with an authenticator app. Enrol from My Profile with a QR code, keep ten single-use recovery codes, and sign in with your password plus a six-digit code.
- New: Require two-factor authentication for every user from Application → Security, with a 7, 14 or 30 day grace period that reminds people before it locks them out.
- New: Administrators can reset another user's two-factor from their page under Users, and a two_factor command in broadcast.sh recovers an installation where nobody can sign in.
- New: Sign users in from Cloudflare Access. Users who pass your Access application are signed in automatically, and password sign-in can be switched off once the origin is behind Cloudflare.
- New: Switch a development server to edge builds from the updates page, and see the edge image built automatically from every change to main.
- Fixed: Purging a channel's subscribers no longer fails with a lock timeout. It runs in the background in batches, and a second purge cannot start while one is running.
- Improved: The email editor is upgraded to Tiptap 3, which closes two published security advisories in the editor library.

## August 18, 2026

Version 2.31.1  Released

- Fixed: A burst of Amazon SES delivery notifications no longer exhausts the server's connections and leaves the app unresponsive.
- Improved: Amazon SES delivery notifications are now processed in the background, so a large campaign's notifications no longer compete with the rest of the app for capacity.

## August 17, 2026

Version 2.31.0  Released

- New: Every dashboard page now has its own web address that includes the channel, so a link or bookmark always opens the channel it names.
- Fixed: Working in more than one browser tab no longer mixes up channels. Each tab stays on the channel in its own address, so switching channels in one tab can no longer retarget another and send from the wrong list.
- Fixed: Resubscribe links that reach a recipient mangled, for example truncated or rewritten by their email client, now show a proper page instead of an error.
- Fixed: Malformed Amazon SES webhook deliveries are now rejected cleanly instead of erroring, which stops Amazon retrying the same bad delivery repeatedly.
- Fixed: The In Progress tab on the Jobs page now loads instead of showing an error.
- Improved: Opening a link that belongs to another channel now switches the whole interface to that channel.
- Improved: A link naming a channel you do not have access to is refused, rather than quietly showing you a different channel.

## August 15, 2026

Version 2.30.1  Released

- Fixed: Connection handling for SMTP servers on port 465.
- Fixed: The STARTTLS setting on custom SMTP servers is now applied as configured.

Version 2.30.0  Released

- New: Rule groups can be joined with AND by clicking the OR badge between them, instead of only from the dropdown at the top of the rules.
- New: Segments can target subscribers who clicked an email carrying a given tag, using the Tags field.
- New: SendGrid and Mailgun email servers can now send over their APIs instead of SMTP, with their credentials editable in the server form.
- New: Each installation serves its own API specification at /api/v1/openapi, so the document always matches the version you are running.
- Fixed: The subscriber activity feed now requires you to be signed in. It was previously readable by anyone who knew a subscriber's email address.
- Fixed: Segment rules added to a new rule group are no longer silently dropped when you save.
- Fixed: Open and click tracking preferences are now honoured when sending over the SendGrid and Mailgun APIs.
- Fixed: A segment rule on Is Active now returns deactivated subscribers instead of nothing.
- Fixed: The segment page describes its rules correctly. Groups joined with AND no longer display as OR, and groups matching any rule are no longer described as matching all of them.
- Fixed: Changing a rule's field no longer leaves the previous value behind in the box.
- Fixed: The live subscriber count now respects the case-sensitive checkbox, so it matches what the saved segment returns.
- Fixed: A "does not contain" rule on a custom data field now includes subscribers who do not have that field at all.
- Improved: The two boxes on an emails-clicked rule are now labelled, so it is clear which is the count and which is the number of days.
- Improved: File Assets states its real upload limits and no longer offers formats that would be rejected.

#### Read more about this release

- [This and this, but not that](https://sendbroadcast.net/blog/segment-rules-and-or-conditions)

## August 11, 2026

Version 2.29.0  Released

- The suppression list now accepts international email addresses, including ones with accented or non-Latin characters.
- Adding one of those addresses from the Settings screen works now. The form used to refuse to submit before the address ever reached Broadcast.
- Uploading a suppression list that was saved as Latin-1 or Windows-1252 no longer fails outright. The lines that could not be read are reported as invalid and the rest are added.
- Bounces and spam complaints that fail to reach the suppression list are now recorded in the logs instead of failing silently.

## August 10, 2026

Version 2.28.1  Released

- Fix index issue that could potentially cause db locks

## August 09, 2026

Version 2.28.0  Released

- Sequences can now send on Postmark's bulk stream instead of the transactional one, chosen per sequence in its settings.
- A channel can connect more than one Postmark server, and guided setup now asks whether you are reconnecting an existing server or adding another.
- Guided setup no longer adds an extra "Postmark - " to a server's name each time it runs.
- A new maintenance task repairs Postmark server names that already collected those prefixes.
- Upgrades now refuse to start while a job is running or a broadcast is sending, and name what is blocking them.
- Automated upgrades wait and retry once the queue drains instead of failing.
- A database migration blocked by another connection now fails after fifteen seconds instead of leaving the app unable to start.
- The installation dashboard now shows the real job queue, which previously always appeared empty.

#### Read more about this release

- [The upgrade that never finished](https://sendbroadcast.net/blog/the-upgrade-that-never-finished)

## August 07, 2026

Version 2.27.0  Released

- The ESP setup wizard now verifies every sender identity on your channel, not just the primary sender address.
- Sender verification warnings link straight to the identity they name, so you land on the right record instead of hunting for it.
- DMARC checks no longer report "Missing" for subdomains when the policy is published on the organizational domain.
- DNS Health now agrees with your email provider's own verification verdict instead of contradicting it.
- New email servers created in the wizard default to non-transactional types.
- Making a sender identity the default now asks you to confirm, naming the exact address and what changes, so the transactional sender cannot be swapped by a stray click.
- Sender addresses are shielded from Cloudflare's email obfuscation, which was garbling newly added identities.
- New sender identities are checked against free email domains and flagged before you try to verify them.
- The SMTP.com webhook is now authenticated with a per-channel secret, closing a hole that let anyone forge bounce, complaint, and unsubscribe events for your subscribers. Existing installs have their callbacks re-registered automatically.
- SMTP.com delivery tracking now works: the callback registration was hitting a malformed API path with invalid event names, so no events were ever recorded.
- Sessions whose channel was deleted now fall back to an active channel instead of stranding you on an inactive one with a permission error.

#### Read more about this release

- [Verify every address you send from, not just the first one](https://sendbroadcast.net/blog/verify-every-sender-address-not-just-the-first-one)

## August 04, 2026

Version 2.26.1  Released

- Converting a product update draft into a broadcast now downloads the announcement's images and stores them on your own installation, so emails no longer hotlink remote files and the composer displays them correctly.
- Fix: the editor toolbar now stays visible below the header while you scroll long emails, on desktop and mobile.
- Server-side fetching of remote content (announcement images and tone sample imports) is hardened against requests reaching private network addresses.

Version 2.26.0  Released

- Autopilots can now announce your product updates: point one at your changelog, releases API, or GitHub releases and it drafts an announcement email for each new version, staged for your review before anything sends.
- Announcement drafts embed your release screenshots and link your docs and blog posts when your releases endpoint provides them, and any image or link the AI did not get from your release data is stripped before you see the draft.
- A new Releases API source type reads version, notes, and date fields from any JSON changelog endpoint.
- Tone samples can now be imported instead of hand-pasted: pick one of your existing broadcasts from a searchable list, or point at a blog article and its readable text becomes the sample.
- The AI Assistant settings page is now AI Settings, the system-wide AI default: it lists exactly what uses it, powers both Ask AI and autopilot email generation, and can be cleared.
- Scheduled newsletter autopilots no longer need their own OpenRouter key: they can ride the system-wide default when its provider is OpenRouter, chosen explicitly with a new key-source option, or copy another autopilot's key securely.
- Fixed an error that broke fetching from every autopilot source type, so scheduled newsletters pulling from GitHub, RSS, or webpages work again.
- The autopilot sidebar now sends Dashboard to the autopilots index and nests each autopilot's pages under its name.
- Buttons across the app use solid colors instead of gradients.
- The autopilots API gains trigger modes, a version override when triggering runs, and release fields on run responses, so announcements can be driven from a release pipeline.

#### Read more about this release

- [Announce every release automatically, with an email you still get to approve](https://sendbroadcast.net/blog/announce-your-releases-automatically)

## August 03, 2026

Version 2.25.0  Released

- Recipient counts now agree everywhere they appear. The broadcasts list, the broadcast page and the composer's review step all report the same figure, someone in two selected segments is counted once rather than twice, and unsubscribed or inactive subscribers are no longer included.
- Duplicating a broadcast now keeps its audience. Copies previously reverted to every subscriber in the channel, which could send a segmented campaign to your entire list.
- Duplicating a broadcast also keeps its email server selection, tags and custom headers.
- The composer's review step now updates as you edit. It previously showed the name, subject and preview text as they were when the page first loaded.
- Timestamps throughout the app now display in your own timezone instead of UTC.
- Charts and daily figures are grouped by days in your timezone, so activity near midnight is counted on the day it happened for you.
- Exported CSV files write timestamps in UTC ISO 8601 format, so they read identically for everyone and import cleanly into other tools.
- The broadcasts sidebar no longer counts archived broadcasts in its total.
- A new diagnose command collects logs, layered health checks and an incident timeline into one report you can paste to support, capturing logs before anything can overwrite them.
- A new fix command repairs common installation drift such as directories, ownership, systemd units, cron entries and missing env keys, and tells you plainly what it cannot fix.
- Restores now verify the backup checksum, refuse to run against an incompatible version, accept --yes for automation, and no longer report success when they failed.
- Log streaming in the web UI now survives container recreation, and the watcher restarts on upgrade so new code takes effect.
- Upgrades now prune old images as they were always meant to, reclaiming disk that was silently left behind.
- New opt-in server health monitoring reports to your dashboard every minute and emails you when your server goes down or recovers, with detection to alert taking about two minutes.
- New monitor-enable and monitor-disable commands switch that reporting on and off, and you can verify for yourself that nothing is sent when it is off.
- Your installation now boots without needing the container registry to be reachable, and keeps retrying rather than giving up if something is not ready yet.
- Logs now persist through restarts, so the evidence of a problem survives the restart meant to fix it.

#### Read more about this release

- [Knowing When Your Own Server Goes Down](https://sendbroadcast.net/blog/knowing-when-your-self-hosted-server-goes-down)

Version 2.24.0  Released

- Channels can now have multiple sender identities, so different broadcasts, sequences, and transactional emails can send from different names and addresses.
- Sender verification now reports the true status of each identity, runs checks automatically, and shows exactly where an identity stands with a check-now option.
- Sender settings are consolidated into a single tabbed page with contextual help.
- The channel permissions page now shows one row per channel with a role badge and a plain-language summary, with the full permission breakdown one click away.
- You can select several channels and apply a role or permission preset to all of them in one confirmed step.
- Channels a user cannot access yet are listed with a grant-access shortcut, replacing the old dropdown menu.
- Permission presets now have descriptions so admins can tell at a glance what each one is for.
- The users list is searchable by name or email, with quick filters for sudo, read-only, inactive, and recently active users.
- User pages were redesigned with channel access grouped by role, and editing a user now happens in a slide-over panel instead of a separate screen.
- Sudo access granted through system permissions is now recognized consistently everywhere and can be revoked again.
- Confirmation prompts now use an in-app dialog instead of the browser popup.
- Segments support AND groups for more precise audience targeting.
- Subscribers can be searched by email across all channels at once.
- Fixed an error when the update check timed out instead of failing gracefully.
- The Docker image now includes process tools to make support diagnostics easier on self-hosted installs.

#### Read more about this release

- [Permissions You Can Read at a Glance, and Grant Twenty Channels at a Time](https://sendbroadcast.net/blog/channel-permissions-roles-and-bulk-apply)

## July 31, 2026

Version 2.23.0  Released

- You can now copy a channel's suppression list onto the global list in one action, so an address that bounced or complained in one channel stops receiving mail from your other channels.
- Suppressions are now available through the API, covering both a channel's own list and the global list, with bulk add and remove and a check endpoint that answers whether a given address will receive mail.
- API tokens can now be granted read and write access to suppressions.
- Fixed: links in your email footer are now click-tracked when Track clicks is enabled, on both broadcasts and sequences.
- Fixed: the composer's Review tab now reflects the tracking settings you chose, rather than the ones that were set when the page loaded.
- Fixed: New Broadcast → Start from Template no longer returns you to the list without creating anything, and HTML templates now appear in that list.

#### Read more about this release

- [One Bounce Should Block an Address Everywhere](https://sendbroadcast.net/blog/blocking-a-bounced-address-everywhere)

## July 30, 2026

Version 2.22.0  Released

- Improve guards to prevent double sending in sequences.
- Removing a subscriber from a sequence now sticks, instead of being quietly undone and starting them over.
- A sequence step that keeps failing now stops after a few attempts instead of retrying forever.
- Subscribers whose sequence stopped with an error are now listed on the sequence page, with the reason and the sending server named.
- Restarting someone's sequence is now recorded in their activity, along with how many times they have been enrolled.
- Redacted subscribers now leave their sequences cleanly instead of being recorded as a failure.
- Adding a subscriber who is already in a sequence no longer reports it as a failure.
- The sequences API now returns a success when adding a subscriber who is already enrolled.

## July 29, 2026

Version 2.21.1  Released

- The AWS SES suppression sync now explains what it actually does. It imports bounces and complaints from your AWS account-level suppression list into the current channel, and is only needed to backfill events from before the SNS webhook was connected.

Version 2.21.0  Released

- Broadcast now has a Maintenance section under Settings that finds and repairs imported data it cannot use, such as dates written in a format segment rules cannot compare.
- Each repair scans your channel and shows exactly what it would change, with a link to every affected record, before anything is written.
- The broadcast composer no longer fails to load when a subscriber has an unreadable date stored in a custom field.
- Segment rules comparing dates in custom fields now skip values they cannot read, instead of the whole segment returning nothing.
- When importing a CSV you can now declare the date format of each column, so a file written as 24/01/2026 imports correctly without editing it first.
- The import summary tells you how many dates it could not read, so a wrongly formatted column is obvious straight away.
- Dates typed into a segment rule in the wrong format used to match nobody with no explanation; Maintenance now finds and repairs them.
- The opt-in form analytics API now expects ISO dates and answers a bad one with a clear error naming the parameter, rather than failing outright or quietly reporting a different month.
- Subscriber list filters in the API now accept a plain date as well as a full timestamp.
- The server reboot notice has moved to the top right and no longer blocks the buttons underneath it.

#### Read more about this release

- [The Segment That Quietly Matched Nobody](https://sendbroadcast.net/blog/repair-imported-dates-that-break-segments)

## July 27, 2026

Version 2.20.1  Released

- The Send Report button on the error page now works. Reports submitted from a 500 page previously arrived empty or failed outright.
- The error page now shows you exactly what it will send before you send it, with email addresses, keys and tokens removed.
- The error page no longer says your team has been notified, which was never true — sending the report is what notifies us.
- Filtering subscribers by Active or Inactive status now works, and a CSV export matches the filter shown on screen.
- Pages that wrongly showed "Dashboard" in the breadcrumb now show their own trail, including Backups, Agents, Domain DNS Health, and the create-channel and email server setup wizards.
- Public demo installations can no longer generate API credentials, store an AI provider key, register webhooks, or reach the migration API.

#### Read more about this release

- [You Should Know What an Error Report Sends](https://sendbroadcast.net/blog/what-an-error-report-sends)

Version 2.20.0  Released

- Autopilot can now be granted to non-sudo users.
- The API gained /api/v1/autopilots, covering create, read, update, delete, activate, pause, deactivate, trigger a run, and list runs. The Autopilot permissions on API tokens had existed for months with nothing behind them, and the token forms now have checkboxes for them.
- Release Notes in the sidebar offers "Take a tour of these features" on any release, reopening that version's What's New wizard.
- A notice appears when a newer version of Broadcast is available, and the updates page has a setting to turn the hourly check off.
- Breaking: The updates, host system, licence and storage admin pages now require a system permission. Previously any signed-in user could reach them, including the actions that restart the application, write storage credentials, or change the installed version. Users who are not sudo will lose access to these pages until you grant them the relevant permission under Settings then Users.
- Fix: Autopilot was silently restricted to sudo users, with no way for an admin to delegate it and no error explaining why.
- Fix: Admin sections a user has no permission to open are no longer shown in the sidebar or on the Application page.

#### Read more about this release

- [Your Install Should Tell You When It's Out of Date](https://sendbroadcast.net/blog/knowing-when-your-self-hosted-app-needs-updating)

## July 26, 2026

Version 2.19.0  Released

- Subscribers, broadcasts and a broadcast's recipient activity can each now be exported to CSV.
- Every export contains exactly the rows the screen was showing, so a search, a tag or an event filter carries into the file.
- The broadcasts export is a performance summary with one row per send and its open, click, bounce and spam rates, and contains no recipient data.
- The Export subscriber data permission now governs the subscriber export, having previously governed nothing.
- Redacted subscribers are never included in an export.
- Clicking a recipient in a broadcast's Recent Activity now opens that subscriber instead of replacing the panel with "Content missing".
- Searching templates no longer returns a server error.
- A recipient who opened an email no longer shows a dash under Delivered.

#### Read more about this release

- [Export What You're Looking At: CSV for Subscribers, Broadcasts and Activity](https://sendbroadcast.net/blog/csv-export-subscribers-broadcasts-activity)

Version 2.18.0  Released

- Subscriber search now matches any part of an email address, including the domain, so searching a domain finds everyone on it.
- The broadcasts list shows when each broadcast was sent, not just when it was created, with bounce and spam rates alongside opens and clicks.
- Templates and segments can be cloned from their lists, and a cloned segment keeps every rule.
- A sent broadcast's recipient activity is now a sortable table with one row per recipient, a status for each, and filters for opened, clicked, bounced, spam and unsubscribed.
- A subscriber's Activity now records opens and clicks, not just sends, each naming the broadcast involved.
- Templates can carry tags and be filtered by them, and subscriber tags are clickable to filter the subscriber list.
- A template can be copied to another channel, with a link that takes you straight to the copy.
- Opt-in signups no longer lose the subscriber's first and last name, so confirmation and welcome emails address people properly.
- Confirmation links are now sent over https, keeping the single-use token off cleartext.
- Confirmation, welcome and API transactional emails now send correctly on a channel that relies on the platform default email server, instead of reporting the channel ready and then sending nothing.
- The sequence subscriber-error webhook now fires when an enrollment stops being able to progress, carrying the reason; it was previously offered in the endpoint settings but never delivered.
- The segments list distinguishes a segment whose subscriber count has never been calculated from one that genuinely has no subscribers.
- The setup checklist starts collapsed and says how many steps are missing, instead of covering the page.

#### Read more about this release

- [One Customer's Feedback Email, Shipped](https://sendbroadcast.net/blog/shipping-a-customer-feedback-release)

## July 24, 2026

Version 2.17.0  Released

- You can now automatically upload every backup to S3-compatible object storage such as AWS S3, Cloudflare R2, Backblaze B2, Wasabi, or MinIO, so a copy survives the loss of your server.
- Configure the storage destination right from the Backups page, and test your connection before saving with a step-by-step check that verifies your bucket is reachable and writable.
- Each backup's upload status is shown on the Backups page, with one-click retry for failed uploads.
- Older copies in your bucket are pruned automatically based on your remote retention setting, and deleting a backup also removes its copy from the bucket.
- Backups can be downloaded even after the local file is gone, fetched directly from your object storage.
- Creating a backup now reports failure immediately when the backup cannot start, instead of leaving a row stuck in Pending.
- The manual backup instructions for unmanaged installations now produce a file that appears in your backup history and works with the restore command.
- Backup pages and downloads now require the system backups permission.
- Long backup filenames no longer cause horizontal scrolling in the backup history.
- You can now download your application logs from the Application Logs page to forward to support.

#### Read more about this release

- [A Backup on the Same Server Isn't a Backup](https://sendbroadcast.net/blog/offsite-backups-s3-object-storage)

## July 23, 2026

Version 2.16.2  Released

- The email server edit form now offers all 18 Amazon SES regions, including Europe (Stockholm) eu-north-1.
- Fixed a bug where editing an email server whose saved AWS region was missing from the form list silently rewrote the region to us-east-1 when saving an unrelated change. The saved region is now always preserved, even if it is not in the list.

Version 2.16.1  Released

- Domain DNS Health now correctly recognizes Amazon SES DKIM records, which use a minimal record format that was previously reported as missing even when the DNS was configured correctly.

Version 2.16.0  Released

- The API now returns a warnings array whenever a request succeeds but the outcome differs from what you asked, such as a misspelled parameter, a skipped double opt-in, or a value the server overrode.
- Transactional email sends support an Idempotency-Key header so retrying a request after a timeout can never send the same email twice.
- Admin API tokens can migrate subscribers from another platform with their confirmation state intact by passing confirmed_at on create.
- Deactivating a subscriber through the update API now warns that only the unsubscribe endpoint records an unsubscribe date and suppression entry.
- The Domain DNS Health page now explains that checks watch for changes against a known-good baseline, shows the previous SPF record when it changes, and explains why DKIM records with randomized selector names need the setup wizard or a manual selector.
- Cancelling a scheduled broadcast now reports an error if the cancellation fails instead of appearing to succeed.
- Documentation pages that link to other pages no longer fail to load.

#### Read more about this release

- [The 200 That Didn't Do What You Asked](https://sendbroadcast.net/blog/api-warnings-and-idempotent-sends)

## July 06, 2026

Version 2.15.0  Released

- After an upgrade, Broadcast now greets you with a short What's New tour that walks through the new features screen by screen.
- The tour shows each feature with a screenshot and a link to try it, appears once per user, and can be dismissed at any time.
- Broadcast now runs on Ruby 4.0.5.

#### Read more about this release

- [Nobody Reads the Changelog](https://sendbroadcast.net/blog/whats-new-tour-after-upgrade)

## June 29, 2026

Version 2.14.2  Released

- Fixed subscriber CSV/TSV import: drag-and-drop now accepts dropped files instead of the browser opening them
- Fixed the import file picker not showing the selected file or starting the import

## June 24, 2026

Version 2.14.1  Released

- This release includes behind-the-scenes maintenance, dependency upgrades, and security patches for improved stability.

## June 15, 2026

Version 2.14.0  Released

- Ask AI can now answer email deliverability questions using real SPF, DKIM, and DMARC check data for your domains.
- Ask AI no longer shows an empty bubble while it works on answers that use tools — the progress indicator stays visible until the answer is ready.
- The Application Logs viewer now shows recent log history as soon as you start streaming, and tells you when the log file looks stale instead of appearing silently empty.

#### Read more about this release

- [An AI That Reads Your Actual DNS, Not a Blog Post About DNS](https://sendbroadcast.net/blog/ai-that-reads-your-own-dns)

## June 13, 2026

Version 2.13.0  Released

- You can now monitor SPF, DKIM, and DMARC records for each channel's sending domains from a new Domain DNS Health page in Settings, with at-a-glance status badges for every domain.
- Broadcast re-checks your email authentication records automatically every few hours and shows a banner on your dashboard if a record that was previously healthy changes or disappears.
- DKIM monitoring works with any provider now: it uses records from the provider setup wizard where available, automatically discovers common selectors for SMTP and other providers, and lets you add custom selectors by hand.
- When a domain has no DMARC record, the page offers a ready-to-copy starter record along with a reminder to make sure the reporting mailbox exists.

#### Read more about this release

- [Your SPF Record Will Break When You Least Expect It](https://sendbroadcast.net/blog/monitor-spf-dkim-dmarc-dns-health)

## June 02, 2026

Version 2.12.2  Released

- Fixed an error that prevented the Ask AI assistant from starting a conversation on self-hosted installations.

## June 01, 2026

Version 2.12.1  Released

- Fixed a database migration error that prevented self-hosted upgrades to 2.12.0 from completing.

Version 2.12.0  Released

- Introducing Ask AI, an in-app AI assistant you can chat with from a side drawer to get answers about your account and take actions.
- Ask AI can look up your subscribers, broadcasts, segments, and other data to answer questions.
- Ask AI can create broadcasts, segments, and sequence steps for you, with a confirmation step before any changes are made.
- Ask AI can send or schedule broadcasts on your behalf after you confirm.
- Configure your AI provider and model under Settings → AI, with support for OpenAI and OpenRouter and an encrypted API key.
- The model dropdown loads OpenRouter's live model catalog and groups choices by vendor.
- Ask AI replies stream in as formatted text, and the assistant's reasoning is shown separately from its answer.
- Switch between past conversations, which are now given automatic titles, and see prompt suggestions tailored to the page you're on.
- Subscriber personal information is replaced with placeholders before anything is sent to an AI provider.
- A new AI activity view lets you review how Ask AI has been used in each channel.
- Email delivery is now idempotent, so subscribers no longer receive duplicate copies of a broadcast.
- Temporary sending failures are now automatically retried for both broadcasts and transactional emails.
- A single bad recipient no longer stops an entire broadcast from sending.
- Interrupted broadcast sends can now resume where they left off.
- You can now manually reset an email server's rate limit.
- Fixed opt-in form submissions from embedded iframes being silently dropped.
- Fixed the broadcast progress page showing "Recipients undefined".
- Fixed several issues with segment rules to make subscriber filtering more accurate.
- The recipient count on the broadcast progress page now animates with a count-up effect.

#### Read more about this release

- [Ask AI: An Email Marketing Assistant You Actually Own](https://sendbroadcast.net/blog/ask-ai-self-hosted-email-assistant)
- [Making Broadcast Sends Bulletproof: Safe to Crash, Safe to Retry, Safe to Resume](https://sendbroadcast.net/blog/bulletproof-email-sending)

## May 25, 2026

Version 2.11.2  Released

- Backups now show one completed entry instead of a duplicate failed row

## May 23, 2026

Version 2.11.1  Released

- Confirmation and welcome emails now preserve the paragraph spacing from your rich-text templates instead of stripping out line breaks.
- Creating a backup no longer occasionally starts a duplicate that gets stuck pending forever, and backups that stall are now cleared automatically.

## May 09, 2026

Version 2.11.0  Released

- When you upload a subscriber CSV or TSV, Broadcast now shows a preview of your data and lets you map each column to email, name, tags, custom fields, or ignore, with the first ten rows visible so you can sanity-check before importing.
- CSV files can now include a tags column. Choose comma, pipe, or semicolon as the separator on the import page if your file uses something other than quoted commas.
- The opt-in form editor adds four new block types to the palette: Dropdown, Radio Group, Image, and Spacer.
- Image blocks can either upload a new image or pick one from your existing file asset library.
- Security and embedding-domain settings are now editable directly inside the editor's Settings modal.
- The opt-in form read API now returns the full attribute set for every block, including value type, custom data key, and the required and validation flags.
- ARM64 Docker images are now tagged with the application version alongside :latest, so self-hosted deployments can pin to a specific release.

#### Read more about this release

- [Importing a List Shouldn't Require Rewriting the File First](https://sendbroadcast.net/blog/csv-import-column-mapping)

## May 03, 2026

Version 2.10.0  Released

- Opt-in form builders can now add a Custom Field block from the editor palette to collect free-text answers into subscriber custom data.
- Custom fields can be set to multi-line so they render as a textarea on the form, with a hint showing how to preserve line breaks in email templates.
- Opt-in submissions now reject any custom_data value larger than 2KB with a clear per-field error.
- The opt-in form checkbox now has rounded corners that match the rest of the widget's styling.
- The checkbox inspector now spells out exactly where the value is stored and what its default key is.
- Block inspector panels no longer duplicate the canvas preview, leaving the live canvas as the single source of preview.
- Updated dependencies including Rails to 8.1.3.

#### Read more about this release

- [Ask the Question at Signup, Not in a Survey Six Months Later](https://sendbroadcast.net/blog/ask-a-question-at-signup)

## May 01, 2026

Version 2.9.0  Released

- Broadcast channels can now host multiple autopilots, each with its own sources, tone, schedule, and target segments.
- Scheduled autopilot runs now actually fire on schedule.
- Autopilot GitHub sources surface real HTTP errors instead of "No recent activity found", and a bug that broke form-configured GitHub sources is fixed.
- The autopilot sidebar now shows the right contextual nav.

Version 2.8.3  Released

- Fixed an internal encryption key configuration issue on self-hosted instances.

## April 30, 2026

Version 2.8.2  Released

- Improved the Autopilot AI model selection experience.
- Fixed a 50x error that could occur on Autopilot-related pages.

## April 29, 2026

Version 2.8.1  Released

- Everything you can configure for confirmation pages in the admin UI — per-state page text, redirect URLs, default confirmation templates, and template assignments on opt-in forms — can now be managed through the API too.

## April 28, 2026

Version 2.8.0  Released

- Customize what subscribers see on the confirmation page after clicking a double opt-in link, with separate heading and body text for each of six page states; edit any confirmation template's sidebar to use the new state selector. Opt-in forms with double opt-in enabled now have an "After Confirmation" URL field that redirects subscribers to your own page instead of showing Broadcast's confirmation page. Channels now have a Language setting under Settings → General Channel Settings, currently English-only with infrastructure for future translations. Fixed a bug where confirmation pages for opt-in form subscribers never showed the custom text set on the form's confirmation template. The logo on confirmation and error pages is now centered. Documentation now has a global search modal accessible from any docs page. Old nested documentation URLs now redirect to their new flat slugs so existing links keep working.

#### Read more about this release

- [The Page After the Click Is Part of Your Brand Too](https://sendbroadcast.net/blog/confirmation-pages-you-control)

## April 26, 2026

Version 2.7.1  Released

- Fix copy button on agent page
- Bump Ruby version

## April 25, 2026

Version 2.7.0  Released

- Postmark setup now creates servers with names that match your channel and install.
- Re-running the Postmark connect wizard reuses the existing server instead of leaving duplicates behind.
- Renaming a channel automatically renames the matching server in Postmark.
- Audience counts in the composer and API no longer include redacted subscribers.

## April 20, 2026

Version 2.6.3  Released

- Updated dependencies, including Rails to 8.1.3

## April 17, 2026

Version 2.6.2  Released

- Broadcast composer Review tab now accurately reflects selected audience segments, fixing a misleading "Sending to: All subscribers" summary.

## April 15, 2026

Version 2.6.1  Released

- Bumped dependencies

## April 04, 2026

Version 2.6.0  Released

- Segment rules now support relative dates ("N days ago") for before, after, on or before, and on or after operators, enabling dynamic segments that recalculate automatically each day
- Added date mode selector in segment rule form to switch between specific dates and relative dates
- Added validation to prevent relative dates from being used with unsupported operators (equals, not_equals, etc.)
- Segment rule descriptions now display "days ago" suffix for relative date values

#### Read more about this release

- [A Segment With a Hardcoded Date Is a Segment That Rots](https://sendbroadcast.net/blog/segments-that-update-themselves)

## April 02, 2026

Version 2.5.0  Released

- Segment subscribers by any key in their custom data JSON field. Supports text, number, date, and boolean comparisons with all applicable operators. Use dot notation for nested keys (e.g., preferences.language).
- New "Custom Data Field" option in the segment builder with inline key input, type selector, and expandable help section.
- Live preview count now updates when changing custom data key or type.

## March 29, 2026

Version 2.4.0  Released

- Added confirmation_status field to all Subscriber API responses, derived from confirmed_at
- Added confirmation status display with badge and timestamp to subscriber details view
- Added reply_to support for double opt-in confirmation emails via double_opt_in object form
- Added confirmation_template_id as a nested option inside the double_opt_in object
- Added toggle to suppress unsubscribe link in confirmation emails, configurable via opt-in form settings and API
- Updated all gem dependencies including solid_queue 1.3.2→1.4.0 and liquid 5.11.0→5.12.0

## March 27, 2026

Version 2.3.0  Released

- Fix confirmation emails not sending from the Subscribers API due to missing .deliver_now call.
- Fix confirmation emails using random email servers instead of transactional-flagged servers.
- Add Is Confirmed segment rule for filtering subscribers by confirmation status in segments.
- Add confirmed_at field and confirmation_status filter to Subscribers API responses.
- Add upfront validation for double opt-in that returns 422 if no transactional email server or confirmation template is configured.
- Add warnings in broadcast send/schedule modals when unconfirmed subscribers exist without a segment applied.
- Add warning in opt-in form settings when no transactional email server is configured.

Version 2.2.0  Released

- Add double opt-in support to the Subscribers API with double_opt_in: true parameter
- Add double opt-in support to the Transactional API with auto subscriber creation and {{ confirmation_url }} resolution
- Add template_id parameter to the Transactional API for template-based transactional emails
- Add confirmation templates UI under Templates > Confirmation with default toggle and confirmation page preview
- Seed a default confirmation template for every channel automatically
- Fix transaction safety for double opt-in subscriber creation flows
- Fix background job enqueue to run outside database transactions
- Eliminate double save on transactional email creation

## March 26, 2026

Version 2.1.2  Released

- Fixed incorrect DNS record type label for Postmark DKIM setup where pending DKIM records now correctly display as TXT instead of CNAME

## March 25, 2026

Version 2.1.1  Released

- Increase API rate limit to 1200 requests/min for self-hosted deployments (SaaS retains 120/min). Self-hosted users can customize via `API_RATE_LIMIT` env var.
- Use APP_VERSION-relative test versions in installation tests.
- Add anchor tags to table row identifiers for native link behavior.
- Respect `source` field in subscriber API POST request.

## March 22, 2026

Version 2.1.0  Released

- Email provider auto-setup wizards for Postmark, AWS SES, SendGrid, and Mailgun
- Merged ESP Integrations into Email Servers with per-server detail page
- Auto-detect CPU cores for SolidQueue worker concurrency
- SES simulator test email with round-trip webhook verification
- Webhook endpoints permissions added to API token form
- Fix correct sequence_path for completed sequence activity link
- Fix table CSS from transactional email preview
- Fix DomainResolver for installation domain in wizard step 2
- Bump Ruby from 4.0.1 to 4.0.2

#### Read more about this release

- [Connecting an Email Provider Should Not Take an Afternoon](https://sendbroadcast.net/blog/email-provider-setup-wizards)

## March 16, 2026

Version 2.0.1  Released

- Batch DB writes in BroadcastSendJob to reduce PostgreSQL overhead

Version 2.0.0  Released

- ### Features
- - Autopilot AI newsletter generation with OpenRouter
- - Agent-native surface for AI discoverability and onboarding
- - API rate limiting with rack-attack
- - WYSIWYG editor improvements (font size, image insertion, template picker)
- - Per-broadcast/sequence unsubscribe link toggle
- - Opt-in form input field customization and widget embed improvements
- - Send one-off emails from subscriber page
- - Custom domain step in channel creation wizard
- - Liquid template rendering in email headers
- ### Infrastructure
- - Ruby upgraded to 4.0.1
- - Dynamic error pages (404, 422, 500)
- ### Bug Fixes
- - Safari unsubscribe modal positioning
- - Widget caching, CORS, and iframe sizing fixes
- - Sidebar scroll and tooltip visibility
- - Pagination fix for empty link tracking results
- - Numerous test stability improvements

#### Read more about this release

- [Autopilot: The Newsletter That Writes Its First Draft Itself](https://sendbroadcast.net/blog/autopilot-ai-newsletters)
- [Email Marketing Software Your AI Agent Can Actually Drive](https://sendbroadcast.net/blog/agent-native-email-marketing)
- [What Broadcast 2.0 Actually Changed](https://sendbroadcast.net/blog/what-broadcast-2-0-actually-changed)

## March 05, 2026

Version 1.30.2  Released

- Fix large backup downloads

## February 25, 2026

Version 2.0.0-beta.11  Released

- Upgraded Ruby to 4.0.1
- Fixed opt-in form editor crashing when theme colors use shorthand hex values like #fff
- Fixed link tracking page failing to load due to missing request context in pagination

## February 23, 2026

Version 2.0.0-beta.10  Released

- Added agent-native surface: API discoverability endpoints (whoami, prime, status, skill), agents dashboard, bash CLI, setup links
- Bash CLI: Full command-line interface for managing subscribers, broadcasts, and sequences

## February 19, 2026

Version 2.0.0-beta.9  Released

- Add into rich text editor ability to set (preset) font sizes
- Fix bug in Safari for rendering of a certain modal

## February 18, 2026

Version 2.0.0-beta.8  Released

- Per-email unsubscribe link toggle - You can now disable the unsubscribe footer and List-Unsubscribe header on individual broadcasts and sequence steps for transactional emails, with a compliance warning modal
- Template picker with preview for sequence steps — Select and preview templates directly in the sequence step editor
- Hover preview for sequence email steps — See a popover preview of email content on hover in the sequence builder
- Liquid template support in email headers — Custom email headers now support Liquid variables like {{ subscriber.email }}
- Improved subscriber data access in Liquid — data and custom_data fields are now interchangeable in Liquid templates via fallback on SubscriberDrop

## February 17, 2026

Version 2.0.0-beta.7  Released

- Fix inserting images into rich text editor

Version 2.0.0-beta.6  Released

- Fix issue where rich text editor does not properly insert image due to unescaped quotation
- Fix UI issue with modal

Version 2.0.0-beta.5  Released

- Fix issue with email server selection and broadcast settings
- Fix issue where application configuration causes nil error
- Fix issue where segment selection is not maintained

## February 16, 2026

Version 2.0.0-beta.4  Released

- Fix issue where assets were not inserted correctly in the editor
- Fix bug where test email server did not have the right credentials for some installations

## February 13, 2026

Version 2.0.0-beta.3  Released

- Bugfixes for when installation is not automatic script managed

## February 12, 2026

Version 2.0.0-beta.2  Released

- Bugfixes

## February 04, 2026

Version 2.0.0-beta.1  Released

- Initial 2.0.0 beta 1 release
- Please back up your database before upgrading
- DO NOT upgrade using the in-app update as the migrations may take some time
- To upgrade run this: (1) ssh into your server (2) cd /opt/broadcast (3) ./broadcast.sh upgrade 2.0.0-beta.1

## January 30, 2026

Version 1.30.1  Released

- Fixed unsubscribe rate tracking so OutboundReceipt is properly marked when subscribers unsubscribe via native links
- Fixed AWS SES event types by removing invalid 'subscription' event type

Version 1.30.0  Released

- Re-run AWS SES automatic setup on already-integrated servers to add new event types or update AWS resources
- Manually sync your AWS SES account-level suppression list to Broadcast's global suppression list
- Support for AWS SES's newer eventType webhook format alongside the legacy notificationType format
- AWS SES integration now configures subscription event destinations
- Bounced and complained email addresses are now automatically added to the global suppression list
- Track detailed bounce sub-types from AWS SES webhooks
- Improved discoverability and layout of the ESP Integrations settings page

## January 29, 2026

Version 1.29.7  Released

- Fixed an issue where open and click rates could display incorrect values.

## January 18, 2026

Version 1.29.6  Released

- Fixed Postmark Reply-To header error and corrected email server vendor display in settings

## January 16, 2026

Version 1.29.5  Released

- Updated solid_queue dependency to 1.3.1

Version 1.29.4  Released

- Added optional async mode for Solid Queue when running inside Puma. Users on small servers can now set `SOLID_QUEUE_SUPERVISOR_MODE=async` to reduce memory usage by running workers in threads instead of forking separate processes.

## January 13, 2026

Version 1.29.3  Released

- Fix sequence subscribers pagination crash when next_trigger_at is nil or page parameter is invalid
- Add ostruct gem to fix Ruby 4.0 deprecation warning

## January 10, 2026

Version 1.29.2  Released

- Fixed Postmark message stream name from 'broadcasts' to 'broadcast'

## January 05, 2026

Version 1.29.1  Released

- Fix API subscriber update with tags bug and add list filtering (is_active, source, created_after, created_before, tags, email) to subscribers endpoint.

## January 04, 2026

Version 1.29.0  Released

- Filter subscribers by custom_data fields via API query parameters (e.g., `?custom_data[plan]=enterprise`)

Version 1.28.1  Released

- API Error Handling - Fixed generic 500 errors
- API now returns proper status codes (422, 404, 400) with meaningful JSON error messages

## January 01, 2026

Version 1.28.0  Released

- AWS SES v2 API Support: Upgraded to AWS SES v2 API for custom email header support (Broadcast-Message-ID, List-Unsubscribe-Post)
- Multipart Email Support: Added automatic plain text generation for HTML emails, improving deliverability and spam scores
- Rich Text Emails: Fixed duplicate HTML structure in rich text emails that caused malformed output
- AWS SES API: Filter out Message-ID header which is not supported by SES v2 API
- Broadcast UI: Fixed case mismatch in status checks preventing auto-refresh when broadcasts complete
- WebSocket Race Condition: Server now sends current state on subscription connect, fixing UI stuck on "Scheduled" for fast broadcasts

## December 30, 2025

Version 1.27.8  Released

- Fixed SolidCable table schema
- Added auto-repair for affected installations

Version 1.27.7  Released

- Fix issue where AWS SES not letting users set up in non-standard Broadcast installations

## December 29, 2025

Version 1.27.6  Released

- Adjust the way segment metrics are calculated (again)

Version 1.27.5  Released

- AWS SES API webhook matching - Delivery notifications now correctly match OutboundReceipt records when using SES API delivery method. Previously, AWS overwrote the Message-ID header, causing delivery webhooks to fail silently.
- Segment statistics showing 0% - Fixed an issue where segment open/click rates showed 0% for 30/90 day periods even when emails were recently sent via SES API. The system now falls back to total receipt counts when delivery data is missing.

## December 26, 2025

Version 1.27.4  Released

- Fix issue with segment metric calculations

Version 1.27.3  Released

- Make refresh self-healing for segment metrics

Version 1.27.2  Released

- Fix segment metrics not refreshing

## December 24, 2025

Version 1.27.1  Released

- Release rate limiting bug where counts are errorneously calculated

## December 22, 2025

Version 1.27.0  Released

- Added ability to duplicate sequences via the UI and API

Version 1.26.1  Released

- Add HTML preview for sequence step emails

## December 21, 2025

Version 1.26.0  Released

- Released APIs for webhooks, opt-in forms, segments

Version 1.25.1  Released

- Fixed bad Docker build

Version 1.25.0  Released

- Added API for sequence CRUD
- Fix transactional emails blocked when subscriber was unsubscribed

## December 19, 2025

Version 1.24.7  Released

- Bump runtime Ruby to 3.4.8

## December 16, 2025

Version 1.24.6  Released

- Fix scheduling and other recurring jobs

Version 1.24.5  Released

- DO NOT UPGRADE TO THIS VERSION IF YOUR INSTALLATION IS WORKING PROPERLY
- Add logging to unusual condition where outbound receipts are not created
- Remove auto-update of email server model related to above

## December 14, 2025

Version 1.24.4  Released

- Minor fixes for demo mode

Version 1.24.3  Released

- Improve on sending scheduled broadcasts via API

## December 13, 2025

Version 1.24.2  Released

- Fix foreign key constraint on unsubscribe table
- Fix and clarify issue with sequence active status

## December 11, 2025

Version 1.24.1  Released

- Update internal dependencies

## December 10, 2025

Version 1.24.0  Released

- Add email servers CRUD to API

## December 04, 2025

Version 1.23.0  Released

- Time-based engagement filtering for segments (emails opened/clicked within last X days)
- Segment-based sequence triggers - auto-enroll subscribers matching segment criteria
- New segment rule operators for date-based filtering
- Auto-sync job runs every 5-15 minutes to keep sequence enrollments updated
- Improved engagement window rule UI layout with better input ordering

## November 28, 2025

Version 1.22.2  Released

- Fix permission problem (again)

## November 26, 2025

Version 1.22.1  Released

- Fix issue where in certain cases, a newly created user is unable to switch to a channel where they can access because the application defaults them to a restricted channel

## November 22, 2025

Version 1.22.0  Released

- Add advance link tracking (experimental)

## November 19, 2025

Version 1.21.5  Released

- Increase thead count for server

## November 15, 2025

Version 1.21.4  Released

- Upgrade more dependencies, related to pagination

## November 14, 2025

Version 1.21.3  Released

- Increase connection availability to the database causing lag on heavy load

## November 13, 2025

Version 1.21.2  Released

- Updated bunch of dependencies
- Rails upgraded to v8.1

## October 30, 2025

Version 1.21.1  Released

- Improve and fix the required headers auto injection into Postmark bound emails

## October 29, 2025

Version 1.21.0  Released

- Added webhook events for sequences
- Fix issue where inactive subscribers remain in sequences
- Update subscriber table UI to include active status
- Fix 500 error when adding subscribers to sequences from the search modal
- Update gem dependencies

## October 27, 2025

Version 1.20.1  Released

- Fix for Postmark API send and editing of email server

## October 25, 2025

Version 1.20.0  Released

- Add API endpoints for opens/clicks and other broadcast statistics
- Update more dependencies

## October 24, 2025

Version 1.19.3  Released

- Fix for AWS API sends where reply_to is not set properly

Version 1.19.2  Released

- Maintenance release for dependencies

## October 17, 2025

Version 1.19.1  Released

- Dependency updates

## October 12, 2025

Version 1.19.0  Released

- Add Postmark API send functionality
- Update Ruby runtime to 3.4.7
- Update bunch of dependencies

## October 06, 2025

Version 1.18.4  Released

- More fixes for the demo

Version 1.18.3  Released

- Fix demo mode

Version 1.18.2  Released

- Release with maintenance and code clean up

## October 05, 2025

Version 1.18.1  Released

- Minor dependencies update

## October 02, 2025

Version 1.18.0  Released

- Big optimization update (codename: "Big Ben")
- Implemented parallel broadcast sending architecture with job splitting pattern for 8-24x speedup on large broadcasts
- Optimized rate limiting with intelligent caching and in-memory batch tracking
- Fixed critical UnsubscribeLinkGenerator performance bug
- Implemented BroadcastEmailRenderer service for template pre-parsing optimization
- Optimized sequential mode progress updates with batching
- Added real-time rate limit warning
- Fix instant status updates when resuming broadcasts
- Fixed race condition in broadcast status updates
- Updated gem dependencies

## September 28, 2025

Version 1.17.1  Released

- Fix Postmark unsubscribe placeholder detection

Version 1.17.0  Released

- Optimization attempt for worker queues
- Improve UI for determining rate sending for emails during broadcasts
- Update dependencies

## September 26, 2025

Version 1.16.2  Released

- Optimize DB connection pool

Version 1.16.1  Released

- Fix UI bug when adding AWS SES API servers

## September 25, 2025

Version 1.16.0  Released

- Experimental use of AWS API for sending emails
- Important: If you do not have the need for this feature, do not upgrade. This is currently an experimental feature and is undergoing testing.

Version 1.15.0  Released

- Updated dependencies, including Rails to 8.0.3

## September 21, 2025

Version 1.14.0  Released

- Upgrade Ruby to 3.4.6
- Add indices to fix issue with slow segment querying

Version 1.13.0  Released

- Expand segment rules to allow for total emails sent, opened, and clicked

## September 20, 2025

Version 1.12.1  Released

- Fix issue where webhook event `message.attempt.exhausted` was not processed

## September 18, 2025

Version 1.12.0  Released

- Expand functionality of unsubscribe page with (optional) requirement to confirm unsubscribing

## September 17, 2025

Version 1.11.0  Released

- Add functionality to allow broadcast channel name to be changed

## September 16, 2025

Version 1.10.4  Released

- Attempt to fix installation issue related to SSL certificate issuing

## September 08, 2025

Version 1.10.3  Released

- Fix transactional tab in dashboard home

Version 1.10.2  Released

- Add delimiters to large numbers in dashboard
- Update dependencies

## September 03, 2025

Version 1.10.1  Released

- Fix broadcast statistic calculation

Version 1.10.0  Released

- Add analytics columns to broadcasts index
- Add ability to recalculate denominator for broadcast stats
- UI refinements

## September 02, 2025

Version 1.9.1  Released

- Attempt to fix broadcast recipient number inaccuracy

## August 29, 2025

Version 1.9.0  Released

- Add experimental support for SMTP.COM
- Add SMTP.COM as an email service provider
- Add SMTP.com callback (webhook) support
- Update internal dependencies

## August 25, 2025

Version 1.8.7  Released

- Fix webhook not sent when subscriber is unsubscribed due to bounce

## August 22, 2025

Version 1.8.6  Released

- Fix again for preheaders in HTML templated emails

## August 20, 2025

Version 1.8.5  Released

- Fixed subscriber tag in the web UI not working
- Added email preheader support for HTML emails with proper CSS styling

## August 18, 2025

Version 1.8.4  Released

- Fix CSV import encoding issues with special characters
- Enable full Liquid variable interpolation in email footers across all mailers
- Add tracking click and open settings to broadcast duplication functionality
- Update dependencies

Version 1.8.3  Released

- Fix issue when segment tags are defined
- Add segment based on no emails sent/clicked/opened
- Fix UI issues with segment rule display

Version 1.8.2  Released

- Fix a bug in segment definition UI
- Tune outbound mailing mechanism
- Address dependency deprecation
- Improve charting

## August 17, 2025

Version 1.8.1  Released

- Fix issue where test broadcast sends do not include reply-to settings

## August 15, 2025

Version 1.8.0  Released

- Added auto-refresh webhook deliveries section when test webhook is sent
- Fixed test webhook payloads that match production data
- Improve webhook delivery authorization and test feedback UX
- Implement bulk delete functionality for templates and file assets
- Improve empty state UI views
- Added safety fix for reloading app

## August 14, 2025

Version 1.7.0  Released

- GDPR data management (ie. to "delete" subscribers) via web UI and API
- Added ability to archive broadcasts
- Added search functionality to broadcasts index page
- Improved choose format modal for templates and broadcasts
- Removed some technical debt
- Updated Rails to 8.0.2.1 and other dependencies

## August 11, 2025

Version 1.6.0  Released

- Add functionality where subscriber imports support subscribed_at and unsubscribed_at columns

## August 10, 2025

Version 1.5.7  Released

- Fix broadcast activities not showing properly

Version 1.5.6  Released

- Fix AWS integration modal not displaying

## August 08, 2025

Version 1.5.5  Released

- Fix issue where unsubscribed emails cross contaminate other channels with transactional emails

## August 07, 2025

Version 1.5.4  Released

- Add unsubscribe option to subscriber show page
- Add confirmation modal
- Fix issue where app updates are cached and latest version not showing

Version 1.5.3  Released

- Add resubscribe button to subscriber page (admin)
- Fix for bounce event

## August 06, 2025

Version 1.5.2  Released

- Rerelease of v1.5.0
- Add multi-user capability with user level permissions
- Fix for jobs dashboard

## August 04, 2025

Version 1.4.5  Released

- Fix bug in subscribers API where subscriber is not active when re-POSTing

## August 01, 2025

Version 1.4.4  Released

- Update dependencies, including security related ones
- Improve UI

## July 30, 2025

Version 1.4.3  Released

- Sequences initial entry delay changed from 10 minutes to 10 seconds
- IMPORTANT: If you previously relied on this initial delay, please add it manually with an extra delay step before your first sequence step

## July 29, 2025

Version 1.4.2  Released

- Fix JSON rendering for Subscriber custom_data

Version 1.4.1  Released

- Fix 500 errors on certain unsubscription pages
- Fix segment case sensitivity for tags

Version 1.4.0  Released

- Add subscriber unsubscribe/re-subscribe API endpoints

Version 1.3.0  Released

- Added webhooks for broadcast events (scheduled, sending, sent, failed, etc)

Version 1.2.1  Released

- Updated Ruby to 3.4.5

## July 25, 2025

Version 1.2.0  Released

- Add force all active option for subscriber imports
- Fix transactionals page sidebar functionality and add email body display
- Improved search form functionality
- Improved add subscriber page styling and reorganized navigation

## July 21, 2025

Version 1.1.0  Released

- Added ability to set multiple subscribers as inactive with uploaded file
- Fixed critical subscriber count bug
- Display version clearly in the dashboard
- UI improvements

Version 1.0.1  Released

- Security updates on upstream dependencies

## July 20, 2025

Version 1.0.0  Released

- Added comprehensive version-specific upgrade/downgrade system with releases API integration
- Updated UI for application upgrade/downgrade
- Added reply-to support for transactional emails via API
- Added reply-to functionality for broadcast emails with duplication preservation
- Updated release notes sidebar on dashboard showing latest platform updates

## July 18, 2025

Version 0.38.1  Released

- Upgraded a bunch of dependencies

## July 13, 2025

Version 0.38.0  Released

- Upgrade web server dependency
- Optimizations for outbound mailer queue
- Fix miscalculation of total recipients in certain scenarios

## July 10, 2025

Version 0.37.1  Released

- Fix real time broadcast analytics

Version 0.37.0  Released

- File assets now have permalinks you can copy and use in your emails

Version 0.36.4  Released

- Fix deep nested dot notation for subscriber custom data in emails

Version 0.36.3  Released

- Fixed CSV importing issue when there are tags

## July 09, 2025

Version 0.36.2  Released

- Add button to allow deletion of webhook endpoints

Version 0.36.1  Released

- Add support to custom data in CSV/TSV import for subscribers
- Update design of CSV/TSV import page

Version 0.36.0  Released

- Add real time delivery analytics to broadcasts (experimental)
- Improve localized timestamps in the dashboard
- Improve information displayed on broadcast page

## July 08, 2025

Version 0.35.2  Released

- Fixed UI issue when subscribers are updated in the dashboard
- Fix CORs issue when loaded embedded opt-in forms
- Improve embedded opt-in form loading for Chrome browser
- Add automatic embedded iframe height detection and adjustment
- Added additional security measures for opt in forms

## July 07, 2025

Version 0.35.1  Released

- Fix open tracking pixel in HTML emails

## July 06, 2025

Version 0.35.0  Released

- Added webhook system to Broadcast
- Full description of capabilities available in our webhook documentation

## July 04, 2025

Version 0.34.1  Released

- Updated major Tailwind CSS dependency
- Checkbox CSS fixes and switch fixes

Version 0.34.0  Released

- Updated major Tailwind CSS dependency
- Checkbox CSS fixes and switch fixes

Version 0.33.1  Released

- Added additional Broadcast API endpoints
- Enhanced broadcast object with additional fields: status, html_body, reply_to, total_recipients, sent_at, scheduled_send_at
- Improved API error handling with consistent JSON error responses
- Added ability to refresh API token value

Version 0.33.0  Released

- Added additional Broadcast API endpoints
- Enhanced broadcast object with additional fields: status, html_body, reply_to, total_recipients, sent_at, scheduled_send_at
- Improved API error handling with consistent JSON error responses
- Added ability to refresh API token value

## July 03, 2025

Version 0.32.1  Released

- Fix bug when adding duplicate subscriber

## July 02, 2025

Version 0.32.0  Released

- Added global suppression list feature for managing email suppressions
- Support for both channel-specific and global email suppressions
- Bulk upload functionality for suppression lists via text file
- Enhanced filtering and search capabilities for suppression management
- Automatic suppression checking integrated into broadcast and transactional email sending

## July 01, 2025

Version 0.31.0  Released

- Enhanced API filtering capabilities for subscribers endpoint
- Added support for AND/OR logic in tag filtering using tag_match_type parameter
- Improved subscriber filtering for external system synchronization
- Added comprehensive filtering by subscription status, source, date ranges, email patterns, and custom data
- Enhanced Resend ESP integration with improved webhook configuration

## June 30, 2025

Version 0.30.0  Released

- Fix adding Inboxroad servers
- Add additional set up instructions for Inboxroad webhooks
- Added automatic API polling for Inboxrode to sync bounces and complaints

Version 0.29.3  Released

- Fix adding Inboxroad servers
- Add additional set up instructions for Inboxroad webhooks
- Added automatic API polling for Inboxrode to sync bounces and complaints

Version 0.29.2  Released

- Fix adding Inboxroad servers
- Add additional set up instructions for Inboxroad webhooks
- Added automatic API polling for Inboxrode to sync bounces and complaints

## June 29, 2025

Version 0.29.1  Released

- Redesigned AWS SNS/SES integration, now supporting automatic install with secret access key
- Supports webhooks from Inboxroad
- Fixed CTR number being inaccurate when resending failed subsegments
- Allow purging all subscribers in test broadcast channels

Version 0.29.0  Released

- Redesigned AWS SNS/SES integration, now supporting automatic install with secret access key
- Supports webhooks from Inboxroad
- Fixed CTR number being inaccurate when resending failed subsegments
- Allow purging all subscribers in test broadcast channels

## June 26, 2025

Version 0.28.2  Released

- Add additional retry mechanism in case broadcast sends fail due to single occurrence errors
- Fix earlier unreleased features part of 0.27.3

## June 25, 2025

Version 0.28.1  Released

- Add a fix for slow SMTP servers where timeouts happen
- Allow for duplicated broadcasts of broadcasts that failed to resend only to subscribers who did not receive an email

Version 0.28.0  Released

- Add a fix for slow SMTP servers where timeouts happen
- Allow for duplicated broadcasts of broadcasts that failed to resend only to subscribers who did not receive an email

Version 0.27.5  Released

- Add a fix for slow SMTP servers where timeouts happen
- Allow for duplicated broadcasts of broadcasts that failed to resend only to subscribers who did not receive an email

## June 24, 2025

Version 0.27.4  Released

- Fix segment rule not querying subscribers properly when using a tag rule
- Allow minimum emails per hour on email server to be as low as 15/hour
- Fix test broadcast sends where it was not adhering to footer settings
- Remove preheader CSS when preheader not present
- Allow subject and preheader to use Liquid templating
- Do not require preheader in templates to be present

Version 0.27.3  Released

- Fix segment rule not querying subscribers properly when using a tag rule
- Allow minimum emails per hour on email server to be as low as 15/hour
- Fix test broadcast sends where it was not adhering to footer settings
- Remove preheader CSS when preheader not present
- Allow subject and preheader to use Liquid templating
- Do not require preheader in templates to be present

Version 0.27.2  Released

- Fix segment rule not querying subscribers properly when using a tag rule
- Allow minimum emails per hour on email server to be as low as 15/hour
- Fix test broadcast sends where it was not adhering to footer settings
- Remove preheader CSS when preheader not present
- Allow subject and preheader to use Liquid templating
- Do not require preheader in templates to be present

## June 23, 2025

Version 0.27.1  Released

- Fix custom email headers (in broadcasts) not being sent

## June 22, 2025

Version 0.27.0  Released

- Custom email headers when sending Broadcasts
- Custom subscriber data and the ability to use them in emails using (via Liquid syntax)
- Improved UI for transactional emails dashboard
- Added flash message when autosaves happen
- Update many dependencies

## June 15, 2025

Version 0.26.1  Released

- Relax requirement that email footer is present for broadcast channel
- Update a bunch of dependencies

## June 08, 2025

Version 0.26.0  Released

- Add tags functionality to broadcasts
- Allow segment rules to utilize tags

## May 25, 2025

Version 0.25.3  Released

- Updated Ruby to 3.4.4
- Updated internal dependencies

## May 18, 2025

Version 0.25.2  Released

- Updated internal dependencies
- Added feature to allow for case insensitivity for segment rules

## May 10, 2025

Version 0.25.1  Released

- Updated Ruby to 3.4.3
- Updated internal dependencies

## May 04, 2025

Version 0.25.0  Released

- May the Fourth be with you!
- API added to query segments to retrieve the dynamic list of subscribers belonging in that segment
- Updated a bunch of internal dependencies

## April 27, 2025

Version 0.24.0  Released

- Added ability to target broadcasts to specific segments

## April 20, 2025

Version 0.23.0  Released

- Released segmentation dashboard

## March 30, 2025

Version 0.22.3  Released

- Added ability to schedule broadcasts to be sent at a specific time
- Improved date time picker for scheduler
- Fixed scheduler check before sending broadcast
- Fix scheduler

Version 0.22.2  Released

- Added ability to schedule broadcasts to be sent at a specific time
- Improved date time picker for scheduler
- Fixed scheduler check before sending broadcast
- Fix scheduler

Version 0.22.1  Released

- Added ability to schedule broadcasts to be sent at a specific time
- Improved date time picker for scheduler
- Fixed scheduler check before sending broadcast
- Fix scheduler

Version 0.22.0  Released

- Added ability to schedule broadcasts to be sent at a specific time
- Improved date time picker for scheduler
- Fixed scheduler check before sending broadcast
- Fix scheduler

## March 23, 2025

Version 0.21.2  Released

- Allow domain name restrictions on embedded opt in forms
- Updated a number of dependencies
- Fixed opt in form creation
- Fixed opt in form JS code

Version 0.21.1  Released

- Allow domain name restrictions on embedded opt in forms
- Updated a number of dependencies
- Fixed opt in form creation
- Fixed opt in form JS code

Version 0.21.0  Released

- Allow domain name restrictions on embedded opt in forms
- Updated a number of dependencies
- Fixed opt in form creation
- Fixed opt in form JS code

## March 16, 2025

Version 0.20.0  Released

- Added error messages when adding tags using tag_list attribute
- Upgraded app to Rails 8.0.2
- Updated a number of dependencies

## March 09, 2025

Version 0.19.2  Released

- Ability to customize opt-in form post submission text
- Added ability to delete opt-in forms

## March 07, 2025

Version 0.19.1  Released

- Fix label truncation
- Fix dashboard menu
- Allow opt-in forms to be embeddable into HTML webpages
- Add ability to enable/disable opt-in forms
- Add opt-in form installation instructions in-app

## March 02, 2025

Version 0.19.0  Released

- Subscriber collection/opt-in forms, web version (alpha)
- Design updates to the dashboard

## February 20, 2025

Version 0.18.4  Released

- Upgrade app to use Ruby 3.4.2
- Fix breadcrumbs for template pages

## February 19, 2025

Version 0.18.3  Released

- Fix duplicate menu option
- Improve UI for creating new templates

## February 16, 2025

Version 0.18.2  Released

- Updated internal dependencies

## February 10, 2025

Version 0.18.1  Released

- Fix duplication of broadcasts when it is using raw HTML content

## February 09, 2025

Version 0.18.0  Released

- Added ability for broadcasts and sequences to use raw HTML emails in the body
- Added ability to create email templates in raw HTML (in addition to the existing rich text format)

## February 02, 2025

Version 0.17.0  Released

- Added delay for sequence emails to allow specific future times to be set for when emails are sent
- Added ability to import CSV files into subscribers
- Updated internal dependencies

## January 30, 2025

Version 0.16.4  Released

- Fixed bug where AWS SES webhooks were not processing correctly

## January 29, 2025

Version 0.16.3  Released

- Updated server dependency
- Updated file validation dependency

## January 28, 2025

Version 0.16.2  Released

- Updated internal dependencies

## January 27, 2025

Version 0.16.1  Released

- Add improvement for email images to have be responsive if width is bigger than certain viewports

## January 26, 2025

Version 0.16.0  Released

- Added template feature, available for broadcasts
- Fixed file asset UI

## January 19, 2025

Version 0.15.2  Released

- Fixed bug where broadcasts internal metadata were not updated, no-op change as this is reserve for future functionality

## January 18, 2025

Version 0.15.1  Released

- Added chart to visualize email subscribers
- Bug fix for email servers for Broadcast and Sequences not showing properly
- Bug fix for broadcasts being unabled to be aborted if in resumed state
- Re-released charts as it was in a separate branch

Version 0.15.0  Released

- Added chart to visualize email subscribers
- Bug fix for email servers for Broadcast and Sequences not showing properly
- Bug fix for broadcasts being unabled to be aborted if in resumed state
- Re-released charts as it was in a separate branch

## January 12, 2025

Version 0.14.2  Released

- Added ability to use conditions in email sequences
- Conditions available include: any email opened, any email clicked, previous email opened, previous email clicked
- Added delay for condition evaluation
- Added fix to ensure the email tracking is updated when condition steps are used

Version 0.14.1  Released

- Added ability to use conditions in email sequences
- Conditions available include: any email opened, any email clicked, previous email opened, previous email clicked
- Added delay for condition evaluation
- Added fix to ensure the email tracking is updated when condition steps are used

Version 0.14.0  Released

- Added ability to use conditions in email sequences
- Conditions available include: any email opened, any email clicked, previous email opened, previous email clicked
- Added delay for condition evaluation
- Added fix to ensure the email tracking is updated when condition steps are used

## January 10, 2025

Version 0.13.2  Released

- Fix typo
- Update s3 dependency

Version 0.13.1  Released

- Fix typo
- Update s3 dependency

## January 05, 2025

Version 0.13.0  Released

- Added analytics for sequence emails
- Updated dashboard to include latest sequences

## January 03, 2025

Version 0.12.0  Released

- Updated multiple internal dependencies

## December 29, 2024

Version 0.11.1  Released

- Fix bug in link redirect endpoint

## December 28, 2024

Version 0.11.0  Released

- Add ability to view recipient activity (eg. clicks, opens, etc) for broadcast emails
- Fix bug where broadcast links are not detected

## December 24, 2024

Version 0.10.0  Released

- Added Sendgrid webhook integration for handling email opens and clicks and other metrics

## December 21, 2024

Version 0.9.2  Released

- Added Mailgun webhook integration for handling email opens and clicks and other metrics
- Fixed bug in Postmark webhook integration tracking
- Upgraded to Rails 8.0.1
- Fixed bug where Mailgun webhook tests were not showing

Version 0.9.1  Released

- Added Mailgun webhook integration for handling email opens and clicks and other metrics
- Fixed bug in Postmark webhook integration tracking
- Upgraded to Rails 8.0.1
- Fixed bug where Mailgun webhook tests were not showing

Version 0.9.0  Released

- Added Mailgun webhook integration for handling email opens and clicks and other metrics
- Fixed bug in Postmark webhook integration tracking
- Upgraded to Rails 8.0.1
- Fixed bug where Mailgun webhook tests were not showing

## December 16, 2024

Version 0.8.0  Released

- Added API endpoint for creating (draft) broadcasts

## December 15, 2024

Version 0.7.1  Released

- Fix for Postmark click tracking

## December 14, 2024

Version 0.7.0  Released

- Postmark webhook integraiton available to track email metrics

## December 13, 2024

Version 0.6.4  Released

- Fixed bug in subscriber email validation
- Fixed bug in subscriber import where jobs server could not access uploaded TSV files

## December 12, 2024

Version 0.6.3  Released

- Sequence restarts for subscribers will be triggered after 30 seconds instead of 10 minutes

## December 11, 2024

Version 0.6.2  Released

- Fixed bug where adding tags to subscriber did not trigger adding to sequence
- Fixed subscriber count in sequences

## December 10, 2024

Version 0.6.1  Released

- Fix bug in autosave feature where multiple tabs/windows would overwrite each other

## December 08, 2024

Version 0.6.0  Released

- Integration with Amazon SES (through SNS)
- Updated internal dependencies
- Channel settings menu is redesigned
- Broadcast channels can now be set as inactive (or active)

## December 06, 2024

Version 0.5.4  Released

- Small improvement in editor where pasting paragraphs will automatically add extra line breaks

## December 04, 2024

Version 0.5.3  Released

- Improved rendering of emails in email preview and editor
- Fixed bug where images are malaligned in sent emails
- Fixed bug where empty paragraph tags were inserted into emails

Version 0.5.2  Released

- Improved rendering of emails in email preview and editor
- Fixed bug where images are malaligned in sent emails
- Fixed bug where empty paragraph tags were inserted into emails

Version 0.5.1  Released

- Improved rendering of emails in email preview and editor
- Fixed bug where images are malaligned in sent emails
- Fixed bug where empty paragraph tags were inserted into emails

## December 03, 2024

Version 0.5.0  Released

- Hotfix for error when adding email server
- Add error reporting feature so errors can be more easily reported

Version 0.4.1  Released

- Hotfix for error when adding email server
- Add error reporting feature so errors can be more easily reported

## December 01, 2024

Version 0.4.0  Released

- Bug fix for when subscriber is missing a name
- Modified API endpoint for creating subscriber
- Added ability for interrupted broadcast sends to resume where it left off
- Added ability to manually pause broadcast sends (and resume)
- Added rate limiting to email servers

Version 0.3.1  Released

- Bug fix for when subscriber is missing a name
- Modified API endpoint for creating subscriber
- Added ability for interrupted broadcast sends to resume where it left off
- Added ability to manually pause broadcast sends (and resume)
- Added rate limiting to email servers

## November 30, 2024

Version 0.3.0  Released

- Updated runtime to Ruby 3.3.6 and a bunch of other dependencies
- Added ability to track email opens and clicks

## November 21, 2024

Version 0.2.3  Released

- Fixed rendering bug in sequences dashboard
- Fix issue with restarting autoresponder sequences

Version 0.2.2  Released

- Fixed rendering bug in sequences dashboard
- Fix issue with restarting autoresponder sequences

## November 20, 2024

Version 0.2.1  Released

- Email sequence functionality is now available
- Bug fixes and improvements
