When you open a Deals CRM pipeline view via a shared link and some filters can't be applied — for example, because a referenced field no longer exists — a warning is shown instead of those filters being silently dropped.
Product updates
What we shipped
Every feature, improvement and fix — day by day, as it went out. Days unfold as you reach them.
Sharing a template that had never been opened in the content editor — and so had no cached preview — previously returned an error. Those templates can be shared; the share uses the template's raw content as the preview when no cached version exists.
Three areas regain correct spacing:
- The Finish and Next buttons in the campaign flow header have their right margin back.
- The Navigation Color swatch on the Settings Appearance page has correct spacing next to its label.
- The lock icon and "Account Security Measures" heading on the Settings Security page have correct spacing, as does the level label below it.
Three screens regain correct spacing:
- The Finish and Next buttons in the campaign flow header have their right margin back.
- The Dark/Light label in Settings Appearance has its left margin restored.
- The "n/4 completed" chip in Settings Security has its gap from the card title restored, and the card content layout is correct again.
Attempting to share a legacy HTML-designer email template previously produced a share link that failed when anyone tried to import it, and left behind a partially created template record. The share request fails immediately with a clear error — "this template version is too old" — instead of handing out a link that can never work. Templates using current editor versions are unaffected.
The segment footer has 32px horizontal padding on both sides, matching the page header, so the save button aligns with the close button above it. In edit mode, the loading spinner is overlaid on the button at the correct size, keeping the button's height and width fixed while saving.
After Active Intelligence creates a campaign from an imported .eml file, you're offered the option to save that email's design as a reusable template in your library. If you accept, the design is available immediately for future campaigns — no re-importing required.
Known limit: This applies to campaigns created from .eml files only. The same offer for campaigns created from HTML is not yet available.
The gap between the last alert and the subdomain banner on SMS pages is now 32px as intended, not 64px.
The list views across Engage — covering Surveys, Links, Flows and Run history, Campaigns, Re-engage, Audience, Storefronts, Agent activity, and the New campaign wizard — have been updated to match the current approved design.
Setting an automation to Paused keeps every contact already in it right where they are — including those waiting on timed steps. New contacts who match the trigger are held at the start and not advanced until the pause ends, so no trigger events are lost.
When you resume, held contacts are released from the start block immediately. If you deactivate a paused automation instead of resuming it, held runs are ended with a pause-specific cause so you can tell them apart in reporting. The paused status appears separately from Inactive in automation list counts.
This feature is not yet available to all accounts. Contact support to ask about access.
The Active Contacts, Contact Trend, and other KPI widgets on the legacy overview dashboard display correctly without an unwanted scrollbar.
When you start a new campaign by copying a past campaign, link actions configured on that campaign's links are copied across. Previously, link actions were lost in this flow. This matches the behavior already in place for campaign duplication.
Tags created by connected integrations — such as Shopify — show their integration icon to the left of the tag name. Tags with no matching integration show as plain pills, unchanged. This applies when the updated contact record is enabled for your account.
Three layout issues are resolved across the automations, campaigns, forms, and SMS index pages.
- Filter dropdowns are sized correctly. Each control sits at its natural width, the search input scales between a minimum and maximum width, and dropdown menus have a consistent minimum width.
- The search icon in dropdowns is corrected. The magnifying glass and placeholder text are the right size and weight.
- Folder cards display at equal widths. A folder with a long unbroken name no longer forces its column wider than the others. Folder names wrap to two lines rather than cutting off with an ellipsis.
Toggle buttons on the automations index page have also moved to the left side, and caret sizes in filter controls are smaller.
Clicking a "forward to a friend" link for a campaign that no longer exists returns a clear response instead of an error.
Public form submissions complete correctly when a custom field option contains legacy data.
Error toast notifications across the platform display with the correct red styling, including background, border, and icon. Previously they rendered as unstyled boxes.
Large numbers on engagement chart axes are displayed in compact notation — 10K instead of 10,000 — keeping charts readable when contact or engagement counts are high.
In folder view on any asset index — campaigns, forms, SMS, and automations — folders that contain none of that page's items are grouped behind a "Show N empty folders" toggle, collapsed by default. Opening it lists them below your populated folders; the label flips to "Hide N empty folders."
A few things worth knowing: the toggle resets each session, it doesn't appear when every folder has content, and it disappears while you're searching (since empty folders are already excluded from search results). "Empty" is evaluated per page, so a folder full of forms counts as empty on the Campaigns page.
The orders widget on the contact record refreshes automatically when new order data arrives, matching the behavior of the customers and conversions widgets. This applies when the updated contact record is enabled for your account.
The Deals CRM pipeline view export includes six additional standard columns: Contact Phone, Account Website, Account Owner Name, Account Owner Email, Account Owner Username, and Account Owner ID. Two new custom-field blocks are also available: Contact Custom Fields and Account Custom Fields, appended after Deal Custom Fields in a fixed column order.
All new fields are selectable in the field catalogue. Account and account-owner fields are omitted from the catalogue when the Accounts feature isn't enabled on your account.
Existing exports are unaffected: columns already in your export are unchanged, and omitting the new fields from a selection reproduces your previous output exactly. Missing account, contact, or owner data yields an empty cell rather than an error.
URLs and email addresses in activity notes are clickable, and multi-line notes keep their line breaks. This applies to deal-task notes, tracked-event entries in the feed, and the detail panel. This applies when the updated contact record is enabled for your account.
On the updated contact and account detail pages, a rendering problem in one section — such as custom objects, notes, tasks, the activity stream, deals, or entity actions — previously replaced the entire page with an error screen. Each section is now isolated, so a problem in one area removes only that section while the rest of the page continues to work normally.
Viewing a contact's activity loads correctly for accounts that have WhatsApp conversation or contact enrichment activity.
Four types of activity that were previously missing from a contact's activity list are now visible, with descriptive labels:
- Closed or started a WhatsApp conversation
- Completed or started a WhatsApp flow
- Contact was enriched, or no enrichment data was found
- Task added, completed, or reopened
Previously these events were omitted with no indication they were missing.
The churn score in the contact overview table displays the correct value.
Campaign cards in folder view show a status chip, so you can see at a glance whether a campaign is draft, scheduled, sent, or needs attention — without opening it. The chip matches the status shown in the campaigns table, so the two views always agree.
Campaigns pending approval show "Attention needed." Series campaigns show "Automation" once scheduled or sent.
Two improvements landed together.
First, Active Intelligence reads far more of your actual email prose when building a sense of your voice. Previously, emails containing links, tracking URLs, or merge tags could be dropped from the sample entirely — now only the links and tags themselves are stripped, keeping the surrounding copy. Across measured accounts, usable prose in the voice model's read window improved from 61% to 98%, and the number of campaigns contributing to the voice model nearly doubled.
Second, voice-informed generation previously required a brand kit to be active. Accounts without a brand kit now receive voice-shaped content across all the surfaces that previously required a kit to unlock it. If you already had a brand kit, nothing changes for you.
These improvements apply automatically.
When Active Intelligence builds an automation, you can see exactly what's happening with each email as it's created.
Steps show a "Writing email" label while the email is being generated, and "Email not created" if generation doesn't complete. A third state is also covered: when a send step's email was never written at all, a card appears in place of the missing preview explaining what happened and letting you know you can open the automation and add the email yourself.
Previously, all three states either showed a raw key string instead of readable text, or left failed and in-progress steps looking identical.
Active Intelligence's question form — the set of questions it asks before doing work — has been updated to work correctly wherever Active Intelligence appears, not just in campaign creation.
The submit button uses the right label. For campaign generation, it still says "Generate campaign." On any other surface, it says "Continue" instead of the campaign-specific wording.
Campaign context travels with your request. The "How does my subject line work?", "Find similar campaigns," and "Send a follow-up" buttons on the campaign summary page pass the campaign name directly to Active Intelligence, so it doesn't have to guess which campaign you mean.
Screen readers get accurate labels. On non-campaign surfaces, the progress bar announces a neutral label instead of "Campaign setup progress," so screen reader users get accurate information about what's happening.
The prediction type dropdown shows labels in your account's language, and the prediction type chart scales to fit your data.
When you answer an Active Intelligence permission card — choosing which steps to allow or skip — your answers are saved and restored if you reload the conversation. Previously, reloading showed the card as unanswered even though you'd already responded.
The transcript also shows the answered permission card itself rather than the plain confirmation sentence the card sent. If a conversation has no saved record (older sessions), the original confirmation is preserved so no decision history is lost. All four answer states are covered: all-Allow, executed subset, all-Skip, and partial answer blocked by a skipped dependency.
Several issues have been resolved:
- Audience no longer dropped on single-list accounts. If your account had exactly one list, the review-and-send panel could show "Choose a list" with a blocker badge even though Active Intelligence had already proposed an audience. Your chosen audience carries through correctly.
- Campaigns send only to the audience you picked. A campaign could previously send to an audience nobody selected when attaching a list with no segment. The send configuration clears any previously held segment when no segment is chosen, so sends go only where you intend.
- Recipient lists chosen during generation are preserved. Active Intelligence reads your campaign's current lists first and merges its suggestion onto them. The applied plan also survives page reloads.
- Spinners no longer run indefinitely. Audience lookups that previously left loading indicators spinning resolve correctly.
Known limit: Active Intelligence reads your campaign's current lists and then writes the merged set as two separate steps. A manual save made between those two steps can still be overwritten. Eliminating that gap requires a backend change that isn't yet in place.
Several improvements make Active Intelligence campaign edits more targeted, more transparent, and more dependable.
Edits stay within the block you selected. When you pick a specific block in the campaign preview and ask for a change, Active Intelligence confines its rewrite to that block only. Previously, a one-word correction could be judged against the whole document and rewrite sections you didn't name.
Campaigns that were locked out of editing are unblocked. Active Intelligence refused to edit campaigns in cases where the service failed to read markup it had written itself. Six root causes are resolved, so campaigns that were previously stuck are editable again.
Fix a single value without a full rewrite. You can correct one specific thing — a price, a URL, a call-to-action label — without triggering a full-block rewrite. Supported operations cover words in a block, an image's source, a link destination, the call-to-action wording, and copying, moving, or removing a section.
Active Intelligence tells you what it left alone. After an edit, you're told that the rest of the email was untouched. This appears when a named change was made and no caveat applies.
Your campaign preferences travel into generation. Values from the intake form now reach generation: audience description, tone, color, typeface, subject line draft, campaign name, language, and attached design. Non-hex colors are dropped with a warning. An unmappable language name is disclosed with an invitation to re-state it rather than silently falling back.
Subject line changes are disclosed. When Active Intelligence trims a subject line to fit an inbox row, removes a merge tag the account doesn't have, or drops unreadable text, you're told about it. Previously these changes happened silently.
Campaign copy and design are faithfully reproduced. A pasted email document is reproduced as given instead of being rewritten. A design you name is applied alongside copy.
Removing a single block no longer removes its entire section. The removal is scoped to the block. When a block is the last in its section, you're told to delete the section instead, and the removal count reports the root of each loss by type — "Removed 1 section" rather than "Removed 4 blocks."
Interaction improvements for the campaign editor. Template cards in the expanded picker are fully selectable. The "Edit" button in the floating action bar is disabled until the design is editable. A template chip, pasted URL, or uploaded file can be sent without a text prompt. When a design you bring loses its layout during parsing, Active Intelligence notifies you directly.
When you ask Active Intelligence to generate a campaign, it reads and applies the audiences you've already built in your contacts, and confirms the outcome in your conversation's language.
Previously, generated campaigns ended up with no audience at all, and the audiences you'd built weren't offered as options. Four separate problems caused this:
The audience wasn't being saved to the campaign. The request to attach an audience was going to the wrong address, so the platform rejected it before processing. After that was corrected, a second problem appeared: the platform reads campaign data from a replica that hadn't yet caught up with the write, so the system incorrectly reported failure even though the audience had been set successfully.
Your audiences weren't appearing as options. Audiences you create in your contacts are stored separately from classic segments. Active Intelligence was only reading the classic catalog, so named audiences like "Nurture Engaged Subscribers" or "Welcome New Subscribers" never appeared, and the system composed a new segment instead of using one you'd already built. Both catalogs are read and merged.
Selecting an existing audience could silently overwrite it. When an existing audience was chosen, the process could re-link it in a way that overwrote its name and deleted its conditions. The audience's resolved ID is carried forward instead, so no re-linking occurs.
Audience outcomes are reported in your language. When an audience couldn't be set, the reply used hardcoded English regardless of the language you were using. The outcome travels as structured data, and Active Intelligence describes it in its own words, in whatever language you're using.
This capability is available on accounts where the campaign send configuration feature is enabled.
When you open the Edit with AI menu on a campaign, you see five clearly named edit choices plus a free-text option, so you know exactly what you're asking Active Intelligence to do before you confirm.
Two accuracy improvements shipped alongside the named menu:
Button edits stay on the button. When you ask Active Intelligence to change a call-to-action button, the edit is confined to the button, its column, its row, and the spacers beside it. Previously, a button edit could silently repaint two to four surrounding sections of your email.
Collateral changes tell you where to look. When an edit touches parts of your email you didn't ask about, Active Intelligence tells you which sections moved — "Look in section 2" or "Look in sections 2 and 4" — rather than only how many parts changed. When it can't determine the location, the count-only message remains as a fallback.
When Active Intelligence creates a large automation — for example, a 24-week email series — that requires multiple editing passes to complete, the chat conversation accurately reflects what was built.
Previously, after the first pass, follow-up edits that finished the automation would leave the chat telling you to keep prompting and inventing steps that didn't exist. The chat description is now reconciled after all passes complete, so you see an accurate account of what was built rather than instructions to continue building something that's already done.
This improvement applies when the multi-step automation editing feature is enabled for your account. With it off, behavior is unchanged.
When Active Intelligence runs read-only lookups before asking for your approval, the approval card tells you what it already found — not just what it's about to do.
Previously, every step appeared as pending, even lookups that had already run and returned results. The card now presents completed lookups in plain language with their resolved values, and frames only the actions still waiting for your go-ahead as pending. For example, instead of listing "Look up the TikTok list details" as a future step, the card reads "I found your TikTok Leads list and can create the new Snapchat list with the following settings copied from it."
What's new:
- Four tinted KPI cards with bordered icon tiles and sub-labels showing exact figures.
- A delivery breakdown bar covering messages delivered, read, and failed — with a minimum visible height so even a single failure shows, and real zeros instead of a dash.
- A header with a segmented range switcher, a multi-select channel filter, and an Export button. The channel filter narrows tables; Export writes the current view to CSV.
- A real empty state for accounts with no data, and independent loading indicators per section.
- Large numbers are abbreviated on the short scale, so very large figures display cleanly without precision loss.
Known limits: Column headings and cell values in tables match the current shipped set rather than the design's Sent/Received/Share of sent labels. The range switcher scopes the trend chart only; the channel filter scopes tables only. The area graph doesn't include a dash pattern, hollow markers, or gradient stops. Sorting is not included.
What's changed:
- Conversation list and toolbar use consistent spacing and measurements.
- Thread pane has updated message bubbles and reaction placement, inline notes placed in the transcript by timestamp, a typing indicator, an Active Intelligence replies toggle, and a messaging-window strip.
- Composer has separate Reply and Internal Note tabs with their own drafts, a flattened emoji picker, and an attachment row that stays open while showing attachments. The reply composer collapses to a single line and expands on focus, with image and audio attachment options and a character counter.
- Emoji in message bodies render correctly using the platform's emoji font families, in both bubble bodies and conversation-list previews.
- Contact reactions appear on the message they react to rather than as a separate bubble, with a single accessible label per reaction row. A reaction with no body displays correctly instead of appearing as a file attachment preview.
- Contact panel includes Activity and Notes tabs, a Contact Profile entry, and Nurture, Automations, Deals, and Lists cards with a confirmation toast on enroll.
- Add deal from the contact rail opens the full deal creation modal.
- CRM and note cards show remove controls with Tool Tips, gated on write permission, with bulk actions in an overflow menu.
Known limits: Automation and list memberships reflect the state at the time the contact record was last synced. A deal created from the contact rail is not yet automatically attached to the Engage contact.
Where something live still points at the object you're deleting, an amber "Still in use" panel lists dependents (up to five, with a count of any additional) and a link to review them. The delete button stays disabled until you type the object's name exactly. A safer alternative action appears between Cancel and the delete button where one exists.
Per object:
- Flow (live): runs in flight stop, run history removed, contacts mid-flow miss the rest. A "Turn off instead" option is offered.
- Flow (off/draft): steps and run history removed.
- Link: the short URL stops resolving everywhere it was shared; clicks and revenue stay in Insights.
- Storefront: cards are removed, the short link stops working immediately, click history is kept.
- Survey: questions removed, collected responses deleted including answers written onto contacts.
- Campaign: schedule cancelled while pending, delivery report kept.
Not yet available: Bulk delete, Disable instead for links, and Download CSV for surveys.
Designed emails are generated when you ask for a designed email
Active Intelligence generates plain-text emails only when you ask for one. Previously, account-level tone text such as "like a personal note" or custom instructions such as "no formatting" were read as requests for plain text — stripping images, buttons, and layout from campaigns that asked for none of that.
"Unmet demands" notice no longer appears after successful edits
A successful edit told senders their email "still doesn't do everything you asked for" and listed phrases from system scaffolding — text you never wrote — as unmet requests. Active Intelligence now recognises system text structurally and ignores it when checking your requests.
Dark or image-free styling is applied only when you ask for it
Dark styling and image-free layouts are now determined by your words only. Previously, palette notes or accessibility notes in an account's standing text could cause Active Intelligence to compose a dark email or remove imagery for campaigns that asked for neither.
Photos you attach to an edit are placed in the email
A photograph you attach to an edit turn is placed directly in your email. Previously, attached photos could be ranked against other imagery and replaced with no indication anything had changed.
Photo dimensions are returned by the image search and carried through to the ranking layer. A photo whose orientation clashes with the slot is demoted in ranking but still considered, so every slot gets filled. Photos with unusable or missing dimensions are treated as unmeasured and ranked exactly as before — no change for accounts where dimensions aren't available.
Known limits: Three ranking signals are not yet active. Fit scoring and uncroppable detection require focal-point data; tone matching requires average color data. Neither data type is currently returned by the image source, so those signals will not affect ranking until that data becomes available.
Five of the 16 cards were sending the wrong message when clicked — the intended prompt was missing and a placeholder was sent instead. All 16 cards looked identical and rendered correctly, but clicking one of the five affected cards could never start the right goal. The missing prompts are registered, and all 16 cards work as labeled.
Known limits: The description text for some cards doesn't match their titles — for example, one card is titled "I want to test a lead magnet offer" but described as creating excitement around an event or launch. One card's prompt also duplicates another card's text. These are separate issues not addressed in this change.
Previously, a tiny thumbnail and a large high-resolution photo of the same shape scored identically in ranking, so a small thumbnail could take the most prominent slot in an email over a much larger photograph in the same pool.
The ranking accounts for resolution alongside shape. Photos whose pixel dimensions fall below half the display slot are demoted but not refused. Every slot still fills with the best available option. Photos with missing or unmeasured dimensions are ranked exactly as before — no change for accounts where image dimensions aren't available.
Short requests — like typing "quiz" — used to prompt Active Intelligence to ask you to finish your message, even though you had. The prompt was adding a prefix that ended mid-sentence, so your text looked like the missing tail of an unfinished request. Retyping reproduced the same result.
The prefix wording is updated to a complete sentence ending in a colon, so your text follows as a quoted request. This applies across all 16 languages.
Your account's own font families are available in two places.
Email editor: The redesigned email editor's font picker includes your brand's custom fonts, matching what the previous editor offered. If the font fetch fails, the editor falls back to its built-in list and still opens normally.
Brand kit font picker: The brand kit font picker expands from 39 fixed options to approximately 1,967 searchable open-source font families. A default set loads on open; typing searches the full catalog. Fonts are grouped as "Displays everywhere" (families that need no download) and "Web fonts" (stylesheet-required), with no-download fonts listed first.
If you run a white-labeled or reseller account with ActiveCampaign branding disabled, multi-factor authentication (MFA) error messages no longer show ActiveCampaign help links or "Contact support" buttons. This applies to the following error states: invalid one-time code, code not sent by email, email bounce, email error, and unknown error.
Known limit: The "too many attempts" error message still shows ActiveCampaign branding. That case will be addressed in a follow-up update.
No action required.
Recipient disclaimers in white-label accounts no longer mention "ActiveCampaign" by name. The text now reads "They'll receive the full report by email only," so your brand stays consistent throughout.
The "View WhatsApp message credits" permission in the Group Permissions tab shows its correct label. Previously, a raw translation key appeared in its place.
No action required.
The Active Intelligence chat in the automation builder accepts context chips for triggers and actions. You can send a specific trigger or action block directly from the builder as context, and Active Intelligence uses it when responding. This makes it easier to ask questions or request changes about a particular part of your automation without describing it from scratch.
Clicking a tracked link containing a malformed URL (such as one with an invalid port number) is handled correctly. Previously these clicks returned an error at a rate of approximately 5 per day.
Previously, a tag name with emoji or other multi-byte characters caused a collation error during tag syncing — most commonly through the ecommerce customer sync. Tags with emoji in their names sync correctly. A tag name made up entirely of emoji is handled gracefully rather than producing an error.
The message shown on the Starter plan card when a selected contact count exceeds the plan's cap appears in your language. English rendering is unchanged.
When building a campaign with Active Intelligence, you can start from a past campaign or one of your templates instead of always beginning from a prompt. A "Reuse a design" action on the preview's floating bar opens a drawer with three tabs: Past campaigns, My templates, and Classic templates.
Two checkboxes let you choose what to carry over:
- Keep design (on by default) — preserves the source structure while writing new words into it.
- Keep copy (off by default) — routes the source's approved wording through without any model rewrite.
You can use any combination: design only, copy only, or both.
This feature is currently behind a feature flag. If you don't see the "Reuse a design" action on the preview bar, it hasn't been enabled for your account yet.
Three related fixes also shipped: duplicate compliance footers are prevented, unsubscribe links after design read-back work correctly, and the email editor loads reliably.
The split campaign report header shows one of three states: pending (the test is still running), selected (a winner has been flagged), or no automatic winner (an even split). The supporting text states the configured rule — for example, "The winner will be chosen by open rate 7 days after the test variants finish sending" — with no countdown shown.
The chip uses a neutral style for pending and no-automatic-winner states, and a success style when a winner is selected. All wait-period units are covered (hour, day, week, month, with plurals). English copy is the fallback for any locale where translations aren't yet available.
Sorting works across all four columns and supports both ascending and descending order.
The spacing between the preview label and value in Settings, Advanced is correct again.
The Users and Groups tabs in Settings display with the correct horizontal padding.
On the campaigns list, the disabled "View details" link in the Sending Status column shows a Tool Tip when detailed sending progress isn't available. The Tool Tip reads "Detailed sending progress is only available for 30 days after sending," so you know exactly why the link is inactive.
When creating or editing a scheduled task, the "Notify by email" field accepts any email address — not just admins on your account. You can add up to 10 recipients, and duplicate addresses are handled automatically.
Recipients who aren't account admins see a visual indicator and a note explaining they'll receive the full report by email only. The disclaimer reads "Some recipients have limited access to this task."
This feature is controlled by a feature flag. When the flag is off, the previous admin-only dropdown remains in place.
Known limit: Admin classification uses the first 100 admins returned by your account's user list. On accounts with more than 100 admins, an admin outside that first page may appear as an external recipient.
Previously, lists beyond the first 20 were hidden with no indication more existed. The pickers page through your full list, so no list is out of reach when building segments.
Your active filters and query parameters stay in place after you save a segment. Previously, saving redirected you to a URL built from the page path alone, so parameters were dropped every time — including the one that controls the Save Segment button itself, which meant the button disappeared after every save and had to be restored by hand. Parameters controlling read-only state, truncation, import mode, and collapse state were lost the same way.
All parameters carry through the redirect after saving. The exception is the sample JSON parameter, which is intentionally excluded: keeping it would reload the sample data instead of the segment you just saved.
Decorative Active Intelligence markers in condition-type dropdowns are hidden from assistive technology, since they sit next to their visible labels and don't need to be announced separately.
In the segment builder's campaign, 1:1 email, and SMS selection dropdowns, truncated option names appear in a readable Tool Tip with white text on a dark background.
Previously, the Tool Tip rendered white text on a white background, making truncated names invisible — though still selectable. The Tool Tip appearance now matches the other truncation Tool Tips already in the segment builder.
Both halves of the AND/OR toggle are real buttons that assistive technology can read, grouped so they're announced as one control. Tab, Enter, and Space all work as expected. Mouse behavior is unchanged.
The search bar in the Segment Library panel stays pinned at the top as you scroll through segment cards. Previously, the search input scrolled out of view with the list, requiring you to scroll back to the top to refine a search.
The improvements come from eliminating redundant recalculations that were happening on every interaction. Option lists, data mappings, and condition controls are now recomputed only when something actually changes. The result is a builder that keeps up with you instead of lagging behind.
The email editor's font picker gives you access to all 1,967 font families in the catalogue, not just the 91 that appeared before.
A "Search all fonts…" option at the bottom of the picker opens a search dialog. Results preview in their own font and are navigable by keyboard. Fonts you choose are saved to your account and appear at the top of the picker the next time you open the editor — the 50 most recently added families are remembered. If a font can't be loaded, the editor falls back gracefully rather than substituting a default without warning.
Open the font picker in the email editor to start searching.
Known limit: The editor remembers the 50 most recently added font families per account. Adding a 51st removes the oldest from the saved list, though any email saved before that change continues to render its font correctly.
When reviewing an Active Intelligence-generated campaign, the recipients popover previously showed "Saved filter (details unavailable)" instead of the audience name. The popover looks up the audience name directly when it isn't immediately available, matching the resolution the campaign page already used correctly.
You can upload SVG files — vector logos, icons, and graphics — directly in the content manager. SVG files can be selected in the file picker, pass upload validation, show an SVG type label in the detail pane, and appear as thumbnails in both grid and list views.
SVG files are excluded from the raster image editor, which would flatten a vector. They join PDF and GIF on that editor's disallow list.
Previously, SVG files had to be converted to raster formats before uploading, which meant losing scalability and transparency.
Known limit: SVG support depends on the content API accepting and sanitizing SVG uploads. The feature becomes fully available once that dependency is in place.
On the SMS reports page, entering an unsupported page size or misaligned offset in the URL snaps to a valid page instead of showing a broken view.
Previously, the opt-in step in the SMS product tour gave no visible feedback while waiting for keyword confirmation. The status message now appears during that wait, so the tour doesn't appear stalled.
In Settings → Users and Groups → Edit Group → Permissions, a new SMS section lets you grant or restrict access at a granular level. Individual permission rows cover registration, reporting, sending options, and more across SMS Campaigns, SMS Inbox, SMS Keywords, SMS Management Access, and SMS Sending Options.
When an SMS is scheduled outside your quiet hours but a delivery delay would push it into them, the platform withholds the message rather than delivering it at the wrong time. These sends are recorded with the status: "Not sent. Delivery was delayed and would have fallen inside your quiet hours."
The status reads "Not sent" rather than "failed" because nothing went wrong — the send was withheld intentionally to respect your quiet hours settings, and no credit is consumed. The status appears in both the broadcast report and the inbox conversation view.
If you see this status on a send, it means your quiet hours settings worked as intended.
SMS double opt-in activity entries in contact history are translated into your account's configured language. Previously they appeared in English only, regardless of your account's language setting.
Revenue sorting in the revenue report view works correctly. Translations for the revenue Tool Tip are also in place across supported languages.
Inbound emails with no To header, or a To header with no domain, are processed correctly by reply forwarding.
When you remove contacts from automations, inactive automations are included alongside active ones.
Previously, only active automations were considered, which could leave contacts enrolled in inactive automations without any way to clear them through the standard removal flow.
Contacts waiting to enter an automation open in a full-screen view instead of a side panel, giving you more room to review and act on them. The banner and modals stay in sync with the list as you work.
A branding page is available in the partner portal for all partner accounts, with translations included.
The Users page in the partner portal supports searching, creating, updating, changing passwords for, deleting, and force-logging-out users — all without leaving the portal.
Several charts in the partner dashboard are corrected:
Accounts Engagement uses the correct date range. The "Last 7 days" view previously dropped the oldest data point and drew only six points; it draws all seven. The default window is 30 days. Partners with fewer than 30 days of data are handled correctly down to a single data point, which previously plotted nothing and now shows a dot.
Accounts Population no longer shows a date range control. The underlying data always reflects the most recent month only, so the control was removed to avoid confusion.
Churn Risk Distribution anchors to the date of your newest data rather than the current date on your browser. At a month boundary, the chart could silently drop the oldest bucket and show eleven months under a "Last 12 months" label.
Month over Month Change no longer shows a permanent loading state for partners in their first retained month, where a second data point doesn't exist yet.
At-Risk ARR displays genuine zero values as currency figures rather than a dash. Values that don't map to a known category appear in a visible "Other" row rather than being silently dropped — previously, unmapped values caused column totals to visibly disagree with the chart's own reported total.
Month-over-month and population charts are also available in the Partner Portal reporting area.
The partner dashboard stat cards now show real account data.
Known limits: - The "New clients" stat card links to accounts created in the last 30 days, with the date resolved at click time — shared links will drift over time. - "Clients at risk" is intentionally not linked because it combines High and Very High churn scores, and the current filter accepts only a single value. A deep-link will be added once the filter supports multiple values.
Labels in the partner dashboard that were rendering as raw text keys display correctly.
Row actions in the Partner Portal accounts grid open a confirmation modal that explains what each action does before you commit to it. Covered actions include login, enable/disable sync, make/unmark sandbox, make/unmark trial, fix API key, and move account. A success message confirms when an account is updated.
The Settings control in the Partner Portal top bar uses the correct icon and shows a solid pink background when you're on a Settings route. Off Settings routes, the icon is muted with no background. Button order is Help, then Settings, then User.
The actions column in the Campaign Approvals table uses a consolidated multi-action button, replacing the previous separate action controls.
Clicking a contact or account link from a deal detail page reliably opens the correct record.
Previously, with the updated contacts or accounts experience enabled, clicking the primary contact on a deal detail page would blank the page and redirect to the home screen. The same problem affected account links. This affected 27 entry points into contact records, including contacts list rows, deal list links, task links, and the deal activity drawer. Direct loads and opening links in a new tab were unaffected.
Content covering your PartnerStack account overview, referrals, certifications and training, enablement, and legacy commissions is now localized.
When you click a wait or goal queue step in an automation, you can open the Manage Contacts drawer right there. The contacts list is already filtered to that step, so you see exactly who's waiting and can act on them immediately.
From the drawer you can sort the contacts list by column, run bulk actions including Manage Duplicates and End Current Run(s), and jump straight to a contact's path view — pre-filtered to the step you came from. A loading indicator shows while results are fetching.
Together, these tools give you a complete picture of who's at any point in an automation and the ability to act on them without leaving the builder.
Progress bar no longer stalls at 40%. A sending phase rename wasn't reflected in the progress display, so sends in the 42–50% range appeared healthy and in-flight indefinitely. The progress bar advances correctly through all phases.
Failure and incomplete states are surfaced clearly. The progress drawer shows four distinct outcomes: - Sending limit reached — red Stopped badge with limit-specific copy; you can upgrade or wait, then resend - Setup failed — red Stopped badge with guidance - Delivery failed — red Stopped badge; bar freezes at the delivered ratio - Delivery incomplete — amber Incomplete badge; appears only after clean-up completes and directs you to resend to those recipients only
The progress bar freezes at the delivered ratio on stopped sends and no longer creeps to 100% when a later clean-up frame arrives.
No eligible contacts. When a campaign stops because no contacts could be delivered to, the message reads: "Your campaign was stopped, likely due to no eligible contacts or your account was inactive when this campaign was scheduled," with next steps to check that the list has active contacts, duplicate the campaign and try again, or reach out to support.
Metrics still catching up. When all emails have gone out but campaign numbers haven't finished updating, the Sending step shows as complete and the Sent step shows a warning icon labeled "Metrics delayed," so you know the send is finished and only the figures are lagging.
Sender name and subject line are shown in the campaign drawer.
Tool Tip updates for missing snapshots. When a campaign was sent more than 30 days ago, the Tool Tip reads "Detailed sending progress is only available for 30 days after send." When a campaign is younger than 30 days but has no progress metadata, the Tool Tip reads "Detailed sending progress is not available for this campaign."
Campaign type gating. One-time campaigns and A/B splits keep today's behavior. Campaigns that send on their own cadence (RSS, auto-responders, date-based, recurring, and similar) no longer offer "View details" while scheduled; the link becomes available as soon as the sending service has progress data. Winner-based splits remain excluded in every status.
The forms list page could show a blank screen when any form had a thumbnail that couldn't be loaded. The page handles missing or unparseable thumbnail URLs gracefully, showing a placeholder icon instead of going blank.
Previously the filter bar appeared on the bare white page background. The controls themselves are unchanged; only the visual presentation is updated to match the rest of the platform.
Previously, the forms filter bar appeared on the bare white page background rather than inside the shared toolbar. The change is visual only and applies automatically. No action required.
Previously, some strings in the Active Intelligence form tools appeared in their raw, untranslated form. All text in the form list retrieval, form statistics, and aggregated form statistics tools is fully translated and displays correctly.
Unsubscribe, update confirmation, update request, and result pages could produce a fatal error when a subscriber link was stale or invalid — for example, an old bookmarked or emailed URL. These pages handle a missing subscriber gracefully, returning an unpersonalized redirect instead of failing.
You can browse your automations in a Folders view, toggling between the familiar list and a grid that shows every folder on your account with the automations it holds. You can drill into any folder, and search, status filters, and every filter chip work the same way in both views. Automations is the fourth index to get folders, joining campaigns, forms, and SMS.
Each of the four index pages — Automations, SMS, Forms, and Campaigns — also gains a dedicated Folders column in the list view, so you can see which folder an item belongs to at a glance.
This feature is rolling out gradually. If you don't see the Folders toggle yet, it will appear as the rollout continues.
Category names match the labels used on the apps list page, so the vocabulary is consistent across both surfaces.
This feature is available to accounts where it has been enabled. With it off, the tab looks and works exactly as before.
Known limit: Two category labels may display as raw text keys until translations are finalized.
The Settings access audit log table shows four correct column headers: Action, Target, Actor, and When.
The order-state and store filter dropdowns on the contact record open fully instead of being clipped by the panel edge. Both menus open fully, and the Products button label and arrow have correct spacing.
Removing a connected integration completes with the correct confirmation message, even when the external service doesn't respond as expected. Previously, the delete could return an error even though the connection had already been removed.
When deleting a user fails, the error messages displayed are correctly translated instead of showing untranslated or missing strings.
Edit mode in the Active Intelligence notifications center includes a delete action for selected notifications. The delete button shows a count of selected items, confirms successful deletion with a count-aware message, and reports failures clearly.
This improvement applies automatically.
The delete-list modal includes a new radio group that lets you choose between removing contacts on no other list (the default, matching today's behavior) or keeping them with the list relationship dropped. The confirmation checkbox wording is also updated to clarify what data will be removed.
You can open an automation and land directly on a specific canvas action by sharing or bookmarking a URL that includes that action's unique step reference. The action opens and receives focus automatically, so there's no need to scroll or search for it.
This is useful when collaborating with teammates or when support or documentation points you to a specific step in a complex automation. The link works for any automation canvas action.
When the Deals CRM advanced filter can't load its available filter fields, you see a properly translated error message with a count of unavailable filters, plus Retry and Clear all filters actions. Previously, the error placeholder appeared with missing or untranslated text.
When you open a shared or bookmarked URL that carries filter conditions that can't be applied — because they reference a field or operator that no longer exists — you see a "Some filters could not be applied" warning.
Opening the date picker while using the add-contacts drawer keeps the drawer open so you can continue without interruption.
When building conditional content blocks in the message variables editor, your account's custom contact fields appear in the field picker dropdown. Previously the picker used a static list that never included custom fields, even though those same fields were already available in the "insert personalization tag" feature. The picker now pulls from the same data source used elsewhere in the editor.
This applies to the conditional content picker at the message variables page only.
The attribution section of the contact record includes a conversion touchpoint timeline. Each conversion shows one marker per source touchpoint, spaced by elapsed time, ending at the conversion. You can scroll through touchpoints using a scrollbar, drag a scrubber, click the bar, or use arrow buttons.
Selecting a touchpoint shows a detail table with: Time, URL, Source, Medium, Campaign, Term, Content, and Referrer. Clicking a value in a conversion activity's detail panel expands that conversion, collapses the others, and scrolls it into view. Clicking a deep link from the activity panel while the Unconverted Sources tab is active correctly switches to the Conversions tab before expanding the row.
Ecommerce filter menus (order-state and store dropdowns) no longer get clipped by the panel.
This is part of the ongoing contact record update and is available when the updated contact record is enabled for your account.
Contacts with emoji or special characters in their names sync correctly across contact list subscriptions, API lookups, Salesforce syncs, ecommerce tag syncs, and tracked link following — operations that were failing hundreds of times per day.
Previously, if the first-time experience on the Contacts page failed to load, the page recovered silently to the standard Contacts view with no indication that anything had gone wrong. A notification now appears so you know what happened.
Previously, these dropdowns floated outside a bordered control rather than matching the inline style used elsewhere. The change is visual only and applies automatically. No action required.
The subheading shown on the Contacts empty state screen reflects the current design.
The count appears for basic search terms and advanced search or segment views. Filter-only views (Tags, List, Status) are unchanged. Large totals are formatted for your account's locale — for example, "8,450" in US English. The count doesn't appear while a search is in flight, so it always describes the results you're looking at.
In the "Add to list" and "Add to automation" modals on the contact record, checkboxes respond to clicks correctly.
The Sending Status column shows a relative send time — such as "2 days ago" — beneath each campaign's status chip.
For campaigns sent before the sending-progress service existed, that relative time is now a tooltip trigger: hover it to see the audience size and send time. That context was previously unavailable for those older campaigns. Campaigns with full progress data are unchanged.
Draft campaigns show a "Last saved" label with a relative time in the same column.
On the Campaigns list, the status shown under the campaign name and the status shown in the Sending status column now match for three cases that previously disagreed:
- Disabled campaigns show a grey "Disabled" badge (previously showed "Draft"). The cell is not clickable and has no "View details" drawer.
- Automation campaigns show an "Automation" badge instead of "Sent" or "Scheduled." Send date, recipient counts, progress bar, and details drawer continue to work as before.
- Campaigns under review that require action show a yellow "Attention needed" badge (previously showed "Pending review"). Opening the details works the same as for "Pending review."
Note: a campaign showing "Sending" can still appear as "Delayed" in the Sending status column when a send is running late — this is intentional.
Submitting the campaign-use form with no message rows processes correctly.
Templates saved from an Active Intelligence-generated campaign were missing from the campaign creation flow. They appeared on the standalone Templates page but couldn't be reached when starting a new campaign.
Templates saved going forward appear in the template picker as expected. Templates created before this change aren't automatically corrected — a separate update to fix those existing templates is in progress.
Running a spam check on a campaign whose template has no HTML content completes without error.
The send progress drawer displays a "Waiting for approval" step when a campaign is held in review before it's allowed to send. You get a clear status instead of a blank or ambiguous state while your campaign awaits approval.
The campaign contact list loads correctly even when the segment service returns a response without page count data, so pagination works as expected.
Saving a campaign handles the case where a campaign lookup returns no result, so the save completes rather than producing a server error.
Campaigns generated from your brand kit use your chosen font throughout. Previously, any font not recognized by an exact match against a limited list was silently replaced with Roboto — affecting approximately 60% of brand kits and a similar share of generated templates.
Font resolution works against a catalogue of 1,967 families. If your brand font can't be served, it falls back within its own category — serif to serif, sans-serif to sans-serif — with an Outlook-compatible fallback included. The campaign editor's font picker offers the same families your brand kit does, sorted consistently.
All previously supported fonts still resolve to themselves unchanged. No action is needed.
When you change a CTA link URL, a CTA button label, or the from-name or from-address in one email, and other emails in the same campaign still use the old value, the editor surfaces a suggestion chip prompting you to review and propagate the change.
Suggestion strings are English-only at launch; other languages follow through the standard localization process.
After a campaign is generated, a row of edit suggestions appears above the Active Intelligence composer. The row shows a reviewing state while suggestions are being worked out, then surfaces up to 3 suggestions. Each suggestion notes whether it came from your brief, your email, or your account data, and a click sends it through just as if you'd typed it yourself. If there's nothing worth adding, a single neutral line appears. If analysis doesn't complete, the generation experience is unchanged.
This feature is available to accounts where it has been enabled.
The "Match my brand" action has been removed from the action bar. Brand import is reached from the pill above the email, shown only to accounts that don't have a brand kit yet. Repainting an email onto a brand is available by asking for it in chat.
No action required.
Three improvements to the review-and-send panel in Campaign Agent:
Physical address picker. The "Add an address" action stays visible and disabled when it can't be used, with a tooltip explaining why: admins-only accounts see "Only admins can add a sending address," read-only campaigns show "This campaign is read-only," and scheduled campaigns show "Unschedule this campaign to add a sending address." Previously the action disappeared with no explanation.
Recipients button. When all lists are selected, the button shows "All lists" instead of listing every list name.
Send timing note. The predictive send timing description reads "Each contact receives the campaign at the time of day they are most likely to engage."
The bulk automations list sorts by newest first, so your most recently created automations appear at the top.
When removing automations, each one shows its status so you can see its current state before confirming removal.
The bounce report loads correctly for all accounts, including those where some bounce records have no description text.
Automations triggered by tag-add or tag-remove conditions configured with multiple tags work reliably. Previously these produced a fatal error at a rate of approximately 20 per day. Both tag-add and tag-remove start conditions are covered.
In the automations overview, the overflow chip popover closes correctly when you move the mouse off it.
When you open the manage-contacts view for an automation that hasn't had any contacts enter yet, you see an illustrated empty state instead of a blank list. The paused queue banner has also been restyled for visual consistency.
If you try to activate an automation while Active Intelligence is still generating one of its emails, you see a plain-language message telling you the email is still being prepared and to try again shortly. Previously, a raw key identifier appeared on screen instead of a readable sentence.
You can ask Active Intelligence how your WhatsApp credits were used and get a direct answer in the chat. Type your question in the Active Intelligence chat and the breakdown appears inline.
In If/Else conditions and other segment filters, list pickers previously showed only the first 20 lists. Lists beyond that were hidden with no indication more existed. The pickers page through all your lists, so every list is reachable regardless of how many you have.
The to-do and completed states of the onboarding checklist are translated into additional languages.
Active Intelligence can work with automations that use the Contact Created trigger. Contacts are sorted by creation date for that trigger.
Your existing automations pick this up automatically.
When Active Intelligence can't fulfill a widget request, the message names Active Intelligence directly and points you toward supported alternatives rather than listing broad topic areas.
One-click recovery prompts have a localized heading. Raw technical decline details no longer appear in the interface.
When you ask Active Intelligence to create a campaign without giving it a specific URL, it can draw on your brand's monitored site pages as source material. The generated email reflects your actual products, offers, and voice rather than generic content.
If brand monitoring is off or no pages are stored for your account, behavior is unchanged. When Active Intelligence can't read a page you asked it to use, it tells you how many it couldn't access.
Active Intelligence also stays on-brief: it won't invent product names, people, or offers from your site pages unless your brief mentioned them.
One current limit: Active Intelligence can read up to four linked pages at the same time, but today it processes one URL per turn, so that capacity isn't fully used yet.
This works automatically when brand monitoring is active for your account.
When you attach a campaign or template using the @ menu or "Add context" button, Active Intelligence reads the subject line, preheader, and body copy inside it and writes from that content. Previously, attaching a campaign told Active Intelligence which one you meant but never showed it the words, so it answered from the name alone.
Several related improvements shipped together:
- Attached copy reaches the model. For a campaign, the subject, preheader, and body copy are read. For a template, the words inside its markup. Both are capped at 4,000 characters, and up to three assets per message are read at once.
- Attaching one campaign and one template at the same time works correctly. Previously, the template was silently discarded. The template governs turns where you haven't stated a specific operation; an explicit copy, split, or edit still lets the campaign take precedence. If both can't be honored, Active Intelligence names the one it couldn't use.
- Attached documents survive when you reopen a conversation. A document chip previously lost its connection when a conversation was reopened — it still appeared, but Active Intelligence no longer had the file. The connection is preserved through save and reload.
- Asset names no longer run into your message text. Names were being inserted as plain text alongside structured data, causing them to run together with preceding words. On the campaigns index, a hardcoded English phrase also appeared for non-English users. Asset names no longer appear in the message text.
- The @ search tells you when results couldn't load or were cut short. If the search fails, you see "Couldn't load your items. Try again." If results are partial, you see "Some items couldn't be loaded, so this list is incomplete." If results are capped, you see how many are shown and how many exist, with a prompt to keep typing to narrow the list.
These improvements apply automatically when you attach a campaign or template.
Known limit: Up to three assets are read per message, each capped at 4,000 characters.
When you open a system alert from the Active Intelligence notifications center, Active Intelligence receives a troubleshooting prompt so it can provide relevant guidance in context. You get actionable next steps directly in the conversation instead of a bare alert with no direction.
While Active Intelligence composes an email or landing page, the status card shows a live description of what's being built into each section as it happens — written in plain action language (for example, "Writing your hero headline") rather than a generic counter like "Building section 2 of 5."
The description is written by Active Intelligence itself for each section, naming your content specifically. It falls back to a localized string if no usable description arrives. Status text that previously broke mid-word wraps correctly at word boundaries.
The status messages you see while Active Intelligence composes a campaign describe what's happening right now, not what already finished. For example, "Found 4 sections" becomes "Reading 4 sections," "Pulled 3 photos" becomes "Pulling 3 photos," and "Saved to your campaign" becomes "Saving to your campaign."
Match my brand repaints the email using your account's colors and typefaces. If you haven't set up a brand kit yet, it opens the brand import flow and runs the repaint once you save.
Change layout opens a visual picker showing structural options — photo hero, two product cards, three portraits, letter, catalog grid, and others. It applies the layout you choose while keeping your copy exactly as written. The picker shows only layouts that fit your current email, ordered from least disruptive to most, and marks your current layout so you know where you're starting from.
Both actions require the campaign to be in an editable state and are unavailable while Active Intelligence is mid-edit.
To use these actions: both are behind a feature flag currently rolling out. If you don't see them on your campaign preview bar yet, they're on their way.
Previously, results were cut off much earlier than expected — dropping to around 5 records once your account had 20 or more items of that type.
Complete results are visible up to approximately 95 records before any compaction occurs. If your account has fewer than 95 records of the type you're asking about, you'll see all of them.
No action required.
Per-variant results include each variant's subject line, sender, send share, winner status, and engagement rates (open rate, click rate, bounces, unsubscribes). The winning variant is flagged, and the split settings are included.
This works for all accounts. If the split data can't be retrieved, the rest of the campaign report is still returned — only the split section is omitted. A single-message split returns an empty variant list.
Several improvements apply automatically:
- Series names in Dutch, Portuguese, Spanish, French, German, Italian, Swedish, and Danish are recognized as welcome or onboarding journeys, so the duplicate-welcome warning fires correctly for those accounts.
- Numbered replies ("2", "3") and localized option labels (such as "Optie 1") are accepted as valid "create anyway" responses in confirmation prompts.
- Lead-nurture series are no longer incorrectly flagged as duplicate welcome journeys.
- Welcome intent is matched from your most recent message, so tool paraphrases don't get misread as your instruction.
No action required — these improvements apply automatically.
Previously, Active Intelligence read only the logo's ink color, not the background tile the logo was exported with. That led to clashing color combinations — most visibly, a white-background logo dropped onto a colored band. Active Intelligence now reads the logo file's own background and uses it to find a band the logo can sit on naturally.
This applies automatically to campaigns Active Intelligence generates. No action is needed.
If your brand kit includes two logos — one for light backgrounds and one for dark — Active Intelligence places each on the correct background in generated emails.
Previously, when pixel sampling wasn't available, both the header and footer could draw the same logo regardless of background color. Active Intelligence now reads the background labels you set in the brand kit ("On light background" / "On dark background") as a reliable fallback. The pixel measurement still takes priority when it's available. Kits with only one logo, or with no labels set, are unchanged.
When you asked Active Intelligence to send to "everyone" or "your whole list," it could pick a list based on its name rather than its size. A list called "Master Contact List" is very often not the one that reaches anyone — across accounts with that kind of list name, the median size of the name-matched list was 1 contact, against 475 for the largest list on the same account. On thousands of accounts, the name-matched list reached zero contacts.
Active Intelligence now judges audience breadth by actual subscriber counts. It also reads all pages of your lists, not just the first 100, so accounts with many lists get the full picture. For segments, it reads up to 1,000, covering 92.7% of accounts with more than 100 selectable segments.
If a narrowed audience doesn't save correctly after a campaign is written, Active Intelligence tells you what happened instead of reporting success. It distinguishes between two outcomes: a segment that came back empty (meaning the campaign reaches the full list) and a segment that came back as a different audience entirely.
When Active Intelligence proposes a plan with multiple changes, the redesigned card presents them as a visual stack: the current change is in front, with the next two visible behind it. As you answer each step, a receipt settles above the stack confirming your decision. Auto mode moves into the card header as a labeled toggle.
If an approved step depends on a step you skipped, the entire plan is refused and the blocking step is named so you know exactly what to address.
Known limit: A card created before plan tracking was introduced may stay pending if execution stops before any step runs. All cards created today include plan tracking, so this is recovered automatically.
Previously, starting from a past campaign preserved the layout but replaced the copy with freshly generated text.
Active Intelligence now carries both design and wording by default. If you ask to keep the wording but haven't pasted any copy in, Active Intelligence will ask for it. If you didn't mention wording and haven't pasted any, the design is reused and the copy is refreshed. The reply always tells you what actually carried over.
Starting from a template is unchanged — templates always generate fresh copy. No action required.
Previously, approving a per-item task — such as tagging contacts — that covered more than 100 records caused the entire step to be refused. Your approval was consumed, nothing ran, and re-approving led to the same result.
Active Intelligence now executes the first 100 records in order. The outcome card tells you how many were attempted, how many remain, and the total — for example: "over the first 100 of 250 records; 150 more remain beyond this run." You can continue from there without losing your place.
No action required. If a task covers more than 100 records, Active Intelligence processes the first 100 and reports the remainder automatically.
Two improvements to how Active Intelligence applies your brand identity when composing emails.
Background color stays inside the email column. Your brand's background color previously extended across the reader's entire window, beyond the 600px message column. The area beside the column is plain white on light designs, so each band's color stops at the column edge. Dark designs keep their own color outside the column, since white either side of a dark email creates an unwanted light frame. Only emails Active Intelligence composes are affected; imported documents are unchanged.
The right logo appears on dark bands. When your brand kit includes two logos — one for light backgrounds, one for dark — Active Intelligence correctly selects the light-ink logo for dark email bands. Previously, a logo with any color tint could be misclassified as readable on any background, so the correct version was never chosen. Brands with one logo, no logo, or two logos of the same ink are unaffected.
These improvements apply automatically to emails Active Intelligence composes.
Previously, colors and photos used different width rules, so they could disagree visually — one spanning the full browser window while the other did not. Both now share the same element, so color and image always align within the content column.
This change applies automatically to all accounts. No action is required.
The in-chat approval card includes an Auto mode toggle. When Auto is on for a chat, Active Intelligence can act without asking for approval during that session only. Starting a new chat returns to your standard Customize permissions.
The toggle label reads "Auto." The Tool Tip reads: "Lets Active Intelligence act without asking in this chat only. A new chat uses your Customize permissions."
Note: Non-English locales currently display these controls in English. Translations are coming in a follow-up.
Active Intelligence send settings, scheduling status, and layout-selection prompts are fully localized for non-English users.
Previously, several areas showed English text regardless of your language setting: audience-change and design-edit warning dialogs, the address picker empty state, send-time status labels ("Saving…", "Scheduled", "Send time saved"), and the message sent when you open the Layout panel.
The layout-selection fix also corrects a problem that affected every locale, including English: without the correct translation key registered, the raw key string was being sent to Active Intelligence as your message instead of the actual request for layout options, causing incorrect responses.
When Active Intelligence finishes analyzing your campaign and has nothing to add, it shows a clear message: "Your campaign looks good — give it a look." The message encourages you to review your campaign, then disappears after 10 seconds. Previously, the analysis could finish with no visible feedback at all.
Campaign actions in Active Intelligence work correctly when you reopen a past conversation, applying to the right campaign without losing context.
Legacy API contact-sync requests that submit a contact field as a list of values instead of a single value are handled correctly.
This period's work centers on Active Intelligence reliability: faster, more accurate responses and a cleaner campaign preview experience round out a set of focused quality improvements.
Highlights · 2 of 5 updates
- Faster declines on unanswerable widgets. When Active Intelligence can't build a dashboard widget from your available data, it declines immediately with a clear response instead of retrying until it times out, so you get an answer in seconds rather than waiting through a long delay.
- 3 fixes. Smaller corrections and repairs across AI & agents, Campaigns & email.
5 updates: 1 new · 1 improved · 3 fixed, across 3 areas.
Previously, an in_array check against a scalar personalization tag — such as %FIRSTNAME% — could cause the campaign to fail to render entirely, in both preview and live send.
Scalar personalization tags in conditional content are handled correctly. Array-valued tags such as %TAGS% behave exactly as before. No action required.
A new "My Commission Account" item appears in the Accounts secondary nav and opens a page listing your commission destinations: account home, Referrals, Certifications/Training, Enablement, and Legacy Commissions.
"My Commission Account" is visible only when your account has a commission key set. "Legacy Commissions" (previously called "Commission") is visible based on your agency status. If you have both a commission key and agency status, both items appear. If you have neither, both are hidden.
When you connect your Mailchimp account and start an import, you're taken to a progress screen that updates in real time as your data moves over. You can watch contacts and other data come across, or click Continue to ActiveCampaign at any point to head straight to your account while the import finishes in the background.
Once the initial import step completes, the progress screen clears and the in-app migration widget takes over to guide you through the rest of the process.
This screen is rolling out to accounts progressively.
Active Intelligence image generation and image editing use an upgraded model, producing noticeably better results without any change to how you use the feature. Your existing size and quality settings carry over exactly as before.
This upgrade is being enabled account by account. If you'd like it turned on for your account sooner, contact support.
A new "Enrich a contact" action block is available in the automation builder. Adding it to an automation fills in missing profile data for each contact who passes through it: first name, last name, phone, LinkedIn URL, Twitter URL, Facebook URL, company, and location. Only empty fields are filled — existing data is never overwritten. Contacts continue through the automation after enrichment regardless of outcome.
This action is currently available to eligible accounts only. Contact your account team if you'd like access.
Known limit: Enrichment triggered through an automation isn't yet separately tracked in reporting — it records under the same entry as single-contact enrichment.
Previously, a search with no matches left a blank table with no explanation. The message and clear action appear automatically — there are no changes to how you search.
The Flows table keeps its existing empty state, which already accounts for both the search term and the status filter.
Previously, each Engage table was capped at ten visible rows with no way to sort or find specific items. The tables across surveys, links, audience, campaigns, and flows now have sortable columns, pagination beyond ten rows, and a search field on each page.
A few other improvements came along with this:
- Audience: filter controls moved into a toolbar dropdown; a Channel column and contact record links were added.
- Re-engage: the sequence list is a table; editing a sequence or opening its detail opens in a side drawer, and direct links to sequences still work.
- Flows: status filters moved into the toolbar; run history has a search field; the Edit action is in the page header.
- Campaigns KPI cards: the Recipients, DMs sent, and Completed cards reflect your full campaign collection, not just the rows on screen.
Note: save and delete confirmation messages display as raw text keys until a translations update goes out. This affects only the toast notifications, not the actions themselves.
Engage is available to accounts with the Engage entitlement.
- Inbox: Contact reactions are visible again as a combined badge per message bubble. Contact details appear beside the avatar. Clicking the backdrop dismisses the Add to modal. The Add deal modal uses the platform's standard footer.
- Row actions: Campaigns, surveys, links, and flows share one consistent action control. A single action renders as a plain button; no actions renders nothing.
- Tables: Column headings use platform styling. The Actions heading is right-aligned. Rows have a blue hover state.
- Metric cards: Tiles are tinted by intent, matching platform KPI cards. Labels are sentence case. Icon badges have a hairline border in the intent color. Three breakdowns are now tabs.
- Storefronts: Cards follow the platform pattern. Card count is shown as a chip. Deletion confirms in a modal with a destructive confirm button and a toast on every outcome. Drawers are a consistent width.
- Filter bar: Selecting a range no longer shifts the row layout.
Contacts whose email address or phone number contained emoji or other 4-byte characters caused ecommerce personalization to fail, resulting in a failed send. This affected approximately 81 sends per day across 10 or more accounts, disproportionately hitting European accounts. Ecommerce personalization handles these characters gracefully: they are stripped before the lookup, and any remaining issues are caught so ecommerce tags are skipped rather than the send failing.
You can pick a Dropbox file directly from the personalization tags modal in the email editor, under the APP group. A Connect button loads the Dropbox file picker; selecting a file inserts its link into the editor. Images keep their preview link; other files are rewritten to the direct-download address. The link is inserted as plain text.
The email editor toolbar includes a desktop/mobile view toggle. Switch between viewports while editing to see how your email looks on each. The toggle defaults to desktop; clicking the active view again doesn't deselect it.
When you exported deals from the "All pipelines" view, active filters — status, owner, search, tag, and field filters — were ignored, and every deal across every pipeline was exported instead.
The export forwards the same live filters whether you're exporting from a single pipeline or all pipelines.
Previously, refreshing a widget could silently undo a subtitle correction. For example, if a widget's subtitle was corrected to reflect the actual time period its data covered, that correction would disappear the next time you refreshed. Refreshed widgets are now validated the same way newly created widgets are.
Three improvements to contact search shipped together.
Saved searches are in the search input. When you focus the main contacts search input, a dropdown opens showing your saved searches under the heading "Saved Searches." Click a row to load that search. A delete option appears on hover or keyboard focus and opens the existing delete confirmation. The split button beside Advanced Search is gone.
A result count appears after a search runs. Once results load, a count appears beside the table actions — for example, "Edit all — 101 results." This shows for basic search terms and advanced search or segment views. Filter-only views (Tags, List, Status) are unchanged. Large totals are formatted for your account's locale (for example, "8,450" in US English). The count doesn't appear while a search is in flight, so it always describes the results you're looking at.
Basic search is available again in advanced search results. When a segment is active and the advanced search panel is open, the basic search input is available as a plain input. A previous issue where two search inputs could appear at once has also been resolved.
Deal emails appear as "Email Received," "Email Sent," "1:1 Email Sent," "1:1 Email Opened," or "1:1 Email Link Clicked" — with the email subject, attachment count, and a 90-character excerpt. The activity badge uses the email color and the appropriate icon.
Eight activity types that previously fell through to a generic label now show real titles and detail lines: automation blocks, contact restores, ecommerce orders ("Made Purchase" / "Abandoned Cart"), contact enrichment, Facebook audience log entries, WhatsApp conversations, WhatsApp flows, and omni-channel link data.
The activity card caret is restored: a triangle on the card's left edge pointing at the type badge, with a hover highlight, matching the previous experience.
The Reply button has been removed from the activity detail panel. Replies start from the emails tab, which is unchanged.
Existing avatars are never overwritten — the enriched photo appears only for contacts without one. Contacts previously marked complete but with a blank image are enrichable again until they have an avatar.
No additional setup is required beyond your existing enrichment access.
The Initializing step in the campaign sending progress bar reflects what the sending system actually reports.
- In progress — shown only when the system confirms initialization has started.
- Not started — shown when nothing has been reported yet, including scheduled campaigns, campaigns awaiting review, and campaigns without progress data.
- Done — shown once initialization finishes or the send moves to a later stage.
"View details" availability is also smarter by campaign type. One-time campaigns and A/B splits keep their existing behavior. Campaigns that send on their own cadence — RSS, auto-responders, date-based, recurring, text, series, and special campaigns — no longer offer "View details" while scheduled; the link becomes available as soon as the sending service has progress data.
When "View details" isn't available, the sending-progress chip shows the same hover tooltip as the status badge (for example, "Sent to 1,000 contacts 2 days ago"). When "View details" is available, no tooltip is shown on the chip.
Several issues with the campaign preview action bar in Active Intelligence are fixed:
- The start-source picker opens as a full popover above the email rather than clipping into a narrow band of cards.
- The picker's title names the tab you're viewing. The preview action is called "Reuse a design."
- Cards scale to the available width instead of a fixed column count, and card height matches other template pickers in the product.
- Card edges meet the 3:1 contrast threshold required for UI boundaries.
- Two action bar icons that rendered as blank space are replaced: the brand action uses the Active Intelligence mark, and the reuse action uses the email-template icon.
- The "Change layout" entry is removed from the bar. You can still ask for a different layout in conversation.
- Actions taken from a campaign preview stay in the conversation they were started from and apply to the correct campaign.
- The list of past campaigns and templates loads more as you scroll, replacing a "Load more" button.
- Only one panel covers the email at a time: opening the picker closes any open send-settings pill, and opening a pill closes the picker.
These fixes apply automatically.
Most other missing components degrade gracefully rather than blocking the editor entirely.
Specific improvements: logos are stored reliably across all paths (create, replace, update, and backfill); a folder access issue no longer causes the entire brand kit to degrade; hex color values are validated and trimmed before use; the primary logo flag carries forward correctly on all update paths; tone is no longer generated from content-poor pages like parking pages or cookie walls; connection errors and rate limits are classified correctly so the right status reaches you; a timeout prevents the brand data client from blocking indefinitely; and a logo with an unset theme imports as light artwork instead of being discarded.
Additionally: Active Intelligence-generated alt text on scraped images is capped before upload, resolving a high-volume upload issue. Brand kit email previews on accounts with multiple brand kits no longer mix images between kits. Social media and webmail URLs no longer import another company's branding. Enrichment jobs that were permanently stuck in a pending state are resolved. Expected "no brand kit" lookups are no longer logged as errors.
The Newest sort for automations in the CX app reflects when automations were actually published. Previously, publish dates weren't factored in, so the Newest ordering didn't match the real publish sequence.
Previously, clicking an automation link in the activity feed opened the automation builder without showing the contact's path through it. The run wasn't highlighted, leaving you to find it manually.
This applies to both the activity feed and the activity detail panel. No action required.
This applies from the contact record page. Clicking the checkbox or its label text enables the Archive button and lets you complete the action.
When Active Intelligence can't build a dashboard widget from your available data, it declines immediately with a clear response instead of retrying until it times out — so you get an answer in seconds rather than waiting through a long delay that ends in an error.
When you describe a color, font, or tone in your message, Active Intelligence carries those choices through to the composed email. Previously, the email came back in whatever your brand kit already said, regardless of what you asked for.
Seven specific improvements shipped:
- A color or font you name in your message is applied. If you name a color or font family, it replaces the brand kit's value for that role on this campaign — your standing brand settings are left untouched.
- Your stated tone reaches the email. Both tiers of voice precedence now reach the composer, so a brief asking for a playful tone produces a playful email.
- Active Intelligence tells you when something can't be built into email. Live countdown timers, working forms, checkout flows, and conditional sections can't be placed in an email. Active Intelligence tells you what to ask for instead, on both new campaigns and edits.
- Asking Active Intelligence to rename a campaign works. Asking it to rename a campaign to match its content updates the campaign label.
These improvements apply automatically.
Known limits: The tone vocabulary currently covers six registers: playful, premium, mission, editorial, utilitarian, and friendly. Tones like "formal," "professional," "urgent," and "conversational" aren't yet supported — if you ask for one of these, Active Intelligence will still compose the email but won't apply that specific register. Margin values reverting after editing an Active Intelligence-created campaign are a separate issue not addressed in this release.
Work you did with Active Intelligence on a campaign — layout changes, image selections, mechanical edits — was silently disappearing between turns. Five issues have been resolved:
- A new campaign's saved design was lost before it reached the sender, so subsequent edits were refused as if someone else had changed the design.
- Layout changes (band conditions, element arrangement, color repaints) were recorded in the version history but never written back to the actual campaign, so opening the email showed the version from before the change.
- Successful edits were reported back as failures, sometimes surfacing phrases from your own brand tone text as "unmet requirements."
- Image selection matched on caption alone and collapsed similar concepts together, causing a headshot to win a slot that asked for a family photo. A request for no images was also ignored on subsequent edits.
All four issues are resolved. Your design work and image choices carry through reliably between turns.
Active Intelligence's duplicate welcome automation detection works across more languages and reply styles.
Series names in Dutch, Portuguese, Spanish, French, German, Italian, Swedish, and Danish are recognized as welcome or onboarding journeys, so the duplicate-welcome warning fires correctly for those accounts. Numbered replies ("2", "3") and localized option labels (such as "Optie 1") are accepted as valid "create anyway" responses in confirmation prompts. Lead-nurture series are no longer incorrectly flagged as duplicate welcome journeys. Welcome intent is matched from your most recent message, so tool paraphrases don't get misread as your instruction.
These improvements apply automatically.
When Active Intelligence detects an existing welcome series and warns you, you can confirm "create anyway" in the same conversation and the automation is created. Previously, two separate issues blocked this path — the warning wasn't retained across conversation saves, and the confirmation signal was fragile — so "create anyway" often failed silently.
Both are resolved. If you start a fresh conversation with no prior warning, Active Intelligence still warns you before creating a duplicate. Typing "create anyway" without a prior warning in the same conversation also still triggers the warning, as expected.
Previously, if a lookup returned several matches and your target wasn't first in the list, Active Intelligence could answer with data for the wrong record. For example, asking about a tag called "CM - Fund Manager" could return information about a similarly named tag that appeared first in the results.
Active Intelligence now checks that the record it selects actually matches your request. If the first result isn't the right one, it finds the correct match. It also refuses to act on a record it can't confirm — for example, if it would have to guess or fabricate an ID rather than look one up.
These checks run at three points: when planning, before you approve, and before any action is taken.
A read-only tool for retrieving your most-active contacts is available through the platform's MCP connection. It returns contacts in the standard platform ordering.
Known limit: Requests for "most-engaged" contacts are not supported by this tool.
You can connect your SurveyMonkey account directly from the personalization tags modal in the campaign editor, under APPS → SurveyMonkey. After connecting via OAuth, you can browse your surveys and insert a personalization tag for any survey. A disconnect option and a refresh button to reload your survey list are available alongside the connection.
SurveyMonkey tags appear as green chips with a survey icon in the editor canvas. If a campaign already contains a SurveyMonkey tag when you open it, the tag is recognized automatically.
The shared folder filter lists all available folders. Previously, some folders were missing from the filter.
Previously, timestamps were shifted by the difference between your local time zone and US Central time — affecting individual message timestamps, day groupings, and Today/Yesterday labels in the conversation list. All timestamps now use your account time zone, with fallback to your local time zone.
Previously, the summary cards used deliveries as the denominator, but the individual broadcast report and table rows used sends — so the same metric could show different numbers depending on where you looked. All three views now use deliveries, matching SMS industry convention.
Delivery rate and fail rate remain calculated on sends. This change applies to the Broadcasts report only.
When your session expires while you're on a specific page, logging back in takes you to that page instead of dropping you at the default dashboard.
The destination is preserved through the session timeout and restored after you log in.
Admin users can retrieve personalizations that have no list attached via GET /api/3/personalizations and GET /api/3/personalizations/{id}. These rows are returned with listIds null and listsCount 0, so they can be found and corrected.
Previously these personalizations were invisible to the API entirely, even though they still occupied their tag — making it impossible to locate or repair them. Non-admin visibility is unchanged.
When you create or update a personalization via POST /api/3/personalizations or PUT /api/3/personalizations/{id}, the list IDs you provide are validated before any changes are made.
Previously, passing an unrecognized or malformed list ID returned a success response and silently removed every list from the personalization — breaking tag resolution at send time without any indication something had gone wrong.
Malformed list IDs return a 422 response with no rows added or removed. Well-formed but non-existent list IDs also return 422, including mixed cases like '1,999' where one ID is valid and one is not.
If you currently send a well-formed but non-existent list ID and rely on the silent 200 response, this change turns that into a 422. Review your integration if this applies to you.
What stays the same: bare integers are accepted, duplicate IDs in a request are stored once, and a missing or blank listids returns the same error as before.
Campaign approvals have moved from a drawer on the Campaigns page to a dedicated Settings page. Save is in the header, and validation errors appear inline on fields rather than in a summary banner. The approvals button and drawer have been removed from the Campaigns page.
Labels (previously called Tags) has an updated editing experience: adding and editing is done in a right-side drawer, and color selection uses a dropdown rather than a free hex input. Names in the table are plain text, and the separate detail page has been removed.
The taxonomy has been renamed from Tags back to Labels to avoid ambiguity with an upcoming Tags sync feature. The route updates from /settings/tags to /settings/labels — the old path redirects automatically, so existing links keep working.
Searching by list name in the message variables page's list dropdown works correctly. On some accounts, lists with an empty name or missing identifier caused the dropdown to stop filtering entirely.
Both HubSpot and Brevo appear as selectable sources in the migration flow, each with its own connection instructions.
A few things to know before you start:
- HubSpot: connects using a private app token. If your token is missing a scope, the connection still works, but data covered by that scope won't be included in the migration — with no warning during the process. Make sure your token has the scopes you need before you begin.
- Brevo: migrates end-to-end. The performance insight card for Brevo is not yet available.
Both options are rolling out gradually and may not be available on your account yet.
Previously, the filter only showed folders that already had at least one form in them, so empty folders were invisible and couldn't be selected. Empty folders appear with a "(0)" count. Within the Folders group, order is initiatives first, then alphabetical by name.
The same fix applies to the Campaigns folder filter, so selecting an empty folder by URL works correctly there too.
Error messages shown when saving, deleting, or locking and unlocking message variables appear with a solid red background. Errors are clearly visible when they occur.
Campaigns list: The row count strip is removed. Tables paginate when there are more than 10 rows. The Report opens in a drawer instead of inline, metrics match the KPI cards on the route, and the skipped-reason breakdown reads as a table.
Creation wizard: Fields use a centered, full-width layout. Step actions are pinned to a sticky footer. Audience and exclude-segment lists use toggles instead of checkboxes, with reach breakdown as a table. The review step reads as a table with unbroken row rules and top-aligned labels. "Campaign launched" moves from a panel to a toast with a dismiss control. Chips can be picked from a dropdown of added ones and created in a modal with a label and color. Unchecking a row removes its chip.
Toasts across Engage also display correctly — with visible backgrounds and icons.
The duplicate deals warning icon is visible on the contact Deals tab. This matches the behavior already present on the personal-info tab, so you can spot potential duplicates from either view.
Three display issues on the contact record page are resolved.
- A soft-deleted contact's breadcrumb shows the anonymized label instead of the contact's real name.
- Broken profile photos trigger a re-verification request correctly.
- The "View deal" link appears on pending deal task rows when the task outcomes setting is on.
The gear menu on custom campaign template cards opens next to the gear icon where you'd expect it, and you can reach it with a keyboard.
Button labels are centered across the platform, including on template cards, the personalization popover, address blocks, paginated dropdowns, the Deals CRM pipeline view selector, forms, reports, campaigns, goals, SMS, and settings.
When Active Intelligence builds a brand kit from your website, it keeps company logos even when they're only available as WebP or JPEG. Previously, logos not supplied as PNG were dropped entirely during import.
The import uses a format preference order — PNG first, then WebP, then JPEG — so the best available format is always used.
Known limit: SVG logos are not yet supported in this import path.
The Archived contacts view previously showed only contacts deleted in the last 90 days, even though deleted contacts are retained for 12 months (360 days). Contacts deleted between 90 and 360 days ago were stored but never visible. The view now matches the full retention period.
Restore requests for contacts older than 360 days are declined upfront with a clear explanation, rather than appearing to succeed and then quietly doing nothing. Error messages distinguish two situations — contacts too recent to restore yet, and contacts past the restore window — so you know exactly which applies. In a mixed batch, the "past the restore window" message takes precedence, since those contacts can never be recovered.
Contacts deleted between 30 and 360 days ago remain restorable as before.
When adding a deal from an account record, the currency picker shows all 156 currencies — including ZMW, KZT, UAH, and TRY — instead of a static list of 40.
When Active Intelligence builds a WhatsApp flow and the platform returns a fixable validation error, it retries the correction internally instead of surfacing the error to you. Recoverable issues — including empty contact fields, missing named steps, bad template bindings, and structural errors — are handled silently in the background.
On the last retry attempt, if the issue still can't be resolved, Active Intelligence asks you for guidance rather than burning the final attempt on a guess. If all retries are exhausted, you receive a plain summary with no internal technical details.
In the 30 days before this change, 14 of 24 created flows went through at least one visible rejection — up to 5 in a row. Those self-corrections are now silent.
When you asked Active Intelligence to create a segment and included a description, the description wasn't being saved — Active Intelligence reported success, but the description was dropped.
Descriptions are accepted and saved alongside the segment. They're validated against a 1,000-character limit (matching the segment builder in the product) and trimmed of whitespace before saving.
Known limit: Editing the description of an already-saved segment is not included in this change.
When you asked Active Intelligence to set a campaign audience and the audience ID was handled as text rather than a number, the audience was silently dropped — your campaign was created with no audience attached and no explanation.
Active Intelligence correctly retains the audience you specified, regardless of how the ID is formatted internally. Validation is unchanged: audiences that don't belong to your account are still rejected with a note explaining why.
This applies when the campaign send configuration feature is enabled for your account.
When Active Intelligence received overlapping requests to copy the same campaign, multiple copy attempts could race each other, all fail, and leave you with a generic "Something went wrong" message. On one occasion, a single copy request triggered seven simultaneous attempts — all of which failed.
Concurrent copy requests for the same source campaign now wait their turn rather than racing. If a copy can't proceed due to contention, you receive a clear, retryable message instead of a generic error.
Key Findings were previously appearing as unlabeled continuation bullets under the Recommendations section, making it hard to tell the two apart.
Key Findings appear under their own "Key Findings" header, placed before the Recommendations section. The structure matches what Active Intelligence intends to show you.
When you ask Active Intelligence to retrieve form statistics over a date range that exceeds the maximum allowed span, it tells you the actual span you requested, the cap, and which aggregation level would fit within the limit.
Previously it received only a bare error, repeated the same request up to three times, and ended with a generic failure message.
After one correction, if the range is still too wide, Active Intelligence returns a clear explanation instead of retrying further.
Two specific situations now get their own clear messages:
- Data not supported: Active Intelligence explains that the requested data isn't available and offers three alternative widget ideas. Selecting one fills in the prompt and submits it immediately, so you can get to a working widget without starting over.
- Data not ready yet: Active Intelligence lets you know the data exists but isn't available yet.
Other situations — including connection issues or unrecognized errors — continue to show a general message. Previously, Active Intelligence would retry until it timed out, leaving you waiting through a long delay that ended in an error.
When Active Intelligence proposed a plan and you replied with a correction, it was re-presenting the original value instead of your corrected one. For example, correcting "Enrolled Course Category" to "Enrolled Courses" caused the next turn to show "Enrolled Course Category" again.
Your corrections are treated as authoritative: the latest message wins, and the plan is updated accordingly.
Previously, if you had more than one conversation open, the action could land in the wrong one or be applied twice. The way you trigger these actions hasn't changed.
Active Intelligence's brand site summary is built only from pages with enough content to actually describe your business — redirect notices, cookie banners, and parking pages are filtered out.
Each page included in a brand summary must carry at least 60 characters of copy — the same threshold used elsewhere in the brand analysis. A parking page or cookie banner typically reaches about 40 characters; the shortest page worth reading reaches 60.
If every candidate page falls below the threshold, the previously stored summary is kept rather than being replaced with an empty one.
Brand summaries update automatically.
When adding a contact to an account record fails, you see the actual error message so you know what to fix. When it succeeds, a confirmation banner appears — previously the page gave no feedback on success.
Account owners — the primary admin user — can access the Deals fields settings page even when deal-related permissions are stored as off. This matches the previous behavior.
Exception: On the Lite plan, deal field settings remain inaccessible regardless of admin status.
When saving a contact edit on an account record fails, the form stays open with your typed values, shows a loading state while saving, and displays a clear error so you can correct and retry.
Previously, each language card stretched to fill the full panel height, meaning only one card was visible at a time and you had to scroll a full panel-height to reach the next language.
Partner Hub has a dedicated Settings area, accessible via the cog icon in the top bar. Tags has moved from a top-level navigation item into Settings — the previous path redirects automatically, so any bookmarks or links continue to work. The Add tag button is in the page title row.
The 1:1 email composer on a contact's page sends email as expected. The Send button enables once domain verification completes, so you can send directly from a contact record without interruption.
Saint Martin appears once in country dropdown fields and stays stable across saves and reopens.
White-label accounts with ActiveCampaign branding turned off correctly see no ActiveCampaign wordmark during the onboarding flow — including both the URL step footer and the personalized onboarding heading. Previously, only reseller accounts had the wordmark hidden; non-reseller white-label accounts still saw it. Branded accounts continue to see the wordmark as before.
When Active Intelligence creates a WhatsApp flow, the flow editor side panel opens automatically at full height — matching the behavior already in place for campaigns, automations, and SMS. Validation errors and warnings remain accessible on the in-chat card and still require a click to open.
If your account accesses Deals or Accounts through a trial or CRM plan rather than an explicit entitlement, 13 webhook events — 9 deal events and 4 account events — had stopped firing silently. All 13 are restored. Any webhooks you had saved for these events will fire again.
Error messages returned by the Users API endpoint are localizable. Twelve error strings — covering invalid phone numbers, permission errors, reassignment validation, single sign-on, IP address rules, and username conflicts — can be returned in your locale in API responses. English strings are available now; additional locales will be added as translations are completed.
Known limit: Until the companion string package is published and the backend upgrades its dependency, the raw translation key is returned instead of the localized string.
Unsubscribe reasons appear correctly in campaign reports.
Unsubscribe calculations in the campaign performance report draw from an updated data source. Unsubscribe rates, KPIs, per-campaign exports, and recipient list filters are all consistent with the latest data. The way unsubscribe rates are defined hasn't changed — only where the numbers are read from.
Trial accounts receive exactly one set of SMS credits for the tour's test send, regardless of how many times the tour is restarted. Previously, restarting the tour could result in additional credits being granted to accounts that had already used their initial credits.
Known limit: In the rare case where the credit write is dropped before it's recorded, the account receives a logged gap that support can fix manually, rather than an automatic re-grant.
When you turn ActiveCampaign branding on or off in Settings → Appearance, your SMS short link domain updates to match right away. Previously, the SMS short link domain kept its old value until something else touched your link-shortening settings — meaning your branding choice and your SMS links could quietly fall out of sync.
The sync happens at save time. If the sync encounters a temporary issue, your settings save still completes — the sync is self-healing and picks up on the next save. This applies only to accounts that control their own branding.
What to do: Toggle branding in Settings → Appearance and save. Your SMS short link domain updates immediately.
Known limit: Accounts using an older settings path may still experience a mismatch. That path is being addressed separately.
The "Send to existing contacts" toggle on a scheduled autoresponder correctly reflects its saved state. Previously the toggle appeared off even when the setting was saved as on.
On multi-region accounts, attempting to clear SMS subdomain link shortening previously returned an error and didn't go through. The action now completes as expected.
When a contact who's already active on an SMS list submits a double opt-in form again, they now receive a confirmation SMS letting them know they're already subscribed.
The contact's membership isn't changed, no subscribe event fires, and the message is only sent when the submitted phone number matches the contact's existing number — so no contact information is exposed.
The SMS broadcast preview in the campaign builder reflects what you last saved. Previously, edits made in the classic builder didn't reach the preview, so the preview could disagree with the builder, the guided test send, and the SMS that actually delivered.
Message name, image, sender, and link shortening all update to match your current saved content. The in-chat SMS card remains a historical record of the message as it was sent and does not update.
When a customer had zero completed orders, the revenue total could fail to save, causing errors on order updates. Revenue totals for customers with no completed orders correctly display and save as zero.
Revenue sorting in the Deals CRM pipeline view works correctly.
Resubscribing a contact to a list could leave a stale timestamp on the membership record. A later pass keyed only on that timestamp wrote an unsubscribe activity entry for a contact who was already active again — producing incorrect contact history.
Active memberships with a leftover timestamp are now skipped. A contact's activity history reflects their actual subscription status.
For contacts, you can drag multiple fields in quick succession and the order is preserved correctly. For accounts and deals, further drags are paused while a save is in progress.
No action required — the instant update applies automatically on the Manage Fields settings page.
Recurring campaigns — series, responder, reminder, and special — publish send-summary data after every send cycle, not just the first. Reporting surfaces that were under-counting sends, and open rates that appeared impossibly high as a result, reflect accurate numbers going forward. Historical send counts from cycles that ran before this change are not backfilled.
RSS-triggered campaigns scheduled for their next send were missing from the Campaigns list when you filtered by Type: All Campaigns + Status: Any. They appeared only under Status: Scheduled.
Freshly copied campaigns were also affected: when the copied content matched what was just written, the first save was skipped — leaving the campaign without a modified date and causing it to drop out of filtered views. The fix ensures a campaign's first save always records a modified date, while unnecessary rewrites of already-saved content are still skipped.
Your Campaigns list filtered by Type: All Campaigns + Status: Any will include RSS-triggered and copied campaigns as expected.
On the account record page, the contact row edit form correctly respects the phone-only setting. Previously, the form always required an email address — blocking the Save button and preventing the phone-only flow from working — even when the account was configured as phone-only. The form behaves the same way it does on the contact record page.
After editing a task from the activity sidebar on a contact record, the pending tasks list and the open task detail panel reflect the updated title and due date right away, without requiring a page reload.
The "Saving…" and "Saved" status text in the notes composer appears in the standard text color on contact and account record notes panels and in the note drawer, making it clearly readable against the card background.
You can now retrieve automation run data grouped by contact directly from the API — no need to group results yourself after fetching them. See the API documentation for details.
Several visible issues on the custom fields settings pages (contacts, accounts, and deals) are resolved.
- Text-area fields: Choosing "Text area" as the field type in the Add Field modal on accounts or deals, or editing an existing text-area field on contacts, previously caused the page to stop responding. It works correctly.
- Dropdown menus in modals: Dropdowns inside field-settings modals open in front of the dialog. Previously, the menus appeared behind the modal overlay, making options unclickable.
- Partial reorder feedback: When a field reorder only partially succeeds, a toast notification appears instead of a browser alert dialog.
- Option label parity: Renaming a custom field option saves the label you typed, matching the behavior from the previous version.
- Row actions and personalization tags: Row action buttons are consistent across all three tabs. Personalization tags truncate to one line with the full tag visible in a tooltip.
- Loading states: The page heading and tab band appear immediately while content loads, so the page structure is visible right away.
- Page layout: The header and tab band run edge to edge and the page fills the full height of the shell.
When a contact open was likely generated by Apple's Mail Privacy Protection, an info icon with a tooltip appears inline in the activity stream — matching the behavior of the earlier contact record experience.
For reseller and white-label accounts, the "Learn more" help-center link inside the hint is hidden, following the existing platform convention. The hint text itself still appears.
Active Intelligence editor connections are being updated so each user manages their own connections rather than sharing them across an account. This change is not yet visible — it will appear for your account once it's enabled. When it does, a banner will explain the change, and a one-time indicator will prompt you to review your connections.
The List Exclusions page previously displayed internal, system-managed exclusion records that were never intended to be visible or editable. These entries also inflated the page count shown in pagination. The page shows only the exclusions you've created and manages the count correctly.
When you export link click recipients from campaign reports, custom object fields are included in the export file — the same custom field support that was already available for the recipients list export.
Click any link while editing an email and a modal lets you attach one or more actions to it: add or remove a tag, subscribe or unsubscribe a contact from a list, or start or end an automation. The actions you've set appear as chips directly on the link in the editor, so you can see at a glance what each link will trigger when a contact clicks it.
The modal pulls your account's live tags, lists, and automations, so what you see reflects your actual setup.
To use this, open any email in the editor, select a link, and configure actions from the modal that appears.
Form list thumbnails render correctly for accounts using a custom domain. Previously, the screenshot service couldn't load images hosted on a custom domain, so thumbnails showed broken images for those accounts.
Image URLs are rewritten to a compatible host during screenshot rendering only — your live form embeds are unaffected and continue to load images from your custom domain. This covers all form layouts (inline, modal, floating bar, floating box) and applies to both inline images and CSS background images.
What to do: This fix is enabled by a feature flag that defaults to off. If you're on a custom domain and want thumbnails to render correctly, contact support to have it enabled for your account.
Screenshots regenerate automatically on every save, including saves made through the API. A failure in the screenshot service can't cause the save itself to fail, and a timeout prevents the screenshot request from hanging indefinitely.
After a save, the forms list retries loading the new thumbnail up to 3 times, fetching a fresh copy each time. If all retries are exhausted, a placeholder icon is shown instead of a broken-image glyph. A subsequent save resets the retry count so the new screenshot gets its own fresh attempts.
Both Engage Flows pages have been updated to match the platform's standard UI.
On the flows list, the status filters (All automations / Live / Off) move into a toolbar band below the KPI cards, sitting flush above the table. The "Off" status dot has a visible edge, making it easier to distinguish from the "Live" dot when scanning the Automation column.
On the flow runs page, the seven run-status filter buttons are consolidated into a single dropdown. The Back to Flows and Edit controls move into the same toolbar band. When switching between statuses, the page shows a list skeleton instead of a spinner, so the transition feels more like the table it's loading.
A few details worth knowing: if a conditional block covers all possible cases and every branch contains the required content, the email is treated as unconditional and no extra footer is added. Contact-supplied field values that look like compliance tags are stripped so they can't suppress the footer. Trial marketing accounts continue to receive the logo they previously received.
Mobile users looking up their account by email address get the email keyboard layout automatically. This includes embedded webviews, third-party keyboards, and in-app webviews in Gmail and Outlook.
Order product activity records save successfully even when a product arrives without an external ID. Previously, these records failed to save in that situation, affecting order tracking for products without external IDs.
Two related fixes address a problem where campaigns with a large number of duplicate tracked link records could run out of memory at send startup and never deliver.
Duplicate rows are no longer created. Links that were already recorded are now recognized correctly, so each link gets one tracking row instead of accumulating duplicates. As a result, links that were previously shipping untracked are tracked again — this restores tracking rather than removing it.
Existing duplicate rows are cleaned up at send time. Even after the above fix, accounts that had already accumulated duplicate rows could still hit the memory limit. The link lookup deduplicates existing rows before loading them, so sends complete normally. URLs that differ only in casing (for example, ?ID=1 vs ?id=1) are treated as distinct and not merged. Click counts continue to accrue to the correct row.
When you filter your deals list by pipeline or stage — in the interface or via the API — you now see only the deals that match. Previously, those filters were silently ignored and the full account deal list came back instead.
This also affected Active Intelligence: when asked about a specific pipeline, it was drawing on a count that covered all deals in your account, not just the ones in that pipeline. That count is now scoped correctly, so any pipeline insights you get reflect the right set of deals.
The drag handle stays visible for the full duration when you reorder a stage column in the Deals CRM pipeline view. Previously, the handle vanished the moment you started dragging, making it harder to complete the reorder.
GET /api/3/fields with a list filter was returning an error for non-admin API users. The correct fields are now returned for all users, regardless of their permission level.
Custom Object personalization tags inside tracked campaign links were rendering as raw text instead of resolving to the contact's data. With link tracking turned off, the same tags resolved correctly.
Custom Object tags inside tracked links now resolve to the correct contact data, matching the behavior you'd see with tracking off. A companion fix that adds the contact identifier to click-tracking URLs was deployed separately.
Accounts with a connected store see the coupon block as before, with your store list already populated. If your account has no ecommerce connection and you previously saw the coupon block, it will no longer appear in the blocks panel.
When a contact's name, deal, or organization is updated anywhere, the record reflects the change automatically — typically within about a second. When a contact is deleted from another session or by an automation, the page locks with a clear notice and a link that returns you to your contacts list. Keyboard navigation is blocked behind the notice so you can't accidentally interact with a stale record.
One intentional difference from the previous experience: the yellow "out-of-date" banner is gone, replaced by the live update. The activity stream continues to refresh on a 60-second cycle because the live update channel covers UI-originated writes only, not automation activity.
Clicking a form name in the list membership popover or modal on the contact record takes you to the correct form builder page. The link was pointing to a path that no longer exists; it resolves correctly.
On the contact record, the Edit and Delete options in a note's cog menu are always reachable with a click. When a comment thread followed a note, the thread was painting over the menu and blocking both options. The menu renders above the comment thread.
Location joins the standard enrichment summary — fields filled, fields skipped, fields without data — along with the confidence breakdown.
If location can't be resolved, enrichment continues and completes without it. Existing location data is never overwritten. Contacts with no prior location data consume quota as normal and appear on the activity feed as enriched. No additional setup is required beyond your existing enrichment access.
Three improvements to the contact record activity sidebar:
- Editing a task updates the row with the new title and due date within about 1.8 seconds, without a page reload.
- Completing or deleting a task removes it from the sidebar immediately.
- "Saving… / Saved" status text in the notes composer appears in the standard text color, making it easier to read against the card background.
A close button (X) is available in the Active Intelligence chat panel header, next to the expand icon. You can dismiss the panel without navigating away or using another control.
When the workspace preview pane is open alongside the chat panel, the close button collapses smoothly so you don't see two close buttons at the same time.
Campaign template preview images update automatically when you change your brand name, description, or industry. Previously, previews could show images based on your old brand details even after you'd updated them.
The send time shown on the campaign send pill respects your account's combined date-time format preference. Previously, accounts with a custom combined format saw the date and time displayed in the wrong layout.
A problem caused every campaign send to insert a duplicate tracking row for links that were already recorded, rather than recognizing the existing entry. One account accumulated 356,649 identical rows for a single URL, which prevented delivery entirely. Links are stored and looked up consistently, so tracking works correctly and sends complete as expected.
When you open a campaign to review it, the editor used to save a new version even if you changed nothing — bumping the modified date and potentially overwriting your content. Seven fixes shipped together to close every known path where this happened.
- Opening an unchanged campaign no longer triggers an autosave or updates the modified timestamp.
- Copying a campaign carries the source design only where the content was actually carried over; unrelated copies don't inherit a design they shouldn't have.
- Split variants inherit the source campaign's design correctly.
- Content remapping uses your campaign's stored markup as the source, so compliance links (unsubscribe, sender info) are preserved and not duplicated.
- Recompiling a message that's already stored correctly skips the write; subject line and preheader edits still save as expected.
When you turn on the Mail Privacy Protection (MPP) filter in Campaigns Performance, the compare-to panel respects that setting. Your comparison open rates match what the main report shows.
Previously the compare-to panel ignored the MPP toggle entirely, so side-by-side comparisons always included MPP-inflated opens even when the main report excluded them.
The filter applies automatically when you toggle MPP on or off.
On accounts with HQ template sync enabled, HQ-synced templates and Active Intelligence templates were appearing in both the "Synced from HQ" and "Local templates" sections. Each template type now appears only in its correct section.
The campaign designer saves complex HTML content without errors. Previously, certain complex content could cause a save to fail with an error. Failed processing steps are now skipped and the rest of the content continues to be processed.
Four gaps that could cause content to be lost, overwritten, or only partially updated are now closed.
Unsupported campaign types are caught upfront. Raw-HTML, plain-text, and legacy designer campaigns are refused with a clear explanation rather than producing an error mid-process.
Unsupported content blocks are reported, not silently dropped. If a block can't be represented in the target layout, the remap is refused with a specific explanation of which blocks are the problem — so you know what to address before trying again.
Concurrent changes no longer overwrite each other. If two changes to the same campaign happen at the same time, the second one fails with a clear conflict message rather than silently overwriting the first.
All variants of a split campaign are updated. Previously only the first variant was remapped. Split campaigns with a shared design are remapped once and the result applied to all variants; split campaigns with per-variant designs have each variant remapped independently.
Two issues are resolved. First, a failure from the content hosting service could cause an external, unhosted URL to be saved under a logo entry instead of the hosted one. Second, uploading a batch of logos could silently discard logos you'd already uploaded by replacing the full set with only the ones in the current upload.
A hosting failure now raises an error instead of saving an external address. Logo URLs are verified before use. The upload path adds to your existing logos rather than replacing them.
Known limit: Brand kits already holding HTTP (non-secure) logo addresses are not repaired by this change and require a separate data fix.
The folder and automation filters in the Automations Performance report search server-side instead of loading your entire account's data into the browser first. The filters load the first 100 results immediately and update as you type, matching the behavior already in place on the Campaigns Performance and Predictive Content reports.
Previously, the report could attempt to load up to 10,000 automations into the browser at once, which could slow the page or exhaust browser resources on large accounts.
A selected automation stays pinned in the list even when a search term doesn't match it.
This applies when the updated reports experience is enabled for your account.
Automation share links update when you edit an automation's steps or actions — not only when you rename it. Previously, content edits left the shared link pointing at the old version until a rename triggered a refresh, meaning child accounts could receive stale content.
Status-only changes (activating, deactivating, or drafting an automation), copies, and Active Intelligence-generated automations don't trigger an update, so the receiving side isn't asked to process a change that doesn't affect content. Non-franchise accounts are unaffected.
Known limits: Email body edits made through the email editor and rejected block edits are not yet covered by this change.
The completion rates and stats in the contact automations report are accurate when you filter by tag and sort by subscriber ID. Previously, a query error caused approximately 1,100 errors per day, and every affected request returned a completion rate of 100% regardless of actual data.
Previously, a single contact record with an unreadable stored date caused the entire activity log page to fail for that account. Rows with an unreadable date now display the raw stored value, and all other rows are unaffected.
When you ask Active Intelligence to check a contact threshold and take action only if it's met, it evaluates the condition and reports the outcome without surfacing unrelated information. Previously, it would sometimes mention email notification capabilities even when the threshold wasn't met and no notification was ever needed.
This is an addition only — existing tag fields are unchanged.
Known limits: Confirm and subscribe links aren't yet in the tag registry. Social share icon variants that substitute a URL in plain-text parts can't yet express both types in a single tag.
Images in Active Intelligence-generated campaigns were being cropped in ways that cut off the main subject — a portrait product shot in a wide hero slot, for example, would lose most of the subject.
Images are sized to their slots with the subject in mind. When a slot's shape is close to the image's natural proportions, the image crops to fill as before. When the shapes are further apart, the image keeps its own proportions rather than being forced into the slot. Images are never enlarged beyond their natural size, and resolution scales back automatically when enlarging would introduce visible artifacts.
Brand kit images are also matched to slots by closest aspect ratio, so the image most likely to fit well is placed first — the panorama goes in the hero, the portrait in the tall block.
When you asked Active Intelligence to build an automation referencing an existing campaign by name — without selecting it as a chip — the automation steps used to become uneditable, and the automation builder would fail to load them.
Active Intelligence now looks up campaigns by name before building the automation. Exact matches are resolved to the correct campaign automatically. If a name can't be matched, Active Intelligence asks you to clarify before proceeding. A safety net also ensures a campaign name can never be saved in place of a campaign ID, even if one slips through.
When you ask Active Intelligence about campaign performance, unsubscribe rate is now part of the data it can report on. It was previously missing from campaign performance responses, so any question touching unsubscribe rate would come back incomplete.
The account detail page has a tighter, more consistent layout across its cards and the email composer.
Card headers: The Contacts card header buttons are the same size as those on the Deals card. The Deals card filter dropdown is better aligned with deal content. The Recent Activity header matches the style of other card headers. The Deals loading state uses a centered spinner.
Email composer: The recipient area runs edge to edge. The subject line is a full-width input with a cleaner, more compact appearance. Action buttons — tracking, saved responses, attach file, personalize, automate — appear in the toolbar alongside formatting controls. Cancel and Send buttons sit below the editor in the composer body.
The "Last Contacted" timestamp on a deal page updates correctly after you send a 1:1 email, whether you send via SMTP or a connected inbox. Previously, the timestamp could stay stale after sending, making your deal activity look out of date.
Brand kit logos and images you've uploaded display correctly in campaign previews in the Active Intelligence editor. Previously, images hosted on your account's own domain showed as broken images in the preview, even though they sent correctly. Shared stock images and template assets were already displaying fine. Previews now reflect your brand kit accurately.
When saving user settings fails, the error toast shows the specific reason from the API — for example, that a CRM seat can't be removed from a user who still has open deals — instead of a generic message. Error toasts are also styled distinctly so they're easy to spot.
When you upload a file that Active Intelligence can't parse, the error message appears in your account language. Previously it appeared in English only.
Two pagination issues on the segments list are resolved: changing the page-size dropdown takes effect immediately, and typing a page number outside the valid range lands you on the nearest valid page instead of showing an empty state.
When you ask Active Intelligence about previewing a scheduled task, it correctly identifies the "Run now to preview" button on the scheduled task create/edit page. Previously, Active Intelligence incorrectly told you that scheduled tasks couldn't be previewed at all.
The send panel in the Active Intelligence canvas puts subject and preheader at the top, with three controls below:
- Recipients — choose a list or segment, with a live contact count.
- Send — send immediately, schedule for a specific time, or use predictive send in your account time zone.
- More settings — sender details and verification, tracking, physical address, and campaign archive.
Split campaigns add a variant strip and split-test controls, with settings following the selected variant.
Deeper flows — managing tracked links, adding an address, creating a segment, translations checklist — open as sub-screens with a back arrow rather than stacking modals. Test & Preview walks linearly through test send, spam check, desktop preview, and email-client previews. The send gate checks all the same conditions as the classic send page and names each unmet one clearly.
This feature is off by default. When it's not enabled for your account, the canvas works exactly as before.
The "Ideas to try" prompts in the reporting widget's Customize panel, and the default prompts shown to new users, have been replaced with ones the widget can fulfill.
Previously, several suggestions — including "Unengaged contacts," "Revenue by campaign," and "Upcoming send schedule" — caused the widget to decline the request and show nothing.
The new prompts are: Open rate by campaign, Contacts by status, Contacts per list, Click rate trend, and Campaign performance. Default prompts for new users have also been updated. "Deals by stage" was already working and stays as-is.
The updated prompts appear automatically in the Customize panel.
Dragging a field to a new position on the Settings > Fields page saves all position changes at once instead of one at a time. For large field groups, this eliminates the multi-second delay that previously locked the row while each save completed in sequence.
When you open Automations for the first time, Active Intelligence generates three personalized automation blueprint cards tailored to your industry, goals, and brand kit. Each blueprint includes a title, description, trigger, actions, and a ready-to-use prompt you can send straight to Active Intelligence to build the automation.
The three suggestions are designed to cover different lifecycle stages, so you get meaningfully distinct starting points rather than variations on the same idea.
The Expert Migration banner is shown only to accounts with 10 or fewer contacts. It had been appearing for any new account that wasn't a reseller, regardless of contact count.
The timestamp comes from the server and is updated every time the widget generates, refreshes, or seeds data.
If your account is on an older backend version that doesn't yet provide this timestamp, the label is hidden and staleness falls back to the previous behavior until the backend update is in place.
Group list access settings save correctly.
Two issues in the email composer are resolved. Accounts that were rate-limited and required a CAPTCHA challenge see the challenge appear correctly, and the Send button unblocks as expected. Accounts with more than 200 saved responses see all categories populated; previously, categories beyond the first 200 rows appeared empty.
When you delete a user, the modal reassigns everything they own — lists, accounts, default account owner, and deals — before completing the delete. If any of those steps fail, you see a descriptive error toast naming exactly which step didn't complete, and the modal stays open so you can retry. The user isn't deleted if any handover fails, so nothing is left without an owner.
Deal reassignment also reaches the API correctly.
When saving a field group before its group type has finished loading, the modal stays open and shows an error so you can try again, rather than silently discarding your work.
Switching between the Accounts, Contacts, and Deals tabs in custom field settings no longer blanks the header and tab strip while the next tab loads. The header and tab strip stay in place; only the tab content changes.
Additional visual fixes: the header stays on the light theme correctly, a continuous background fills the area between the header and filter bar, table rows no longer scroll through a gap between the two sticky elements, and spacing in the Contacts tab header is consistent with Accounts and Deals.
Prompt card titles in the contacts first-run experience are visible. They were previously rendering as white text on a white card, making them impossible to read.
When viewing a contact with many tags, tag badges in the contact detail panel render all at once after all name lookups have settled, rather than appearing one at a time and causing the row to repaint repeatedly.
The collapsed view shows one page of tags with a "Show N more" button rather than fetching every tag on open. Expanding a contact with many tags issues one lookup per remaining visible tag ID.
SMS lists appear in the Lists widget on the contact record alongside email lists. Previously, SMS list memberships were missing because the list lookup was returning email lists only.
Note excerpts on the contact record also display correctly — characters such as & appear as written rather than as escaped code.
Previously, these events had no labels at all, so there was no way to tell from the activity feed that an SMS double opt-in message had been sent. The labels appear automatically on any contact activity feed.
The send-configuration popovers — Recipients, Translations, Add address, More settings, and Manage links — hold a fixed width as you move between them. More settings also locks its height while the main panel is visible, so the popover no longer jumps in size mid-flow.
On narrower screens, layouts adjust automatically: Translations uses a single column at every width, address fields stack when space is tight, and tracked-link cards collapse to one per row with URLs wrapping in full rather than truncating.
Two improvements make campaign performance reports faster and more reliable:
Faster report loading: The campaigns performance page previously fired repeated requests with a climbing offset for minutes before the embedded analytics view could start loading. The page resolves whether an account has any campaigns from a single request, so the analytics view begins loading immediately.
Campaign name search works correctly: Typing a campaign name in the dropdown on the campaigns performance and predictive content reports sends a single filtered request after a short pause, instead of paginating through all campaigns. This prevents connection exhaustion that was blocking analytics from loading on data-heavy accounts. Your selected campaign and the "All" option stay visible in the list even when a search term would otherwise exclude them.
These improvements apply when the updated reports experience is enabled for your account.
The Agent Availability report is accessible directly from the WhatsApp Reports section in the side navigation, between "By Agent" and "By Tag," so permitted users can reach it without typing a URL.
Active Intelligence fetches your recent sends, removes duplicates and placeholder content, builds a structured voice profile, and caches it for a week. That profile is then applied when composing new campaigns.
What you need to do: This capability is currently off by default and requires a feature flag to be enabled for your account. Until then, campaign generation behavior is unchanged.
Previously, Active Intelligence would attempt multiple planning passes, retrieve records it didn't need, and eventually return a generic error message that revealed nothing useful.
Repeated requests for the same restricted action within a session are answered from memory, with no additional processing.
Known limit: On a first request, if Active Intelligence substitutes a permitted read for a restricted write without naming the restriction, it may still complete that read and return a "no changes made" result. A prompt rule discourages this substitution, and the same-session guard handles any retry.
When Active Intelligence borrows a design from one of your existing campaigns, the resulting email holds its shape even if your new copy is shorter than the original. Previously, shorter copy left empty frames or collapsed sections where content ran out.
Here's what you get:
- Sections that copy can't fill are kept whole rather than collapsed.
- Your sender logo and unsubscribe footer are preserved even when those areas have no new copy to fill them.
- Copy is placed in reading order, matched to the right role in the layout.
- If there's more copy than sections, it repeats a body section rather than spilling into the footer.
- If a borrowed design would keep fewer than a quarter of its original content sections, Active Intelligence declines the borrow and offers a copy-only alternative instead.
Four additional fixes are also included:
- Campaigns with a navigation bar can be used as a design source.
- Data tables carry all their rows into a borrowed design correctly.
- A section containing a content editor that can't render no longer reports success and then errors.
- Revision history records the source campaign's ID correctly, not the ID of the campaign being written.
These improvements apply automatically the next time Active Intelligence borrows a design.
Active Intelligence requests your permission before taking actions in your account, so you stay in control of what it does on your behalf.
When a permission is needed, a card appears inline in the chat with three choices:
- Skip — declines the action. A declined request won't resurface as pending, and Active Intelligence receives a clear signal to stop.
- Allow — permits the action this time.
- Always allow — saves your decision so future requests of the same kind proceed without asking again.
The chat composer pauses while the card is unanswered. Once you respond, the card collapses to a small chip that persists if you reload the page. Your "Always allow" decisions are enforced on the server, so they hold across sessions.
Known limit: In a conversation where you decline by typing a response rather than selecting Skip, the refusal may not be recorded. A follow-up fix is in progress.
This feature is being rolled out gradually and may not be available in your account yet.
Competitive Intelligence was pulling in sources about companies that happened to share a word or substring with the competitor you asked about, then flagging them as noise in the response rather than dropping them before generating the answer.
Two confirmed patterns drove this: searching for a competitor surfaced content about an entirely different company in a different industry that shared one word in its name, and searching for another competitor surfaced content about a different company whose name was a substring of the competitor's domain.
The relevance check understands that a coincidental name overlap is not a match. Sources that reach the answer only through a shared or overlapping name are dropped before the response is generated, so they don't appear in citations or in the body of the answer.
When you attached a campaign template and asked Campaign Agent to create a campaign like it, the agent rejected the template and ignored it, responding that the design was from an older editor and couldn't be reused.
The agent correctly recognizes an attached template and uses it as the starting point for your new campaign. A real campaign that matches by name still takes priority over the attached template; ambiguous name matches still ask for clarification rather than substituting silently.
When adding a contact fails, the account record shows the actual error message from the server instead of a generic fallback. When you successfully associate a contact with an account, a success banner confirms the action.
Opening the date picker while using the add-contacts drawer keeps the drawer open so you can continue without interruption.
Clicking a web copy link in the preview of an already-sent campaign opens the live link. The explainer message still appears correctly for unsent test previews.
On the deal sales performance report, the Start and End date inputs for a custom date range align with the filter pills on the same toolbar row. The layout is consistent whether you're setting a range or reading the active filters at a glance.
The SMS opt-in walkthrough used to advance to the next step the moment you clicked Continue, before your opt-in status was actually confirmed. It now waits for real confirmation before moving forward.
A waiting screen appears while confirmation is in progress, and the tour advances automatically once opt-in lands.
The walkthrough shows one or two screens depending on your account's configuration. The step counter is hidden when there's only one screen.
During the SMS trial demo guided tour, the content editor hides options that aren't available in trial — personalization tags, the image attachment button, and sender warning banners. You see only what you can actually use. Accounts outside the trial demo are unaffected.
The SMS tour experience has two improvements that make it easier to follow and less likely to lose your work.
The tour dims and highlights one control at a time instead of blacking out the whole panel. Each step shows a spotlight on the relevant control, with the rest of the interface dimmed, so it's clear exactly what you're working with at each stage.
When you leave the builder to return to the tour, your draft saves automatically instead of being discarded. The return banner saves before navigating back and disables its button while saving is in progress. Scheduled sends and send-now still go to the SMS index as before.
The SMS Performance nav item is highlighted correctly when viewing any report URL, and the nav item label is consistent with the page heading.
Six report pages — automations performance, campaigns performance, conversion attribution, conversion performance, contacts form submission, and contacts tag trends — were showing a native interface strip that should have been hidden. All six display consistently with the rest of the reporting experience.
The custom reports page is intentionally left unmasked, matching its original behavior.
Specific improvements across embedded reports:
- Dropdown labels on automation reports use the standard inline style.
- Toolbars are right-aligned across automation, conversion, deals, sales, and revenue report pages.
- The deals task overview toolbar is no longer obscured by the loading overlay.
- Dropdown menus in the deal forecast report appear above other content correctly.
- Forced uppercase text is removed from automation toolbar dropdowns.
- Padding and border-radius values are consistent across affected report pages.
When creating a contact directly inside the Add Deal modal, the phone number field previously accepted any text with no format checking and no country prefix.
Phone entry in this form uses the same validated widget as the standalone Add Contact form: a country-prefix selector, region-aware format validation, and an inline error message for invalid numbers that blocks submission. Email validation on blur is also included, covering invalid format and missing email when your account requires one. The same "Remove validation" escape hatch available in the contacts form is included here too.
Known limit: The default country is fixed to US, matching the standalone Add Contact form. Aligning this with your account's location setting is planned as a follow-up.
The full option row — including the input and remove button — moves with the cursor as a ghost during a drag, and a highlight marks the drop position between rows. Keyboard reordering via the space bar and arrow keys is also available.
Saving a dropdown custom field whose options contain duplicate labels is now blocked with a validation error on accounts and deals. This matches the behavior already in place for contact fields.
The rule applies only on save. Fields that already have duplicate options stored load and edit normally — you can resolve any duplicate by editing the option row directly.
A new Permissions section on the Active Intelligence customization page lets you set rules for what Active Intelligence is allowed to do — by resource type and by operation. For each resource, you can choose Allow, Ask, or Deny for Create and Update/Delete independently.
Rules save immediately when you change a control, and each change updates only that resource-operation pair. Resources with no explicit rule inherit from the wildcard setting. Create-only resources (such as contact lists and campaign creation) show a "Not available" placeholder in the Update/Delete column. Bulk copy actions always ask before proceeding, and a rule covers the resource itself, not nested records.
This is behind a feature flag. If it hasn't been enabled for your account, your Active Intelligence experience is unchanged.
The pagination bar was appearing beside the table rather than below it, pushing the rows-per-page control and other options to the right side of the page. The table fills the full page width and the pagination bar sits on its own row underneath.
Campaigns awaiting review show their audience size and send date directly in the list row, the same information you see for scheduled campaigns. Clicking "View details" opens a progress drawer that explains the campaign is under review, and shows the audience count, send window, and a first step labeled "Pending review."
Schedule-editing and the "Contact support" handoff are available for stopped campaigns. Both are hidden for campaigns that are scheduled or pending review, where they don't apply.
Known limit: One line of copy may display as a raw translation key until a companion update lands.
When you're working with Campaign Agent, you can switch your email's layout or apply your account's brand — colors, typefaces, and logo — without losing the copy you've already written.
Layout picker. Choose from 16 named arrangements: Photo Hero, Hero with Two-Up, Two Product Cards, Divided Two-Up, Flash Sale Two-Up, Three Portraits, Two Figures, Four Figures, Letter, Minimal Signup, Editorial Feature, Banded, Mixed Grid, Long-Form Newsletter, Lookbook, and Catalog Grid. Switching layouts moves your content without regenerating your copy — the agent tells you what moved and what had nowhere to go. Re-picking the layout you're already using is refused rather than silently creating a new version.
Brand application. Applying your brand moves your account's palette, typefaces, and logo. The agent tells you when the outgoing logo can't be identified. Rebranding with no actual change is refused.
Two related fixes also shipped: - When you pick an existing template as your starting point, your sender identity — tone of voice, logo, sender name, and gallery images — carries through correctly. - When you ask Campaign Agent to swap your brand, your logo moves as expected. Previously, a logo-only swap was refused with an error, and a full brand swap moved palette and typefaces but left the old logo in place.
Approved copy and a borrowed design can travel together. Previously, the engine refused requests that carried both approved copy and a source design. A request carrying both resolves to a borrowed start — your words are carried into the borrowed shape without any regeneration cost.
Caveats: Gated by the existing campaign generation rollout flag. Browsing the layout picker costs nothing; billing fires only on moves that land. The agent replies in the language you typed, not the language the email outputs.
The preview screen was timing out before generation had finished, so you'd see an error even when everything was working. The preview waits long enough for generation to complete before reporting a problem.
The card surfaces everything you need to review before a consequential action runs:
- Step title for each proposed action
- Color-coded chip showing whether the step is read-only, creates records, or changes or deletes them
- Record count formatted for your locale
- First 8 affected record IDs
- Preflight warnings and the stated assumptions behind the plan
Plans that only read or create records show no card at all — the card appears only when something destructive is proposed.
Approve and Cancel buttons are not part of this release. You confirm by replying in chat.
Active Intelligence prompt headers on overview pages match the styling used on the contacts overview.
Active Intelligence's email generation draws on your actual sent-campaign writing when composing new emails. Previously, the engine had only a tone descriptor label to work from. Your past campaigns are fed into the composition as a voice specimen, so openings, sign-offs, register, and urgency reflect how you actually write.
Caveat: This capability is not yet available on general accounts. One known issue — the engine occasionally reuses the specimen's product subject matter despite an instruction not to — is being addressed before the feature is enabled broadly.
Other routes retain sidecar persistence and fullscreen flows are intact.
Two display issues on the account detail page are resolved.
- Contact field widths: Job Title, Phone Number, and Email Address fields in the row-edit popover display full-width with labels above the input, matching the intended layout.
- Delete confirmation pluralization: The delete-account confirmation message correctly uses singular or plural wording based on the number of contacts associated with the account.
These fixes apply when the updated account detail page is enabled for your account.
The updated label makes the action clearer: it's an offer to apply your brand to the campaign you're looking at, not a separate setup task to complete first. For accounts with no brand kit, it opens the same brand-import experience as before and runs the repaint automatically once the import succeeds.
This change applies to this prompt only; other places that used the previous label are unchanged.
Labels on the Your Plan page — including questions about contact count, additional email sends, additional users, and user management — now show the correct text instead of placeholder copy.
WhatsApp campaign generation produces far fewer validation errors, which means fewer retries, lower latency, and more campaigns that complete successfully.
Previously, a single malformed step could produce dozens of misleading errors — one call returned 184 — causing the agent to retry repeatedly. That drove response times to a median of 48 seconds and a 90th percentile of 118 seconds, at roughly $0.72 per generation attempt. 27 of 60 generation attempts were producing no flow at all.
The first error in a validation failure now correctly identifies the real problem, so the agent corrects it directly instead of retrying from scratch.
A four-step opt-in walkthrough is available to admins to explore Wavelength capabilities. The tour covers automations monitoring, brand kit and competitor scanning, and two scripted chat sessions — one that creates a tag and one that walks through creating a scheduled task.
After the numbered steps, an optional overlay walks through the task creation form field by field. "I've got it" skips it; completing the task ends it. "Not now" dismisses the tour for the session; completing it is remembered permanently.
When Campaign Agent generates a WhatsApp template draft, the result now includes the full component data — buttons, headers, body, and footer — needed to render a rich visual preview in the chat, matching what you see when you validate a template.
Known limit: The visual preview requires a separate frontend update that hasn't shipped yet. Until it does, the data is present but the preview won't render differently than before.
Toggling a locked message variable to unlocked from the edit form now saves correctly. Previously, saving an unlock from the edit form never took effect — the save would fail before the unlock could run, leaving the variable stuck in its locked state.
Admin users can now unlock a locked message variable directly through the edit interface by setting it to unlocked. Non-admin users still can't unlock variables this way, and locked variables where unlocking isn't explicitly requested remain protected.
Three places in the product were displaying the literal text "%1$s" instead of the intended value — the form button label validation message, the list exclusion delete confirmation, and the email subscription delete confirmation. Each now shows the correct text.
The "View" and "Complete" buttons in Task Manager were invisible when the app used its default dark theme, appearing absent even though they were functional. Both buttons are now visible regardless of the shell theme.
Previously, the counter left the signed-in user out of its total while still showing their row as checked — a 5-user account read "1 of 4" and a solo account read "0 of 0." The counter includes the signed-in user in both halves of the count. This is a display-only change and does not affect which tasks are assigned or synced.
You can now edit tags through a combobox control, and tag labels display correctly in all supported languages.
Two sorting issues in forms and tags are resolved.
Forms: Clicking a column header a third time to remove a sort previously left the data sorted while the header showed an unsorted state. The display and the underlying data now stay in sync — clicking a third time clears the sort completely.
Tags: Shift-clicking a second column to add a multi-column sort previously applied the sort only to the first column. Both columns are now sorted as expected when you use shift-click to add a second sort.
The resend option for split campaigns is now hidden in the campaign list actions dropdown, the preview modal, the calendar event drawer, and the single campaign report page. Attempting to resend a split campaign via the API now returns an error.
Resending a split campaign after a winner is decided doesn't work correctly — the winner content and targeting aren't preserved — so the option has been removed rather than left available. Standard campaigns are unaffected. Error messages shown by the resend guard now display correctly in all languages.
In account records with two or more contacts that have email addresses, the "To:" menu in the 1:1 email drawer opens and stays open so you can select a different recipient. Previously, clicking the chevron did nothing useful — the menu opened and immediately closed, locking the recipient to the default contact.
The "current day of the week" segment condition has a new "is one of" operator. When selected, the day picker becomes a multi-select, letting you choose any combination of individual days in a single condition.
Selections are stored in the same format already used by the Weekdays and Weekends grouping options, so existing segments are unaffected.
Known trade-off: Selecting Monday through Friday individually stores the same value as the Weekdays grouping. A condition saved as "is one of Mon–Fri" will reload as "is Weekdays", and switching the operator away from "is one of" with all five weekdays selected will collapse to the Weekdays grouping. The same applies to Saturday + Sunday vs. Weekends. The contacts matched are identical either way — this is a display difference, not a correctness one.
The Segment Library inside Segment Builder loads your first 20 segments immediately and fetches more as you scroll, instead of loading everything at once. On accounts with hundreds of saved segments, this means the library opens faster and stays responsive.
Segments are sorted by most recently used. A loading indicator appears as the next page fetches; if a page fails to load, an error message appears with a retry option and already-loaded segments stay visible. Searching re-fetches from the beginning with your search term applied.
Known limit: The most-recently-used sort order can shift as you scroll — a segment you interact with may reappear further down the list. This will be addressed separately.
The SMS Demo Tour's Trial Opt-In confirmation step now responds in under a second instead of making you wait 10 seconds for a result.
During the SMS product tour, you can send a real SMS to your own phone. After you text the trial keyword to the opt-in number, a Send test button activates and delivers a pre-built campaign to that number — so you see an actual message arrive while you're exploring. Once it sends, an Add SMS button appears so you can move straight to adding SMS to your plan.
A one-send limit per browser session means the test won't fire twice by accident. The button stays locked until your opt-in is confirmed.
The SMS opt-in flow now displays the correct translated message when an already-subscribed contact attempts to subscribe again. The contact's membership isn't changed, and no subscribe event fires.
The goal success bar color in reports previously differed from the application's standard palette. It renders in mint green, matching the color used elsewhere in the app.
In the reports showcase view, filter pills applied by clicking a tag, list, or completion-time entry now include a dismiss button. Clicking it clears only that filter while leaving the rest in place.
The "Resend Opt-in" action is now available in the contact row menu within reports, completing the full set of five row actions: Email, Add a deal, Add a task, Add a note, and Resend Opt-in.
The action appears for a contact when they have at least one unconfirmed list membership and belong to at least one email list. It's disabled when the contact has no email address.
This is currently available in test environments only and is being rolled out gradually.
Eleven report pages that were missing their parent breadcrumb segment now display it correctly. For example, the Predictive Content report shows "Campaign Reports / Predictive Content" rather than just "Predictive Content," matching the navigation that was already present in the previous version of the app.
This applies to: form submission, tag trends, all automations, automations overview, automations performance, deals overview, deal task metrics, deal task overview, deal sales performance, predictive content, and revenue performance reports.
This change is active when the updated reports experience is enabled for your account.
A red alert banner appears with the message "Action required: reconnect your connectors," explaining that connectors set up by teammates no longer work for your account. A red dot on the connectors button gives you an at-a-glance signal that something needs attention.
Follow the banner prompt to reconnect the apps you use.
Previously, a newly created SMS draft was invisible after creation — the SMS index showed a blank state even though the draft existed. Drafts you create now appear immediately in the list.
What's new
Each contact row in the automation contacts list has an expanded set of actions. A dropdown arrow next to "View Run(s)" reveals two options:
- End Current Run(s) — stops all active runs for that contact immediately.
- Manage Duplicates — opens a confirmation step where you choose how to reconcile the duplicate runs before anything is applied.
How Manage Duplicates works
When you select Manage Duplicates, a confirmation screen asks you to pick one of three options:
- Keep newest — keeps the most recently started run and ends the rest.
- Keep first — keeps the original run and ends any that started after it.
- End all — stops every active run for that contact.
Your choice is confirmed before any action is taken, so there's no risk of ending the wrong run by accident.
How to use it
Open any automation, go to the contacts list, and look for the dropdown arrow next to "View Run(s)" on any contact row.
All three pages now show a loading indicator during page changes, sorting, and filtering. Custom Email Headers also has a retry button when the page fails to load. List Exclusions now shows a prompt to create a list when your account has none, rather than a blank table.
The Integrations page shows expiring-soon alerts with 7 days' lead time again, giving you enough time to renew before a credential lapses. The alert also displays the service name in bold as intended, rather than showing literal HTML tags.
Known limits: The integration detail page has the same literal-tag rendering issue and is still reachable today. That fix is separate from this change.
Active Intelligence's industry intelligence tool searches the past month by default instead of the past week.
Industry trend, seasonality, and regulatory queries often have no fresh coverage within 7 days, especially for niche verticals or non-US markets. Previously, 21% of industry intelligence tool calls — 7,315 of 34,489 over 30 days — were returning an empty "No recent industry signals were found" result. Well-formed queries for topics like German dietary supplement e-commerce autumn trends and Dutch corporate wellness burnout trends were simply finding nothing in a 7-day window.
In the Forms list, the On-Submit Action column tooltips now display inline as intended, so rows are the right height and the list is easier to scan.
If your account had no SMS credits yet, you can now complete your first SMS credit purchase without hitting a dead end. Clicking Continue in the Add-ons billing step now builds a complete order and takes you through to checkout.
Five navigation controls in the file manager's preview modal — close preview, previous, next, hide thumbnails, and show thumbnails — were labeled in English only, making them difficult to use for screen-reader users in other locales. All five are now translated across supported languages.
The sidebar's "Checkout" button is replaced by a "Complete checkout" button that finalizes the purchase in place. The same auto-renewal disclosure and Terms of Service acceptance you'd see in the standard checkout flow appear alongside the button. This shortcut is available only when your account already has a payment method on file.
The header in the email editor has been redesigned. You can rename your campaign directly from the breadcrumb at the top of the editor without navigating away.
Previously, the header showed a plain back button and a static title. The updated header replaces these with editable breadcrumbs: the campaign name is editable in place, and a campaign-type breadcrumb links back to the campaign type selection page. Toolbar actions (undo, redo, version history, code editor, preview, test email, settings, and campaign analyzer) are icon buttons.
Two display issues were also resolved: the Campaigns breadcrumb displays correctly in all languages, and renaming a campaign then navigating away and back shows the updated name rather than the previous one.
The updated delete-list modal gives you a clear choice for contacts who exist only on the list you're removing — keep them (with their list relationship dropped) or delete them. The modal also spells out everything that will be affected: campaigns, preference centers and forms, reports and segments, and subscription history.
Note: This updated modal is behind a feature flag. If it isn't on for your account yet, you'll see the existing modal.
In the campaigns list, the sending chip turns yellow and reads "Delayed." In the send progress drawer, a caution alert appears with a direct link to contact support, the delivery bar turns yellow, and the active step shows a warning icon labeled "Delayed."
The send progress drawer also displays a "Waiting for approval" step when a campaign is held in review before it's allowed to send, giving you a clear status instead of a blank or ambiguous state.
Campaigns that have finished, stopped, or paused are unaffected and keep their own status labels.
Six report pages — automations performance, custom field overview, deal forecast, deal task metrics, deal task overview, and sales performance — had date-field pickers that had drifted from the correct visual style. All six match the standard design: 8px border radius, correct border color, 14px text, and 38px minimum height.
The sales performance page's distinct layout — visible label, calendar icon, and different popover placement — is preserved.
Previously, clicking these buttons gave no visual feedback while the request was processing, leaving you unsure whether your action had gone through.
Each step of the database sync wizard now gates the Next step / Save button on its own required inputs:
- Connection: sync name, source user, source host, and a target list
- Tables: a table selected, or a custom query entered
- Fields: every required ActiveCampaign field mapped
- Rules: no required fields, so the button is never gated here
Content that's filled in but wrong — such as localhost as the host, a custom query that isn't a SELECT, or a duplicate field mapping — still requires a click to see the specific error. Disabling the button for those cases would hide the reason rather than explaining it, so those validations still surface on submit.
Several visible improvements to the custom fields settings pages across contacts, accounts, and deals:
- Page layout: The header and tab band run edge to edge, and the page surface fills the full height of the scroll container.
- Text-area field editor: Choosing "Text area" as the field type in the Add Field modal on accounts or deals, or editing an existing text-area field on contacts, previously caused the page to stop responding. This is fixed.
- In-modal dropdowns: Every dropdown inside a field-settings modal opens in front of the dialog.
- Partial reorder feedback: When a field reorder only partially succeeds, a toast notification appears instead of a browser alert dialog.
- Option label parity: When you rename a custom field option, the saved label matches what you typed.
- Row actions and personalization tags: Row action buttons are consistent across all three tabs. Personalization tags are truncated to one line with the full tag shown in a Tool Tip.
- Loading states: All three tabs render the page heading and tab band above the loading indicator, so the page structure is visible immediately.
In Settings → Users & Groups, the success confirmation now displays correctly after a bulk delete. The Delete button in the toolbar also disappears once deletion succeeds, and stays visible if the delete fails so you can retry.
When you add an SMS action from a connected third-party app in the Automations builder, the action now shows that app's own label — for example, "Easify SMS - Send SMS" — instead of the generic "Send an SMS."
You can tell at a glance which connected app each action belongs to. Native SMS actions continue to show "Send an SMS" as before.
This affected five related scenarios and is now resolved across all of them. No changes needed on your part.
The pagination bar on the campaigns list page was appearing beside the table instead of below it, pushing the rows-per-page dropdown and other controls to the right side of the page. The table fills the full page width and the paginator sits on its own row underneath.
- The incomplete badge reads "Incomplete" — matching the style of Draft, Scheduled, Sending, Sent, Paused, and Stopped.
- The incomplete sub-label reads "Some emails weren't delivered" — a complete phrase, like every other sub-label.
- The Tool Tip for legacy sends reads "This send isn't eligible for detailed sending progress" — shorter and consistent with the contraction style used elsewhere.
Opening the progress drawer on a scheduled or stopped campaign gives you meaningful detail about where that campaign stands and what to do next.
Scheduled campaigns: The drawer highlights the Scheduled step, shows the recipient count and send window, and — if you have permission to edit the campaign — offers an Edit schedule button.
Stopped campaigns: Stopped campaigns are clickable. The drawer explains why the campaign stopped — a setup problem before send, a sending limit, a delivery failure, or a partial delivery — and offers matching advice. The stage is described in plain language rather than repeating the status chip.
Audience size: Both scheduled and stopped campaigns show audience size (matching the count in the campaign builder) next to the chip in the table. Stopped campaigns show audience size; the delivered number shows as — until a send completes.
View report: A View report button appears when a report exists. It's hidden if nothing was sent, and only shown to users who have permission to view reports.
Automation emails created by Active Intelligence were sometimes generating call-to-action buttons whose links pointed at a personalization tag that resolves to plain text — like an account URL field — rather than an actual web address. Clicking those buttons went nowhere useful.
Active Intelligence now correctly identifies which personalization tags are valid link destinations and which are text-only values. When no link-destination tag is available, it writes the call to action as plain text instead of a broken button. This applies across all paths Active Intelligence uses to generate email content.
No action is required — emails generated going forward will have correct links.
Clicking into a campaign in the updated campaigns experience navigated to a literal placeholder URL instead of the actual campaign page, landing on the default dashboard. Campaigns open to the correct editing page.
Users in the non-condensed campaigns flow had the same issue: visiting a campaign URL navigated to a literal :id placeholder instead of the actual campaign. Both affected redirects now substitute the real campaign ID correctly.
You can assign multiple labels to a campaign approval policy in Partner Hub, instead of being limited to one. The label selector has changed from a single-choice dropdown to a checkbox list, and all selected labels are saved together. The "notify on send" option has been removed — it wasn't part of how approval policies actually work.
Go to Partner Hub approval settings to update any existing policies that should apply to more than one label.
The recipients card in the campaign send-progress drawer previously showed a bare percentage figure beneath the delivered/total count, with no label. It now reads "{percent}% delivered" — for example, "64% delivered" — matching the design. The percentage is shown as a whole number, clamped to 100.
When Active Intelligence can't work from a campaign's saved design, it now tells you the specific reason so you know what to do next.
Two related issues are also resolved. If you asked again after a refused edit, the agent was silently rebuilding the email without telling you. And if the refusal was because the design was ordinary saved markup, the agent was incorrectly telling you it could only edit emails it had built itself — that message now accurately describes what happened and offers two paths forward.
Known limit: If a refused edit has nothing to substitute, the explanation isn't carried forward to your conversation.
If you haven't set up a Brand Kit yet, Active Intelligence offers to build one from your website right inside the campaign creation flow. Accept the offer and a kit is created from your site before the first email generates, so your very first campaign comes out on-brand.
The offer appears in the campaign intake form or as a standalone step, depending on your account setup. Either way, the generated email picks up your brand.
- This feature is rolling out gradually and isn't available to all accounts yet.
- Resold accounts are excluded.
- If your website can't be read, Active Intelligence continues and generates an unbranded campaign rather than stopping.
If the offer appears, you can accept or decline it.
On accounts with CRM seat entitlements, the owner and assignee pickers across Deals — including the list view, the Deals CRM pipeline view, the add-deal modal, the task modal's Assigned To field, the bulk-edit Deal Owner picker, and the contact-deal Deal Owner picker — show only users who hold a CRM seat. Search works normally within the filtered list.
If the entitlement is missing, still loading, or returns an error, the pickers fall back to showing all users, so no one is ever hidden due to a configuration issue. Deep-linked owner and assignee names continue to resolve correctly.
Accounts without CRM seat entitlements see no change.
Brand monitoring insight cards were showing internal technical terms — words like "snapshot," "scrape," and "live sync" — in their titles and body text. That made live content look stale or confusing.
Both phrases are removed from every customer-facing string in the brand monitoring tool: card titles, body copy, the consent note, and the tool description. "Live sync" is also added to the enforced banned-vocabulary rule in the insight prompt, so it stays out going forward.
The language in your insight cards updates automatically.
Brand monitoring insights sometimes cut off mid-sentence when they hit the output limit, delivering a draft that ended abruptly. The insight is trimmed back to the last complete sentence before the summary and title are generated, so what you see is always coherent and ready to use.
This applies to brand monitoring insights. Other insight types are unaffected.
The automations overview page had a layout shift while the skeleton loading state was displayed. The skeleton holds its position correctly so the page stays stable as content loads.
The automations folder view is now fully translated for all supported locales. If you use ActiveCampaign in a language other than English, the folder view now displays in your language.
Triggers that include subscribe, unsubscribe, form submit, link click, and similar actions now render correctly on the automation import screen instead of disappearing silently.
When you use the "Add contact to automation" option from a contact note, the search box now searches across all your automations — not just the first 20.
Previously, the dropdown loaded only the first 20 automations and the search box filtered only those 20, making any automation beyond position 20 completely unreachable. Search now goes to the server, handles special characters in automation names correctly, and your selection is preserved across search results.
When you configure an automation to run in under one hour, a disclaimer appears at the point of configuration — before you save — giving you a clear heads-up about the short interval. The disclaimer appears alongside the existing schedule description.
Accurate completion rates in automation contact reports
If you were filtering automation reports by tags and sorting by subscriber, every contact was showing 100% completion — regardless of where they actually were in the automation. Completion rates and completion times now reflect what's actually happened for each contact.
Correct type label for SMS automation sends
On the SMS report details page, sends triggered by an automation were showing a blank "Type" field. That field now correctly reads "Automation," consistent with how campaign-type SMS sends are labeled.
Neither change requires any action on your part.
When you add a "Wait Until" date condition to an automation, the time field now defaults to 8:00 AM instead of midnight.
If you set a date without picking a specific time, your automation now triggers at a reasonable hour rather than in the middle of the night. Existing "Wait Until" steps are unaffected — this only changes the default for newly added steps.
When filtering accounts by plan tier in the agency partner dashboard, selecting tiers from both pricing models at the same time previously returned more rows than chosen. For example, picking a trial tier from one model and an enterprise tier from another also returned unselected trial and enterprise rows from each model.
The filter groups selections by pricing model and returns only the exact tiers you chose. Both the table view and CSV export use the corrected filter.
Add Task is now available as the fourth action in the contacts list row menu, alongside Add Deal.
The deep-link that other parts of the product use to open the task modal directly also now works correctly on the contact detail page — previously it was silently ignored.
Note: The URL parameter isn't cleared after the modal closes, which matches how the email and note drawer parameters already behave.
The "Add Field" modal was showing raw HTML tags — for example, <strong>email</strong> — instead of formatted text. Bold markup now renders correctly in both the visible labels and the accessible names used by screen readers.
When you add a contact manually, the phone number field accepts landlines, mobile numbers, toll-free numbers, and other valid formats.
The field uses the same validated widget as the standalone Add Contact form: a country-prefix selector, region-aware format validation, and an inline error message for invalid numbers that blocks submission. Email validation on blur is also included, covering invalid format and missing email when your account requires one. The same "Remove validation" escape hatch available in the contacts form is included here too.
Phone validation errors also clear correctly when you turn off phone validation for a contact.
Known limit: The default country is fixed to US, matching the standalone Add Contact form. Aligning this with your account's location setting is planned as a follow-up.
Active Intelligence used to respond to "what changed on your website recently" questions with today's homepage copy — even when the site hadn't changed since the last scan.
Active Intelligence now recognizes when there's no change history to report and says so directly. Questions about what your site currently says still return today's copy as before. Only "what changed" questions are affected.
Active Intelligence's industry and competitive intelligence tools were generating and publishing full insight cards even when the underlying data returned nothing useful. A name-matching issue meant the "skip on no data" logic never fired, so the tools kept producing cards that then failed quality evaluation. The fix corrects the name matching so the skip logic fires correctly, and low-quality cards are suppressed before they're ever published.
Note: This change depends on a companion update that finalizes how account context influence is recorded. Both parts need to be in place for the tooltip to behave correctly.
When you ask Active Intelligence for campaign results filtered by a list name, it now finds the correct list every time. If the name you give it could match more than one list, it asks you to clarify instead of guessing.
Previously, similarly named lists could cause Active Intelligence to return the wrong list's data with no warning — and the numbers looked legitimate, so there was no way to know they were wrong.
When Active Intelligence creates a large automation and runs out of editing passes before the automation is complete, the chat previously showed copy that implied the remaining edits had been applied — leaving you with an incomplete automation and no clear indication of what happened or what to do next.
The chat now shows an honest message: either a disclosure that editing passes are exhausted, or a prompt to keep going. You'll know exactly where things stand and what to do next.
This applies when the multi-step automation editing feature is enabled for your account. If it isn't enabled, behavior is unchanged.
Industry Intelligence scheduled insights no longer surface sources that share terminology with your business category but aren't actually about it. Previously, a story from an unrelated field could pass the relevance filter and appear in your Sources section — even when the insight text itself noted the source wasn't applicable.
The relevance filter has been updated with an explicit rule distinguishing "shared vocabulary" from "shared subject matter," along with a new example that teaches it to drop off-topic items.
Also, Active Intelligence's industry intelligence tool searches the past month by default instead of the past week. Industry trend, seasonality, and regulatory queries often have no fresh coverage within 7 days, especially for niche verticals or non-US markets. Previously, 21% of industry intelligence tool calls — 7,315 of 34,489 over 30 days — were returning an empty "No recent industry signals were found" result.
When a campaign send is taking longer than expected, you'll now see a clear Delayed indicator instead of a generic "Sending" status. In the campaigns list, the chip turns yellow and is relabeled "Delayed." In the progress drawer, a caution alert appears with a direct link to contact support, the delivery bar turns yellow, and the active step shows a warning icon.
This only appears while a campaign is actively in a scheduled, preparing, or sending phase that has run long. Completed, stopped, or paused campaigns keep their own status badges.
If a send is running late, you'll see it automatically — nothing to set up.
When you ask Active Intelligence a reporting question, each answer now includes a disclosure showing the time period covered and whether the data came from Campaign Reports or contact activity. It's collapsed by default so it stays out of your way — expand it any time to check the details.
If one question draws on both campaign and contact data, you'll see two separate disclosures in the order the data was fetched. The same information appears when you reload the conversation, not just during the live response.
The disclosure appears automatically on reporting answers.
When a campaign shows a "Delayed" status in the sending progress drawer, the Contact support button now opens Active Intelligence with the conversation already started — for example, "Can you diagnose what's going wrong with this campaign: May Newsletter - 183." You don't have to describe the problem, look up an ID, or wait in a queue. The progress drawer closes as the chat opens.
If your account doesn't have access to Active Intelligence, the button continues to open the help-center form, exactly as before. Nothing else about the delayed-send experience changes — same button, same placement, same "Delayed" chip.
When Active Intelligence encountered a temporary error — such as a throttled response, a timeout, or an internal processing issue — it previously suggested contacting support if the problem persisted. All of these conditions are retryable or self-resolving, making that suggestion misleading. The message keeps the retry instruction and drops the support escalation suggestion. Support remains reachable through the assistant's own intent routing.
Filtering accounts by country now returns results correctly, even for accounts created before November 22, 2024.
Older accounts stored the country as a translated name (for example, "Liechtenstein") while the filter was sending an ISO code (for example, "LI"), so the two never matched and the filter returned nothing. The filter now matches against both the ISO code and the country name, so legacy records resolve correctly. New accounts always store the ISO code.
Known limit: The filter matches the ISO code and the country name in your current language and in English. A country name stored in a third language may not match.
The Active Intelligence Dynamic Variable block is now available in the current email editor.
Drop the block into your email, pick a variable from the settings panel, and see a live preview on the canvas before you send. The exported email uses the standard merge tag format, so deliverability is unaffected.
The page is fully translated. English is live; all other supported languages are populated automatically.
Clicking the "To:" chip or caret in the Deals email drawer opens the recipient picker correctly. You can select any emailable contact as the recipient.
Separately, in account records with two or more contacts that have email addresses, clicking the "To:" chevron in the 1:1 email drawer also opens the recipient picker correctly, so you're no longer locked to the default contact.
The "Send an email" action is back in the Contacts card header on the account detail page, sitting beside "Add a Contact." It's available to read-only users as well — who keep "Send an email" even when "Add a Contact" isn't shown.
If the account has no contacts, an informational message appears. If the account has contacts but none have an email address, a prompt to add one appears.
Known limit: A per-row issue where the third contact row triggers an email to the first contact was identified and will be addressed in a separate update.
The row action that uses Active Intelligence to duplicate a campaign has been renamed from "Create similar" to "Duplicate with AI" in the campaigns list.
The label now says directly what the action does. Nothing about how it works has changed.
The Top Contacts widget in contact reports no longer shows an unintended border and rounded corners, so it looks consistent with the other widgets on the page.
As you scroll through the template or past-campaign picker, the next page of results loads automatically. If a fetch fails while results are already on screen, the list stays visible and an inline retry option appears. A full-page error only shows when the list is completely empty.
Known limit: There's no dedicated keyboard shortcut for paging; keyboard-only users can reach additional pages through focus scrolling. Item-count announcements to screen readers are not yet available.
Settings pages — including Referrals, SMS Quiet Hours, and Subdomain Management — no longer show a permanent vertical scrollbar when there's nothing to scroll.
Previously, Active Intelligence treated every scheduled task as recurring and asked you to choose a recurrence pattern even when you wanted a single reminder. You can now ask for a one-time future reminder — for example, "Dec 1, 9am: reminder of next year's publishing schedule" — and Active Intelligence creates a task that runs once at that time and then marks itself done.
Their contact data is still collected when they submit the form. SMS list membership is added once they opt back in by replying START. No action needed on your part.
Known limits in this release: Date-range filtering applies to metrics and snapshot totals but not to the automations list itself. Sorting is available by name only. There's no per-row report drill-down for individual automations yet. The send date column and trigger-type label column are not included in this release.
Filter toolbars across 12 report pages have been standardized:
- Dropdown labels use the standard inline style on the automations reports.
- Single-line toolbars are right-aligned across automations, conversion, custom field, deals, sales, forecast, predictive content, and revenue performance reports.
- The deals task overview toolbar is no longer obscured by the loading overlay.
- Dropdown menus in the deal forecast report appear above other content correctly; the same fix was applied to deal task metrics, sales performance, and revenue performance.
- Forced uppercase text has been removed from automations toolbar dropdowns.
- Consistent padding and border styling are applied across custom field overview, deal forecast, sales performance, deal task overview, and deal task metrics reports.
The following are corrected on goal and contact report pages:
- The Completion Status filter renders at the correct size and style.
- Key statistics display in a properly bordered strip with correct alignment.
- Showcase panels use card-style containers with scrollable bodies.
- The export bar has its background restored.
- Row-action buttons are the correct size.
- The goal-list search bar includes a search icon, a styled clear button, and a consistent toolbar band.
- The no-results state is centered with appropriate visual treatment.
Two date display issues in reports are resolved.
On the goals jump-to report and the per-automation goal list, every row was showing the same wrong timestamp. The correct date and time now appear on each row.
A separate issue was causing the date component to be dropped from certain timezone-formatted displays. That's also corrected.
Known limit: Date-only inputs still shift by one day in negative-offset timezones. This is a pre-existing behavior that hasn't changed with this release.
Previously, only Standard campaigns redirected correctly when you picked a past campaign on the layout screen. All other campaign types — split, series, responder, Classic, HTML, and Text-only — now open the designer as expected.
The dashboard includes a hero band with a connected-locations trend line and live-data and at-risk banners. KPI strips cover reach and engagement (contacts, growth trend, open and click rates, campaigns sent), portfolio health (active and at-risk locations, automations, engagement points), network configuration (tags, custom fields, team users), and deliverability (unsubscribe and bounce rates). Charts include Contact Growth and Email Engagement Trends, Location Health, Campaign Performance, Performance by State, and Team Users by Group. Leaderboards for Tag Usage and Top Performers / Needs Attention each drill through to individual account pages.
All data reflects your partner account's full client portfolio.
Known limits: Several KPI fields — campaigns sent, campaign trend, and tag, field, and permission-group rollups — are currently empty. They'll populate once a companion update completes. The hero band and all other sections are live.
Two separate fixes reduce how long pages take to load.
Every page in the application was fetching a critical startup resource twice on load — a misconfigured hint meant the browser's cache wasn't being reused. That duplicate request is eliminated. Testing showed a median improvement of around 0.7 seconds.
The campaign editor was also at its initial-load size limit. The Test Preview modal now loads only when you click "Test Preview," rather than being included upfront. A loading indicator appears while it loads.
Several visual issues on the operational reports page are corrected:
- Stat tiles now fill the row correctly, are evenly sized, and use the right colors for numbers, captions, dividers, and the rate-change indicator.
- The filter bar is in the correct order (label → trigger → search), right-aligned, with fixed dropdown width behavior and correct label placement.
- The settings gear now appears in the table header and hides correctly when there are no results.
- Showcase panels show the "no data" message when there's no data, and the heading style is corrected.
Known limit: The success-bar color is currently blue rather than the green shown in the previous version. A designer review is pending.
Cards that were hidden at account creation because the condition wasn't met yet never appeared later when the condition became true. Any missing records are now filled in automatically.
One known side effect: When you send your first campaign, up to five previously hidden cards may become visible at once, which can push cards you'd already seen further down the list. This is expected behavior.
The 'Is Non-Profit' checkbox in the SMS registration flow no longer shows a required indicator — the field is optional, and the indicator now reflects that.
Four new read-only API endpoints bring campaign report data into the v3 API:
- Campaign forwards — lists who forwarded a campaign, to whom, and how often, including forward count and last forward date. Supports pagination and filtering by split-campaign message.
- Campaign unsubscribes — lists contacts who unsubscribed from a campaign, with reason and date. Note: unsubscribes driven by automations with no associated message are excluded, consistent with existing behavior.
- Report totals by message — returns campaign report totals filtered to a specific message.
- Report totals by list — returns report totals for the most recent sent campaign on a given list.
All four endpoints use the same access controls as the existing campaign report totals endpoint and return a 404 for campaigns you can't access without disclosing campaign IDs.
GET /api/3/campaigns/{campaignId}/reports/clicks returns the tracked links in a campaign along with click counts and the contacts who clicked each one.
Parameters:
- messageid — optional; omit or set to 0 to return data for the whole campaign
- limit — up to 1,000 results
- offset — for paging through results
- includeBotClicks — true, false, 1, or 0; defaults to true
Each link in the response includes its URL, name, tracked status, unique clicks, total clicks, and a list of contacts with their email address, click count, and last click date.
If you're building reports or integrations on top of campaign performance data, you can use this endpoint directly rather than pulling data through the interface.
Known limits: The response does not include a total count. Contacts are always included in the response.
Three specific problems are fixed:
- Cards with 2026 or 2027 dates were being rejected as if those dates were impossible — accounting for 13.3% of rejections.
- Cards citing sources the reviewer couldn't fetch were being rejected as fabricated — accounting for 17.0% of rejections.
- Cards were being rejected for language differences in source titles, URLs, or quoted snippets — accounting for 8.5% of rejections.
The reviewer now focuses on the card's own content, not on source accessibility or date familiarity. Cards that report a tracked competitor was quiet during a window are now published — that's a finding, not a failure. No action needed.
If your account has list filters or list restrictions configured, the monthly Open/Read trend report was returning completely empty results. This affected 15 occurrences across 13 distinct accounts in the week of August 24–31, 2026. The report returns accurate results in all cases, including when list-based filtering is active.
Toggle a locked variable to unlocked from the edit form and save — the change now takes effect correctly. Previously, saving an unlock from the edit form never worked; the save would fail before the unlock could run, leaving the variable stuck.
Non-admin users still can't unlock variables this way, and locked variables where unlocking isn't explicitly requested remain protected.
The integrations error panel now correctly shows an empty error list for custom API integrations that have no prior connection history, instead of displaying a server error.
The illustration picker in the form builder had stopped responding to selections. Choosing an illustration now works as expected.
Drag the edge between either side pane and the transcript to resize it to your liking. Each pane's width is saved independently, so your layout persists when you come back. If a saved width can't be read, the pane falls back to its default size.
Known limit: The drag handle is pointer-only for now — keyboard resize isn't available yet, though all content remains reachable at any pane width.
Activity contains the message summary, email link, Nurture card, and ActiveCampaign card. Notes contains the note form and list. The identity block — avatar, name, handle, followers, and status — stays pinned above the tabs. Each tab scrolls independently.
Known limit: Visual marking of the Notes tab for new or unread notes isn't yet in this release.
Contact list pages within reports — goal and automation contact views — include a per-row action menu, matching the experience on the main contacts page. Each row offers three actions: Email (falls back to a plain profile view when no email address is present), Add Deal (shown when your account has deals access), and Add Note.
Known limits: Add Task and Resend Opt-in aren't included in this release. Archive Contact is also absent, consistent with existing behavior.
Previously, declining a campaign could leave behind temporary resources and a stale send reference under certain conditions — meaning the campaign might behave unexpectedly the next time you tried to send it. Both the leftover resources and the stale reference are now cleared at decline time.
Campaigns that were previously declined are not affected retroactively.
The deals spreadsheet view has been updated to match the information available in the list view.
What's new and changed: - "Deal Name" is now "Deal Title" - "Contact" is now "Primary Contact" and links directly to the contact's page - "Account" column added - "Status" column added, showing open/won/lost with the same color chips as the kanban board - Win Probability and Forecasted Close columns removed - New column order: Deal Title → Primary Contact → Account → Value → Pipeline (All Pipelines view only) → Stage → Status → Owner → Created → Last Updated
Only the content below the filter bar scrolls. Spreadsheet pagination is also pinned to the bottom of the page, so it's always in reach.
The kanban view was already unaffected and is unchanged.
The date picker trigger used across report toolbars — including deals overview, tag trends, form submission, conversion, automations overview, revenue performance, contacts filter bar, and campaign filter bar — now matches the visual style of adjacent controls, with slightly more rounded corners, a consistent border, and updated icon buttons.
When creating a custom contact field via the API, you can now include its list relations and all option values in the same request. Previously, creating a dropdown field with options and list relations required three separate calls.
The POST /api/3/fields endpoint now accepts optional relations and options arrays in the field payload. Options support a value, an optional label (defaults to the value), and an optional display order. All validation — payload shape, duplicate option values, type compatibility, and list permissions — runs before anything is written. If the payload is invalid, you get a 400 response and no partial field is created.
Existing field creation calls and response formats are unchanged.
Copy-to-clipboard actions in account management were completing silently, with no confirmation toast appearing. The toast now shows as expected after every copy action, and toast colors display correctly.
Your rows-per-page preference is saved per user and syncs across devices, with a local cache for fast restore. If you navigate to the contacts list with a ?limit= parameter in the URL, that value takes precedence over your saved setting.
Known limit: Cross-device restore hasn't been verified against a live account in all scenarios, and first-ever visits (before any preference is saved) keep the default of 20 rows.
Filtering your contacts by list and sorting by last-updated date was returning zero contacts every time. The query returning results correctly now affects roughly 11,000 searches per day that were previously coming back empty. Your contacts list sorted this way works as expected.
The contact usage meter in the navigation menu now changes color as your usage rises:
- Below 75%: standard color
- 75–99%: warning color
- 100% and above: red, with an "Over your limit by {n}." line shown directly under the bar
The tooltip also now states any overage plainly — "Used X out of Y; N over your limit." — instead of showing "0 left." This matters because campaign sending is suppressed when you're over your contact limit, and the meter is often the first place you'd notice.
No changes needed on your part — the updated meter is on for all accounts.
CSV contact imports that mapped an Account column were stalling silently at 0% when account names contained emoji or certain special characters. The import completes correctly.
Account names with characters such as ™ and curly quotes are preserved; only characters that can't be stored are stripped before the lookup.
This applies to both CSV and API import paths.
The Archive Contact action continues to work exactly as before — counts now just reflect the result immediately. No action needed.
No action needed. The change applies to all three insight types automatically.
Competitive intelligence results used to include a competitor's own product pages, pricing pages, Terms of Use, Privacy Policy, cookie notices, sitemaps, "About Us" pages, and other evergreen content — because results from a competitor's domain were automatically kept, regardless of what they said.
Every result is now judged by the same standard. A result is kept only when it reports a specific competitor action: a launch, announcement, pricing or policy change, funding event, leadership change, or press item. Standing pages and administrative content are dropped.
Results also no longer include sources about companies that happen to share a word or substring with the competitor you asked about. Sources that reach the answer only through a coincidental name overlap are dropped before the response is generated, so they don't appear in citations or in the body of the answer.
Campaigns using predictive content tags are no longer held on the legacy sending path. The current sending engine already supports them — the only remaining obstacle was a feature flag gate, which has been removed and confirmed absent from all related infrastructure.
Previously, campaigns built from uploaded HTML rendered at their full pixel width in the preview, making the preview misleading. Responsive campaigns whose content is already 340 px wide or narrower are unaffected. No changes needed on your part.
Two independent issues with conditional content in campaign email previews are fixed. Neither change affects your stored email markup.
Conditional blocks weren't resolving in previews. The editor matched %IF%/%ELSE%/%/IF% blocks but never applied the result, so conditional markup passed through as raw text while ordinary personalization tags like first name resolved normally. Previews now run the same conditional resolution used at send time. Because the preview uses a dummy contact with no field data, an unconditioned %IF $FIRSTNAME% takes the ELSE branch — matching what a contact with no data would actually receive.
%ELSE IF% (with a space) was being sent as literal text to recipients. The personalization engine handled %ELSEIF% and editor-mangled variants but had no rule for the plain-space form, so it survived into the template and shipped verbatim. The normalization step now runs before the content scan, so the spaced form is both checked and rewritten. Prose containing the words "else if" and quoted strings are unaffected.
The "Daily Read Trend" chart now shows exactly one data point per calendar day, including on US Daylight Saving Time fall-back dates. Previously, dates like November 2, 2025 could appear twice — once with the correct count and once as zero.
Three things were going wrong at once: the stock-images setting was defaulting to on because the agent never explicitly turned it off; your keyword and date answers from the preflight weren't being passed to the image search; and when no matching images were found, the agent said it built the campaign without them while quietly using stock photos anyway. All three are fixed.
Now, when a search finds nothing, the agent tells you clearly: "uses other images instead — worth a look before you send." No stock substitutes appear without disclosure.
A separate issue also meant accounts whose 20 newest uploads all share the same date were shown a misleading warning about possibly missing images. That warning is now suppressed for relative windows. No configuration changes are needed — the fixes apply to all new campaign creation flows.
Acknowledgment: The agent opens with a one-sentence recognition of what you said — something like "For snowboard enthusiasts — got it." — before asking its first question. This is live for all accounts now.
Topic pre-fill: If it can derive a topic from your prompt, it pre-fills the required topic field with a paraphrase of your words, along with a note: "I've drafted a topic from your prompt — keep it or change it." You can edit or clear the field; clearing it still blocks you from moving forward, since the field is required.
Note: The topic pre-fill is currently off by default and being rolled out gradually. The acknowledgment lead-ins are live for everyone now.
Personalization tags like %UNSUBSCRIBELINK% and %SENDER-ORGANIZATION-NAME% now survive when you attach an HTML, EML, or ZIP file and ask Campaign Agent to use it as a template. Previously, those tags were stripped because the agent was routing template attachments through a path that rewrites copy rather than one that preserves them.
Several related improvements shipped at the same time:
- Plain-text
.emlfiles are now accepted and used to supply your campaign's wording (up to 50,000 characters). - When you attach a file in a conversation with earlier attachments, the most recent file now correctly takes precedence.
- The confirmation shown after import is accurate: it no longer claims your layout was kept when the design may change, and it notes when a plain-text EML supplied the wording.
No action needed — this is on for everyone.
Stage names are now pulled directly from your account's deal stage configuration. If a stage ID can't be resolved, the agent leaves it blank rather than guessing. No action needed.
Card bodies were showing phrases like "The tool returned the latest live content" or "not a change comparison" in English and several other languages. Card bodies now use a structured presentation layer that determines framing from the change status directly, so the model's raw prose is no longer the source of the card's text. The prompt was also rewritten to explicitly forbid narrating tool mechanics in any language.
Known limit: Automated checks for banned phrases cover English and common loanwords only. Multilingual regression detection relies on ongoing trace monitoring rather than automated tests.
Web page scraping for brand monitoring snapshots and contact enrichment was using a fixed proxy configuration that caused some pages to be refused. Scraping now uses automatic proxy selection, which lets previously unreachable pages be fetched successfully. Callers that explicitly request a specific proxy level are unaffected — automatic selection only applies when no proxy preference is set.
When Active Intelligence scrapes your website to set up a Brand Kit, it retrieves the full branding information it needs. Previously, a content-filtering step was stripping branding details during scraping, and the scraper used a fixed approach that failed on sites with stricter access controls. Both issues are resolved: branding content is preserved during scraping, and the scraper automatically escalates to a more capable approach for sites that block basic fetches.
When the AI campaign agent offers to set up your Brand Kit from your website and you accept, you now see a "Setting up your Brand Kit from your website" status step while the setup runs. Previously this step was blank, so it looked like nothing was happening.
Once setup completes, your Brand Kit appears automatically across all relevant surfaces — no page reload needed.
Note: This feature is not yet active for all accounts. It will become available when enabled for your account.
How it works by plan:
- ActiveCampaign AI (any tier): bot filtering on
- Classic Starter / Plus: bot filtering off
- Classic Professional / Enterprise: off by default at signup and on trial-to-paid conversion; on by default during trial
Known limit: If you toggle the setting off and then back on to the same value, the intermediate toggle isn't detectable, so the preserved-override logic may not apply in that case.
A new setting (off by default) lets you prevent automated link scanners from recording unsubscribes against real contacts when they hit campaign unsubscribe links. When on, requests that score as bot traffic are shown the unsubscribe form with a session token instead of being recorded — so a real person who was misclassified can still opt out by submitting the form. One-click unsubscribes (RFC 8058 POST requests) are never affected.
This setting is off by default. Contact support if you believe automated traffic is affecting your unsubscribe counts.
When a series campaign ran and the triggering contact no longer existed, a log entry was written once per recipient — on one observed send, that was 1,894 entries for a single campaign. Emails were delivered normally with empty fallbacks for any custom object tags, so recipients were unaffected.
The lookup order is now more efficient: the extra entries no longer appear in the common case. In the rare case where a contact is genuinely deleted mid-send, the event is recorded at a lower severity level. What recipients receive is unchanged.
The automation builder was failing to load for accounts that didn't have an API key configured. It now opens correctly regardless of your API key setup.
The pipeline dropdown in the "Create Form" modal now searches all your pipelines as you type. Previously, only the first 20 pipelines were available, making it impossible to select a pipeline further down the list without a workaround.
Specific improvements to the agency overview table filters:
- Selecting no items in a filter returns zero results rather than the full list.
- The select-all checkbox cycles correctly through all states.
- Plan tier filters work the same as Status filters, and you can select multiple tiers together.
- Rows stay visible while a new filter loads.
- Switching back to a recent filter combination is instant.
The "Add to…" action in the Engage contact rail now opens a full modal instead of expanding a panel inside the narrow rail. Each of the three actions — lists, automations, and deals — is searchable, and your selections stage as removable rows before you apply them. One confirm applies everything at once.
If some items succeed and others don't, the modal stays open: successfully added items leave the staging area, and failed ones stay with a reason shown. A fully successful run closes the modal.
You can also create a new deal directly from within the modal — title, pipeline, and stage are required. Creating lists or automations from here isn't available yet.
Known limit: Lists and automations you add won't persist if you reload the page. This will be addressed in a follow-up update.
If Google Ads isn't connected, you'll see a "Connect your Google Account" card. Once it's connected, that card is replaced by "Create a Google Ads campaign." A "Create Google Ads" filter pill also appears in the recommendations surface whenever a Google Ads card is present.
If your Google Ads connection is in an error state, the connect card shows so you can fix it. The homepage recommendations surface now shows up to 10 cards (previously 8) to accommodate these additions.
You can ask Active Intelligence for an order status summary for a store over a date range you specify. The summary includes completed, pending, and canceled order counts, along with completion rate, abandonment rate, and their percentage equivalents.
Agent responses now appear in your account's configured language instead of always defaulting to English. This restores behavior that was interrupted when the underlying infrastructure was updated.
No action needed — language behavior is restored automatically for all accounts.
The guided walkthrough for Active Intelligence plays a scripted demo conversation during its chat steps. It shows a typed prompt, a thinking delay, and an assistant response rendered as a continuous thread — giving you a realistic preview without requiring a live interaction. The composer stays visible but is disabled during the demo. The walkthrough ends with a scheduled task card in interactive mode, and the "Create a task" call-to-action opens the scheduled tasks page with the creation form ready. The AI drawer stays open through the handoff.
Several issues were causing context to disappear or get applied incorrectly. Conversations that ran long could hit a token ceiling because earlier context blocks were being added to rather than replaced, so the assistant effectively forgot earlier instructions. A memory that the model didn't explicitly return during a save was silently deleted rather than kept. One oversized memory could knock out all the others that followed it. The save budget was set higher than the system actually allows, so rejected saves wiped the whole memory store. Administrator instructions could be outranked by inferred preferences — now admin instructions always win. And accounts with more than 20 saved memories were silently losing the oldest ones because fetches weren't requesting the full list.
All of these are now corrected. Your context is preserved, ordered correctly, and applied in full. No action needed — your existing memories and instructions carry forward automatically.
279 additional deep link entry points have been added to Active Intelligence, bringing the total from 156 to 435. Each new deep link routes you directly into a relevant agent conversation with appropriate context pre-loaded.
Known limit: Companion translations for these links must be deployed first. Until they are, a new deep link will send a raw key to the agent rather than the intended prompt text.
Previously, the account details form required you to fill in every field before you could save. Now only genuinely required fields are marked as such, so you can complete the form with just what's relevant to your account.
The security level bars on the Account Security page now shrink to fit at narrower screen widths instead of overflowing the Security Measures card.
The delete user endpoint accepts an optional reassignment parameter. Pass it a user ID and the endpoint deletes the user and queues reassignment of their contacts to the user you specified — one call instead of two.
What to know before using it: - Reassignment runs in the background. A successful response means the delete happened and reassignment is queued, not that reassignment is complete. - If the background process doesn't start, contacts remain owned by the deleted user. - Only contacts are moved. Lists, accounts, and deals are out of scope for this parameter. - Invalid values — non-IDs, negative numbers, the user being deleted, unknown users, and the default contact owner — return a validation error.
Without the reassignment parameter, the endpoint behaves exactly as before.