Product updates

What we shipped

Every feature, improvement, and fix — organized by release date.

Tuesday, Oct 134 updates

This period's work centers on Active Intelligence reliability: fixes and improvements tighten how it handles form creation, Campaign setup, Scheduled Tasks cadence, and WhatsApp billing answers.

Highlights · 3 of 4 updates

  • Scheduled Tasks cadence respects your words. When you accept Active Intelligence's offer to schedule a recurring report, the interval is drawn from your own phrasing — "every quarter" or "every 2 weeks" — rather than defaulting to weekly.
  • WhatsApp billing answers updated. Active Intelligence's answers about WhatsApp message costs reflect Meta's billing changes effective October 1, 2026, including the correct treatment of free-form replies and the two categories of messages that remain free.
  • 2 fixes. Smaller corrections and repairs across Campaigns & email, Forms & landing pages.

4 updates: 2 improved · 2 fixed, across 4 areas.

Active Intelligence reads the full conversation and applies a clear order of priority: your acceptance reply wins first (for example, "yes, make it weekly"); if absent, the recurrence in your original request ("every quarter" → 3 months, "last month weekly" → 1 week); then the reporting window you named ("last month" → 1 month, "last 7 days" → 1 week, "last quarter" → 3 months); and finally a default of weekly when nothing else is specified. The offer wording itself never sets the cadence.

When Active Intelligence creates a task with the default one-week cadence, the task starts tomorrow rather than waiting until the following Sunday. The cadence description shown after a task is created is taken directly from the stored schedule, so what you read matches what was saved.

Previously, the prompt was misrouted and you ended up in a questionnaire flow with no form to show for it.

Active Intelligence treats any request to create a new or first form as a create request, even when the phrasing asks for ideas first. It builds an inline newsletter signup with full name and email fields from your brand kit and business context when no specific goal, layout, or fields are named — without asking for those details upfront.

When building a Campaign from a past campaign using Active Intelligence, a second preflight form no longer appears after the first is answered.

Free-form replies sent within the 24-hour customer-service window are charged under the SERVICE category rather than being free. Two exceptions remain free: service messages within the free monthly allowance per business phone number, and messages sent within the free entry point window from a Click-to-WhatsApp ad (covering all categories for up to 7 days).

Active Intelligence correctly describes both exceptions and points Click-to-WhatsApp questions at the free entry point window. Both free cases are handled correctly.

Monday, Oct 125 updates

Active Intelligence checks SMS permissions before attempting to create or edit an SMS Campaign, giving accounts with granular SMS permissions clear, actionable feedback instead of a failed write.

Five permission states are handled:

  • No Campaign manage permission: no write is attempted; a preview-only result is returned pointing to SMS Campaigns › Manage and Settings › Users and Groups.
  • Manage permission but no send permission: the Campaign is saved as a draft; the response tells you that someone with SMS Campaigns › Send permission must review and send it.
  • No send permission on a schedule edit: the scheduled date is not applied; a mixed edit (schedule plus other fields) saves the other fields and reports that the schedule was not set.
  • No SMS registration: guidance points to the account administrator.
  • Permission denied by the platform: the existing permission-denied message is returned.

This applies to accounts with granular SMS permissions enabled.

You can have much longer back-and-forth conversations with Active Intelligence before hitting a length limit. A single shared limit previously cut off roughly 412 conversations per month, often well before the model ran out of capacity. Limits now match the capacity of the model handling your conversation.

For conversations running on the current default model (which has a 1-million-token context window), the warning threshold rises from 280,000 to 400,000 tokens and the stop threshold from 300,000 to 500,000 tokens. Based on production data from the past 30 days, this reduces conversations reaching the stop point from around 412 per month to around 31. Conversations on models with smaller context windows keep the existing limits.

Your existing conversations are automatically covered by the new limits.

Active Intelligence can read and act on your Engage inbox and channel flows, so you can manage conversations and flows without leaving the assistant.

In the Engage inbox, you can ask Active Intelligence to find, count, or search conversations, read messages, summaries, notes, and labels, and take action: set a conversation's state, assign it, manage labels, or add a note. You get a clear view of what needs attention and can act on it in the same conversation with the assistant.

With Engage flows, you can ask Active Intelligence to list and inspect your flows, check run history and step performance, draft a new flow (created in a paused state so nothing goes live until you're ready), or pause a live flow.

Replies and flow activations require your approval. When you ask Active Intelligence to send a reply or activate a flow, it shows you a preview first. The action only goes through after you confirm it. This applies every time — Active Intelligence will not send replies or activate flows on its own.

Active Intelligence respects your role and channel permissions in the Engage app. It can only see and act on conversations and flows you already have access to. Editing, deleting, duplicating, or making bulk changes to conversations or flows are not supported.

This capability is available when your account has the Engage app enabled.

You can ask Active Intelligence to remove all recipients from a Campaign, leaving it as a draft until you choose a new list. Previously, asking Active Intelligence to remove a Campaign's list had no effect — the list stayed in place while the reply implied it had been cleared.

What Active Intelligence does when you ask to remove a list: - Clears both the list and any segment, writing empty sets to the Campaign. - If the Campaign still shows a list or segment after the write (for example, because a read returns stale data), the response tells you and directs you to remove them in the review panel. - If your request asks for no list while also naming a specific list or segment, Active Intelligence makes no change and asks which you meant. - The Campaign stays a draft until a list is chosen.

Previously, hygiene questions could result in a pivot to open and click metrics or a focus on a single automation rather than your full portfolio. Active Intelligence now compares each automation against your account baseline and flags outliers only when they deviate meaningfully: a bounce rate more than twice your median, or an unsubscribe rate above 1%.

When nothing stands out, Active Intelligence says so rather than manufacturing a finding. Every cited metric is tied to its data window and send count. Missing metrics are flagged as missing rather than reported as zero.

This improvement applies to automation hygiene questions. Engagement-performance and Campaign-content insights are unchanged.

Friday, Oct 989 updates

The WhatsApp tab on the redesigned contact detail page links directly to the contact's active WhatsApp conversation and includes an "Open inbox" button. The tab label shows the unseen message count, so you can see at a glance whether there are messages waiting without opening the conversation.

The tab is hidden automatically when no WhatsApp inbox is connected to your account or when the contact's WhatsApp visibility is turned off — so it only appears when it's relevant.

This tab is part of the redesigned contact detail page, which is not yet broadly available.

The toll-free number card reads "Best for brands that text nationwide." The meaning is unchanged.

Hovering or keyboard-focusing a tag in the Tags tab on the contact page shows a Tool Tip with the date and time the tag was added. The date follows your account's configured time zone, locale, and datetime format — the same format used in the activity stream.

If a tag's name is too long to fit in its chip, the Tool Tip shows the full name above the date. Tags with no recorded date show no Tool Tip.

Surveys and Storefronts have been removed from the Manage section of the Engage navigation. The Manage section shows Links, Posts, and Settings.

Both pages remain accessible by direct URL if you need them.

On the Campaign summary screen, the Subject line and Preheader fields and their emoji buttons are the same height and align correctly.

The notice appears only when whole-design testing is off and you're on a variant other than the first. It doesn't appear for non-split Campaigns, when whole-design testing is already on, or when you're viewing the first variant.

The dialog contains the same controls as before — winner determination, winner criteria and wait period, email share allocation per variant, and the whole-design checkbox — but works in draft form: Cancel discards all changes, and Save writes only what changed. Share fields let you clear and retype a value freely while editing. Even-split shares are shown as an exact distribution and are read-only.

The Campaign editor canvas also reads in the order a split test is understood: settings row first (Recipients, Send, More settings, Split test settings), then the variant strip, then the selected variant's subject and preheader above its design.

The dialog appears in every Campaign editor surface, including the Active Intelligence full page and sidebar. Non-split Campaigns, templates, and Automation emails are unaffected.

A version picker lets you choose which variant to resend; it defaults to the winner, or shows no selection if no winner has been decided. The resend becomes a single Campaign with 100% of the send going to the chosen variant, rather than re-running the split.

Also fixed: Resend requests that contain only the resend type — without a name or subject — complete successfully.

Previously, the prompt text was dropped and an empty message was sent instead, meaning Active Intelligence received no instruction. The Active Intelligence sidebar was not affected by this issue.

When the segment preview contacts tab fails to load, the error state shows a warning illustration, the error message, and a retry button. Clicking retry re-runs the contacts query without a page reload.

The Segment integration settings panel — including Save and Disconnect options — is available again in the app marketplace. It was removed when the previous apps page was retired; this restores full settings access in its replacement.

When you open the Scheduled Tasks composer, the input starts as one compact line. Clicking it expands the field, activates the AI gradient border, and reveals the Add, Tools, and Add context buttons. Click away with nothing typed and it collapses back to its compact state.

The toll-free registration card is visible to accounts that have never started a registration. Previously, the card hid itself for those accounts — exactly the ones that need the Register button. Accounts already pending or approved are unaffected.

When a group lacks the SMS campaigns Manage permission, Active Intelligence shows a clear permission-denied state in the SMS card. The card displays the agent's message as a warning, shows a title, and omits the primary action button. Accounts without the SMS add-on still see the upsell state, because a missing add-on takes precedence over a missing permission.

The phone preview in the SMS builder reflects what contacts will actually receive.

  • If your message doesn't include opt-out language, the preview shows the footer and explains that it's added automatically — once every 30 days per contact. If you want it in every message, add it to the message body yourself.
  • If your message already includes opt-out language, the preview confirms the automatic footer won't be added.

The detection logic in the preview matches the logic used at send time, so there's no gap between what you see and what your contacts get.

Actor-initiated assignments show who made the change and to whom. Automatic assignments by first-responder rules appear without an actor name. A fallback label appears when a user has no display name, and any status event the app doesn't yet recognize surfaces as "This conversation was updated" rather than being hidden.

The refreshed Contact record adds two new tabs: SMS and Notes.

The SMS tab shows a contact's full SMS history as a flat list, newest first. Each row displays the message text (with personalization tags filled in), a sender avatar, a sent or received label, and the date in your account's format and time zone with a relative time indicator. Replies are labeled separately. Automations that sent a message include a link to that Automation. Older messages load as you scroll, and Inbox rows link through to the Inbox conversation.

The tab is only visible when your account has SMS access. When no messages exist, the tab shows an empty state. Unsubscribes and messages to internal users are not shown.

The Notes tab brings notes access into the updated contact detail page.

Both tabs are part of the Contact Detail Page Refresh, which is expanding the contact record from a 2-tab layout to a 9-tab layout. Neither tab is visible to customers yet.

Each assignment event appears in the thread at the point it happened. Actor-initiated assignments show who assigned the conversation and to whom. Automatic assignments use appropriate copy. Events with missing metadata show a generic fallback rather than disappearing.

Previously, the KPI tiles and block list were scoped to your chosen range, but the per-block rows showed all-time figures. Selecting "View all time" or clearing the range sends the correct parameters throughout.

Clicking "Your Dashboard" opens the agent homepage directly at the My View tab. Clicking the Reports heading itself still lands on All Campaigns Performance, unchanged.

The button appears below the total contact count. While a refresh is running, the button is disabled so you won't trigger duplicate recalculations. The refresh label reads "Refresh contact count (last updated [date])" in your account's date and time format; when a count is still being computed, the date is omitted. The same control and last-updated information appear in the Active Intelligence sidebar.

When your session token expired, the platform used to send several simultaneous refresh requests at once — and because each one invalidated the last, most of them failed. The result was a full redirect to the login screen, often in the middle of what you were doing.

All concurrent refresh requests within a tab share a single request. The expected drop in failed refreshes is from roughly 55% down to around 9% — meaning far fewer unexpected login interruptions during normal use.

The Engage template gallery has a new visual design. Each template card shows an Instagram DM on a phone in a frosted frame over a light brand gradient — one shade per template category: engagement, onboarding, sales, and retention. On hover or keyboard focus, the gradient deepens and the phone rises. Featured templates get a sparkle badge; coming-soon templates get a clock. Grid cards no longer show a description or category label.

Search and filter controls are hidden while the catalog holds fewer than 12 templates and appear automatically once it reaches that threshold.

The "Use template" flow is updated to match the Saved replies and New deal modals: the × in the heading closes the modal, and focus starts on the first field the template requires.

The Engage Audience page has a new layout. Segments move into a navigation panel beside the contact table, replacing the previous flat layout. You can create and edit segments from a side panel that opens with a "Describe it with AI" prompt. Opening a contact's details keeps you on the page — the contact opens beside the table without navigating away.

Possible duplicate contacts surface as a dedicated "Review" entry in the navigation, visible only while duplicates exist. The figure strip shows live data: total size, top channel, and dormant count for everyone; and people, reachable, and opted-out counts per segment. Contact status is set from one consistent list everywhere: Active, Inactive, Spam, and Opted out.

Paging: views with 100 or fewer contacts, or any search result, are sortable and client-paged. "Select all" selects only the current page.

After re-authenticating on a URL that contained a query string, your session is restored correctly and subsequent actions complete as expected.

Previously, re-authenticating on a URL that contained a query string could result in errors and failed API calls after the session was restored. Re-authentication on any URL, including those with query strings, restores your session correctly.

The CVC field on payment forms displays its placeholder text as expected. Customers filling out their card details see the correct prompt for both three-digit and four-digit security codes.

Typing a page number outside the valid range in any paginated table — such as All Campaigns, Recipients, Clicked Links, or Segments — and pressing Enter or leaving the field clamps to a valid page. Values above the last page clamp to the last page; values below 1 clamp to page 1. Pressing Escape reverts the draft without navigating. Next and previous buttons remain clickable while a page request is in flight.

The wait-until date/time field in the Automation Canvas offers minute offsets as a timing option, giving you finer control over when a wait step ends.

The "Saved at" timestamp, revision history control, and refresh button are aligned consistently in the Manage Contacts header status bar.

When the app runs inside a frame from another origin, a session expiry previously caused the page to stop responding rather than redirect to login. The redirect targets the top window correctly so login always happens at the right place, even in embedded contexts.

Industry Intelligence scheduled insight cards display a meaningful, descriptive title. Previously, some cards showed the literal word "Summary" as their title instead of a real one.

When you open a Form via its preview link, a banner across the top of the page indicates that the view is a preview. If the Form is paused, the banner additionally states that it is not accepting submissions.

Three visual improvements to the Flows list:

  • Triggered, Completed, and DMs counts are right-aligned with tabular figures, including their column headers, so numbers stack cleanly by digit.
  • The channel disc sits 8px from the flow name, tightened from 12px.
  • The Active flows tile no longer shows a separator dot between its two counts.

The Files tab on the contact detail page lets you view, upload, download, rename, and delete file attachments for any contact. The tab is available for all contacts.

A previous issue where uploading a file from the page header caused the Files tab to load indefinitely is also resolved — the file list refreshes correctly after a header upload.

Several improvements to platform startup and resilience shipped together:

  • Faster startup. Two startup files download in parallel instead of one after the other, reducing the time before the app is ready.
  • Boot timeout protection. If the app hasn't finished loading after 30 seconds, an error screen with a retry button appears so you're not left with a blank page.
  • Slow-page notice. If a page's loading state has been visible for 15 seconds, it switches to a "This page is taking longer than usual" message with a reload button. The page still renders normally if data arrives.
  • Session recovery. When a session check fails, the app re-checks your session automatically (at most once per 30 seconds) and only redirects to login if your session has actually expired.
  • Chunk-load recovery. If part of the app fails to load after retries, a "We couldn't load this section" prompt with a reload button appears instead of a broken page.

The token is renewed once and every caller receives the updated token without a redirect.

Each card in the Engage templates gallery draws its example exchange from real inbox thread parts and lists only the steps its flow actually contains — no guessing what a template does once you're inside it. "Comment on a post" appears as the featured card at full width.

Clicking a card opens "Use template." The "Comment on a post" template prompts you for the reply text, prefilled, before posting a public reply ahead of the direct message.

Seven template names were updated: Comment on a post, Welcome new follower, Came from an ad or Reel, Story reply, Qualify commenters with AI, Flash sale, Win back quiet contacts. Each card includes a sample inbound message and a sample DM reply, a Featured label, short step names, and a public reply field in the Use template dialog.

The renamed templates take effect on the current Templates page immediately. The new gallery cards appear when the accompanying front-end update ships.

Embedded app sections on Contact and Account detail pages stay visible after navigating away and back, switching tabs, or when two views of the same app appear on one page. Each view manages its own lifecycle independently, so closing one does not affect others.

Embedded app sections on Contact and Account detail pages were disappearing after navigating away and back, switching tabs, or when two views of the same app appeared on one page. Each view manages its own lifecycle independently, so closing one does not affect others.

Templates display in your language when you set up a new pipeline. Previously, the catalogue was available in English only.

The custom objects panel defaults to an empty state when it can't retrieve its configuration — the same as it does for accounts with no custom objects configured. Previously, the same failure caused the entire page to stop loading, affecting approximately 257 crashes and 160 accounts per day on the Contacts page.

Account date formats that mix literal text with date specifiers now render correctly everywhere in the platform. Previously, formats like these caused an error on the Campaigns index and showed "preview unavailable" on the advanced settings page.

The date format preview in Settings uses the same converter as the rest of the platform, so the preview matches what you see elsewhere.

The consent step shown before the OAuth redirect for custom connectors is translated into your account's language. Previously it appeared only in English.

Orders that included a product the account already owned were previously rejected. The order builder keeps only one entry per product, so those orders complete as expected.

Conversation list and toolbar are redrawn with consistent measurements. Filter, Newest, and Select controls are sized consistently; Status options fold into a select beside Owner. Filters by channel, status, owner, assignee, and AI agent are available, with applied-filter chips, sort controls, a "start with this view" option, hover-checkbox selection, a selection bar, and bulk actions. Each conversation card shows an assignee and status line.

Thread pane has new bubble and reaction placement, inline notes placed in the transcript by timestamp, a typing indicator, an Active Intelligence replies toggle, and a messaging-window strip showing time remaining. Reactions appear on the message they react to rather than as a separate bubble. Loading an older page of the transcript prepends above your current position without jumping the thread backwards.

Composer has mode tabs for Reply and Internal Note with their own drafts, a flattened emoji picker, and an attachment row. The reply composer collapses to a single line and expands on focus, with image and audio attachment options and a character counter. Accepts saved replies via a menu, a / menu and library with ActiveCampaign field insertion, a reply-to strip, and image attachment by upload, drop, or paste.

Active Intelligence draft action in the composer fills the input with a generated reply you can edit before sending. The generated reply is never sent automatically. The action is unavailable when the send window is closed. A generation failure leaves any existing draft intact.

Contact panel includes Activity and Notes tabs, a Contact Profile entry, and Nurture, Automations, Deals, and Lists cards. Notes can be edited and deleted directly from the panel. An AI brief sits above collapsible sections — Details, Automations, Deals, Lists, Notes, and Past conversations — with a headline, a "N new since" indicator, a refresh control, and next steps that open an add menu with a target pre-staged. Teammates can choose which Details and header facts to surface.

Labels can be added and removed from the thread and survive a reload.

Saved replies are create-and-read only — a saved reply cannot be edited or removed after creation.

Several surfaces return empty because the relevant read endpoints are not yet available: the account's label list in Add labels, edit and delete in Manage saved replies, Assign to… on a selection, the rail Summary card and its Refresh, contact details and past conversations, and leaving a list or an Automation.

In the app: The bulk Edit and "Edit all" buttons carry the full target — specific contact IDs, the current filter or search set, or "all" — at the moment of the click. An empty selection refuses to open the modal rather than falling back to "all."

Confirmation step for "edit all": When editing all Contacts in the account, a warning appears and you must type the exact contact count to enable the Apply button.

API enforcement: The bulk edit API requires web app requests to declare their scope — by IDs, by filter, or all — as a query parameter. Requests missing or with an invalid scope receive an error. Requests scoped to IDs require a non-empty contact ID list; requests scoped to filter require at least one active filter constraint. API key requests are unaffected.

The contact record includes an SMS tab displaying the contact's SMS message history. The tab shows an empty state when no messages exist and a loading indicator while messages are being fetched.

Two new fields let you manage open-tracking opt-out status per contact through the Contacts API, meeting requirements in markets such as France and Italy where this opt-out is required separately from consent to receive marketing email.

v3 API (POST and PUT /api/3/contacts): open_tracking_optout (writable, 0 or 1) sets the opt-out status. open_tracking_optout_updated_at (read-only) is a server-stamped ISO-8601 timestamp that updates whenever the value changes. Sending an explicit null returns a 422 error. The fields are covered by contact sync and bulk sync.

v1 API (contact_add, contact_edit, contact_sync): an optional open_tracking_optout parameter (0 or 1) sets the status. Omitting it leaves the stored value unchanged. Out-of-range values are rejected with a clear error message.

The contact record displays "Opted out · {date}" or "Consented · {date}", with localization for 16 additional locales.

Contact CSV exports also include a new column for open-tracking opt-out status, recording 1 for opted out and 0 for opted in.

The contact notes panel keeps its height when the embedded content reloads or navigates away, rather than collapsing and requiring a page refresh to restore.

The contact limit notification banner appears at the top of the Automations overview, the Automations empty state, the Campaigns index, and the Active Intelligence landing page.

Accounts on purchase-order, net-terms, or contract billing see an assisted "Contact us" option in the banner. The banner is hidden for accounts with a pending cancellation.

After a contact import completes, the review screen offers an optional tidy-up step. If any of the contacts you imported arrived already unsubscribed, you can archive them in one action — without touching contacts who are active, unconfirmed, or bounced on any list.

The step is opt-in: nothing is pre-selected, and a confirmation screen gates the action before anything is committed. Only the main account administrator can run it.

A few things to know before you use it:

  • The archive is scoped to contacts whose every list membership is an unsubscribe. A contact who is active on even one list — including lists outside the import — is left alone.
  • A contact who unsubscribed inside ActiveCampaign after the import is treated the same as one who arrived unsubscribed from the source. Both will be archived if all their memberships are unsubscribes.
  • If your account's delete allowance runs out mid-run, the screen reports how many contacts were archived and keeps your selection so you can retry the remainder when your allowance refills at the next billing period.
  • A minimum wait applies before a restore is permitted. Your delete allowance is not refunded when contacts are archived.

The tidy-up option only appears once the system has confirmed that at least one unsubscribed contact exists in the imported lists. If that check hasn't completed or couldn't run, the option stays hidden rather than offering a destructive action on uncertain data.

The confirmation modal, section labels, and descriptive copy throughout the cleanup screen have been updated to reflect this change. A new partial-error state is also handled: if a cleanup run archives some but not all contacts, the screen shows how many were archived and prompts you to try again for the rest.

The contact created Automation trigger is available to all accounts without any additional configuration.

Connected email settings revert to their last confirmed value when a change is cancelled or the update fails, so the settings panel always reflects what's actually saved.

If your account has two or more Brand Kits, you can tell Active Intelligence which one to use for a chat session. The Brand Kit selector appears in the @ typeahead and the Add context menu. Kits are listed with your primary kit first, marked Default. Typing filters by kit name. Picking a kit applies that kit's brand context, tone, and competitors for the session.

The selected kit stays active for the whole chat — you don't need to re-select it on every message. Once a chat has messages, its kit is locked; to use a different kit, start a new chat. Before the first message, you can pick and replace a kit freely.

Context replacement is also improved: the Add context button stays available when a chip is already attached. Picking context of the same kind — Campaign, Automation, Brand Kit, or File — replaces the existing chip rather than blocking the pick. The @ typeahead works the same way, and a footer in the menu names what will be replaced.

Accounts with zero or one Brand Kit see no change.

The checkout payment form gains placeholder text for address, state, ZIP code, name on card, and expiration date fields. Four billing labels are recased for consistency: ZIP / Postal Code, Name on card, Card number, Expiration date. The expiry and CVC helper text can be hidden while field-level error messages continue to display.

Campaign preview mini editor saves reliably across all contexts

Edits you make in the Campaign preview mini editor save correctly every time, across the Active Intelligence full page, the Active Intelligence sidebar, Automation emails, and the legacy campaign preview.

Saves happen when you finish typing, not on every keystroke — fewer unnecessary background operations and a cleaner editing experience. If a save fails, a notification appears with a Retry option, and your edit stays pending until it succeeds.

Several specific behaviors are also corrected:

  • Split Campaigns save body edits to the variant you're looking at. Previously, editing with variant B selected saved to variant A instead.
  • Switching variants or reopening the editor restores what you last wrote, not the original version.
  • Restoring a version reopens the editor with the restored content, so your next edit doesn't overwrite the restore.
  • Outlook button copy updates correctly when the button link includes a query string or the label contains special characters.
  • Editor-only styling is kept out of the saved document, so what gets saved matches what your contacts receive.

The Campaign performance report has a new metric showing opens that aren't tied to an identified Contact.

The campaign editor loads fonts faster. Previously, the editor made approximately 81 separate font requests every time it opened and each time the font picker was used. Font loading uses a single combined stylesheet served from a content delivery network, so fonts appear more quickly and the repeated requests are gone.

Web-safe fonts are unaffected.

Campaign builder textarea fields display at their correct size. Fields that had been migrated to the updated design system previously rendered at nearly double their intended height. The correct minimum height is restored, and clicking the preheader field label now focuses the field.

Affected buttons included Save buttons in share modals, the generate-link and refresh buttons in the share link control, the CSV download button in the export modal, a navigation chevron in report widgets, and a popup icon in subscribe-to-list fields.

The bulk Edit and "Edit all" buttons carry the full target — specific contact IDs, the current filter or search set, or "all" — at the moment of the click. An empty selection refuses to open the modal rather than falling back to "all."

On the API side, bulk edit requests must declare their scope explicitly. Requests missing or with an invalid scope are rejected. scope=ids requires a non-empty contact ID list; scope=filter requires at least one active filter constraint.

When a bulk status change across multiple Flows only partly applies — because one batch failed — the confirmation bar reports how many flows were updated and how many could not be updated, and offers a Retry button. Retry resends only the flows the write missed, read fresh after the list has refetched. The selection is kept so you can see which flows were affected.

Typing a Brand Kit name after @ — for example, @espn.com — previously returned "No results" even when the kit existed under Your Brands. The Add context search box had the same gap.

Both searches match kit names locally and case-insensitively, so your kits appear as you type. The default kit is marked with a Default badge. In a conversation that already has a kit locked, searching for a different kit shows a note explaining how to switch.

What you get in the list: A totals strip at the top shows your portfolio at a glance. Each row displays the trigger and up to five steps as visual tiles, with a count of any additional steps. Rows show the channel, an Active or Inactive state indicator (green for active, grey for inactive, red for failures), and Updated and Last run columns. The list sorts by Last run by default, with a pinned name column so it stays visible as you scroll.

Bulk actions: Select any Automations and a bar appears with a count, a Select all across pages option, and Turn on, Turn off, and Delete buttons. Bulk changes process up to 200 Automations at a time. If only some of the selected Automations could be updated, you see a clear count of what changed and what didn't.

In the Automation Canvas: The header carries an Active/Inactive switch, Test run, Save, and a menu for less-common actions. Steps appear on visual tiles with a unified color system.

Terminology changes: "Recipes" are now "Templates." States are Active and Inactive; the row actions are Activate and Deactivate. Re-engage sequences follow the same language: a live sequence is Active, a switched-off one is Inactive, and the row action is Deactivate. Sequences held unstarted remain Draft.

Run history, Re-engage sequences, and Templates all use the updated toolbar, breadcrumbs, and drawer.

The contact lookup in the Automation path view's Review Runs selector paginates, so contacts are no longer missing from the list on accounts with large contact databases.

When an Automation run ends because of a manual action replay, the Automation history path view shows a clear, translated label explaining why. Previously, this end cause displayed as blank.

In the Automation Canvas path view, a run's status appears as a colored chip in the header, and completed runs show the date they finished alongside the date the contact entered. The status colors match the Review Runs dropdown, so both surfaces stay consistent.

The "Drafting content…" loading indicator in the Automation Canvas works correctly again for async blocks, so newly updated blocks display their loading state as expected.

Automation Canvas: Connector lines between steps draw straight when the step ports are aligned. Every connector — including Add step stubs and fork arms — ends in a consistent chevron. The "Add step here" gap closes when the pointer moves outside it.

Inbox read receipt: The read receipt indicator leads with a double-check icon. "Seen" on Instagram reads "✓✓ Seen". The double-check shows on every channel that supports read status; SMS shows no tick because the channel doesn't provide one.

When the app runs inside a cross-origin frame — for example, embedded in a Google browser surface — a session expiry previously caused the page to stop responding rather than redirect to login. The redirect targets the top window correctly, so login always happens at the right place, even in embedded contexts.

When duplicating a Campaign with the "refresh" or "design" option, Active Intelligence shows topic suggestions directly in the preflight form, under an "Ideas for you" header. Click any suggestion to pre-fill the topic field, or start typing and the suggestions step aside.

Suggestions are drawn from your account's previous Campaigns, website content, and calendar events, then ranked for relevance and freshness. They load in the background while you review the form, so the form opens at full speed regardless.

This feature is rolling out gradually.

When you ask Active Intelligence about connecting a tool, it checks both MCP connectors and classic app connections in the same lookup and presents whichever options apply — already-connected ones appear first. Active Intelligence won't offer setup steps for something you've already connected.

  • Connectors are enabled via the Tools button under the message input.
  • App connections are managed on the Apps and Integrations page.

If the connector catalog is temporarily unavailable, Active Intelligence reports that connector status is unknown rather than incorrectly showing a connector as disconnected.

After Active Intelligence generates a first branded Campaign for an account that hasn't committed to a Brand Kit, it presents a set of other brand looks to consider. Each suggested card includes a recommended flag, supporting evidence, and a kit preview.

Selecting a look records your choice and clears the suggestion block. The suggestions appear only once per account and only when two or more brand candidates exist with none yet committed.

The label change is visible in the Active Intelligence preflight panel. No configuration is required.

When you choose "Duplicate with AI" from the Campaigns list or "Reuse a design" from the Start-from drawer, a short preflight form appears in the Active Intelligence sidebar before building begins. You answer a few questions about the source Campaign, then submit — Active Intelligence uses your answers alongside the Campaign context to shape the result, so the output reflects your intent rather than making assumptions about it.

  • Duplicate with AI: the Active Intelligence sidebar opens with the preflight form in place of the landing screen. Submitting sends your answers with the Campaign context. Cancelling closes the drawer without sending anything.
  • Reuse a design: picking a past Campaign opens a second step in the Start-from drawer, with a Back button if you change your mind. Submitting adds your answers to the existing turn. Templates keep their one-click behaviour and are unaffected.

If the preflight questions are unavailable for any reason, both flows continue exactly as before — no answers are sent and nothing is blocked.

When Active Intelligence is drafting email content for send steps in an Automation Canvas, the preview panel displays a writing spinner on those steps while generation is in progress. This gives you a clear signal that content is being written rather than leaving the step appearing empty or static.

When you ask Active Intelligence to build a segment using specific lists or tags, it builds from what it can find and tells you plainly which ones it couldn't match. The response names each unresolved item directly, so you know what the segment was built without and can decide whether to refine your request.

Previously, unmatched lists or tags were silently dropped — the segment was built and saved without any indication that part of your request wasn't fulfilled.

When Active Intelligence builds or edits a Campaign, its replies use the actual names of your lists, segments, and Campaigns. All four paths that could surface IDs in replies have been closed. When a name can't be read, the reply stays worded without it rather than falling back to an ID.

When your Active Intelligence memory storage is within 250 characters of its 1,000-character limit, Active Intelligence warns you and asks you to delete or shorten a memory before saving a new one.

Previously, Active Intelligence could confirm that a new preference was saved even when it was actually dropped because the storage limit was exceeded. You'd only discover the preference was lost later, when it wasn't applied.

A small blue info icon appears beside the widget's "Updated" timestamp; hovering or focusing it shows the label and an explanation of what the widget could and couldn't match. In edit mode, the note appears as a chip in the action row and clears as soon as you start editing the prompt.

The only case that still returns no widget is when there is genuinely no contributing data source to draw from.

Previously, some of these dimensions were absent or sparse in content analysis. Each recommendation is required to name the specific figure or account pattern behind it — so insights are grounded in your actual data, not general observations.

Engagement-performance and automation-health insights are unchanged.

When a chat run was cancelled while its request was still in flight, it could continue streaming alongside the replacement run, mixing content from two separate runs in the same thread.

A cancelled run stops before it starts streaming. It no longer resets the chat phase under the run that replaced it, and a superseded run's retry no longer interferes with the active run. The conversation thread stays clean.

When you attach files in the Active Intelligence chat, a warning appears as soon as you reach the attachment limit.

You can ask Active Intelligence to combine two existing segments into a single combined segment. Specify two segments by name or ID, choose how to combine them (OR by default, or specify another operator), and pick what to do with the result: save it as a new segment, update one of the two in place, or preview the combined audience without touching either original.

Active Intelligence reads both segments' full condition sets, joins them, and never deletes anything. If combining under a given operator would change the meaning of either segment, Active Intelligence will tell you which operator to use instead rather than writing something unexpected.

The Active Intelligence chat's Add context dropdown and @ menu display the correct "Your Brands" group heading, a "Default" tag next to the account's primary Brand Kit, and a replacement notice when swapping a context chip. These labels are localized for all supported languages.

The advanced filters in the Accounts Overview match the columns shown in the accounts table. The "contains" and "does not contain" filter operators are also available.

Thursday, Oct 87 updates

If best-send data isn't available for your account, the behavior is unchanged.

Active Intelligence in the Automation Canvas and Automations overview leans toward taking action when your request is vague, rather than stopping to ask clarifying questions.

When you ask a WhatsApp question from the Deals CRM context, Active Intelligence routes it to WhatsApp campaign generation and presents the native WhatsApp integration first. Common misspellings — "whatsap", "watsapp", "wasap", "wpp" — are recognized and routed correctly. Previously, the Deals CRM context caused Active Intelligence to answer directly and recommend third-party tools without mentioning the native integration.

When you ask Active Intelligence what happened to a named contact in an Automation — why a step skipped them, or what they did at each stage — it pulls that person's per-step event history and skip reasons. Previously, those questions returned account-wide aggregates that couldn't tell you what happened to one specific person.

Questions about a specific contact (by email or phone number) route to the part of Active Intelligence that can see individual event records. Questions about Automations with no contact specified — like listing all your Automations, or asking why contacts generally get skipped — continue to return account-wide answers as before.

One gap remains: if a contact never entered an Automation at all (as opposed to being skipped inside one), Active Intelligence doesn't yet cover that case.

When Active Intelligence picks an audience for a campaign, saved segments are ranked by how well their rules match the campaign brief, how often they've been used in recent campaigns, their reach, and recency — before any cap is applied. Search matches rule text as well as segment names. Lists rank by name fit, then active subscriber count.

Every value requested for a composed audience segment is checked against what was actually saved. If a value was dropped during composition, the error names each missing value so the issue is visible rather than silent.

Composed segments created during a turn that never attached to a campaign — because the turn failed, asked a clarifying question, or was retried — are deleted when the turn ends, so orphaned saved segments no longer accumulate on your account.

Run status is also more accurate: a run that ended on an error is recorded as failed rather than complete. Cancelled runs stop generating content promptly, so a cancelled run stops billing. A run that has already committed a campaign is left to finish.

Widgets are only held as "coming soon" when Active Intelligence has genuinely looked for data and found none yet. A prompt it can't fulfill — for example, a nonsense string — is declined on the spot, so your Reports page isn't cluttered with widgets that keep re-running without producing anything.

Active Intelligence no longer stops a Campaign turn when it hits an unrecognised response format. You get a readable response rather than a failed turn, and you can check the Campaign preview to see where it stands.

Wednesday, Oct 7113 updates

Clicking "Your Dashboard" opens the agent homepage directly at the My View tab. Clicking the Reports heading itself still lands on All Campaigns Performance, unchanged.

Loading the conversation timeline for a Contact with a large WhatsApp history completes reliably, without very long load times. Previously, a Contact with an unusually large history could cause the timeline to take over a minute to load. The timeline returns the conversations collected up to a 50-page limit; if that limit is reached, you see the conversations gathered so far.

Previously, the webhook fired once per list the contact was on, plus an additional legacy call — producing multiple events per complaint.

One thing to be aware of: a webhook scoped to a list other than the sending list will no longer receive the event, where it did before. If you have webhooks scoped to specific lists for spam complaint tracking, check that they're scoped to the list the Campaign was sent from.

Previously, a two-card row with one unread card produced a mismatched layout. The side card now matches the wide card's height using the same stacked layout as a three-card row. Rows with three cards, two or more unread cards, or all-read cards are unchanged.

Sending an update request with a new template name saves that name.

Behavior details: an explicit name in the request body takes priority over any name copied from a source Campaign or template. An empty name is ignored, keeping the existing name. A non-string name returns a 400 error before any changes are made.

This update covers the name field. Other documented fields — subject, content, category, editor version, additional data, and user — are unchanged by this release.

Sending an update request with a new template name saves that name.

Behavior details: an explicit name in the request body takes priority over any name copied from a source Campaign or template. An empty name is ignored, keeping the existing name. A non-string name returns a 400 error before any changes are made.

This update covers the name field. Other documented fields — subject, content, category, editor version, additional data, and user — are unchanged by this release.

Automation runs that became stuck during the incident window of October 4, 2026 at 9:00 PM through October 5, 2026 at 5:31 PM (Central) have been recovered and replayed. Contacts who were stuck in an Automation during that window will resume advancing through their journey.

The Site Tracking domain list previously surfaced an internal system record alongside your customer-added domains. That entry is filtered out of the list and cannot be deleted through the API.

Shopify is retiring the script tag method that Forms used to appear on Liquid storefronts. Forms on Shopify stores move to a theme app embed that you enable in the Shopify theme editor.

The Forms ecommerce tab shows whether the embed is active, inactive, or unknown, with a "Turn on in Shopify" button and a "Check again" button so you can confirm the status after enabling it. Status shows as unknown when it can't be verified — for example, on a password-protected storefront.

During the transition, if both the old script tag and the new embed are running at the same time, a guard prevents your Form from appearing twice on the page. This only applies to Shopify storefronts; all other sites are unaffected.

Action required: To keep your Forms working on Shopify, enable the ac-forms theme app embed in your Shopify theme editor, then check the status in the Forms ecommerce tab.

The Segment menu in the Active Intelligence Campaign send panel shows each saved segment's size from its last run, displayed as active contacts out of total along with the date it was measured. If no measurement date is available, the row prompts you to refresh the segment on the Segments page.

List segments show their name only, as they carry no count data. If your account has no saved segments, the picker shows an empty list.

The segment card uses compact view whenever the side panel drawer is open, keeping the layout usable regardless of which path you're on.

Scheduled Tasks start and repeat on the schedule you actually set.

Task start date and cadence description. When Active Intelligence creates a task with the default one-week cadence, the task starts tomorrow rather than waiting until the following Sunday. The cadence description shown after a task is created is taken directly from the stored schedule, so what you read matches what was saved.

Recurring report scheduling. When Active Intelligence offers to schedule a recurring report, it derives the cadence from your original request using a clear order of priority: your acceptance reply wins first (for example, "yes, make it weekly"); if absent, the recurrence in your original request ("every quarter" → 3 months, "last month weekly" → 1 week); then the reporting window you named ("last month" → 1 month, "last 7 days" → 1 week, "last quarter" → 3 months); and finally a default of weekly when nothing else is specified. The offer wording itself never sets the cadence.

Previously, accepting any recurring-report offer always created a weekly task, because the scheduling step ran without conversation context and defaulted to weekly regardless of what you had asked for.

Two improvements make Scheduled Tasks more discoverable and actionable.

Clearer status at a glance: Each Scheduled Task card shows a distinct chip color and icon for its status — Draft, Active, Paused, or Done. Non-done cards gain an actions menu with Edit, Activate, Pause, and Delete options gated by the card's current status. Done cards retain a plain View button.

Better onboarding card order: The Scheduled Task idea card in the onboarding panel is positioned as the third visible card, after Brand Kit and Google Ads. The weekly performance report card is fifth. This ordering is stable across different account states.

Active Intelligence chat in split view: In the narrow split-view chat, the four chat action buttons are icon buttons with hover Tool Tips so the Schedule task option fits on the row without truncation. The home page and full chat keep labeled buttons.

Scheduled Tasks appears in the main navigation at its own URL for accounts with the updated navigation. Accounts still on the previous navigation continue to find it in the drawer as before, and any saved links to the old URL redirect automatically.

The Salesforce integration preserves currency, number, and text field values of zero during hourly account syncs, so a $0.00 currency value no longer causes a sync error.

When you fix and resubmit an SMS campaign registration that was rejected, compliance can approve it again so it reaches the carrier. Previously, resubmissions were blocked, leaving the registration stuck showing the old rejected data.

SMS broadcast approvals are saved reliably

Three changes make SMS broadcast approvals reliable. First, the save retries automatically before reporting a failure, so a brief connection hiccup doesn't stop the broadcast. Second, if the outcome is genuinely uncertain — for example, after a connection timeout — you're told to refresh before retrying, rather than receiving a generic error that gives you nothing to act on. Third, if the save succeeded but a later step failed, the broadcast is correctly recorded as approved.

If you have broadcasts currently stuck in "Pending Review," refresh the page and check their status.

The Automations tab in SMS reporting displays six KPI tiles: Credits consumed, Delivery rate, Click rate, Reply rate, Fail rate, and Opt out rate. Credits consumed counts successful sends only. The Campaigns tab retains its existing seven tiles unchanged.

Previously, the KPI tiles and block list were scoped to your chosen range, but the per-block rows showed all-time figures. Selecting "View all time" or clearing the range sends the correct parameters throughout.

Omitting both start and end date parameters returns all-time data, which was the previous behavior. Malformed dates, impossible dates, or an inverted range return a descriptive error.

The Send Now button on the resend-to-new-contacts flow sends your Campaign as expected.

As part of this fix, the form's validation runs when you click Send Now. If the source Campaign has a blank subject line, you'll see a "subject cannot be empty" alert before anything is sent — previously, a Campaign with a blank subject could be sent without warning.

Trend tabs write a metric parameter to the URL, making individual views linkable. The channel filter is multi-select and scopes the chart. The existing By Ad / Reel table is retained at the bottom.

Dynamic registration Forms support a new radio button field type. When a field in the registration form has options defined, it renders as a vertically stacked radio group with proper accessibility attributes. The review step shows the translated option label for radio selections. Helper text and error text follow the active color theme.

Email Product Catalog blocks that select products by filter display product images. When no base image is available, the block uses the first available variant image.

Base product images still take priority: if a base image exists and has a valid URL, it's used. If the base image URL is empty, the block falls back to the first available variant image. If neither is available, the placeholder appears as before. Products that already rendered an image continue to render the same image. Manually selected products are unchanged.

Password reset links work for admin accounts whose password record holds a legacy placeholder value from older installations. Previously, these accounts received a rejected reset link. All admins can complete a password reset regardless of how old their account is.

The PATCH /conversions/{id} endpoint is now documented in the API contract, matching the parameters, request body, and responses already in place for PUT /conversions/{id}. The bulkCreate operation's documented success status is also corrected from 200 to 201, with the actual response shape now specified.

The notice updates if you change the recipient. This is rolling out gradually and may not be visible in your account yet.

For contacts who have opted out of open tracking, 1:1 emails sent through a connected inbox go out without an open-tracking pixel. If an open is reported for an opted-out contact — including on emails sent before the opt-out was set — it is discarded: no activity is recorded, no deal activity is created, and no Automation open trigger fires. Click and reply tracking are not affected.

The Contact detail page gains a native Open Tasks panel in the right rail, appearing after Recent Activities and before Deals. The panel is headed "Open Tasks (n)" with an "Add a task" action.

Each task row shows type and title, due date (in red when overdue), and assignee. Tasks linked to a deal show which deal they're from. A complete checkbox triggers an outcome form when needed, then drops the count and refreshes Recent Activity. A completed-tasks toggle appears at the foot of the panel. Tasks can be edited or deleted through a shared modal; delete requires confirmation.

The panel handles the "Add a task" deep link and the header menu action. Clicking a task in the Recent Activity stream opens the panel's edit modal. The panel is capped at 100 tasks and shows "Showing x of y" when the cap applies.

When a non-admin user tries to delete a list via the API, the response status code correctly indicates a permissions issue. Callers checking the response body see no change.

Selecting the last remaining conversion in the goal settings drawer works correctly. Previously, picking the final option in the conversions dropdown could cause a rendering loop.

The one-time password email sent during an unusual login challenge reliably triggers Gmail's "Copy code" verification-code card. The block order of the email is fixed to maintain this behavior across future changes. A labeled line above the six-digit code lets Gmail surface a one-tap copy button on Android and iOS. Desktop email clients show one additional bold line above the code box — everything else is unchanged.

The global navigation renders correctly even when account data is missing expected fields — such as group membership, language settings, or user information — rather than collapsing to a placeholder state.

The GET /deals/{id} reference previously listed only three fields and used a limited example schema. The documentation now covers:

  • The full deal record structure
  • The 403 response returned when a user doesn't have permission to view deals they don't own
  • The restricted-pipeline response shape
  • Both 404 cases: a deal that doesn't exist, and a deal with neither a primary contact nor an account
  • The contact field, documented as nullable — a deal requires either an account or a contact, but not both

No API behavior changed; only the reference documentation was updated.

All 31 query parameters accepted by the GET /automations API endpoint are now declared in the API specification. Previously none were declared, which caused API clients built from the spec to reject valid parameters before requests were even sent.

Parameters now documented include limit, offset, ids, search, active, has_message, label, filters, orders, and more. If you use an API client generated from the spec — including the ActiveCampaign MCP server catalog — valid parameters that were previously refused will now go through correctly.

Form submissions that arrive with a malformed or unsupported character set are processed rather than silently dropped.

Form submissions that triggered a slow or unresponsive avatar lookup could stall the contact redirect for 20–80 seconds. The lookup timeout is capped at 1 second.

A timeout leaves the contact's avatar status unchanged for retry on the next submission or preference-center visit, rather than permanently marking the contact as having no avatar after a single slow response.

The Form builder opens without error for Forms whose custom field data arrives in a keyed format rather than a standard array.

The Engage Insights page has been restyled to match the current design, with every panel present in a fixed order: KPI cards, By channel, ActiveCampaign, Delivery, Trends, Top links, Automations, and four breakdown cards.

A range switcher, All channels filter, and Export action appear in the header. The Daily trend tabs are linked to a URL parameter, so a specific tab is restored when you navigate back or share a direct link. Each panel has its own loading skeleton, and zero values display as 0, $0, or 0% rather than appearing blank. The layout reflows at three breakpoints to fit different screen widths.

Report counts are preserved when contact or asset names can't be read, CSV headers are aligned, and trend tooltips include locale-aware day labels.

A dedicated Emails tab is available on the Contact record page. It lists all emails associated with a contact — one-to-one sends, deal emails, and Campaign sends — newest first, 25 per page with a Load more option. Each row shows the subject, sender and recipient, and a relative date. Opening a row displays the full email in a side drawer with from, to, cc, date, and body. You can reply directly from the drawer, and a "Send an email" button opens the composer. The list refreshes after a send.

The ecommerce overview dashboard is available again, with all navigation entries and revenue reporting functionality restored.

Two improvements shipped together: short result sets no longer trigger a redundant database query to calculate totals, and the underlying query runs a lighter sort on the default view. The result is faster load times across search and pagination with no change to how results appear.

When creating a new pipeline, you can choose from 13 industry-specific templates — filterable by industry, such as Software or Real Estate — or define your own custom stages. Stages can have custom titles, colors, and ordering. Up to 50 stages are supported. If you don't specify stages, the three default stages are created as before.

The Contacts widget on a Deals CRM record loads correctly for users who don't have full deal list access. The widget displays the contact as expected.

The GET /api/3/deals endpoint accepts the same parameters it did before a recent change that introduced regressions. Large or complex Deals queries complete as expected.

Separately, GET /api/3/deals requests that combine a large limit with multiple include relations return a clear HTTP 400 response stating the maximum allowed limit for the number of relations requested, rather than failing with a memory error. Requests with fewer than two relations in include are unaffected.

GET /api/3/deals requests that combine a large limit with multiple include relations return a clear HTTP 400 response stating the maximum allowed limit for the number of relations requested, rather than failing with a memory error. Requests with fewer than two relations in include are unaffected.

When editing a deal's status on the Deals CRM side panel detail page, the search field that previously appeared is gone. Status editing works without it.

Datetime custom field values in Contact profiles display the correct time regardless of which time zone you're in. Previously, the value shown could be off by an hour for viewers whose local time differed from UTC.

A small blue info icon appears beside the widget's "Updated" timestamp; hovering or focusing it shows the label and an explanation of what the widget could and couldn't match. In edit mode, the note appears as a chip in the action row and clears as soon as you start editing the prompt.

The only case that still returns no widget is when there is genuinely no contributing data source to draw from.

Four improvements ship alongside the fix: failed AI image description calls now wait before retrying rather than retrying immediately. Picking a Content Manager image in the Campaign editor preserves its alt text. Opening the Content Manager picker multiple times no longer causes each pick to fire more than once. Templates saved by Active Intelligence are visible in the template library.

Previously, those contacts could slip through the checks and be subscribed even when they should have been blocked. The check now runs correctly for all email addresses regardless of special characters.

Contacts entering two Automations with "Add lead or contact to Salesforce Campaign" blocks at the same time could get stuck permanently and never advance. Those Contacts complete as expected. This works with the current released Salesforce package versions without any change on the Salesforce side.

Contact create, update, and sync operations accept a channel identities block, allowing a Contact to be identified by a platform-specific identity — such as Meta's per-business user ID — in place of an email address or phone number. This supports handling of Instagram and Messenger DMs where many people have no email or phone on record.

Identities are handled like tags and lists: all three write operations accept the block, an ownership check runs before any write, and identities are attached immediately after the Contact is saved. Every write response includes the Contact's identities so the correct row IDs are available. A conflict during a concurrent request returns an error; the next attempt resolves to the winning record through the identity lookup.

Searching for Contacts from the admin site search bar and following the link to the Contacts page returns results that match your search term. Previously, the search term was silently dropped, so the Contacts page showed your full contact list instead of the people you searched for — meaning any bulk edit you applied from those results affected all your Contacts, not just the ones you intended.

If you have bookmarks to Contact search results from the old search bar, those links also resolve correctly.

Contact scores no longer dip and recover when the segment engine is briefly unavailable. Previously, a throttled or failing engine call caused the affected scoring rule's points to be dropped from every contact in the batch, then restored on the next pass — causing scores to cross thresholds in both directions within the same minute.

The scoring engine now distinguishes between two situations: a missing segment (the rule is skipped, but the batch is still written) and a transient failure (the batch is left unwritten and retried on the next pass). Your scores stay stable either way.

A contact who previously unsubscribed and then resubscribes through a Form — including third-party integrations — is reactivated on the lists included in that Form.

For Forms with double opt-in, the contact receives the opt-in email, and confirming the link activates the list and triggers the expected subscribe Automations and webhooks. For Forms without opt-in, the list is activated immediately. Only the lists associated with the Form are affected; other lists the contact belongs to are unchanged.

Two issues on the contact page are resolved. The Custom Objects panel threw an error when the schemas request failed, affecting approximately 257 crashes and 160 accounts per day. The notes panel threw an error when the document body was null, affecting approximately 40 crashes and 25 accounts per day. Both are resolved.

After completing a contact import, clicking Continue in the onboarding flow finishes onboarding directly — the same as clicking Close. The Brought over review screen remains accessible, and the splash sample report is unchanged.

The Details panel in the inbox conversation rail shows the full set of fields from the linked ActiveCampaign contact record: standard fields (first name, last name, email, phone, account, job title), contact Scores, and Custom fields you have permission to view. Permissions are applied before the data is returned, so you only see fields your access allows.

If the contact record isn't linked or can't be read, the rail draws from the conversation identity as before. The contact record fills in a missing email or phone, but the identity's own values take precedence.

The Details panel in the inbox conversation rail shows the full set of fields from the linked ActiveCampaign contact record: standard fields (first name, last name, email, phone, account, job title), contact Scores, and custom fields you have permission to view. Permissions are applied before the data is returned, so you only see fields your access allows.

If the contact record isn't linked or can't be read, the rail draws from the conversation identity as before. The contact record fills in a missing email or phone, but the identity's own values take precedence. Date fields read as the named day rather than UTC midnight; choice values arrive as their labels.

A replay action card is available in the Automation Canvas. You can add it to any Automation the same way you add any other action card.

Both search parameters are now accepted, matching the behavior of the Contacts list.

Dynamic registration Forms render conditional fields correctly. A field appears or disappears based on the value of its controlling field — which can be on any step of the form, not just the current one.

  • Variant labels, placeholder text, and helper text update to match the controlling field's value.
  • Half-width fields are never paired with a hidden neighbor, so you won't see stranded half-empty rows.
  • The required indicator reflects conditional required rules.
  • The review step and saved drafts omit hidden fields, matching exactly what gets submitted.

Australian and Danish registration flows are unchanged.

Previously, this content was missing from the preview. The designer "Preview Email" path and the live-send path are unchanged.

One limit applies: if a contact received the same campaign from multiple automation runs, the preview uses the latest run, because the activity log does not store which specific run sent each email.

Emails built in the campaign designer keep their chosen fonts when recipients open them in Outlook for Windows. Previously, a font stylesheet link in the email HTML was blocked for unauthenticated recipients, causing Outlook to fall back to Times New Roman.

This fix applies to Campaigns saved going forward. Mail already sent is unchanged. Scheduled and Automation sends will use the corrected font links the next time the Campaign is saved.

Campaigns waiting on approval no longer lose their approval status when saved after this change, as long as no one edited the content.

When a mail server permanently rejects the sender or recipient address on a Campaign email, that Contact is recorded as a failed send along with the server's rejection message. Your send records reflect what actually happened at delivery — including the server's reason for the rejection.

Accepted envelopes continue to be reported as sent.

Campaigns whose tracked links had been removed were failing validation on every send attempt and falling back to a slower sending path, blocking roughly 11,700 send attempts per week in the US.

Those Campaigns send correctly. Link state is saved before validation runs, so removed links are cleared first and the Campaign passes cleanly.

Previews and test sends no longer track links that were deleted from a campaign. Previously, deleted links remained tracked during the link refresh step for previews and test sends, causing approximately 67,000 preview and test send requests per week in the US to be rejected with an error. Removed links are now marked stale the same way they are for real sends. System links (web copy, forward, update, unsubscribe) and social links are preserved.

The arrows previously appeared as bare chevrons with no background, making them hard to see and click against an email preview. They render with a bordered surface.

Three Campaign API behaviors are corrected:

  • Scheduling a Campaign with a send date writes to the column the sending system reads, so the Campaign sends at the time you specified.
  • Enabling a Campaign is refused when the send date is missing, unreadable, or more than one day in the past — returning a clear error instead of creating a Campaign that silently never sends.
  • Sending an empty list of recipients removes all sending lists as expected.

A date-time value with an explicit offset is used as-is; a value without one is interpreted in the account's time zone and refused if that time zone is not set. Impossible dates such as February 30 are refused. Recurring and RSS Campaigns are unaffected.

API clients that previously sent past or unreadable send-date values will receive an error going forward.

Bulk-editing segments of 500,000 or more Contacts — adding tags, lists, or automation blocks — completes without timing out.

Removal operations (removing from tags, lists, or automations) are unchanged.

When both a segment filter and a text search are active on the Contacts index, the "Edit all" button is disabled and shows a tooltip explaining the restriction. The combination is also blocked at the API level, regardless of how the request arrives.

This restriction is permanent: counting affected Contacts at scale with both a segment scope and a text search is prohibitively expensive, and the operation was already producing unpredictable results. Selecting specific Contact IDs and then clicking "Edit" is unaffected — an explicit selection overrides the segment and search scope.

The "Learn more" link in the contact import connect screen and the first-login key capture step has been removed. The link previously pointed to a documentation page that returns a 404 error.

The Branding header in the form editor stays anchored above the form while you scroll, so it remains visible and accessible throughout your editing session.

Brand monitoring previously failed to scrape important pages whose URLs used plain HTTP, logging approximately 830 errors per week. Those pages are upgraded to HTTPS before scraping, so they're included in brand history runs. Both newly discovered pages and already-stored important-page records are affected.

Active Intelligence brand monitoring retries website images that previously could not be queued for processing due to temporary infrastructure errors such as DNS timeouts or expired tokens. Previously, these images were marked as permanently failed and never re-dispatched, meaning brand logo and image data could go missing after a transient error. Retried dispatches share the existing dispatch budget. Images that failed during analysis, upload, or timeout, and skipped images, are still excluded from retry.

The Brand Kit tone evaluation accepts well-formed prose descriptions that use em-dashes, semicolons, colons, and quoted brand terms. Previously, these were read as markdown formatting rather than standard prose punctuation, and a valid description could be rejected incorrectly.

Sentences are counted by terminal punctuation only — a sentence with multiple clauses joined by an em-dash, semicolon, or colon counts as one sentence. The acceptable sentence range is 4–8, and length is only flagged when the count is unambiguously outside that range.

Brand Kit images whose URLs redirect — for example, a CDN moving a file to a new path — are fetched successfully instead of being marked as failed. Previously, all redirected image URLs failed during scraping.

Between 21–28 September 2026, approximately 1,360 of 17,658 scraped image URL validation warnings were caused by redirects. Brand Kit follows up to three redirect hops, checking each hop for security risks before making the request. Redirects to non-HTTPS URLs or internal addresses still fail. All existing image size, format, and dimension validation is unchanged.

On accounts with more than one Brand Kit, each logo file is named after its brand rather than using a generic name like logo-light.png. Previously, every kit's images shared the same generic names, so looking up a logo by file name returned the most recently uploaded kit's image instead of the correct one. This affected 3,487 accounts with more than one Brand Kit. Existing files keep their current names, and nothing that reads a stored kit changes.

When building a Brand Kit from a website, ActiveCampaign retains your company's logo even when the only available artwork is a vector (SVG) file. Previously, SVG logos were skipped and no logo was stored. Raster formats (PNG, WebP, JPEG) are still preferred; SVG is used only when no raster version is available. This applies to the brand-logo import path only.

Brand Kit scraped images whose URLs contain special characters — including template fragments, spaces, soft hyphens, zero-width spaces, and non-ASCII path segments — receive metadata and display correctly. Previously, these images were marked as failed or dropped during verification. Images already saved are not re-uploaded when the Brand Kit is refreshed.

Brand Kit image scraping covers your main page and all important pages discovered during the crawl, not just your home page. The "Refresh images" button runs an images-only crawl of those same pages, up to 500 URLs per run.

Images are reconciled on each run: new images are added, unchanged images are kept without re-uploading, and images that have disappeared from your site are removed from the Website Images folder. Removed files remain in Content Manager but are unfiled from that folder.

When you change your website URL in Brand Kit, previously scraped image records are cleared before the new scrape begins, so old and new content don't mix.

Images from Shopify stores and URLs with special characters — including international domain names — are imported correctly.

Images the AI model rejects are marked invalid immediately rather than being retried over and over.

A timing issue with the 60-minute grace period is also resolved. Previously, a race condition could cause a Brand Kit image record to skip its full 60-minute waiting period and jump straight to a failed state. Records wait the full 60 minutes before being marked failed, giving processing a fair chance to complete.

When a Brand Kit competitor or tone enrichment job was refreshed, it could appear to fail almost immediately — even though the underlying work was still running normally. The job's age was being measured from when it was first created, sometimes 60–120 days earlier, so the system treated it as overdue the moment it restarted.

Jobs now measure their age from when they were last set to run. A refresh gives the job a full window to complete before any timeout is applied.

If a job was reset before this change, it may show as failed one more time. The next refresh will correct it.

If a Brand Kit's email templates fail to generate, opening the Brand Kit page triggers automatic regeneration rather than leaving placeholder text in place indefinitely. Regeneration is limited to once per 10 minutes per kit to prevent repeated attempts.

Previously, sites hosted on shared website builders caused Brand Kit to store the builder's domain instead of yours. Tone extraction and competitor research then ran against the builder platform, returning results about the hosting service rather than your business. Evidence from production showed 6 of 18 tone extraction failures in a recent week were caused by this.

Three fixes shipped together:

  • Brand Kit keeps your requested domain even when a lookup resolves to a different platform domain.
  • Tone extraction scrapes your website URL directly, so already-stored kits benefit too.
  • Competitor research uses the host of your website URL, with a fallback to the stored domain.

Importing a URL also stores the domain correctly, so a second import of the same site is rejected as a duplicate rather than creating another kit.

A separate reliability improvement means tone extraction handles pages that return an error or where a tone can't be determined — these are treated as skips rather than failures.

Bounced contacts show a correct date in their list membership history. Existing contacts with a missing bounce date are also repaired automatically.

Scheduled insight runs that previously saved late — or required retries — due to large tool responses save on the first attempt. Between August 25 and September 25, 330 failed save attempts across 6 tasks on 5 accounts caused insight emails to arrive 10–40 minutes late.

The fix measures the size of the stored transcript before saving and trims only the largest tool responses — one at a time — until the item fits. Trimmed content is replaced with a marker that follow-up chat can read, so the conversation stays coherent. Insights whose transcripts are already within the size limit are stored exactly as before, with no trimming.

The path view in the Automation Canvas returns the complete set of blocks, including ghost blocks, so the view accurately reflects the full structure of your Automation.

Both entry points trigger the same monitoring prompt, so you can reach automation monitoring without leaving the canvas. This option is not yet enabled in production.

The entered and exited contact counts on your Automations reflect the true running totals. Previously, saving an Automation could silently overwrite those counters with stale values, causing the displayed counts to fall behind reality. The counters are updated correctly regardless of when or how often an Automation is saved.

New data points cover: Contacts who entered and completed the Automation during the period, current Contacts in the Automation, and a week-over-week comparison. Without an explicit date window, the report snaps to the last complete Monday–Sunday week. Automations with historical activity but a quiet recent week still produce a report.

Authentication redirects containing path separators are handled correctly, and the encoding used matches what the platform expects. A mismatch introduced in early October had caused redirect failures and prevented the authentication cookie from being set.

Each Campaign is counted once in the All Campaigns performance report, regardless of how many times the same label appears on it. Sends, opens, clicks, bounces, unsubscribes, and revenue figures reflect each Campaign exactly once.

Clicking the CSV export button on the All Automations report starts a background export using whatever folder and status filters you have active. When the file is ready, a success notification appears with a link to the import/export status page where you can download it.

CSV columns included: Name, Status (Active/Inactive/Paused), Contacts, Campaigns.

The export button is part of the native All Automations report, which is rolling out gradually.

The Reports view for all Automations shows each Automation's name, status (active, inactive, or paused), unique subscriber count, and Campaign count. You can filter by folder, Automation ID, or status, and sort by name or subscriber count. Hidden Automations are not included, and each user sees only the Automations their group has access to.

Active Intelligence discloses when it applied your brand to a generated Campaign, naming the source of the brand choice once the engine confirms the brand survived into the final output. A Rebrand action is available whenever a brand was applied automatically or from an existing Brand Kit, or when no brand exists — letting you pick, keep, or adjust the brand on the same turn without starting over.

If a brand was found while a Campaign was still being built, the next successful generation leads with a note that your brand has been found since your last email, shown once per newly confirmed brand.

Active Intelligence's site summary reads content from your main page and up to five important pages, with each page capped at 20,000 characters independently. Recent site changes are included, with the newest changes kept first.

Previously, the entire prompt was truncated at 20,000 characters total. Because important pages come after the main page in the prompt, they were silently dropped before the model ever saw them — meaning your site summary was effectively built from your homepage alone.

Summaries also display at their full length. They were previously cut short at incorrect lengths.

Attached email files (.html, .xml, .eml, design export) that Active Intelligence previously couldn't open now load correctly. Files are located by their unique name within your account's uploads, regardless of how they were stored. If a file is genuinely missing, Active Intelligence asks for a fresh attachment rather than retrying indefinitely.

When Active Intelligence shows a preflight form during Campaign generation and you reload the page, the form reappears with the same context it had before the reload. Any answers you'd already entered are restored, and continuing from there follows the same path as answering inline. A form you had already dismissed stays hidden.

Switching tabs on the Active Intelligence homepage updates the address bar. Any tab can be bookmarked or shared as a direct link. If you open the homepage without a tab parameter, your last-used tab opens as before.

Reopening a system alert in the Active Intelligence notifications center returns to the existing chat for that alert, across any device. Previously, each time an alert was reopened, a new chat started.

Conversations started from a system alert are saved per user and restored when you reopen the same alert. If a saved conversation no longer exists, a new one starts automatically.

The Active Intelligence widget charts display correctly for users whose account language is set to Brazilian Portuguese. Previously, the charts failed and took down the agent page for those users.

When you ask Active Intelligence to create a Campaign without specifying a URL, it draws on your brand's own monitored site pages as source material. The generated email reflects your actual products, offers, and voice rather than generic content.

Pages are passed to the email composition service automatically, separate from any URL you explicitly attach. If brand monitoring is off or no pages are stored, behavior is unchanged.

Product images from your pages, not nav chrome. When harvesting images from a linked page, the engine skips navigation menus, headers, and footers before selecting pictures. Multiple renditions of the same photo collapse to the widest version.

Images from a named page outrank Brand Kit images. Pictures from a page you explicitly name are ranked above generic Brand Kit images, so off-subject kit photos are refused rather than placed.

The engine includes a guard against inventing content from site pages that wasn't in your brief.

When you import an Automation recipe and have access to Active Intelligence, the setup prompt appears in the Active Intelligence sidebar. If the sidebar is closed or a new chat is started while setup is in progress, the import drawer opens as a fallback so setup is never lost. For accounts without Active Intelligence access, the import drawer works exactly as before.

The setup card only appears on the builder page for the specific Automation being imported; opening a new tab or navigating elsewhere clears it. Per-step import cards after clicking "Get Started" still open in the legacy drawer.

Active Intelligence reads your effective SMS permissions and explains a limitation before attempting to generate SMS content, so you get a clear answer before any generation begins.

When Active Intelligence creates a Campaign, it sets the audience and the page respects that — no second write, no conflict. Previously, the page applied the audience again under different rules, which could produce a mismatch and show a false "send plan invalid" error. That false error no longer appears.

The schedule is still written by the page. A send whose only component is the agent-set sending address is accepted correctly.

Snapshot counts show the date of the last run; a snapshot with no recent count is reported as "no recent count" with a pointer to refresh it on the Segments page. The one segment attached to a Campaign in a given turn still gets a single live estimate, matching what the Campaign page itself does.

Before saving a composed segment, its condition tree is compared against the account's most recently updated saved segments; if an equal segment already exists, it is reused and nothing new is saved. A composed segment that leaves out a requested field value or tag is never saved, and the reply says what was left out.

Lists, segments, tags, fields, and the sending address are read concurrently, once per turn, reducing latency.

Brand monitoring previously checked only a brand's homepage for changes. When the homepage was unchanged but other key pages had changed, the result was "no updates recorded."

Brand monitoring now reads important-page history alongside homepage history, so changes across your brand's key pages are captured. It also includes important pages on your site's www host and subdomains — for example, news.example.com — when those pages appear in your site map. Previously, these pages were discarded even when the site map listed them, because the check required an exact host match.

Pages still excluded: subdomain or www URLs the site map did not return, parent domains, and look-alike hosts. The brand's own homepage is also excluded from the important pages list, since it is already scraped separately as the main page.

On a split-test Campaign in the Active Intelligence canvas, the "Split test" pill sits on the variant row, to the right of the variant tabs and "Add variant" button, rather than dropping onto its own line below the settings row. Non-split Campaigns are unaffected.

The weekly Automation monitoring report surfaced by Active Intelligence includes period-scoped Contact counts alongside lifetime totals.

New data points cover: Contacts who entered and completed the Automation during the period, current Contacts in the Automation, and a week-over-week comparison.

Without an explicit date window, the report snaps to the last complete Monday–Sunday week. A single request can compute both the current and prior period windows for comparison. Automations with historical activity but a quiet recent week still produce a report.

POST and PUT requests to API v3 endpoints that sent a double-encoded JSON body previously caused an HTTP 500 error. The API returns HTTP 400 with a descriptive message — for example, "Request body must be a JSON object, string given" — for double-encoded strings, bare arrays, numbers, and booleans. Every other request is unaffected.

If your integration sends requests to POST /api/3/contactTags and has been receiving errors, check that your request body is a JSON object rather than a JSON-encoded string.

API v3 calls that use a Bearer token or API token complete normally even when the session store is temporarily unavailable. These calls don't rely on session persistence, so they fall back gracefully. Browser and admin sessions are unaffected.

The expanded documentation covers read endpoints for contact lists, contact tags, field values, notes, bounce logs, tracking logs, contact automations, contact goals, and geo IPs. Notable behavioral details are now documented: contact automations pages only when a limit is sent; geo IPs is capped at 100 rows with no guaranteed order. Null-value handling is documented for a set of fields. No behavior in the API itself changed.

The pink/blue AI gradient header is consistent across all pages that use the shared AI prompt header — SMS, Forms, Segments, Business Goals, and Automations. The Automations list skeleton no longer flashes a pale-blue style before the header loads.

Previously, a blank date field caused the wait block to stall permanently — the step would never advance and the Automation would be stuck. The wait block skips the comparison cleanly when no date is present.

Tuesday, Oct 638 updates

Sorting is handled server-side, so every Campaign in your account stays reachable across pages regardless of how many you have. The sort arrow on the column header shows the active direction.

In the Re-engage sequence detail drawer, each step's label and message copy appear on separate lines with clear spacing between them.

When you edit a segment by typing a new prompt in Active Intelligence, the segment card reflects the updated conditions immediately. The segment detail and audience queries refresh as soon as the segmentation response streams in, so what you see matches what you asked for without a manual reload.

On the automations tab of the SMS performance report, a new Automations dropdown lets you narrow the report to one or more specific Automations. The block list and KPI snapshot both update to reflect your selection. Your filter is saved in the page URL, so you can share or bookmark a filtered view. Switching to the campaigns tab clears the filter.

In the SMS builder, the Schedule/Send button is disabled for users who don't have send permission, with a Tool Tip on hover so they know who to hand off to. The builder itself is only accessible to users with campaign management permission; others are redirected.

On the SMS index, users without management permission see a read-only view: the Create button is hidden, row checkboxes and bulk actions are removed, and Delete/Duplicate are gone from the row menu. Draft rows show a "View SMS" button; sent and sending rows keep "View report."

This is part of the SMS Permissions rollout and is off by default. When it's enabled for your account, the behavior above takes effect automatically.

The SMS Automations report date filter previously scoped the KPI snapshot but not the row list. Selecting a date range with no activity showed every automation with blank metrics instead of an empty state.

The filter applies consistently to both the KPI tiles and the row list. When the selected date range returns no results, a clear empty state appears with recovery options. A malformed or inverted date range returns an error rather than silently falling back to a 30-day window.

Row-level metrics remain all-time figures and do not yet reflect the selected date range.

If your message variables contain HTML that the Visual editor couldn't represent — tables, image layouts, style tags, full document markup — opening them in Visual used to flatten that markup to plain paragraphs, and saving would overwrite your original code.

The Visual editor renders those blocks as editable sections in place. Your original markup is preserved exactly. Toolbar actions — bold, italic, underline, strikethrough, alignment, lists, indent, text color, block type, link, and clear formatting — all work inside those blocks. Blocks you don't touch round-trip without any change. Personalization tags, conditional content, and the rest of the toolbar behave the same regardless of content type.

Two things to know: Clear Formatting does not remove links — use the link popover's Remove button for that. Font size changes don't apply inside raw blocks.

The landing pages editor no longer shows a second scrollbar alongside the page editor.

In the form builder's field editor, clicking the "Required" checkbox label reliably toggles that field's required state for all field types.

When you submit a Denmark SMS number registration, the review step waits for the number to be fully provisioned before navigating to the hub. The hub shows the correct status immediately on arrival — ready when the number is provisioned, or a specific address or purchase failure reason if something went wrong — rather than a long pending state that didn't reflect what was actually happening.

On a successful registration, you land in the hub. On a failure, the review page stays open and surfaces the specific reason without implying a document rejection. Status chips and send-readiness indicators treat a provisioned number as approved and a failed one as an error.

The Deals panel sits in the right-hand rail of the contact detail page. It defaults to showing open deals and lets you filter by open, won, lost, or all. Pagination is built in, and an "Add deal" button creates a deal and immediately updates the panel and count.

Restricted deals show only their title and a no-permission note, and are sorted last in the list.

When potential duplicate deals are detected, a banner appears inside the deals list and scrolls with your deals rather than crowding the activity stream.

Accounts on a starter plan see an upgrade prompt with a link to the Deals upgrade page instead of an empty panel.

In the Deals CRM tasks view, the four task buckets — Overdue, No Task Assigned, Upcoming, and Scheduled — share fixed column widths. Contact Name, Account, Deal Title, Next Action, Deal Age, and Deal Value line up consistently across all buckets regardless of what's in each cell.

When a bucket has no tasks, it shows a clean header with a count of zero — no expand/collapse control and no empty table. Buckets with tasks continue to work as before.

When you open the Add a task modal on a deal detail page, the task type defaults to Call, the due date defaults to today, and the due time defaults to the current time. Save is enabled the moment the modal opens.

The Call default matches by name from your account's task type list. If your account has no task type named Call, the dropdown shows its usual placeholder and you pick from your list. Editing an existing task is unchanged: it shows the task's saved type, date, and time.

The "Welcome to Deals CRM!" modal no longer appears when a pipeline search returns no matches. It's reserved for accounts that have no pipelines at all.

A custom connector setup form is available in the integrations area, so you can configure a custom connector directly from the product.

The contact record displays a contact's email open-tracking consent state in two places: a header row reading "Email open tracking: Opted out · [date]" (shown only when the contact has opted out) and a read-only field in General details showing the state and date.

The field distinguishes three states — opted out, consented, and never asked. Contacts that have never been asked show an empty field value, hidden by the panel's Show Empty Fields toggle.

When no task is assigned, a placeholder is shown. Restricted deals show neither the stage color nor the next-task line. The account page deals view is unchanged.

The contact import card appears in the right rail of the Inspire me tab, beside the Build engagement ideas cards, rather than on the Your dashboard tab. When the import card would be the only content on Inspire me and account data hasn't loaded yet, the tab waits rather than opening a blank rail. The legacy homepage placement is unchanged.

The Store column on a Contact's ecommerce tab shows the correct store name for every order, including those from connections beyond the first 20.

The Active Intelligence prompt header on the Campaigns page displays a violet, blue, and pink gradient band across the top, matching the visual treatment used in the Automations first-time experience.

Also: clicking a suggestion chip refills the prompt every time, including when you've edited the text it placed and click the same chip again.

If your campaign's audience is a single tag that isn't among the first 100 tags loaded in the dropdown, the field fetches that tag by ID and displays it correctly. The fetched tag is cached immediately, so there's no delay or blank flash.

Search in the tags dropdown also covers every tag in your account — your search text is sent to the server, so no tag is silently out of reach. Tags already shown stay visible while a new search loads.

The dropdown still shows up to 100 tags when you open it without searching.

When a campaign's audience uses a single "Tag exists" custom condition, the Send To field correctly identifies the segment, shows "Edit conditions," and opens the builder pre-filled with your saved conditions. Existing campaigns are fixed without any changes to your data.

When you import an Automation that requires setup, the Active Intelligence sidebar opens with a setup card offering "Get Started" and "Skip setup" buttons. The card matches the previous import drawer's behavior: an entitlements warning banner appears for upgrade-entitlement imports, and buttons show a loading indicator while the builder is processing.

If you dismiss the sidebar — by starting a new chat, navigating away, or opening another call-to-action — the builder falls back to the original import drawer, including the "Back to recipes" option. The setup card only appears on the builder page for the specific Automation being imported; opening a new tab or navigating elsewhere clears it.

This prompt appears only for accounts with Active Intelligence access. Accounts without it continue to use the existing import drawer unchanged.

Per-step import cards after clicking "Get Started" still open in the legacy drawer; moving those into the sidebar is planned for a future update.

Previously, steps placed after a follow gate were hidden or never ran because the builder didn't know how to display the gate's paths. Steps saved after a gate on the same path load onto the follower arm, which is where contacts actually travel.

A gate with empty arms is not flagged as incomplete. Like any split, a gate ends its path and can't be inserted mid-flow.

A Recipes page lets you browse a catalog of pre-built Automations, filter it, and install one in a single click. Installing creates the Automation in a paused state, so nothing goes live until you switch it on.

The buttons appear on the latest settled reply, only when a confirmation with both options is present. Clicking either sends your answer through the same path as the existing Automation continue button. The buttons are hidden if a later message arrives, if the reply is still streaming, or if a newer Automation result supersedes the current one.

The Automation Canvas builder loads correctly after you preview an Active Intelligence-generated automation and click "Review and Activate." Some new accounts previously saw a blank builder page after that step.

The Approvals tab stays mounted while a previously-failed suggestions read is retrying. The initial load still hides the tab, and a successful empty read still redirects away from the approvals URL as before.

The button appears in the tab header on the right side, consistent with the layout of other deal tabs. Upload behavior, authentication, and notifications are unchanged.

Active Intelligence can act on IDs that appeared earlier in the same conversation, whether you typed them, a tool returned them, or they appeared in a table, without requiring you to restate them.

When a chat request times out, Active Intelligence displays a warning banner with a Retry option. Two cases are handled: a request that never started, and a reply that began then went quiet. Retry sends the same message again. The banner appears as soon as the stall timer runs out and follows your light or dark mode setting.

The warning banner on the Active Intelligence instructions page — shown when no instructions have been saved — displays its full description text below the title.

Email addresses used as contact IDs: when you pasted a list of email addresses, Active Intelligence was sending each one as a numeric contact ID, which the API refused. It recognizes that an email address is not an ID, looks up the correct numeric ID first, and continues.

Unrecognized parameter names: query parameters the API doesn't accept were refused 526 times across 334 conversations in the seven days to October 2, halting the task each time. Active Intelligence checks parameter names against the API before sending, so invalid names are caught and corrected before the request goes out.

One limit remains: segment UUID values on contact lookups will be refused until the API catalog is updated to reflect that the API accepts them.

Previously, Active Intelligence reported the emails as built even when none were generated. Accuracy on this scenario improved from 0 out of 12 correct responses to 9 out of 12.

When you attach a PDF or other document to a conversation and reference it in a later turn, Active Intelligence can read the file's contents again. Previously, re-reading a file from an earlier turn failed silently — Active Intelligence fell back to a shorter summary of the file, losing detail, or declined with a message that it couldn't open the file. Over 30 days in production, 184 "could not read the stored file" fallbacks occurred from this cause.

Previously, an empty symbol list caused the rename request to fail before it was sent. The rename proceeds with the correct data and leaves all other Brand Kit content unchanged.

When Active Intelligence builds a widget from a single Automation's block events, the reviewer sees the send and skip totals, block type counts, and total event count that the chart actually renders.

The "View all integrations" link goes to the integrations listing page.

Monday, Oct 528 updates

When you choose to resend a split Campaign, a picker lets you select which variant to send. It defaults to the winner, or shows no selection if no winner has been decided yet. The resent Campaign goes out as a regular Campaign with one email, not a split test — a note in the picker tells you this before you confirm.

The restored flow is fully localized: all supported languages see translated labels for the variant selection prompt, winner badge, and validation message.

Visibility toggles: The Image, Title, and Author elements on a Showcase block can each be shown or hidden individually using the visibility switchers in the editor panel. At least one element must remain visible.

Text truncation: A "Truncate text" switch in Showcase block settings limits Title to 2 lines and Author to 1 line, with "..." added when text is cut. Truncation is applied when you write text into the block, because email clients do not run scripts. The character limit is based on the tile's width — not a pixel-exact measurement — which is an accepted trade-off given the email's fixed content width.

Visibility toggles apply to newly added Showcase blocks. Blocks already saved in existing templates or Campaigns keep their previous settings.

The /schedule-task entry in the Active Intelligence composer slash menu shows a Tool Tip on hover explaining what Scheduled Tasks do. The tooltip reads: "Set up work that Active Intelligence runs for you on a schedule — a Monday recap, a daily check on bounce rates, a Friday list of contacts who went quiet. Describe it once and say how often; the results come back to you each time it runs."

The Scheduled Tasks chat input displays three example prompts that rotate to show you what kinds of tasks you can create:

  • "Every Monday, recap last week's campaign performance."
  • "Every month, draft a campaign based on content from my site."
  • "What scheduled tasks should I create to help my marketing?"

These appear in the collapsed composer so you can see possibilities before you start typing.

The landing page editor top bar shows two corrected labels.

The "View as" label before the desktop/mobile device switch previously displayed as a raw translation key. It renders correctly.

A "Selection:" label has been added before the context menu that shows Auto, Element, Column, Row, and Section options.

Both labels are localized so each language can punctuate them appropriately.

The post-import performance report includes an industry average benchmark line under the open-rate and click-rate rows, displayed as a formatted percentage — for example, "Industry avg 24%" — so you can see at a glance how your historical sending stacks up against your industry.

Previously, every tool error triggered repeated calls that could never succeed, exhausting the retry budget.

Errors caused by your input or account configuration end the run with a clear result rather than a failure. Errors on read-only or idempotent operations may retry once after a short delay. Errors on write operations that may have partially applied end the run with a result noting the partial state. All other errors end the run immediately.

The filter appears in the list controls row alongside the unread toggle and sort controls. The list updates in real time: if a conversation moves out of the current filter view — for example, a conversation gets assigned while you're viewing Unassigned — it's removed from the list automatically.

The Deals tab on a contact's profile gains a sort control and three new filters — Pipeline, Stage, and Owner — alongside the existing status filter.

Sort options: Newest First, Oldest First, Recently Updated, Least Recently Updated, Value High to Low, Value Low to High, and Alphabetical A–Z / Z–A. The default order is newest-created-first.

Pipeline, Stage, and Owner options are drawn from the contact's own deals, so every option in the list returns at least one result. Stage options group under pipeline headers until you pick a pipeline, then only that pipeline's stages appear. Changing the status filter drops any Pipeline, Stage, or Owner selection that no longer applies.

When filters narrow the list, a "Showing N of M deals" count appears below the toolbar. If no deals match, a distinct empty state appears with a prompt to clear filters. When you add a deal while filters are active, a toast offers "Show all deals" to reset the view.

Clearing filters leaves the status filter alone. Filter and sort choices last for the session only — they are not saved between visits.

One value per filter is supported. Multiselect for Pipeline, Stage, and Owner, and sorting by pipeline, stage, or close date, are not included in this release.

Active Intelligence Deals CRM insights have been substantially improved across forecasting, pipeline summaries, and multi-currency handling.

Forecast improvements:

  • The top-3 deal concentration figure is bounded to 100%. Previously, mismatched deal populations could produce figures like "191% of forecast depends on the top three deals."
  • Forecast results can be scoped to a date window — "this month" or "Q4," for example — so the card answers the question you actually asked.
  • Deal win probability is used per deal when available (0–100%), with stage position as a fallback only. Accounts without win probability configured keep the previous behavior.

Pipeline summary improvements:

  • Pipeline health and stalled deals use the same scope by default. Previously, pipeline health defaulted to the first pipeline while stalled deals covered all pipelines, causing stalled counts to appear larger than the total pipeline on multi-pipeline accounts.
  • Stage bottleneck detection is per-pipeline: a stage is flagged when it holds more than 40% of its own pipeline's open deals, not 40% of all open deals across the account.
  • The 1,000-deal fetch cap and access-exclusion notes appear as a closing footnote rather than as a primary insight, so they no longer dominate the card.

Multi-currency handling:

All monetary totals — pipeline value, forecast, stalled value, owner performance, similar deals — are summed per currency. When deals in a scope use different currencies, the total is shown per currency rather than added together. Single-currency accounts see the same figures as before, now labeled with the currency code.

The hex input label in the color picker displays "Hex" as expected.

The operator labels for subscribed-list conditions in the segment builder now describe what each operator does, making it easier to build the segment you intend.

For accounts without a Brand Kit, Active Intelligence begins building the brand candidate set as soon as a conversation opens, so candidates are ready by the time you finish typing your first message. Accounts that already have a Brand Kit are not affected.

The Automation path view displays a Tool Tip when the Automation is paused. If you're looking at a path that isn't moving and wondering why, the Tool Tip tells you the Automation is paused so you know exactly what to address.

A new metric for anonymous pixel tracking is available in the campaign performance report, giving you an additional data point on how your Campaigns are being engaged with.

Active Intelligence's top-engaged contacts feature loads correctly on accounts with large subscriber lists, where it previously returned an error.

The updated toolbar appears in the Agent home, conversation view, Scheduled Tasks, and Campaigns. While the attach menu is open, the plus sign rotates to an × to show the menu is active. Users who have reduced motion enabled in their system settings see the open state without the rotation animation.

The process can take up to about four minutes. The dashboard header and controls — Create, refresh, and manage — stay visible throughout so you know you're in the right place.

A step-by-step progress display walks through what's being built: pulling numbers, creating visualizations, and assembling each widget, with a midpoint marker and a closing message when everything is ready.

The skeleton cards below the header show real chart shapes — area, bar, line, and pie — dimmed to signal they're not live data yet, with a slow sweep of light across them. If you have reduced-motion settings enabled, the charts appear dimmed and static instead. The quick skeleton shown on normal page loads for returning users is unchanged.

Active Intelligence uses a filtering step when processing results from API calls. When a response wraps its list inside an object — as the brand kits response does — Active Intelligence previously returned an error instead of the records you asked for. Active Intelligence now navigates nested response structures correctly, so requests that previously failed with an error return the results you'd expect.

Active Intelligence handles discount codes and deadlines more precisely when generating Campaign content. When a discount code or deadline is something only you know, Active Intelligence leaves a blank placeholder in the draft for you to fill in rather than inventing a value. The review step that checks proposals has also been strengthened: it correctly distinguishes promotional codes (including digit-leading codes like 20OFF) from units, ordinals, and other number-like strings; reads currency amounts in words and symbols across multiple languages; and recognizes offer patterns like "Buy 2 get 1 free" and "BOGO." Proposals that try to rewrite existing content, or that ask for something already provided earlier in the conversation, are rejected. The preheader suggestion is only offered when the email's preheader is currently empty.

Active Intelligence also applies your brand style to Campaign generation automatically, without requiring a Brand Kit to be saved first. When a brand has been built in the background and meets the confidence threshold, it's applied to the generated email automatically. You can override this at any time by submitting your website or choosing to describe your brand manually.

When Active Intelligence encounters specific situations while editing or importing a Campaign, it surfaces notices in plain language.

  • Import notices: descriptions explain which kind of design element could not carry across during an import, and how pasted copy was interpreted.
  • Image spot notices: when a picture slot could not be filled, the notice names the slot by its section number and image source.

Four in-chat notices are also shown during Campaign editing: a "no change needed" notice citing the section numbers involved, an "image not found" notice when a required picture could not be located, a "designer-ported layout" notice when a layout was rebuilt because Active Intelligence cannot edit it directly, and a "conditional content unavailable" notice when a first-name greeting was left as written.

The context selector in the Active Intelligence toolbar uses an updated icon and adds Tool Tips to its controls, completing the interactive behavior of the control.

Active Intelligence can retrieve conversion attribution data for Automations, including lifetime converted totals and conversion percentages. A converted total or percentage of 0 is reported as 0; a missing or non-numeric field is treated as not available and not reported as zero.

This capability is behind a feature flag.

Open counts, open rates, and click-to-open rates reflect the raw count that includes Apple Mail Privacy Protection opens. The other improvements from the earlier data-source change remain in place.

Previously, opens and clicks from sends that predated your selected window were included, which caused unique opens to exceed total sends in low-volume Automation emails.

Active Intelligence can report on your SMS Automation activity — account-wide or for a specific Automation — when you ask about it.

You can ask how many SMS Automations you have, request performance data for a specific Automation by name, or see metrics scoped to a single Automation. Metrics include sends, deliveries, replies, failures, opt-outs, and clicks. Automations that exist but have never sent are included in the count, so the total reflects your actual setup, not just active senders.

Reply rate can display above 100% when accumulated replies in the 30-day window exceed the send count in that same window.

When Active Intelligence looks up your top engaged Contacts, it uses the correct data source. If that lookup fails, Active Intelligence retries once via the correct source and then declines the widget with the actual failure reason — rather than substituting a different, slower query that could cause "API experiencing high load" errors and obscure what went wrong.

The button and modal title for adding a contact in the deal detail Overview contacts panel and account detail contacts card read "Add a contact", matching sentence case used across the rest of Deals CRM.

Friday, Oct 225 updates

The Clarivate integration tile and its connection settings page display Clarivate's logo. The grey placeholder that appeared previously is replaced in both the integrations list and the single connection edit page.

When you mark a deal task complete and the task type requires an outcome, an outcome step opens — with an outcome picker, a "More info" input, and Cancel / Mark complete buttons — before the task is saved. Tasks whose type has no outcomes still complete in one click.

The page header on the Edit Segment tab maintains its full height when the segment builder below it is tall. Previously the header shrank on the Edit tab compared to the Contacts tab.

The Contacts tab on a segment — available both on the edit segment page and in the Active Intelligence sidebar — displays the total number of matched Contacts above the list.

The count behaves accurately at every stage:

  • A loading skeleton appears while data is fetching.
  • A ready but empty segment shows 0.
  • While the segment is still computing or has errored, the count is hidden entirely, so a false zero is never shown.

Formatting is locale-aware. A refresh button below the count lets you recompute it against the current segment definition without leaving the page. The button is disabled while the refresh is running.

The blue check mark that previously appeared on the /schedule-task row has been removed. Hovering over the option shows a Tool Tip: "Set up work that Active Intelligence runs for you on a schedule — a Monday recap, a daily check on bounce rates, a Friday list of contacts who went quiet. Describe it once and say how often; the results come back to you each time it runs."

The Tool Tip follows your page theme, appearing dark on a dark page and light on a light page.

In the Campaigns list, scheduled Campaigns display the exact send date and time next to the relative countdown — for example, "in 3 hours (10/02/2026 20:00)". The date and time use your account's configured time zone and date/time format. Other Campaign statuses are unchanged.

Click rate, reply rate, and opt-out rate in the SMS Automations report and folder views are now calculated against delivered messages, bringing them in line with how the Broadcasts report has always worked. The numbers you see across all SMS surfaces are consistent.

The surfaces updated include the Automations report individual view, the Automations aggregate table, the SMS index metric cell, and the SMS folder-view broadcast card. Delivery rate and fail rate continue to use sends as their denominator. When deliveries is zero, engagement rates display as 0% rather than a dash.

You can ask Active Intelligence questions about SMS Campaign click counts and click-through rates. Unique clickers are counted as distinct subscribers; total clicks as distinct events. Click-through rate is calculated as unique clickers divided by delivered messages, consistent with the reply rate and opt-out rate denominators used in the Broadcasts report.

When a click-through rate can't be computed reliably, Active Intelligence returns a plain explanation with the raw clicker and click counts rather than a misleading ratio.

A few things to keep in mind: CTR is over deliveries, not sends or opens; SMS clicks aren't scanner-filtered, so they aren't directly comparable to email CTR and can't be segmented by list. Click and CTR metrics for Automations aren't yet available.

Several pages that previously redirected away when you lacked access or the URL was invalid display a clear 403 or 404 message at the same URL, so you keep context about where you were.

  • Inbox deep links: Visiting a conversation URL without inbox access renders a 403 at that URL instead of dropping you on the SMS overview and losing the conversation ID.
  • Campaign reports: A Campaign report for a missing or off-limits Campaign shows a 403 (permission refused) or 404 (not found) with a link to the Campaign list, rather than silently redirecting to the list and losing the Campaign ID.
  • Malformed Campaign IDs: A non-numeric Campaign ID in the URL renders a not-found page in place rather than loading the overview.
  • SMS with no access: Users without SMS access see a 403 in place rather than being sent to the overview.
  • Conversation, insight, and Scheduled Task deep links: Direct links to conversation, insight, and Scheduled Task detail pages render a 403 at the correct URL rather than dropping the ID and redirecting to the default dashboard.

The two-column layout for the website URL input step during onboarding is the permanent experience for all users. The layout shows the prompt copy "Get marketing assets..." and the field label "Enter your business URL," with the logo displayed inline.

After completing an import review, clicking Continue opens a performance report covering six checks: open rate, click rate, bounce rate, unsubscribe rate, duplicate Contacts, and send-time opportunity. Rows are omitted when values are missing. Open and click rates include an industry benchmark comparison when one is available.

Active Intelligence appears alongside the report, summarizes your account, and offers up to three suggested prompts based on the report. Selecting a prompt or typing a message opens an Active Intelligence chat in a new tab. The Active Intelligence rail can be collapsed and expanded without affecting the onboarding flow.

Two hover animation issues in the Active Intelligence sidebar are resolved. The AI credit usage row animates on hover with bars rising from a shared bottom. The Scheduled Tasks clock no longer draws with a thicker stroke during its hover animation.

The Deals tab on a contact's profile gains a sort control and three new filters — Pipeline, Stage, and Owner — alongside the existing status filter.

Sort options: Newest First, Oldest First, Recently Updated, Least Recently Updated, Value High to Low, Value Low to High, and Alphabetical A–Z / Z–A. The default order is newest-created-first.

Pipeline, Stage, and Owner options are drawn from the contact's own deals, so every option in the list returns at least one result. Stage options group under pipeline headers until you pick a pipeline, then only that pipeline's stages appear. Changing the status filter drops any Pipeline, Stage, or Owner selection that no longer applies.

When filters narrow the list, a "Showing N of M deals" count appears below the toolbar. If no deals match, a distinct empty state appears with a prompt to clear filters. When you add a deal while filters are active, a toast offers "Show all deals" to reset the view.

Clearing filters leaves the status filter alone. Filter and sort choices last for the session only — they are not saved between visits.

One value per filter is supported. Multiselect for Pipeline, Stage, and Owner, and sorting by pipeline, stage, or close date, are not included in this release.

Several controls in Active Intelligence that previously reset on page reload now save and persist.

  • Objectives save with Active Intelligence.
  • Reasoning effort, auto-react, and its emoji persist across reloads.
  • Routing rules persist. Active Intelligence does not apply them yet, and nothing on screen indicates otherwise.
  • Turn rating (1–5 stars) is available in the Activity tab on each individual turn.
  • Persona generation — generate a persona from your account's own objectives and knowledge, then apply it like a preset.
  • Flow drafting — describe a goal in plain words and get a paused flow drafted, with a link to open it in the Flows builder.
  • Voice clips — record or upload voice clips (AAC or MP4, up to 10 MB), play and delete them, and switch pre-recorded clips on.

Adaptive reply chips, comment replies, and relay to an Automation reset on reload.

When a Denmark SMS registration is rejected, the registration form displays the specific reason returned by the carrier above the prefilled form, so you can see exactly what needs to be corrected before resubmitting.

If the stored reason has been cleared or the registration was never rejected, no banner appears.

The SMS composer credit estimate prices messages to Denmark registrations correctly. MMS is not supported for Danish numbers, so MMS messages to Denmark show a cost of 0 and the tooltip estimate is suppressed, rather than silently falling back to the SMS rate.

Previously, following a deep link to a conversation, insight, or Scheduled Task detail page without the right access would redirect you away and lose the ID from the URL entirely. Those pages render a 403 at the correct URL, so you keep context about where you were and the link stays shareable.

Clicking the Forecasted close column header in the Deals CRM spreadsheet view sorts the list. Previously, clicks on that column were silently ignored. Saved sorts and deep links using that column also apply correctly.

Deal cards in the Deals CRM pipeline view show the correct contact avatar again. When a card displays the Contact or Contact-and-Account field, the contact's avatar leads that row — so you can identify the person at a glance without opening the deal. The avatar appears automatically whenever you've selected the Contact or Contact-and-Account field; no separate toggle is needed.

The overview dashboard tasks widget returns correctly after visiting a deal detail page in the same tab. The deal task modal's Task type dropdown also populates as expected after visiting the overview dashboard. Both issues are resolved.

An "Assigned to" dropdown in the SMS inbox conversation header lets you assign a conversation to yourself, a teammate, or clear the assignment. The dropdown loads all account users. The current assignee is shown in the trigger. If the assignment write fails, the previous assignment is restored and an error is shown.

After Active Intelligence generates a Campaign, up to three additive suggestions appear above the composer. Each one adds something the campaign is missing — a preheader, a personalization tag, a secondary call-to-action, a discount code, or a deadline — grounded in your brief or the email's own content. Suggestions never assess, shorten, or remove anything already there.

Active Intelligence classifies your campaign's purpose (promotion, newsletter, event, announcement) and only offers additions that fit: a webinar brief never receives a discount-code suggestion; a promotion never receives a summary. A check runs before any suggestion reaches you, dropping candidates that use judgmental language, invent figures, or lack a quoted anchor from your brief or email. If nothing is provably missing, the row stays empty.

Clicking a suggestion sends it as a real edit turn — the composer is left exactly as you had it. Suggestions that need your input (such as a discount code or deadline you haven't provided) open in the composer with the blank pre-selected so your first keystroke fills it in. Accepted suggestions recompute the row for the new version of the campaign.

Suggestion chips are written in English or Spanish only; campaigns in other languages receive English chips.

When you ask Active Intelligence to create a field whose name matches an existing field with different options or a different type, it no longer changes the existing field automatically. Instead, it tells you about the conflict and asks whether you want to create a new field under a different name or edit the existing one.

This matters because custom fields are shared across all Forms that use them — a silent change would have updated the field everywhere it appears. Active Intelligence asks first, so you stay in control of which fields change and which don't.

This acts as a safety net: when a rate is incoherent, Active Intelligence produces no card and no generation. A rate of exactly 100% is treated as valid.

After Active Intelligence generates a Campaign, a row of up to three additive suggestions appears above the composer. Each suggestion shows what it would add and why, drawn from your own brief or links already in the email. Clicking a suggestion sends it as a real conversation turn, triggering an edit.

The suggestion engine only proposes additions — a preheader, a discount code you asked for, a deadline line — and never assesses or removes content. It classifies the Campaign's purpose (promotion, newsletter, event, announcement) and only surfaces candidates that fit: a webinar brief never gets a discount-code suggestion; a promotion never gets a summary. When the engine finds nothing to add, it returns a neutral line rather than a verdict.

A suggestion whose material only you can provide — such as a discount code or cut-off date — opens in the composer with the blank selected, so your first keystroke replaces it.

Thursday, Oct 148 updates

The connection screen for importing contacts from a previous contact database has an updated headline — "Connect your account to get started" — and supporting copy that describes the migrate-and-start flow. The read-only notice, Connect, and Skip buttons are unchanged.

The date follows your account's configured time zone, locale, and datetime format — the same format used in the activity stream. If a tag's name is too long to fit in its chip, the Tool Tip shows the full name above the date. Tags with no recorded date show no Tool Tip.

The sort dropdown on the Tags tab is also translated across all supported languages. This is part of the Contact Detail Page Refresh, which promotes tags from a single row to a full tab with alphabetical sort and removable chip display.

When setting up a repeating Scheduled Task, two improvements make the end date easier to work with.

If you pick an end date that has already passed, a warning appears immediately — blocking save — with the message "The selected end date has already passed, therefore the schedule will never run." Previously, no error appeared until you attempted to save.

The schedule summary sentence includes the end date when one is set, reading as "Starts on [DATE] and repeats every [frequency] and ends on [DATE]." Previously, the summary gave no indication an end date had been configured.

These improvements apply to sub-daily cadences. Daily-or-longer cadences don't show the end date field.

A "Schedule report" option appears alongside the Analyze button on eligible dashboard widgets. Clicking it opens Active Intelligence in a Scheduled Tasks context and submits a weekly report prompt. On each run, Active Intelligence re-queries the widget's original request against fresh data and returns changes, drivers, and recommended actions.

This feature requires existing Scheduled Tasks access.

The platform loads the correct, current build in Safari. Blank pages and errors in these areas on Safari are resolved.

The inline segment summary on an If/Else block in the Automation Canvas shows SMS list names, so you can read your branch conditions at a glance without opening the block.

You can export Reports data to a CSV file directly from the Reports section.

The All Automations report also has a CSV export button. Clicking it starts a background export with your current filters applied and shows a success notification with a link to the import/export status page when the file is ready. The export includes Name, Status, Contacts, and Campaigns columns.

In read-only email previews — including version history, Active Intelligence Campaign draft cards, and translation review — personalization tags display as violet chips directly inside the preview content. They scroll natively with the email, scale with the surrounding text size, and show the tag's display name (for example, "First Name") rather than the raw tag syntax. Your exported HTML is unchanged.

Several pieces of text that were showing a stray "}" character instead of the intended value are fixed across 16 languages.

  • The personalization chip tooltip in AI email preview reads "First name is filled in for each contact when the email is sent."
  • The Automations list shows "3 labels added to an automation" / "3 labels removed from an automation" correctly.

HTML you author in a message variable's Code tab is preserved exactly when you switch to Visual mode and back. Previously, clicking inside the Visual editor after switching from Code would rewrite your markup — flattening structure to plain paragraph text and inserting extra line breaks — so switching back to Code returned a different document than you wrote.

The editor distinguishes a click (selecting a position) from an actual edit, so clicking in Visual mode no longer overwrites your Code tab content.

The Manage columns menu stays open while you toggle columns on or off, so you can make all your changes in one pass without reopening the menu each time.

The previous wording told you to "submit the prompt in the new tab" as though the prompt would already be there — but at least one major AI service no longer supports URL prefill, leaving an empty text box.

The new instructions read: "We'll copy a prompt and open your selected AI service. Paste the prompt, then copy the response back here." Prefill remains available as a convenience for services that still support it.

When a file upload is rejected because too many uploads are already in progress, a toast message appears with the file name and a prompt to try again in a moment. Previously the file disappeared silently with no explanation.

This applies to the standard file attachment component.

The Engage Settings area has been rebuilt to match the platform's design system. The hub uses a breadcrumb-plus-title header and a card-grid layout. Sub-routes show a label-and-description beside a card of rows.

Specific improvements include: the ice breakers drawer with autosave and prompt management; channel connection health banners in warning styling; reconnect reason banners in the channel drawer; Channels tab counts showing connections that need attention; and messaging rules with a disabled state. Empty and error states are present throughout where none existed before.

Settings copy that was previously missing — causing raw text keys to display — has been filled in across the ice breakers drawer, the Connect page, reconnect reason banners, the invite a teammate link, test delivery failure messages, and the delete workspace note.

SMS is visible in Settings but marked Coming soon. The delete workspace option is also shown as Coming soon.

Active Intelligence Deals insight cards consistently include the stalled-deal section. Previously, stalled-deal requests were answered with forecast data or pipeline health data in roughly 74% of cases — accounting for approximately 26% of Deals quality rejections categorized as "stalled deals section missing." Stalled-deal requests route to the correct tool even when surrounding context mentions pipeline health or forecasts.

Cancel and Send buttons in the one-to-one email composer drawer are right-aligned, with Send as the rightmost action. Save and Cancel buttons under the Notes tab and inline field editors in the Overview tab are also right-aligned. Button spacing in deal detail modals — including Delete deal, note confirmation, Add/edit task, and Add contact — is consistent with design standards.

The Add a task modal's form fields render completely — dropdown focus outlines and open-menu shadows are no longer cut off on the left. The "Hide Empty Fields", "Show Empty Fields", and "Manage Fields" buttons on the Overview tab use sentence case, matching the rest of the Deals CRM detail page.

The segment edit page includes a Contacts tab, matching the tab already available in the agent drawer. The tab shows the Contacts that match the segment's current criteria. It only loads when you open it, and any edits you've made to the segment are preserved when you switch to the tab and back.

The performance report shown after importing contacts has been reworded throughout. Headings, section titles, and row labels frame your imported data as a diagnosis rather than presenting a neutral dashboard. Metric definitions and values — including contact count, campaign count, and industry comparisons — are unchanged.

The tag dropdown in the Conditional Content modal searches your full account tag list server-side. A previously selected tag stays visible even when it falls outside the current search page.

The tag dropdown in the Conditional Content modal searches your full account tag list, showing up to 100 results at a time. A previously selected tag stays visible even when it falls outside the current search results.

Previously, the dropdown tried to load every page of tags to build a complete list. For accounts with thousands of tags this was unusably slow.

The Send To field on the Campaign Summary page is reliable regardless of how many tags your account has.

Your saved tag always appears. If your campaign's audience is a single tag that isn't among the first 100 tags loaded in the dropdown, the field fetches that tag by ID and displays it correctly. The fetched tag is cached immediately, so there's no delay or blank flash.

Search covers every tag you have. The tags dropdown sends your search text to the server, so every tag in your account is reachable. Tags already shown stay visible while a new search loads.

The dropdown still shows up to 100 tags when you open it without searching.

Pause transition modals in Campaigns use a consistent 600px width and standard title style, matching other Campaign modals.

When Active Intelligence asks you a question or shows a form during Campaign generation — such as a brand setup prompt — that form is preserved if you reload the page or return to the conversation later.

Previously, reloading mid-form left a dead end: the conversation showed only the assistant's text note, not the form itself. The form is stored for 24 hours. On reload, it re-renders with any answers you'd already entered, and answering after a reload follows the same path as answering inline. A declined prompt is also remembered correctly across reloads.

The campaign condition row in the Automation Canvas uses a full-width selector and a single filter row. Selecting and filtering campaign conditions takes fewer clicks and is easier to read.

The card calculates undelivered as send amount minus total delivered, giving you a clearer picture of how many emails left your account but never reached an inbox — separate from bounces.

The browse-abandonment product block is available in the Campaign email editor.

Controls include: - Sorting and card count - Cards per row and orientation - Five toggleable content fields — such as product name, price, and image — that can be reordered by dragging when in vertical orientation - Button and card styling, including hover-state controls

The Contact record includes a dedicated Automations tab showing in-progress and completed Automations for that Contact. In-progress Automations appear as cards with a progress bar, entry date, and an entry-count badge for Contacts who have entered an Automation more than once. Completed Automations appear as chips. Both sections are collapsible, and a search box lets you filter the list.

If a background refresh fails, the tab keeps the last loaded list rather than going blank.

A Contact re-added to a finished Automation shows as in progress, with the active run's progress and date.

Previously, offsets were limited to whole hours. You can set a wait of, for example, 90 minutes rather than rounding up to 2 hours.

Wait Until steps also accept minute-level offsets, giving you finer control over exactly when a contact moves to the next step.

In the Automation Canvas path view — where you can see a single contact's journey through an Automation — a run selector replaces the previous "Manage Contacts" button.

The selector lists each of that contact's runs through the Automation, showing entry time and status. Selecting a run reloads the view at that run's state. Timestamps show date and time (not date alone), because a contact can enter the same Automation more than once in a day and the time is what tells those runs apart.

The canvas scrolls automatically so the highlighted block is centered on screen.

Previously, selecting a datetime field in a "Wait until" step showed only the date, leaving the exact wait time unclear. The step displays both date and time, so you can confirm at a glance exactly when an Automation will resume.

Starting a new chat from the Active Intelligence sidebar on non-agent pages preserves your first message and clears any stale state from a previous conversation.

When Active Intelligence retrieves contact data from a large list, the summary of records not shown reports each data type separately. Previously, combining them into a single total could produce a figure that exceeded your actual contact count. The counts are now accurate and broken out by type.

When you create a reporting widget from a prompt and your account has no data for that concept yet, the widget saves as a coming-soon placeholder — a dimmed example chart under an "Example data" overlay — rather than ending on a decline message.

Once your account accumulates data, the widget automatically refreshes into a live chart from the same stored prompt. Analyze is disabled on placeholder widgets because the numbers shown are illustrative.

Active Intelligence insight cards no longer repeat sections or cite unsupported sources.

Cards were sometimes repeating entire sections — the same heading and body appearing twice in a single card. Industry Intelligence cards were also appending a Sources block listing web pages the card body never actually cited.

Repeated sections are now dropped, keeping only the first occurrence. The Sources block is rebuilt to include only the references the card body actually cites; a card that cites nothing receives no Sources block at all.

When you ask Active Intelligence to change a dropdown's options in a Form, the change appears in the published form, the builder preview, and the live form URL.

If you ask to change a field's options, Active Intelligence asks whether you want to edit the existing field — which updates it across every Form using it — or create a new field with a unique name. Choosing to edit updates the options immediately, and the preview reflects the change.

Field type cannot be changed on an existing field. Active Intelligence will offer to create a new field instead.

Previously, dropped triggers were silent — Active Intelligence would build the Automation without the trigger and give no indication anything was missing. The chat reply includes a clear disclosure naming which trigger was dropped and why. When a trigger is also unavailable on your plan, both reasons are disclosed separately in the same reply. This applies to both the create and edit flows.

When Active Intelligence generates a Campaign for an account that has no Brand Kit, it can detect your brand from your website and apply it to the generated output — without requiring you to create a kit first.

If a brand is found, it styles the generated Campaign immediately. The kit is only saved permanently when you explicitly keep it, choose it during a rebrand, or send the Campaign. If no brand can be detected above a quality threshold, the Campaign generates without branding and Active Intelligence offers an option to add your brand. If brand detection completes after an unbranded result has already been returned, Active Intelligence offers to apply the newly found brand.

A few details worth knowing:

  • Colors that fail contrast checks are dropped. Fonts not in the supported catalogue are dropped rather than replaced with a fallback.
  • SVG logos are not supported; logos must be JPEG, PNG, or WebP.
  • Scrape results are cached per domain for 7 days, with a limit of 5 domains per account. A domain already scraped within that window doesn't trigger an additional call.
  • A limit of 20 paid scrapes per account per day applies; requests beyond that are declined until the next day.
  • Social and webmail domains are not scraped.

When the first message of a new Active Intelligence conversation fails to reach the server — for example because the page reloaded before the message was saved — the chat shows a "Your message wasn't sent" notice with a Retry button. Previously the message disappeared with no way to recover it.

The Active Intelligence chat composer opens pre-seeded with an edit Campaign chip when launched from a Campaign context, giving you a faster starting point for asking Active Intelligence to edit a Campaign.

On the AI Customize page, the heading previously labeled "Plan Mode autonomy" reads "Plan mode capabilities" with a more natural description alongside it. No settings or behaviors changed.

You can ask Active Intelligence to pause or reactivate any Automation. Previously, Active Intelligence could read and report on your Automations but couldn't change their active state. Now it can act on them directly — no manual toggle required.

When you ask Active Intelligence to make a change to an active Automation, it offers to pause the Automation first, make the edit, and then asks how to release the contact queue before resuming — presenting two options: drop duplicate queue entries, or skip contacts who already have an active run. The same pause/resume capability is offered any time a paused Automation is set back to active.

Previously, Active Intelligence refused edits to active Automations and told you to deactivate it manually.

This capability is behind a feature flag and is off by default.

When you asked Active Intelligence to build a complex Automation — a 12-email welcome series, for example — the reply could be cut off before the Automation was complete, leaving you with a partial result. The output limit for Automation create and edit operations has been raised, so Automations with up to 12 emails and multiple wait steps complete in a single pass.

When a build does stop early, a Continue building button appears at the bottom of that chat card. Clicking it sends the follow-up automatically — you don't have to type it. The button appears only on the most recent card and only when the Automation was explicitly cut short; older cards are unchanged, and typing the follow-up manually still works.

Two Scheduled Tasks shortcuts are available directly in Active Intelligence: one that asks for recommended Scheduled Tasks based on your account behavior, and one that asks for help setting up a Scheduled Task. Selecting either pre-fills the question so you can get started without typing.

Previously, the tab displayed sample figures from a different frame, so the numbers you were using to decide whether to accept a variant were not the variant's own.

Three controls that previously appeared active but did nothing — Generate from my account, Propose facts, and Rate recent replies — are shown as disabled with a label explaining why each cannot run yet.

When configuring recipients for an Active Intelligence-generated Campaign, the list picker shows only email lists, ordered by name, so you can't accidentally select an SMS list for an email send.

Wednesday, Sep 3032 updates

When a free trial ends, the header banner displays "Your free trial has ended." with the Upgrade button. The trial days counter no longer goes below zero, and the Overview start page no longer shows a negative expiration figure.

Account system alerts from the platform appear alongside AI insights in the notification center. Three filter tabs — All, Insights, and System — let you focus on what matters. System alerts are included in the unread indicator count.

Opening a system alert starts an Active Intelligence chat that attempts to diagnose the alert and recommend a fix. The previous "View alerts" menu item and its avatar count badge are hidden when unified notifications are active. Mark all as read applies to insights only; system alerts are always treated as unread.

Shopify is ending its Script Tag support for storefronts — no new Script Tags from October 1, 2026, and existing ones stop running March 1, 2027. ActiveCampaign Forms on Shopify stores must render through a theme app embed that you enable in the Shopify theme editor.

The Forms ecommerce tab shows the embed status for your connected store:

  • Active — a confirmation banner shows the embed is on.
  • Inactive — a warning banner appears with a "Turn on in Shopify" link that opens the Shopify theme editor directly, plus a "Check again" button.
  • Unknown — an informational banner with the same two actions. If your store connection lacks the required permission, the banner asks you to reconnect the store instead.

The banner appears after you save or publish a form, and updates whenever you switch between connected stores. It replaces the previous "Your form was published" confirmation, serving as your post-publish status check.

During the transition, if both the old script tag and the new embed are running at the same time, a guard prevents your Form from appearing twice on the page.

Action required: If the banner shows your embed as inactive, click "Turn on in Shopify" and enable the theme app embed in your Shopify theme editor.

The campaign selection menu in the Contact detail view displays at the correct height.

On the SMS index page, the Preview button that appears when hovering a message thumbnail is visible and clickable again.

Subscribe-by-SMS keywords save when you edit them. Previously, renaming a keyword appeared to succeed but the old keyword stayed in place.

If you edited an SMS keyword and the change didn't stick, re-save it and the updated keyword will take effect.

When creating or editing a Scheduled Task with a sub-daily cadence — any interval shorter than 24 hours, such as every 15 minutes or every 23 hours — you can set an optional end date. No end date is set by default.

The end date field appears only for sub-daily cadences and is hidden for daily and longer schedules. If you switch a task's cadence to daily or longer, the end date clears automatically. For minute-cadence tasks, the selectable date range is capped at 30 days from the start date. The end date is visible on the task's public view, and existing tasks without an end date continue to run without change.

Long tag names on the contact detail page wrap inside the tooltip instead of overflowing the tooltip box. Short tags are unaffected.

The Import Preferences panel on the Active Intelligence customization page shows updated instructions that work for all supported AI services, including Gemini.

Previously, the panel told you to "submit the prompt in the new tab" — but Gemini's text box arrived empty, leaving nothing to submit. The new instructions read: "We'll copy a prompt and open your selected AI service. Paste the prompt, then copy the response back here." Claude and ChatGPT continue to receive their prefill parameters as before; prefill remains available as a convenience for services that still support it.

The Submit button on the review step calls the submit handler as expected. Field-level validation errors are attributed to their inputs, and the flow returns to the step containing the first failing field. Errors that can't be attributed to a specific field appear as a notification on the review step. Two rapid clicks are handled without submitting twice.

Filters persist when you open a folder and when you navigate back. While a folder is open, the folder/Business Goal dropdown and related chips are hidden — the goal filter shares a parameter with folder filtering — and return when you go back, with their values intact.

The Contact detail view gains a dedicated Automations tab, replacing the previous combined categories panel. The tab shows two collapsible sections — In progress and Complete — with search, an Add button in the toolbar, and per-Automation cards showing a progress bar, entry date, and an entry-count badge for Contacts who have entered an Automation more than once. Completed Automations appear as chips.

Left column. Surfaces Active Intelligence recommendation chips, a highlights row showing deal value with a delta arrow, stage with a color dot and inline picker, owner, win probability with a sparkline, and last-contacted date. Recent activity shows the latest five entries with a link to the full Activity tab.

Inline field editing. The Overview tab delivers inline editing across all field types — text, currency, date, datetime, and dropdown — pipeline moves with stage re-fetch, and won/lost lock with a loss-reasons modal on qualifying pipelines.

Contact management. A Contacts group with roles lets you add, edit, and clear Contacts. A warning banner appears when duplicate deals exist.

Tasks tab. Open tasks are grouped by Overdue, Today, Tomorrow, and Upcoming. Complete a task in one click, toggle completed tasks on or off, and add or edit tasks with fields for title, type, assignee, due date and time, and a note. The task list has a 100-item cap, with the total exposed.

Notes tab. A paged list with authors lets you add, edit, and delete notes, with a confirmation step on delete.

Activity tab. A vertical timeline with icon rail and day group headers shows change titles describing what moved — stage, value, status, or field edits — with actor lines showing the person or Automation name.

Files tab. View and manage file attachments directly on a deal.

Inbox tab and email compose. Browse email activity for the deal's Contact, including subject, addresses, message snippets, and relative timestamps, with reply and load-more support. A compose/reply drawer lets you send a new email or reply to an existing one from within the deal. Replies pre-fill the quoted original. A Send email option also appears in the deal's actions menu.

Actions menu. Add task and Add note entries switch to the relevant tab and open the form.

Dragging the resize handle on any textarea on the deal detail page is smooth and responsive. Resizing is vertical only, so there's no more horizontal clipping, and the handle stops before pushing the Save/Cancel row off the bottom of your screen.

When an Automation runs an Unsubscribe action, the list subscription pills on the Contact record reflect that change within approximately 60 seconds. Previously, the activity feed would show "Unsubscribed from list" while the pill still displayed the old subscribed state until you manually refreshed the page.

The contact import flow no longer displays the ActiveCampaign logo or product name for resold or white-labelled accounts. Affected surfaces include the homepage and Contacts first-run card, the import call-to-action, and the post-import review screen. The comparison section and disclaimer footer are also hidden for these accounts.

Three improvements to the Contact detail page's Details section:

  • Phone number validation. The Details editor validates phone numbers and surfaces the exact reason a number was rejected, rather than a generic message.
  • Empty-state display. Read-only rows with no value show a clear no-value indicator. A Custom fields section that is entirely empty is hidden rather than shown as a blank panel.
  • Loading skeleton. The Details loading skeleton matches the layout of the loaded state.

Fields are organized into General and Custom sections. You can hide or show empty fields with a toggle. Clicking any field opens an inline editor matched to that field type — text, email, phone, date, dropdown, radio, checkbox, and more. The account association field includes search, select, clear, and a create-new action.

Only one field can be edited at a time; collapsing the accordion cancels any open edit. If a save fails, the editor and your draft stay open so you don't lose your work.

The Details fields section on the Contact record shows a skeleton placeholder while data loads. The layout is reserved from the start, so the page no longer shifts as fields appear. The loading skeleton matches the layout of the loaded state.

Saved conditions in the conditional content editor are preserved when the editor is reopened. Previously, reopening the editor could overwrite saved conditions with the default empty state.

Web-version and social sharing links in Campaign previews are clickable and navigate as expected. Previously, these links were intercepted and blocked in the Campaigns list preview and the campaign-flow test-preview modal, even after they had been resolved to real URLs. Template previews with unresolved placeholder links still show the explainer modal.

When a bulk delete of Campaign message variables fails, one error notification appears per failed item instead of two.

Two behavioral improvements come with the change:

  • Legacy URLs: older Automations URLs that stored goals in a different parameter or carried multiple IDs resolve correctly. The URL updates silently; the Back button does not return to the old URL.
  • Browser Back: selecting a folder filter pushes a history entry, so the Back button undoes a filter change.

Icons in the Active Intelligence sidebar are all the same size. The Scheduled Tasks icon previously rendered slightly larger. The bar-chart icon previously rendered smaller with an older style and has a refreshed rounded bar-chart appearance.

Active Intelligence chat displays a banner when your browser loses its network connection. The banner appears above the composer, labels the offline state, and disables the input and send button while you're offline. When the connection returns, a confirmation banner appears and then dismisses automatically.

The card floats over the message list so the last message can scroll clear of it. The header icon reflects the object type (Contacts, Campaigns, Automations, Tags, Lists, Forms, Deals, Conversations, ecommerce, admin). The record count appears as plain text on the object line — for example, "Contact tags · 500 records" — shown only when a count is available. Steps that change or delete data show a warning chip on that line. A coverage note (for example, "Covers the first 500…") uses a small info banner; steps without a coverage note show no banner.

When a standard or contextual Active Intelligence insight run is pinned to a self-hosted model and that deployment fails, the run retries once on your account's default model instead of returning a failure. The retry carries over the same prompt settings, so the result is consistent with what you'd expect.

Runs that hit the self-hosted request cap are not retried.

Previously, from roughly 7 pm Central / 5 pm Pacific until local midnight, Active Intelligence reported the following day's date, causing date-based recommendations and computations to be off by one day.

The Active Intelligence customize page has a cleaner layout and updated navigation. Tabs are now ordered Knowledge Base, Capabilities, Homepage Experience — putting Capabilities in a more prominent position.

The Capabilities section has a visual refresh: autonomy cards use a gradient chip to mark the recommended option, the selected card has a distinct border and background, and permission controls use a dropdown instead of a segmented control. Permission groups use translucent backgrounds with inset dividers for a cleaner look.

The activity feed no longer appears on the Capabilities tab.

Active Intelligence sidebar chat starts reliably

Starting a new chat from the Active Intelligence sidebar on non-agent pages no longer produces a "Conversation Not Found" error. The first message is preserved, and stale handoff state is cleared when opening an existing conversation.

When you ask Active Intelligence about subject lines or send dates across several Campaigns, it returns the full grid in one response. Previously, retrieving this information required fetching each Campaign's content individually, which caused "conversation limit reached" errors for larger requests.

Split-test Campaigns show "Varies by variant (split test)" with an option to break down by variant. If a subject line can't be retrieved, Active Intelligence reports it as unavailable rather than substituting the Campaign name.

The previous 50-Campaign cap is removed, so there's no longer a limit on how many Campaigns you can ask about at once.

On the contact page, using the email composer's "Insert a link to a file" button inserts a clickable link labelled with the file name. Previously, the bare share URL was dropped into the email body as plain text, leaving the draft, the sent email, and the activity detail with an unlinked URL and no file name.

A single file link uses any text you've highlighted as the link label, falling back to the file name. Multiple file links are inserted after your selection, each labelled with its own file name. If a send fails and you retry, the file links remain in the composer until the drawer closes on a successful send.

Tuesday, Sep 2917 updates

Filters you apply on the Campaigns, Automations, Forms, and SMS index pages carry through when you open a folder. Previously, filters had no effect once a folder was open.

While a folder is open, the folder filter control is hidden and all other filters remain visible and active. Changing a filter updates the folder contents from the first page. If the filter returns no results, a no-results state appears with a Clear search option that restores the full folder contents. Clicking Back returns you to the index with your filters still set.

For Automations, the goal filter is also hidden while a folder is open, but its value is preserved and the control returns when you go back. The header count and pager reflect the filtered total. Folder card counts in the grid and the No Folder card are not affected by active filters.

The SMS consent message checkbox aligns to the top of its label text.

Previously, a failed initial data request showed a full error screen that required a manual page refresh. The platform retries automatically up to three times with a short backoff, then continues on a growing interval (10 s, 20 s, 40 s, capped at 60 s) while the tab is open. If cached data exists, the platform stays up and usable throughout. The error screen appears only when there is no cached data at all. Standard authentication and access errors continue to redirect as before.

Clicking Save in the link popover, or pressing Enter in the URL field, inserts the link when you're editing a message variable. Previously, the Save button did nothing in that context.

Previously, filters stayed visible when you opened a folder but had no effect on what was shown.

Filters apply to folder contents and to the No Folder view. Results update with a loading state, and the header count and pager reflect the filtered total. Clearing a filter resets all filters. When a folder has items but none match your active filters, a no-results state appears with a Clear search action. Filters persist when you open a folder and when you navigate back. The folder filter dropdown is hidden while a folder is open and returns on Back with its value kept. Automations folder filtering is coming in a separate release.

The Ecommerce tab is visible for Modal, Floating Box, and Floating Bar form types. It does not appear for inline forms or for accounts without a connected Shopify store.

When you create or edit a dashboard widget, the loading indicator holds until the widget is fully generated and saved. Previously, the loader could finish early or loop before the widget was actually ready.

The progress bar on the dashboard card and the step copy in Customize Homepage Experience advance through six phases over approximately 30 seconds, with the final step holding until generation completes.

Previously, dropped triggers were silent — Active Intelligence would build the Automation without the trigger and give no indication anything was missing. The chat reply includes a clear disclosure naming which trigger was dropped and why. When a trigger is also unavailable on your plan, both reasons are disclosed separately in the same reply. This applies to both the create and edit flows.

The distance between messages is reduced. Hover controls — copy, regenerate, thumbs, edit — still appear correctly and do not overlap adjacent messages.

The chevron and scheduled-task clock icons in the Active Intelligence sidebar display correctly in dark mode. Previously, both icons used a light-palette fill regardless of which theme was active, making them hard to see against a dark background.

When Active Intelligence reads a list larger than 2,500 records, it tells you exactly how many records were fetched and how many remain. A 3,000-contact list returns a message like "2,500 fetched, 500 remaining" rather than overstating the total retrieved.

When the email-building capability is unavailable for your account due to a configuration issue on the platform side, Active Intelligence tells you plainly that the capability is unavailable, that the issue is on the platform side, and that retrying or waiting won't help. Previously, it suggested trying again — advice that could never succeed until the underlying configuration was changed.

The same improvement applies to the form and landing page preview capabilities, which had the same retry-invitation problem. Active Intelligence stops offering the unavailable capability for the rest of that conversation turn.

Active Intelligence previously recognized only numeric IDs as grounded evidence from a prior tool call. UUID-format IDs — the kind Brand Kit uses — are recognized the same way, so a kit created or read in one turn can be updated in the next without an error.

The placeholder text in the Active Intelligence chat input uses the correct muted color in both light and dark themes, on the Home page, the Scheduled Tasks page, and the Active Intelligence conversation.

You can ask Active Intelligence to change a Campaign's audience after it's been created — swap the list, apply a different segment, remove a segment, or target Contacts by engagement (for example, "people who opened in the last 30 days"). The change writes directly and confirms what was saved.

A few things to know about how it works:

  • Naming a list replaces the Campaign's list set and drops any segment. Naming a segment alone keeps the existing lists.
  • Engagement-based requests build a segment and attach it automatically.
  • Campaigns that have already been sent or are currently sending are refused before anything is written.
  • The audience catalog draws from your full list catalog, ranked by active subscribers.
  • If a classic segment doesn't belong to any of the chosen lists, the lists are written and the response explains why the segment wasn't applied.
  • The send-settings panel refreshes the recipient count after Active Intelligence applies an audience change.
  • A write that can't be confirmed is reported as unconfirmed rather than as a success or failure.

Previously, audience-change requests were routed incorrectly, so the audience never changed while the reply implied it had.

Previously, copying a segment could lose specific condition values because the copy was rebuilt from a prose summary rather than the stored condition tree. The copy accepts a source segment by ID or name, derives a unique name automatically, and can apply a modification in the same step.

Previously, flow generation on sandbox-only accounts returned a "no active WhatsApp channels" error.

Inbound, Meta Click-to-WhatsApp, and other non-outbound trigger types publish normally on sandbox. Outbound flows on sandbox channels are saved as Draft, because outbound flows require a template that Meta must approve, and template submission requires a production channel. Accounts with no active channel at all still receive the original error. Template generation on sandbox accounts remains unavailable.

Monday, Sep 2812 updates

The usage remaining figure in Engage Settings displays with locale-appropriate number formatting, so the count reads as `19,908,184 remaining` rather than `19908184 remaining`.

When Active Intelligence surfaces a permission card asking you to approve or decline a planned action, you can respond by typing in the chat composer rather than clicking the card's buttons.

A typed reply is treated as a full answer: prose is read as approval and keeps the plan summary on screen; a refusal, an empty message, or a slash command drops the card and becomes a fresh instruction instead. The composer and its input fields remain open while a card is waiting for your response.

One limit in this release: a create-only plan answered by typing leaves the reply without a plan summary block.

You can drag an RSS content block onto the canvas in the updated Campaign email editor. Configure your feed URL, adjust per-field styles, and the block renders images beside text — matching the layout of the previous editor. Both standard RSS feeds and podcast feeds are supported.

Clicking a chip or typing a prompt creates a widget directly in the grid. At four or more widgets the prompt cell disappears and the header's Create action takes over.

The illustration in the prompt cell matches your display theme: light theme shows the light chart and arrow; dark theme shows the dark chart and arrow.

The account picker in the Facebook Custom Audiences multi-auth modal on the Integrations page works correctly. The dropdown menu renders above the modal so all accounts are visible and selectable, and the picker label appears above a full-width picker rather than wrapping across multiple lines beside it.

Blank and whitespace-only labels are excluded from the duplicate check, so leaving an option row empty no longer triggers a "No two options may have the same value" error. Actual duplicates — including ones that only match after trimming whitespace — are still blocked.

Tab labels on the contact details page are translated for users working in non-English locales.

Previously, the trigger block displayed a blank title and was marked invalid. The canvas loads the field directly from the fields API, keeping the trigger valid and displaying the correct field name and from/to values.

The four items in the Active Intelligence sidebar — New chat, Scheduled Tasks, Customize, and the usage icon — share the same left edge. The usage icon row previously sat visibly inset from the rest of the list.

Inside the nav drawer, the "Task runs" section header is also realigned to match the chat-history date headings, and task-run row hover and active backgrounds span the full drawer width, consistent with chat conversation rows.

The previous inline loading indicator sat off-center and wobbled inside the button. The button now communicates its state plainly so you know exactly when you can proceed.

When an automation email is selected for editing in the Active Intelligence chat, an edit prompt block chip is inserted before the pending campaign chip, giving the conversation a clear edit context before the campaign chip appears.

In folder views for Campaigns, Automations, Forms, and SMS, the "No Folder" card displays a count of the items it contains, matching the count shown in the section header. The count is hidden while loading or if the request fails.

Sunday, Sep 2727 updates

Tags API: limit=0 handled correctly

The Tags API endpoint (GET /api/3/tags) treats a non-positive limit the same as an omitted limit, applying the default page size of 20. The existing cap for values over 100 and all other limit-handling behaviour are preserved.

If you built a Campaign by copying a split-test Campaign and then converting it back to a winner-based split, that Campaign could never send — it sat indefinitely with zero contacts forwarded and no error shown to you.

Campaigns converted to a split type send as expected going forward. Two Campaigns already in this state require a separate correction and are not fixed automatically by this change.

Selecting a showcase in the campaign editor keeps your active content block selected throughout the process. Searching, paging through results, and picking a showcase all work without interrupting your editing flow.

Cards in the showcase picker stay the same height and width as their row-mates, so a product with a longer title no longer throws off the grid. The modal fits its content instead of leaving a gap below the pagination controls. Selecting a showcase item updates your block reliably, including when the picker loads content in the background.

Adding or removing a Shopify form embed completes without a server error.

Two Scheduled Tasks idea cards appear in the onboarding recommendations panel: a weekly performance report and a brainstorm prompt. A Scheduled Tasks prompt chip also appears in the recommendation section of Business Goals detail pages, giving you a quick way to ask Active Intelligence about Scheduled Tasks in context.

Two new idea cards are available in the Active Intelligence sidebar:

  • "Weekly performance report" prompts Active Intelligence to compare recent email Campaigns to the four weeks prior, flag the single Campaign that over- or under-performed most, and suggest one concrete change.
  • "Brainstorm a scheduled task" asks Active Intelligence what Scheduled Tasks would help your marketing.

Saving a Denmark SMS registration stores your data correctly. Previously, a missing content type on the save request caused the downstream service to read the payload as empty and silently discard it.

Pass start and end dates in Y-m-d format to retrieve only SMS blocks that sent within that window. Filtering is based on send activity, not block creation date. Either parameter can be used alone.

Passing a start date later than the end date, or an invalid date format, returns a 400 error.

Every record returned by this endpoint also includes an automation name field. Blocks not attached to any Automation return a null value for that field.

Visiting a resend link with a malformed, tampered, or expired token returns an "Invalid or expired link" message. Valid tokens are unaffected.

Paused Automations expire automatically and show contacts waiting to enter

Paused Automations expire after a configurable wait period — 30 days by default. When that period elapses, the Automation moves to Inactive and any contacts held at the start are ended with an expiry cause. This means paused Automations no longer accumulate indefinitely without your attention.

While an Automation is paused, you can see which contacts are waiting to enter it: their name, email address, the trigger that queued them, how long they've been waiting, and when the Automation will expire.

You can also manually add contacts to a paused Automation. They'll be held in the queue and released when the Automation resumes.

A few things to know: - Changing the wait period doesn't affect contacts already inside the Automation. - Resuming the Automation releases all held contacts. - Deactivating the Automation ends those held runs.

When you open a genuinely blank new Campaign for the first time, the "Support of Outlook" toggle in the campaign editor defaults to on. When a Campaign is created from a template, a gallery template, or a copy of another Campaign, the toggle preserves whatever Outlook-support setting was present in the source.

The one-time code email sent during an unusual login challenge works with Gmail's automatic "Copy code" card on Android and iOS. A labeled line above the six-digit code lets Gmail surface a one-tap copy button, so you can paste the code without selecting it by hand.

Desktop email clients show one additional bold line above the code box — everything else is unchanged.

The "Connect YouTube" button has been removed from the legacy email designer. The button depended on a YouTube API that Google shut down in April 2015 and has returned an error ever since. Pasting a YouTube URL directly into the video widget continues to work as before.

Deals CRM notifications deliver correctly even when the assigned user has been removed from the account.

When you import Contacts with custom field data, the values you send are the values that get saved. The import path writes both the value and the timestamp regardless of how the row was classified, so your data lands as intended every time.

Mobile API users in custom groups with admin-level permissions receive complete, correctly paginated field and field value results.

When importing Contacts with no list changes — updating contact fields only, with no subscribe or unsubscribe actions — the importer previously ran an unnecessary check against every row. This caused spurious "partially imported" warnings for contacts who happened to be on the unsubscribe log, even though no list action was requested.

That check is skipped when a row requests no list changes. Imports that do request list changes continue to enforce the check as before.

Exporting the link-click contact list for a campaign completes successfully even when no contacts have clicked the link, delivering an empty file rather than showing a "Failed" status on the import/export status page.

Body text, list items, and links in campaign emails scale when a recipient uses the iOS Accessibility "Larger Text" setting, matching the behavior of headings.

Running a bulk "Add to Automation" operation on a large saved segment completes without timing out. Previously, the validation step could fail at scale, leaving the operation incomplete. The contact count is read directly from the segment engine, so the operation finishes and the count shown is exact.

This change applies to bulk "Add to Automation" only. All other bulk operations — tag adds, list adds, Automation blocks, and removals — are unchanged.

New Brand Kits populate the "Images from your website" section and show the Refresh option from the start. Previously, new accounts saw an empty images section. Main-page images are scraped and stored for all new Brand Kits.

Automation owners receive a reminder before a scheduled pause expires, so an Automation doesn't resume unexpectedly without your awareness.

Automation emails that are not properly linked to their Automation are kept in Draft status until the attachment is correctly established, preventing an accidental send.

Each anonymous open creates one row per link with a subscriber ID of 0, and repeat anonymous opens increment through the existing window. Campaign-level open counters — total opens, verified opens, and unique opens on first creation — are updated at the same time. Webhooks fire once per batch, after a successful write, so you won't receive duplicates if a retry occurs.

Anonymous clicks, 1:1 tracked links, and non-campaign tracked links are not supported and are rejected. Anonymous opens do not trigger Automations, contact activity log entries, or contact records.

If you ask Active Intelligence to create several Automations in one message, it responds in plain language explaining that it can build one Automation per request, and asks which one to start with.

When using Active Intelligence to edit an Automation by adding if/else checks before existing emails, both branches of the if block and the emails within them are preserved. A related edge case is also addressed: when removing an outer if/else with "keep both" selected, and both the YES and NO branches contain nested branching blocks, both subtrees are preserved correctly.

Active Intelligence creates and edits Automations more reliably, particularly for larger or more complex workflows. A class of failures that caused edits to large Automations to return an error has been eliminated.

Specific improvements: - Wait block duration units are constrained to minute, hour, day, and week — removing month and year, which were not supported. - Manual contact entry correctly maps to an empty triggers list rather than inserting a spurious trigger. - Form submission triggers no longer emit a blank form name field. - Enter/exit trigger blocks are correctly represented as a configuration object, preventing validation failures. - When editing an Automation, the workflow description is preserved unless you explicitly ask to change it. - Enter/exit rules always include the required configuration object with an automations list.

Clicks on "Share with a friend" and "View in browser" links in Campaigns sent by the legacy mailer appear in Clicked Links reports. These links were previously untracked for legacy sends, while the same Campaign sent through the current mailer tracked them correctly. No changes are needed on your end — existing and future Campaign reports will reflect these clicks.

Friday, Sep 259 updates

Icons in the left navigation rail and the top header — including Your AI, Settings, search, and Help — display at the correct contrast level in both light and dark themes. In light theme, the resting icon color is darker and easier to read; in dark theme, icons appear in white.

Secondary navigation is also tidied: corner radius, chevron size and color, submenu text alignment, and panel width all match the design specification.

In the image block settings, the width field saves only a valid width on a half-second pause. Empty, partial, or out-of-range values wait until you press Enter or move focus before committing.

On approved Campaigns, clearing the reply-to email, from name, from email, subject, or preheader field and then confirming the edit dialog was saving a blank value. For the reply-to field this had a visible effect: a blank reply-to caused the "same as from" checkbox to check itself automatically and hide the reply-to input.

These fields now treat a cleared value as a cancelled edit when you confirm the dialog. The field reverts to its saved value and the reply-to checkbox stays in its correct state.

On draft Campaigns, clearing a field still saves the blank value immediately, which is the intended behavior.

The toggle buttons are pinned to a consistent height so they no longer stretch to match the surrounding row, and a border flicker that shifted the toolbar on each view switch is resolved.

When adding a deal from the Contact Details page, typing in the pipeline search field previously caused the form to flicker, lose your typed text, and silently switch to a different pipeline. A search with no matches replaced the form with an error message entirely.

The form stays in place while you search. Your typed text is preserved, your selected pipeline doesn't change, and a search with no matches shows a clear no-results message in the dropdown. The same improvement applies when adding a deal from the contact actions panel.

Email previews shown by Active Intelligence during onboarding look the way the finished email will look — same background, same layout, same merge-tag labels — so what you see while the email is being built is what you get when it's done.

The preview experience is smoother throughout: cards appear in sequence with one email visible at a time, each held long enough to read before the next takes over. Merge-tag chips show the actual field name rather than a raw placeholder. Once the last email in a series finishes, the footer appears fully rendered. If you've set your device to reduce motion, the animations respect that preference.

The chat panel remains visible throughout — the reply streams in without interruption.

Active Intelligence automation health insights include deep-link instructions that take you directly to the specific block within an Automation that needs attention. You no longer have to hunt through the Automation yourself to find the affected step.

Campaigns, Automations, Forms, and SMS index pages include a "No Folder" option. A pinned card appears in the folder grid listing assets that haven't been assigned to any folder, and a "No Folder" filter option lets you narrow the table to those assets. Asset counts are not shown on the card or header.

Thursday, Sep 2458 updates

Column headers in the users table — including "Purchase Permissions" and "CRM seat" — stay on a single line with their info icons aligned correctly.

Edited fields are kept in place while the refresh still picks up any server-side changes to fields you haven't touched.

When the "Restore selected contact(s)" button is disabled because one or more selected Contacts were archived too recently, a tooltip explains that Contacts can only be restored 30 days after they were added and that recently archived Contacts fall outside that window. Previously the button was disabled with no explanation.

Spacing throughout the platform is restored to its intended sizes. A regression caused every legacy spacing value rendered through the platform's layout system to paint at 87.5% of its correct size in the hosted app — for example, the Campaigns index loader top padding shrank from 48px to 42px. Layout breakpoints are unaffected.

Cards in the showcase picker stay the same height and width as their row-mates, so a product with a longer title no longer throws off the grid. The modal fits its content instead of leaving a gap below the pagination controls. Selecting a showcase item updates your block reliably, including when the picker loads content in the background.

List segments save correctly after a down-convert. The correct segment link is preserved through the save, so the segment no longer appears blank on reload.

Hover highlights in the secondary navigation bar appear at a uniform width across all item types, including accordion sub-items and open accordion headers such as Business Goals and Automations.

Previously, a logic error kept the form in creation mode after the first save, so each subsequent press of Save created another copy of the brand rather than updating the one just made.

The SMS Inbox has a refreshed layout: search moves to the page header, the read/unread selector is replaced with an "Unread only" toggle, and the message composer at the bottom of an active conversation has an updated outline style.

The description text inside the "What is this?" educational banner on the form submission Reports page renders at the correct 14px size, matching the banner title and the platform's standard body text.

Previously, the row showed only the order title. Details appear once the order data loads; the row shows loading text until then.

Email timeline cards that finished streaming were switching to a hosted screenshot, which caused contact-field personalization tags to appear as raw text rather than as formatted chips. Finished cards read the saved email markup directly and render personalization tags as chips.

In the agentic onboarding timeline, a finished email card shows its rendered screenshot. While the email is being written, content streams into the card; once the screenshot loads it replaces the streamed content without changing the card's size.

If your network drops while onboarding is building your account, onboarding reconnects and your cards finish building from exactly where it left off, with nothing repeated or skipped. If the connection stays broken after several attempts, or the server returns its own error, the run is reported as failed so you know what happened.

Navigating from the Lists page to a list segment detail page keeps the Lists item highlighted in the left navigation menu.

When Industry Intelligence finds no recent signals for a topic, it states that plainly and suggests one concrete next step — rather than asking you to rephrase or choose a different angle. The previous response could send you into a loop of clarifying questions without ever giving you a useful answer.

The Inbox message composer displays a visible border when it has focus, making it clearer which input is active.

Previously, the modal never finished loading when a group had 100 or more lists attached.

Go to Settings → Users and Groups → Edit Group → Permissions to find the new SMS permission group. Four sub-groups cover nine permissions:

  • SMS Campaigns: View, Manage, Send
  • SMS Inbox: Edit
  • SMS Keywords: View, Manage
  • SMS management access: Registration, Sending options, Reporting

SMS navigation items are gated on these permissions. Existing groups default to enabled for Campaigns, Keywords, and reporting, and disabled for registration and sending options.

Users with view-only access to SMS Keywords see a read-only page: the "Create a keyword" call-to-action is hidden, row actions change to a plain View button, and the keyword drawer shows a "View a keyword" title with all fields disabled.

The folder filter dropdown on the Automations, Campaigns, Forms, and SMS toolbars shows all options in a single alphabetical list. Section headers are gone. "Any" is always first; Business Goals entries are still marked with a trophy icon. Clicking the already-selected folder clears the filter and resets to "Any", so you no longer need to scroll back to the top to clear your selection.

The Add block and Templates buttons that previously appeared in the top-left panel of the Flows canvas have been removed. Steps are added using the connector and the "Add step" control at the end of the flow, which are the intended entry points in the updated design.

The Ecommerce tab is back in the Forms Integrate page. If your account has a connected Shopify store, you can publish and remove forms from your store directly from this tab.

The tab is visible for Modal, Floating Box, and Floating Bar form types. It's hidden for inline forms and for accounts without a Shopify connection.

The show/hide toggle above the empty folders list displays readable copy — for example, "Hide 3 empty folders" — rather than a raw key string.

The Add User modal on the Users & Groups settings page accepts email-style usernames containing @ and + characters, matching the behavior of the Edit User modal.

Automations that send multiple Campaigns can be navigated email by email within the preview panel, so you can review each message without leaving the Automation Canvas.

"Edit with AI" works directly on send-email blocks in the Automation Canvas. Clicking the sparkle icon on a send block opens the AI campaign editor previously available only in the Active Intelligence automation preview.

A visual fix is also included: the header seam between the Active Intelligence sidebar and the editor aligns correctly when the campaign editor is opened in fullscreen via "Edit with AI."

Error messages related to ecommerce actions in Forms appear in your account language.

Previously, a failure mid-copy could leave a content-less template behind — invisible in both the templates overview and the campaign template picker, so it couldn't be used or deleted. The duplication process has been rebuilt as a single operation: the copy is written already populated, so no empty record is created at any point. If the duplication fails, you get a clear error message and nothing is left behind.

The Contacts performance report gains Active Intelligence prompt chips below the toolbar. A Scheduled Tasks chip opens the Active Intelligence sidebar with a pre-filled prompt scoped to contact performance. Two recommendation chips — "Analyze contact growth" and "Find engaged contacts" — are also added, matching the layout already in place on the All Campaigns Performance report.

Purchase activity is easier to scan. The "Made Purchase" and "Abandoned Cart" rows in the contact activity feed show the store name, number of products, order total or cart value, and order status — the same information that was already available when you opened the detail panel. You get the full picture at a glance without an extra click.

The "Click trend" idea pill in the Active Intelligence reporting widget panel produces a chart. It shows a monthly count of email clicks as an area chart. The label has been updated from "Click rate trend" to "Click trend" to match.

On the Campaigns list, a Campaign that has started sending but hasn't delivered anything yet shows 0 in the sent/total column and in the Recipients card of the sending-progress drawer, rather than a loading placeholder.

Saving a new Brand Kit multiple times in a row creates one kit, not one per save. A logic error previously kept the form in creation mode after the first save, so each additional save produced a new copy.

The "leave without saving?" prompt has been removed from the Brand Kit form. Navigating away mid-edit discards unsaved changes silently.

Closing the "Choose a template" modal without selecting a layout no longer leaves an empty, invisible template in your account. The template is written only once you choose a layout, so backing out writes nothing.

Two paths are unchanged: Custom HTML still creates its row up front because its designer is opened by ID. On a hard refresh of the new-template route, you are returned to the templates list.

Toast notifications in the Automations area — including copy-Automation confirmations — render correctly against a light background.

Active Intelligence serves Automation health insights in the contextual sidebar, giving you a quick read on how your Automations are performing without leaving the Automation Canvas.

Under-configured block warnings are attached directly to the Automation health insight card rather than appearing as a separate card alongside it. You see one unified card — the insight title, graph, and date together with the count of blocks missing required settings. Selecting "Help me fix" opens the Active Intelligence sidebar with the clickable block table so you can act on the finding without switching context.

When you type a single word into the Automation Canvas create box and submit, Active Intelligence recognizes the prompt as incomplete and asks what the Automation should start with and what it should accomplish — rather than attempting to build something from too little information. The prompt prefix displayed to you has also been restored to its earlier phrasing ("Create me an automation that…"), so one-word entries no longer appear cut off.

Non-English accounts may see the updated prefix wording after the next localization update.

The icons in the Active Intelligence chat input toolbar animate when activated. The Tools icon animates while the Tools menu is open and reverses on close. The slash (/) icon animates when the Schedule task command is inserted, then resets. Both animations respect your device's reduced-motion preference.

Surrounding empty-state and create-state content remains centered. Only the informational banners are affected by this alignment change.

These features return a response directly rather than routing through an additional step when external data is unavailable. Median response time for these failures dropped from around 13 seconds to around 5 seconds.

Brand Kit market context is passed to the relevance check, which applies two additional rules: initials or acronyms identify a company only when the line of business matches, and a same-named company in a different market is treated as a different company. Unrelated companies with colliding names or abbreviations are dropped from competitive intelligence results rather than surfaced as relevant.

When Active Intelligence generates a Campaign, Automation, or Form, it uses documents you've uploaded to your knowledge base as source material. Your brand guidelines, product information, or other custom content shape the output directly.

Document content is treated as supporting context — it adds to what Active Intelligence already knows about your account without overriding it. If a document can't be matched to the right generation context, it's excluded rather than applied broadly.

Two improvements to the landing page preview editing experience in the Active Intelligence sidebar.

The toolbar holding the Desktop / Tablet / Mobile switch and edit controls had more space above it than below. The spacing above and below the toolbar is now even.

Clicking a link inside a navigation row previously selected the entire row and offered no way to edit just that link. A click on a nav link selects that link individually. You can rename it and update its target without affecting the rest of the row. Undo, redo, and replay on reopen apply only to that link. Clicking a link in the preview frame still does not navigate away.

Idea cards on the Active Intelligence home page have a refreshed appearance in both light and dark themes, with updated corner radius, borders, and a shadow hover effect.

On a first visit to the Active Intelligence homepage — for example, right after completing onboarding — the widget area stays on a single loading skeleton until your widgets are ready. Previously, it flashed through two different loading states before real widgets appeared.

When Active Intelligence's "Help me fix" flow identifies an under-configured block in the Automation Canvas, the builder scrolls to and highlights the relevant block without opening its configuration modal. You can see the problem in context before deciding how to act.

The insight that flags these steps also shows plain labels instead of raw internal parameter keys — for example, "Add tag missing a tag" instead of an internal identifier, "a list," "an email," "a webhook URL." Unknown parameter keys fall back to a generic "required settings" label.

When you ask Active Intelligence to build a template, the chat shows a dedicated template experience rather than a campaign flow. You watch the email being built in real time, and the result lands as a reusable template you can apply to future Campaigns. The preview offers "Edit template" (which opens the template editor) and "Create a campaign." Send, schedule, and audience controls are hidden because they do not apply to a template.

Editing a generated template through Active Intelligence is planned and not yet available.

The send button in the Active Intelligence quick-create widget matches the style of the main chat input send button: a circular blue button with a white arrow.

The "Add context" button in the Active Intelligence chat input announces its name once to screen readers, as expected.

Revenue figures in Active Intelligence chart, table, and KPI widgets display at the correct scale and in the correct currency. Previously, amounts stored in cents were shown as-is — a $284,000 total could appear as $28,400,000 — and there was no way to distinguish a revenue series from an order-count series in a mixed chart.

Widgets that include monetary data convert amounts consistently and carry the currency through every refresh, so a widget reporting in EUR stays in EUR. Only monetary fields are converted; counts displayed alongside revenue are left untouched. Widgets with no currency information behave exactly as before.

A new "Enrich a contact" action block is available in the Automation Canvas. 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.

You can also ask Active Intelligence directly to enrich a single Contact by email address or ID, check your remaining monthly enrichment allowance, or enrich a segment or tag of Contacts. For bulk enrichment, Active Intelligence shows you the affected count and your remaining allowance before asking you to confirm — it won't proceed without your explicit go-ahead.

Because the enrichment API confirms the request was made rather than what data was found, Active Intelligence points you to the Contact's activity feed rather than claiming specific fields were written. In practice, a successful enrich shows up in the activity feed within seconds.

The 100-Contact cap that existed in an earlier version of this pipeline no longer applies.

When you type a single word into the Automation Canvas create box and submit, Active Intelligence recognizes the prompt as incomplete and asks what the Automation should start with and what it should accomplish — rather than attempting to build something from too little information. The prompt prefix displayed to you has also been restored to its earlier phrasing ("Create me an automation that…"), so one-word entries no longer appear cut off.

Non-English accounts may see the updated prefix wording after the next localization update.

When Active Intelligence creates or edits an Automation, the step description field no longer includes internal keep-prompting instructions or action-limit copy.

When a large build stops early, the single continue note comes from the truncated disclosure — the chat reply no longer repeats a per-request cap or keep-prompting language. This applies to both new Automations and multi-step edits, across all account languages.

The Active Intelligence "conversation not found" empty state displays a search illustration with a title, description, and "Start a new chat" button. The "Start a new chat" button goes to the Active Intelligence home composer.

When you create a deal from a Contact in the add-deal modal, the Account field pre-fills with that Contact's associated account and the deal is saved with the account link intact. Previously, selecting a Contact did not carry the account through, so deals were created without the association.

When campaign generation, editing, or copying fails in an AI-connected context, the error screen shows accurate recovery guidance. The Try Again button appears only for failures the server explicitly marks as safe to replay. All other failures show guidance specific to the situation — for example, "Check ActiveCampaign before starting another generation" — to prevent duplicate campaigns from being created.

A rapid double-click on Try Again previously triggered the generation call twice before the button disabled itself. A guard prevents that.

Separately, when a list view — Contacts, Campaigns, Automations, Deals, or Segments — is rendered in an AI conversation context but the expected data doesn't arrive, the view waits up to 5 seconds and then shows a compact message: "This view didn't receive its data from the conversation. Ask for the data again to reload it." Previously, the view stayed on a loading skeleton indefinitely. Data that arrives before the deadline loads normally; data that arrives late still initializes the view.

The "Convert to segment" modal on the list-segment page is narrower, and the segment name input field spans the full width of the modal body — consistent with the segment name field on the parent page.

Wednesday, Sep 232 updates

In read-only email previews — including version history, Active Intelligence Campaign draft cards, and translation review — personalization tags display as violet chips directly inside the preview content. They scroll natively with the email, scale with the surrounding text size, and show the tag's display name (for example, "First Name") rather than the raw tag syntax. Your exported HTML is unchanged.

After you create a Brand Kit, the "Images from your website" section switches to a scanning state immediately — a page reload is no longer needed to see it.

If a scan gets stuck, it times out after 15 minutes and shows a retry option. Previously, stalled scans had no timeout and blocked the section indefinitely.

Tuesday, Sep 2223 updates

Two issues with the Vega connection edit form are fixed.

The external ID field is locked after a connection is created — it can only be set when first connecting. The token field starts blank in the edit form and is only included in the save when you type a replacement, so leaving it blank no longer overwrites the stored token.

The action button on the segment detail page is labeled "View contacts," consistent with the label used for the same action elsewhere in the lists experience.

A Scheduled Tasks prompt chip appears on the Reports → Campaigns → All Campaigns Performance page. One click opens a Scheduled Task directly from within the Campaign report, without leaving the page.

As part of this change, Active Intelligence prompt chips across Campaign performance pages — including the single-Campaign report — use a unified button style that stays light regardless of dark-mode preference.

The Scheduled Tasks page no longer displays a hero gradient band. Removing it places the hero directly on the page surface in both light and dark themes, consistent with the rest of the product.

Re-clicking the "Try SMS" entry point or the SMS tour card while a tour is already in progress returns you to your existing conversation instead of starting a new one and regenerating a campaign.

The "Add SMS" button on the SMS tour's final card opens the billing page in a new tab and then closes the tour, so you can act on the next step right away.

The "most engaged contacts" homepage widget reloads correctly when refreshed.

After completing a migration import, only one success card appears on the agent homepage at a time. The contact import progress card is suppressed while the migration's "Assets imported successfully" card is showing, so you won't see duplicate calls to action. Standalone contact imports outside a migration are unaffected.

Warning icons in the campaign sending status badge display in yellow, as intended.

Layout names on the Layouts tab of the campaign designer stay directly under their own thumbnail. Previously, labels from the first row painted over the second row's cards, and the last label appeared with no card beneath it.

Sent-message rows in the Automation Canvas link directly to the corresponding Campaign report, so you can get to performance data without navigating away to find it.

Automation Canvas shows missing-tag banner after tag deletion

When a tag used by an "Add a tag" or "Remove a tag" action is deleted, the missing-tag warning banner appears the next time you open that Automation in the Automation Canvas. Previously the banner only appeared after a hard browser refresh. The Automation Canvas still paints immediately from cache on entry, so load time is unchanged.

Active Intelligence widgets accept valid data correctly.

Two causes were resolved:

  • The system now uses the sort order reported by the source.
  • The correctness check now distinguishes surprising values from genuinely impossible ones, so valid data reaches your widgets rather than being silently refused.

If you agree and the second attempt also fails, Active Intelligence hands off to its support path as before. The retry applies to the first failure in a conversation. A second failure re-enables the support handoff so existing routing can take over. Errors on describe-failures and account-wide aggregate lookups keep their previous message.

When Active Intelligence declines to edit an active Automation, the response arrives in your account's configured language rather than always in English. English remains the fallback when a translation isn't available yet; other languages are updated on the weekly translation cycle.

When Active Intelligence composes a Page or Form, a preview panel opens in the chat as sections stream in — you don't have to wait for the full result.

For Pages, the preview supports desktop, tablet, and mobile widths. For Forms, it steps through each question one at a time.

You can make edits directly in the preview: retype a headline, swap a photo, change a link, or duplicate, reorder, or remove a section. Undo and redo are available for most edits; removing a section cannot be undone.

The preview is session-only. Nothing is saved or published automatically, and reloading the page clears it.

Active Intelligence renders a live preview of a generated Form directly in the chat conversation before writing anything to your account. You can review the Form — including its field layout, list and tag wiring, and double opt-in settings — and decide whether to save it.

List and tag wiring is resolved from your account automatically. If account data is temporarily unavailable, the preview still completes and discloses what couldn't be wired, rather than stopping entirely.

When you paste a link to a page and ask Active Intelligence to write an email about it, the page is read and used even when the link is shaped like an ActiveCampaign template URL but carries no template (for example, a URL ending in ?tid=0).

Previously, the zero template ID was treated as a valid template reference, causing the page to be silently discarded and the email to be built from nothing. The fix applies to the create, edit, and summarization paths.

When you ask Active Intelligence to edit an Automation that is already active, it responds with a single clear message explaining that contacts are already moving through the Automation. The message applies whether you're on the main agent page or inside the builder. It offers the steps available in the builder, tells you to set the Automation to inactive and ask again, and reminds you to turn it back on afterward so new contacts can enter.

The difference was most visible on macOS, where the previous rendering setting produced a visually inconsistent appearance on the dark background. Messages, headings, and the composer all render consistently with the rest of the interface.

When Active Intelligence responds with an Automation block or trigger chip in chat, follow-up actions route correctly to the Automations experience.

Active Intelligence can retrieve your primary Brand Kit, retrieve a specific Brand Kit, create a Brand Kit, and update a Brand Kit — all alongside its other capabilities.

Creating a Brand Kit always requires your explicit approval: a confirmation card appears before anything is created, even in autonomous runs. Updating a Brand Kit goes through the standard write-approval card.

When Active Intelligence generates a Campaign, the card presents on its own. The warning-icon advisory list that previously appeared beneath the card has been removed.

Monday, Sep 2123 updates

The Wavelength onboarding tour correctly highlights the Automations target even when that content loads a moment after the page, routes task creation to the right place, and keeps the task-help handoff working across the task landing and create screens.

The Smart Start Guide appears in a rail beside the Inspire me recommendation cards on the agent homepage. When the guide is hidden, the Inspire me cards display in the existing layout.

Drop a Showcase block into a Campaign to embed a staff list as a row of book tiles, each showing a cover image, title, and author with a link back to the showcase.

Controls let you choose the number of tiles (1–5), image size and spacing, card layout (vertical or horizontal), block background color, and per-field styling for image, title, and author. A "Show 'View All' tile" toggle is also available. All tile styling is inline, so the editor view and the sent email match.

Visibility toggles: The Image, Title, and Author elements can each be shown or hidden individually using the visibility switchers in the editor panel. At least one element must remain visible.

Text truncation: A "Truncate text" switch limits Title to 2 lines and Author to 1 line, with "..." added when text is cut.

Tile images that previously rendered broken or empty when a cover image was not available at the expected size are also fixed. The fallback order is large → medium → small, with a static placeholder used when none of the sizes are present.

Visibility toggles apply to newly added Showcase blocks. Blocks already saved in existing templates or Campaigns keep their previous settings.

Minute cadences read "Runs approximately every N minutes." Hourly cadences read "Runs approximately every hour." or "Runs approximately every N hours." depending on the value. Daily and longer cadences keep their existing copy. The previous "runs within 30 minutes" disclaimer for sub-hourly cadences has been removed.

The optional end date field is hidden for daily and longer cadences, has no default, and clears automatically if you switch a task from sub-daily to a daily-or-longer cadence. A sub-daily task with no end date runs without a stop date by design. The selectable range for minute cadences is constrained to 30 days from the start date.

"Paused" is a selectable option in the Automation overview's status filter and in the bulk-edit status picker. You can filter your Automation list to show only paused Automations, or select multiple paused Automations and update their status in one step — without having to open each one individually.

Reloading triggered translation again, repeating the cycle. Translation continues to work for users who rely on it.

The Manage Contacts drawer header padding, divider spacing, and checkbox column width are adjusted so the Contact column sits flush next to the checkbox.

In the Engage Flows builder, the button to turn a flow on is disabled while you have unsaved edits, because turning a flow on publishes whatever was last saved. Previously the tooltip showed a generic message that named the wrong reason. The tooltip now reads: "Save your changes before you turn this flow on."

Save your edits first, then turn the flow on.

The stage header in the Deals CRM pipeline view has been redesigned to make reordering columns easier. The decorative dot beside each stage name is gone, and the full title cluster — stage name, deal count badge, and total — now acts as the drag handle for the column. You can grab anywhere across that area to reorder.

The settings gear and the add-deal button remain outside the drag area and work as before.

Drag feedback is also improved: columns no longer stretch to full lane height while you're moving them, the drag preview is fully opaque and elevated rather than a faint tint, and the column hides its deal count while in flight to prevent the title from wrapping. Keyboard reordering works via the title handle, and screen readers hear the stage name announced when a column is picked up.

Stage names are no longer text-selectable — a deliberate trade-off for the wider drag target.

Tags on the Contact detail page sort in case-insensitive alphabetical order. Previously, uppercase tags were sorted ahead of all lowercase ones, so "TEST," "a test," and "1 Test" appeared as "1 Test, TEST, a test" rather than the correct "1 Test, a test, TEST." The order you see on the Contact detail page now matches what you'd expect.

Deal cards in the Deals CRM pipeline view show the correct contact avatar again. When a card displays the Contact or Contact-and-Account field, the contact's avatar leads that row — so you can identify the person at a glance without opening the deal. The avatar appears automatically whenever you've selected the Contact or Contact-and-Account field; no separate toggle is needed.

The placeholder overlay on coming-soon widgets reads as two complete sentences: "Yours is on the way. This widget will fill in on its own once your account has data for it."

Campaign template icons in the Active Intelligence sidebar use an outlined style throughout. Whether a template appears in the add-context menu, as a selected chip, on the campaign preview Templates button, on campaign-from-prompt template chips, or on the "Reuse a design" button, it looks the same. Previously the filled icon was used, which made selected templates look different from the same item in the menu.

A replay action card is available in the Automation Canvas, with the logic to execute it.

Each row card in the Automation messages gallery shows a "View report" label on the report control, matching the label used elsewhere in the Automations area.

The setup card only appears on the builder page for the specific Automation being imported. Opening a new tab or navigating elsewhere clears it, so the prompt no longer appears over read-only Automation previews. If you dismiss the sidebar, the builder falls back to the original import drawer.

The Advanced settings section on the contact import review step opens automatically. Previously, you had to find and click the section to expand it. You can still collapse it by clicking.

As Active Intelligence homepage widgets finish generating, the loader displays two additional animated steps — "Finishing up" and "Putting on the final touches" — so you have a clearer sense of progress while results are being prepared.

The progress bar on the dashboard card and the step copy in Customize Homepage Experience advance through six phases over approximately 30 seconds, with the final step holding until generation completes.

The default widgets on the Active Intelligence homepage and the idea pills in the Manage view have been updated for better chart-type variety and more reliable first-run results. Contact growth seeds as an area chart, contacts-by-status seeds as a pie chart, and bar-chart seeds are spaced apart. The automation-errors seed — which returns no data for many accounts — is replaced with a most-used-automations seed that works for any account with at least one Automation. In the idea pills, the contacts-by-status pill is replaced with a top-tags pill.

The thumbs-up and thumbs-down feedback icons in the Active Intelligence sidebar display with the correct rounded outline style when unselected and switch to the filled variant when selected.

When you open the Add context menu in the Active Intelligence chat input, the @ icon draws a ring animation that completes in 520 ms, fades out, and resets so it replays each time you open the menu. The animation respects your device's reduced-motion preference and will not play if you have that setting enabled.

The menu renders above the banner regardless of whether it's showing, so you can always access your attachments options.

Button labels use a smaller, muted text style; icons sit closer to their labels; spacing between toolbar buttons is tighter; and borders use a consistent muted style.

The attach button icon changed from a paperclip to a plus sign, which more clearly signals that it's for adding files or attachments — its function is unchanged. When the attachments menu is open, the + button rotates to an × so you can see at a glance that the menu is active. If you have reduced motion enabled in your system settings, the open state is shown without the rotation animation.

These changes apply across the Agent home, conversation view, scheduled task preview, and Campaigns AI prompt.

Sunday, Sep 2047 updates

When you delete a tag in ActiveCampaign, WhatsApp is notified so it can remove its copy of the tag. Previously, deleting a tag in ActiveCampaign left the tag in place on the WhatsApp side.

This applies to accounts that have a WhatsApp inbox. If the notification to WhatsApp fails, the deletion in ActiveCampaign still completes — the sync catches up automatically.

Two new opt-in parameters are available on GET /api/3/templates. Sort templates by how often they've been used with orders[used]=DESC to surface your most-used templates first. Fetch templates without email markup using exclude=content,preview_content for faster, lighter responses when you don't need the full content. Requests that don't use these parameters are unchanged.

Two API filters that silently did nothing are fixed:

  • Template editor-version filter: Template search was ignoring the editor-version filter and always returning only the latest editor (version 3) templates. Filtering by all versions, version 1, or version 2 now returns the correct results. The query-string keys you use are unchanged.
  • Contact activity trends list filter: The contact activity trends report was ignoring the list filter and always reporting across every list. It now narrows to the list you specify. Per-user list permission filtering is applied independently, so access is not widened.

Previously, creating a template and applying a layout required two separate steps. If the second step didn't complete, an empty template could be left behind in your account. Templates can be created with their layout already applied in a single operation, and the process rolls back cleanly if anything goes wrong — leaving no leftover records.

Tag names containing line breaks are rejected at creation. Tags saved with line breaks in their names couldn't be applied to, removed from, or looked up by name on contacts. The API returns a validation error when a tag name contains a line break. In-app paths that create tags through the UI, imports, and automations already sanitize names before saving and are unaffected.

When Active Intelligence swaps an existing Campaign into a Send Email step in an Automation, the Campaign is correctly linked to that Automation. Previously the Campaign stayed detached, causing "Error loading form values" when you opened the send email block in the builder.

A showcase block is available in the page builder.

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.

Segments that already contained more conditions than your account's limits allow could become permanently unsaveable — any attempt to edit and save them would be blocked, even without adding new conditions.

The save path checks incoming condition counts before making any changes. If a save would push any count over your account's limit, it's rejected and the stored segment is left exactly as it was. Segments that already exceed a limit stay editable: you can save them unchanged or reduce their conditions; only an increase is refused.

Reply counts previously included STOP, START, and keyword texts that aren't genuine replies, inflating the number. Opt-out counts came from a source that resets when a contact re-subscribes, so a contact who unsubscribed and then restarted showed a net opt-out count of zero, understating your true unsubscribe history.

Reply counts now reflect only forward-intent messages. Opt-out counts are drawn from an append-only source, so a contact re-subscribing no longer erases their prior opt-out from your totals. These corrections apply across all SMS reporting surfaces: account-wide snapshots, per-Automation metrics, per-broadcast metrics, and the reply-count graph. The activity feed in Campaign reports is unchanged and continues to show all message types, including STOP and START events.

Edit and Delete are available again for SMS keywords on lists that had duplicate keyword entries. If you were seeing an error when trying to edit or delete a keyword, those actions work correctly.

Creating, updating, or deleting a permission rule on the Active Intelligence customize page produces an entry in the customization activity feed, alongside other customization changes already tracked there.

The feed records which verdict was replaced on an update. Saves where nothing actually changed produce no feed entry. This is available on accounts with the permissions feature enabled.

Two issues caused large Excel imports to fail: formula recalculation was running on every cell during conversion, which could exceed the 30-second time limit for complex workbooks; and the file size check only measured the compressed file size, so files that expand to very large cell counts passed validation and then failed during load.

Formula recalculation is now skipped during import — stored values are used instead. Files where the first worksheet exceeds 500,000 cells are rejected before loading begins, with a clear error rather than a timeout. If a file's dimensions can't be determined, it's allowed through rather than blocked.

The CSV import path is unchanged.

Active Intelligence's Industry Intelligence feature previously published cards even when the underlying sources were off-vertical, too general, or not meaningfully about your market. About 55% of generated Industry Intelligence cards were failing quality evaluation because the fallback path produced weak cards rather than skipping them.

Active Intelligence now recognises when no source is genuinely relevant to your market and exits without producing a card. If every available source is from a different vertical or region, or is a listing, directory, pricing, or press-release page rather than substantive market content, the run ends with no card. A short or number-free snippet that is still about your market continues to produce a card. Cards backed by a single strong source still publish.

This change applies only to Industry Intelligence. Brand monitoring and competitive intelligence are unaffected.

Group-level email sending limits are now enforced against the campaign owner's group, as intended.

The limit check was resolving against the primary admin's group, which defaults to unlimited, while usage was recorded against the owner's group. The two never matched, making limits unenforceable for any non-admin group. The check now resolves the limit from the campaign owner's group, falling back to the primary admin's group only when needed.

Series campaigns, which are the highest-volume users of this path, are also covered.

Screenshots of AI-generated emails in the onboarding timeline, campaign list, and template gallery are captured at the width the email was built for — 600px for generated emails. Previously, screenshots were captured at 900px, wider than the email body, causing them to look incorrect. The correct width is also passed through to the renderer, where it was previously dropped before reaching it.

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.

Previously, selecting "No Folder" either returned an empty set or was silently ignored depending on the list. The filter works as expected across all three.

When "No Folder" is combined with real folder selections in a multi-select, the result is the union — assets with no folder plus any of the named folders. All other filter values behave exactly as before.

Emails built in the email editor maintain heading hierarchy on iPhone when Accessibility → Larger Text is enabled. H1 is sized to maintain a clear ratio above H2, matching the desktop heading scale and surviving iOS scaling. Existing campaigns, templates, and sent mail keep their stored copy unchanged.

The compliance footer that the email editor adds to your campaign can be selected, moved, and edited using the editor's own controls. Previously it appeared in the email but couldn't be interacted with inside the editor.

How the footer appears in sent emails is unchanged.

No action is required.

The fix applies to both direct API syncs and bulk ecommerce data syncs. Contacts who do not accept marketing remain unaffected, and no unsubscribed rows are created for them.

Searching deals with a term that included an emoji or other special character — for example, "Perfeito! 😊" — was returning an error instead of results. The search strips those characters from the term before running, so "Perfeito! 😊" narrows results the same way "Perfeito!" would. Because this is a free-text search rather than an exact lookup, there's no risk of matching the wrong record.

The Deals CRM pipeline view export adds six new standard columns: Contact Phone, Account Website, Account Owner Name, Account Owner Email, Account Owner Username, and Account Owner ID. Two new custom-field blocks — Contact Custom Fields and Account Custom Fields — are also available, appended after Deal Custom Fields in a consistent column order.

All new fields are selectable in the field catalogue alongside the preset export cards (Everything, Spreadsheet view, and Custom). If the Accounts feature isn't enabled on your account, account and account-owner fields won't appear in the catalogue. Existing exports are unaffected: columns are unchanged if you don't select the new fields, and missing data yields an empty cell rather than an error.

Previously, these triggers silently never fired in snapshot-provisioned accounts. The fix covers all trigger paths, including UI saves, imports, and automation revision restores. Re-saving the trigger in the UI is not required.

Searching for contacts by email address using a value that contains emoji or other 4-byte characters returns zero results cleanly instead of throwing a database error. The same fix applies to the legacy API v1 contact add path, which had the same behavior.

The fix treats any email filter containing a 4-byte character as a guaranteed non-match, avoiding any risk of silently matching a different contact.

No action is required.

Filtering contacts via the API by last name, first name, or organization name returns results correctly. Previously these filters returned a server error.

As a side effect, filtering by owner also works. Unknown filter keys are silently ignored rather than causing an error.

Your contact scores update reliably, even when one of your score rules references a segment that no longer exists. Previously, a single broken rule caused the entire scoring batch to stop — every rule after it was skipped, and scores were never updated for that run, even though some rules had already been evaluated. The broken rule is logged and skipped, and the remaining rules run to completion.

If every rule in a score fails, the score value is left as-is for that batch rather than being zeroed out, protecting your data during a temporary issue with the segment engine.

The Contact Import page loads correctly when the upload is empty or the file source doesn't populate the expected input, rather than returning a server error.

Previously, spaces were stripped when displaying values even though they were saved with spaces, so the display didn't match what was actually stored.

If you use the API to read and write contact field values, check whether any values now appear with leading or trailing whitespace. That whitespace was already in your data — it's now visible for the first time.

Viewing a contact's activity loads correctly for accounts that have WhatsApp conversation or contact enrichment activity.

Retrieving a contact via the API (GET /api/3/contacts/{id}) returns a complete response even when that contact has a large number of associated deals.

When you created a campaign by copying a past one, the email body was stored in a raw internal format instead of finished HTML. Recipients received an unrendered document, styles applied only through class rules were lost, and buttons appeared with black text in Outlook instead of the color you set.

The email body is compiled into finished HTML, with all styles applied inline, before the campaign is saved. Outlook-compatible formatting and responsive layout blocks are both preserved. New copies made going forward will render correctly.

Automations with a "Contact created" trigger that Active Intelligence built stay active after creation. Previously, these Automations were incorrectly deactivated immediately after being created, meaning contacts entering at that trigger point were never processed.

The lists added or removed during import are unchanged. No action is required — template imports on large accounts will complete as expected.

Previously there was no upper bound on repeat intervals, so a value like "every 999,999 minutes" could be submitted and stored. The scheduled task editor and Active Intelligence's guidance now both enforce per-unit maximums: 1,440 minutes, 168 hours, 366 days, 52 weeks, 12 months.

Entering a count above the maximum flags the input, shows a unit-specific warning, and blocks saving. Tasks already stored with out-of-range intervals still load and display on every list, detail, and edit surface — validation blocks saving, not viewing, so stored tasks can be corrected.

When asking Active Intelligence to create a new automation, it previously stopped to warn about overlapping triggers with existing automations and presented numbered options. Active Intelligence proceeds directly to building the requested automation.

Active Intelligence could build a segment with more than three "contains" or "does not contain" conditions. The segment builder enforces a maximum of three such conditions when you edit a segment manually, so these oversized segments were saved but then opened with a danger banner and a disabled Save button — impossible to edit.

Active Intelligence refuses to save a segment that would exceed the three-condition limit. When the limit would be exceeded, Active Intelligence surfaces a message explaining the limit and suggests splitting the audience into separate segments.

Segments already saved over the cap are not repaired by this change.

Previously, a "the API doesn't cover that" result was treated as a final answer, leaving you with nowhere to go. Active Intelligence now hands off to support knowledge in the same response, so you get a useful answer instead of a dead end.

When an operation exists but your account's settings prevent it, Active Intelligence still reports that directly rather than handing off.

When Active Intelligence edits a Send Email step in an automation by assigning an existing campaign, that campaign is properly linked to the automation. Previously, campaigns assigned through the Active Intelligence chat path were not connected to the automation's series or list. Clicking Finish caused the campaign to stop, and reopening the action showed "Error loading form values." The email couldn't be opened, edited, or published, and the automation couldn't go live.

This affected the Active Intelligence edit path specifically; creating from a template in the Automations overview worked correctly throughout.

No action is required.

The classification step was completing too slowly under the previous time limit, so the catalog returned nothing instead of the tags it had found. The time allowed for classification has been extended, and local testing confirmed that a tag like "Engagement - Ghosts" — which previously exceeded the old limit at around 8.6 seconds — completes successfully. If classification still runs long in an unusual case, the system continues rather than stopping.

Several improvements to the Campaign send experience in Active Intelligence ship together.

Audience picker shows your real audiences. The Segment dropdown previously offered only "No filter — full list" and "Create New Segment." It pulls from your full audience list (up to 10,000 rows, de-duplicated), so you can select any segment your account has.

Sending to multiple lists now reaches all of them. When Active Intelligence proposed a primary list plus additional lists, the send panel previously read only the primary list. Every suggested list is written and verified against your account before saving.

The send panel no longer floods the screen with notifications. Each schedule pick previously triggered a success notification with no limit. The redundant notification is removed; the status line above the controls already shows "saving" then "saved." The past-send-time warning fires once per action instead of once per keystroke.

A schedule saved elsewhere shows in an open panel. Send mode, day, and time previously only loaded when the panel first opened, so a schedule changed elsewhere kept showing stale values. The three controls stay in sync with the latest saved schedule; unsaved edits still take priority until the server confirms a different schedule.

Campaign settings lock as soon as a Campaign is sent. After sending or scheduling, settings previously stayed editable for up to five minutes and the send button stayed active. Both paths that finish a Campaign lock settings immediately on success.

Send-blocked reasons are readable. When a generated Campaign can't be sent, the explanation is a single clear sentence listing what needs to be added, with supporting conditions shown at a lower visual weight.

The Campaign success screen shows the correct icon. The success screen uses the correct send or calendar icon.

A successful Campaign no longer appears as a list of errors. When a Campaign generated successfully but with notices, the response previously formatted as a bullet list that read as a failure. Notices are relayed as prose, one short paragraph after the confirmation, with actionable items first.

Campaign delete reports the correct result. The delete action returns the correct result; bulk delete lists any Campaign that wasn't removed under failed; and cascading deletion of child Campaigns reads each child's result so incomplete cascades can't report success.

Generated emails can be saved directly to the template library. You can save a generated email as a reusable template without creating a Campaign. The template appears in the library and can be opened by its creator.

Deleted campaigns move their design records to an archived location; on restore, those records move back. The brand suggestion logic was previously reading both locations, so a restored campaign's archived records caused later human-authored campaigns to be treated as AI-generated — which could suppress valid brand proposals or refuse them for too few sends.

The logic reads only live design records. A fallback handles the edge case where a restore left a live AI campaign with only archived records. A lookup failure causes the proposal to be declined rather than silently treating every AI campaign as valid.

When you ask a how-to question about scheduled tasks in Active Intelligence — for example, "What is this?" "What does this do?" or "How does this work?" — you receive a real answer drawn from support knowledge.

The SMS campaign creation tour starts correctly and generates campaigns with complete content for accounts that have a brand kit or voice profile set up. Previously, the tour sometimes didn't start at all, or started but produced a campaign with a blank message.

When importing contacts, AI-suggested tags default to inactive. You must explicitly turn on each AI-suggested tag before it's applied to your contacts. Tags you add manually continue to default to active. Existing saved import settings are unaffected.

When generating a Brand Kit's email templates fails, the previous working template is left in place rather than being overwritten.

Friday, Sep 1830 updates

30 updates: 9 new · 13 improved · 8 fixed, across 8 areas.

Selected updates · 5 of 30 updates

  • Scheduled task repeat intervals now enforce per-unit maximums The scheduled task editor enforces per-unit maximums — 1,440 minutes, 168 hours, 366 days, 52 weeks, or 12 months — so you can't save an interval the system would reject. Existing tasks with out-of-range intervals can still be viewed and corrected.
  • Onboarding emails compose and appear in real time during account setup For new accounts, onboarding emails are composed and painted to the screen band by band as they are written, so you see each email take shape in real time rather than waiting for it to appear all at once.
  • Delayed campaign sends shown as a warning icon in the status chip When a campaign send is delayed, the status chip keeps its normal color and label and adds a small warning icon you can hover to see a "Delayed" tooltip, making it easy to spot delayed sends without losing the underlying status.
  • Deals CRM pipeline view loading skeleton matches real pipeline width and density The Deals CRM pipeline view loading skeleton transitions to the loaded board without a visible jump in width or density. The skeleton renders five columns with a descending funnel of cards to match the real pipeline layout.
  • Deals CRM pipeline view columns now sortable by Primary Contact, Account, and Status The Primary Contact, Account, and Status columns in the Deals CRM spreadsheet view can be sorted, bringing them in line with the list view.

30 updates: 9 new · 13 improved · 8 fixed, across 8 areas.

Three separate issues could cause newly created or updated templates to disappear or never appear at all: the listing collapsed paginated results in a way that silently cut off templates past the first page; neither page cleared its cached listing after a create or update; and the two pages used different cache keys, so clearing one didn't reliably refresh the other. All three are resolved.

When a template can't be created, you see an error message ("Couldn't create your template") rather than the failure disappearing silently.

The sort pills in the campaign gallery view are visually consistent with the category dropdown. The selected pill uses the same grey tone as other selected controls, hover on an unselected option uses a lighter grey so it can't be mistaken for selected, and the pills use the same typeface and size as the dropdown.

The scheduled task editor previously allowed any repeat count up to a global ceiling of 999, which could produce intervals the underlying engine would reject. The editor enforces per-unit maximums: 1,440 minutes, 168 hours, 366 days, 52 weeks, 12 months.

Entering a count above the maximum flags the input, shows a unit-specific warning banner, and blocks saving. Existing tasks with out-of-range intervals still load and display on every list, detail, and edit surface. Validation blocks saving, not viewing, so stored tasks can be corrected.

The text input in the scheduled task preview side panel auto-resizes its height correctly. Previously the height could get stuck, making it harder to see what you had typed.

Each card reveals as soon as its first band arrives. If a screenshot never becomes available, the card keeps the email you watched being built.

Changes include aligned toolbar height, border radius, fonts, contact links, and table headers; an Activity Logs-style date range picker replacing the Last entry and Last completion text fields (single day and from-only supported); column settings matching the Overview gear menu; lighter color for status chips, the Filters count badge, and matching-row chips; the End Current Run(s) button using the same red as the Overview Delete button; removed gray dividers in Manage Duplicates with tighter radio spacing; and a slate footer matching the Delete Automations pattern.

On large canvases, hidden drag-preview cards were being rendered inside every draggable node at an off-screen position. The viewport transform on large canvases brought those cards back into view, making them appear as floating or disconnected blocks near the start trigger.

The drag preview is mounted once on the page body only for the duration of a drag and removed when the drag ends, so it cannot appear on the canvas while idle.

When a campaign send is delayed, the Campaigns list keeps the campaign's actual status chip — Preparing, Sending, or Scheduled — with its normal color and live indicator, and adds a small warning icon inside the chip. Hovering the icon shows a "Delayed" tooltip. The progress bar still turns orange for a delayed send.

The delivery-incomplete icon's tooltip reads "Incomplete." The "complete" option in the Status filter dropdown is relabeled "Sending / Sent" to reflect that it also matches campaigns still delivering. Terminal statuses never show the warning icon.

The Deals CRM pipeline view loading skeleton transitions to the loaded board without a visible jump in width or density. The skeleton renders five columns with a descending funnel of cards to match the real pipeline layout.

Previously these three columns were display-only. You can sort by any of them the same way you sort other columns in the spreadsheet view.

Meta rows — value, contact, and next action — keep their single-line display. Adjacent column headers may differ in height when stage names vary in length.

Previously, clicking the ellipsis ("...") in the contacts drawer paginator triggered a request for page 1,000,000 or 1,000,001, causing the drawer to attempt fetching a massive offset. Those out-of-range sentinel pages are now dropped, and the paginator behaves correctly when the ellipsis is clicked.

Sorting works across all four columns and supports both ascending and descending order.

Both gallery views in the campaign browser display the campaign name, subject line, and performance rates such as open and click rates, giving you the key details at a glance without opening each campaign.

When a save fails, the Campaign Builder header reports "Not saved" with the message "Your recent changes haven't been saved. Check your connection and try again." Previously it continued to show "Saved just now" even after a failed save, giving you false confidence that your changes were recorded. Tracking checkboxes, the Google Analytics name, and per-link tracking names revert on save failure instead of appearing to have saved.

Five additional fixes shipped at the same time:

  • Editing a campaign's lists no longer silently clears its segment. Previously this could widen a send from a targeted segment to every contact on those lists.
  • The send confirmation blocks when the audience can't be resolved, rather than showing a live Send button alongside "0 contacts."
  • Reloading the confirmation page for a scheduled campaign shows the correct scheduled state. Previously it displayed "Your campaign is being sent!" for a send that hadn't happened yet. When the exact send time isn't available, the page shows: "It will send at the time you chose. You can unschedule it from the campaigns list."
  • Tracking toggles clear when you move to a different campaign, so a previous campaign's settings no longer carry over.
  • Choosing a campaign type sticks — the page no longer reverts your selection after a refetch.

The Campaign Builder canvas toolbar includes an AI menu and performance actions, giving you faster access to Active Intelligence and campaign performance from within the builder.

Branch arm pills in the Automation Workflow Builder display the shorter labels "True" and "False," making branch conditions easier to scan at a glance.

Previously, incomplete steps displayed raw parameter keys — for example, "Add tag missing tagname." The builder now shows plain-language labels: "a tag," "a list," "an email," "a field to update," "a webhook URL," "a from address," "a recipient," "a subject," or "a message," depending on what's missing. The redundant "(missing)" note has also been removed from tag and list recommendation messages.

Previously, the messages page opened fully expanded, requiring you to scroll through every message to understand the shape of a large automation. Each section header now shows a step count, so you can orient yourself before drilling in.

The folder filter on the Automation Canvas index looks and works the same way as the filters on your Campaigns, Forms, and SMS lists. Folders and goals appear as separate labeled sections, both expanded by default and collapsible. Each option shows the name and its count. The filter is single-select with an explicit "Any" option, and names sort alphabetically within each section. The goal icon is a gold trophy that appears after the name and count.

Previously, unavailable triggers were not identified by name, leaving you to discover incompatibilities after the fact. The builder now surfaces this information at the point of adding a step.

The fallback order is: specific message, then localized decline copy, then generic error. Suggestion chips for unsupported data prompts and the dedicated no-access state for permission errors are preserved.

When Active Intelligence generates or edits an automation, it reuses tags already in your account rather than creating new ones, keeping your tag list clean and your automations consistent with your existing contact data.

The approval card in the side panel no longer pushes the headline past its text or lands the toggle on top of the title. The header row wraps with the headline holding 60% of the width; the control sits beside the title when space allows and drops to its own right-aligned row when it does not.

The "Rules set from chat approvals" block has been removed from the Permissions page. Nothing in the product writes such a rule any more. Any rules previously listed there are also cleared automatically when you visit the page, provided both data fetches have completed. The sweep only removes allow and ask rules; deny rules, the wildcard, account-scoped rules, and rules without an ID are never touched.

Permission-related feed rows previously opened the memories link. Clicking them now opens the Permissions section directly — both on the full page and in the Active Intelligence sidebar.

This requires the Active Intelligence permissions feature to be enabled for your account.

inaccuracies

"See the latest" is shown before the personalized view and is used as the first-visit default when available. If the previously saved tab is no longer available, the selection falls back safely.

On the migration review screen, clicking "Review automations" or "Review campaigns" opens Active Intelligence with a relevant prompt already set, so the conversation starts in context rather than requiring you to describe what you want to review.

When you edit the Brand Kit and navigate away without saving, a confirmation dialog appears before your changes are lost. You can choose to save and continue, or leave without saving. If saving fails validation, the dialog closes and you stay on the form — a banner and highlighted fields show exactly what needs correcting before you can move on.

On an imported brand where leaving would delete the brand entirely, only the "Leave without saving" option is offered. When there are no unsaved changes, no dialog appears.

When auto-save goes live, your edits will save on blur with no extra step required. The supporting interface text shipped in this release includes a saving indicator and a warning if you navigate away from a brand with required fields still empty.

Thursday, Sep 1711 updates

One of the required checkboxes on step 4 of the merge intermittently ignored clicks, leaving the Merge button disabled with no explanation. Navigating back and forward in the wizard remounted the checkboxes and masked the problem.

The four checkboxes on step 4 now use explicit unique IDs, matching the fix already applied to the archive-contact, add-to-lists, add-to-automations, and delete-fields modals.

Editing a campaign field previously caused it to stop accepting updates from the server for the rest of your session. A change made in another tab or by a teammate wouldn't appear, and switching variants on a split campaign could leave the previous variant's text on screen.

Fields now track what you last typed locally and resume accepting server values once the server confirms your edit. A server update arriving while you're typing won't overwrite what you're working on, and a failed save keeps your edit in place rather than silently reverting it.

Four specific issues are resolved:

  • A field edited once no longer ignores server updates for the rest of the session.
  • The date-based reminder block shows only date fields from the list the campaign sends to, not from every list in your account.
  • The link tracking modal stays open when a save fails, so you don't lose the names you entered.
  • A split test percentage you type while a ratio warning is showing is saved correctly on blur.

When Active Intelligence builds a large automation that needs more than one pass to add all its steps, the status indicator in the automation builder moves through distinct phases: "Creating automation," then "Adding steps," then editing any remaining steps. Previously the indicator stayed on "Creating automation" the entire time, with no sign that work was still happening.

The builder updates automatically.

When Active Intelligence generates an automation that hits the step limit, the result includes a line telling you how many steps were included, so you know exactly what you got rather than having to count manually.

Each homepage widget card displays an "Updated x ago" line beneath its title, so you can see at a glance how fresh the data is.

The 6-hour auto-refresh calculation uses the same server-stamped timestamp, so a cosmetic save to a widget can no longer make stale data appear current.

Active Intelligence sidebar AI menu in the Automation Builder

An AI menu sits directly on the automations canvas. Clicking it opens the Active Intelligence sidebar to a landing screen with three options:

  • Make quick edits — ask Active Intelligence to adjust your automation on the spot.
  • Analyze this automation — get a read on how your automation is structured and where it might be improved.
  • Run an automation report — the same performance view that was previously a standalone action, now reachable from the same menu.

The notifications center lives inside the "Your AI" drawer in the global navigation. Unread insights show an indicator dot, and the nav icon carries a badge while any unread insights remain. From the center you can mark all as read, edit which notifications you see, or delete them. Read notifications stay in newest-first order with only their unread dot removed.

When you open an insight from the center, the sidecar chat header is replaced with a Back action. After the conversation, that action returns you to the notification center with the handoff content intact. Full-page chats also return to the notification center on close.

When Active Intelligence builds an automation, email generation steps show a "Writing email" label while the email is being created, and "Email not created" if generation doesn't complete. A third state is also handled: when a send step's email was never written at all, a card appears in place of the missing preview explaining what happened and how to add the email yourself. Previously, all three states either showed a raw key string or left failed and in-progress steps indistinguishable from each other.

When data isn't available, Active Intelligence routes to support rather than returning empty or invented figures.

Active Intelligence campaign editing has been rebuilt to keep edits targeted, transparent, and 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.

Button edits stay scoped to the button. Asking Active Intelligence to change a call-to-action button previously could silently repaint entire sections of your email, reaching 2–4 surrounding bands in tested emails. The edit stays contained to the button, its column, its row, and adjacent spacers.

Campaigns are no longer locked out of editing. Over 7 days in US production, Active Intelligence refused to edit campaigns 409 times; 203 of those were the service failing to read markup it had written itself, locking campaigns out of editing entirely. The rate climbed from 1–11 refusals per day in mid-August to 45–56 per day. Six underlying causes are resolved, so campaigns that were previously unreachable for editing are now editable.

Fix a single value without a full rewrite. A deterministic edit path lets you correct one specific thing — a price, a URL, or a call-to-action label — without a full-block rewrite. Seven supported operations cover words in a block, a picture's source, an action's destination, the call-to-action wording, and copying, moving, or removing a band.

The editing menu shows clearly named options. When you click "Edit with AI" on a campaign summary, you get a menu of named edits instead of a blank chat prompt: Make the subject line stronger, Shorten the copy, Change the tone, Swap the images, Update the button text, and Tell me something else. Each choice opens Active Intelligence with that specific instruction already set. The five copy-and-image edits work with both generation engines; layout and structural edits are not included.

Collateral changes are now named, not just counted. When an edit touches parts of your email you didn't ask about, Active Intelligence tells you which sections moved — for example, "Look in section 2" or "Look in sections 2 and 4" — rather than only how many.

Active Intelligence tells you what it left alone. After an edit, you're told that the rest of the email was untouched.

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.

Your campaign preferences travel into generation. Eight values from the intake form reach generation: audience description, tone, stated color (hex only), 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.

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, with template markup traveling with the copy untouched. When a design loses its layout during parsing, Active Intelligence notifies you directly.

Removing a single block no longer deletes its entire section. Block removal is now its own operation, leaving the section intact. When a block is the last in its section, you're told to delete the section instead.

Both the block events insights tool and the block events chart tool accept a start date and end date as an alternative to preset time ranges. The full set of preset tokens (7d, 30d, 3m, 6m, 1y, 2y) continues to work exactly as before.

Wednesday, Sep 1638 updates

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 total deal count appears next to "Deals" in the spreadsheet view heading. It sits next to "Deals" rather than next to the pipeline name — a deliberate design decision, given that the pipeline name serves a different dropdown function in the new layout.

Date conditions using date fields — Date created, Date updated, Date subscribed/unsubscribed to a list, Order date, Last order date, and custom date fields on contacts, deals, and accounts — have two improvements.

Rolling windows removed from "is" / "is not". Options like "3 months ago" are no longer offered for these operators, because they only matched at nanosecond precision and were effectively unusable. The available options are now limited to fixed windows: exact date, today, yesterday, and tomorrow. Existing saved conditions with rolling windows remain visible when opened rather than being rewritten.

New "between" operator. A between operator is added for all of these date fields, including custom date fields. It renders two bounds on a separate line beneath the condition row. Custom datetime fields are excluded.

When you switch operators, value rewrites are handled automatically: moving into "between" seeds exact dates; moving out falls back to a single exact date; moving into "is" / "is not" from a rolling window falls back to an exact date.

The Smart Start Guide checklist no longer shows a permanent full-height scrollbar. The list is capped at a maximum height and uses a styled thin rounded scrollbar. A progress count and full-width progress bar appear above the scrollable area.

Known limit: This improvement is visible on partner and reseller accounts only.

Scheduled task report emails can go to anyone you choose, not just admins on your account. You can add up to 10 recipients per task, including colleagues, clients, or any external address.

When you create or edit a scheduled task, the "Notify by email" field accepts any email address you type. It also searches all account users, not just admins, so non-admin teammates surface as suggestions. 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." Their report email contains the same content but without links into the account.

Instead of a bare "Paused" status, you see a specific reason so you can act on the right thing immediately rather than guessing.

When Active Intelligence declines to activate a scheduled task, you see its explanation rather than a generic error message.

A non-admin's email address is no longer pre-filled into a task they can't activate — the field waits until the admin list and permissions have loaded before making any selection.

A run-level disclaimer on a generated campaign is no longer dropped silently; it reaches you as intended, before any per-item advisories.

Two usability improvements also ship: the scheduled task prompt input box is resized to a more appropriate height, and a "/ Schedule task" button has been added to the chat input bar so you can create a scheduled task directly from any chat. The button doesn't appear on the dedicated scheduled tasks page, where task creation is already built into the input. In the Active Intelligence sidebar, the button sits below the other controls to fit the narrower layout.

When Active Intelligence can't finish generating an onboarding email, the email card displays "This email couldn't be finished." rather than leaving the card in an ambiguous state. You know immediately that something needs attention instead of waiting on a card that appears to still be working.

As each step completes, its label switches from present to past tense — "Connecting" becomes "Connected to your previous contact database," for example — and a checkmark appears so you can see at a glance what's done and what's still in progress.

Completed steps stay visible in the scrolling list for two full passes before dropping out, so nothing disappears before you've had a chance to see it. When three or fewer steps remain, the list stops scrolling and displays as a static stack, with completed steps staying checked in place.

The progress bar moves gradually while your import is getting started, then switches to the real percentage as soon as it's available. If a temporary server issue interrupts the connection, the import retries automatically every five seconds until it recovers, rather than stopping and asking you to start over.

Once the widget is on your dashboard, you can see at a glance how each goal is performing by lifetime conversions.

Known limits: Conversion counts are lifetime totals only — date-range filtering isn't available for goals data. Progress toward a target isn't shown because goal targets are stored as free text rather than numbers. Time-scoped questions like "how are my goals tracking this month" aren't supported; the widget won't place a lifetime number under a monthly label.

The Settings access audit log table shows four correct column headers: Action, Target, Actor, and When.

A deal detail page is available in the reporting area, and filters can be applied across all reporting views.

Tool Tips on stat cards and section headings in the dashboard are triggered by hovering the info icon rather than appearing on the element itself.

A card showing the percentage of contacts used relative to your plan limit is available in the platform.

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.

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.

The Recent Activities feed on a contact record previously updated on a 60-second poll, meaning an activity created in another tab could take up to 54 seconds to appear. The feed now listens for new activity and fetches it immediately, typically showing the update within 1 second.

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.

Active Intelligence can read and work with the Contact Created trigger in your automations. Sorting for this trigger has also been updated.

Separately, automations with a Contact Created trigger that were built using Active Intelligence are no longer incorrectly deactivated after creation.

When adding a contact fails, you see a specific message instead of a raw error code. If the contact can't be created, you see "We couldn't add this contact. Please try again." If the contact was created but couldn't be linked to the account, you see "Contact was created, but it couldn't be linked to the account."

Exporting deals from the Deals CRM pipeline view, spreadsheet view, and All Pipelines view opens an Export Deals modal instead of starting an immediate export.

The modal includes: - A Fields panel with Select all and Deselect all controls - A count strip showing how many of the total fields are selected - A search input and a scrollable checkbox list - A subtitle showing the pipeline name and filtered deal count - An Export button that updates dynamically to show the column count and is disabled when zero fields are selected

The modal opens with every field pre-selected, so you can deselect only what you don't need.

The "Sending Status" column on the Campaigns list is now labeled "Status/Send date." The column has always sorted by send date as well as sending status; the new label makes that clear. Only the English label changed in this update.

Back-to-list links across the platform have been replaced with breadcrumbs, and the toolbar displays without clipping. You get clearer context about where you are and consistent navigation across pages. The campaign detail page title, which had gone missing, is also restored.

Message card values in the Automation Workflow Builder are sometimes truncated when the text is too long to display in the card. Hovering over a truncated value now shows the full text, so you can confirm what's configured without opening the step to edit it.

Previously there was no way to filter for contacts who hadn't received an active gallery message. The new condition appears in the gallery message filter options in the automation builder.

On the Apps tab of the automation add-action modal, you can type to narrow the category list instead of scrolling through it. The "All categories" reset option hides while a search is active and returns when you clear the box.

The widget's own data values, including its title, reporting period, prompt text, and the numbers shown in the widget, remain in their original form as live account data.

When Active Intelligence builds a widget from a single Automation's block events, the reviewer sees the send and skip totals, block type counts, and total event count that the chart actually renders.

The suggestion chip above the Active Intelligence composer displays readable text instead of raw translation key strings. Previously, when a chip's producer supplied no wording of its own, the chip rendered an internal key string rather than a usable prompt.

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."

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.

Previously, Active Intelligence grouped trend data in UTC while the standard Open/Read Trends report applied your account's time zone — so the figures differed, and the same contact could be counted multiple times across different days of the same weekday. All time grouping now respects your account's local time zone, so the numbers you see in chat match the numbers in your report.

The system messages Active Intelligence shows in chat after building or editing a campaign, including notices about unsubscribe links, sender info, stock photos, imported file designs, and changes that couldn't be saved, are translatable.

Previously these messages were English-only, so customers using a non-English interface saw a localized email alongside English system commentary. 7.9% of non-English assistant turns contained at least one hardcoded English notice.

126 source strings have been added for translation. Until each locale's translations sync, new strings fall back to English while existing translated strings stay in their language.

The chip covers entries, active contacts, completions, email sends, opens, clicks, unsubscribes, bounces, and conversions, and flags meaningful changes with a recommended improvement.

Previously, the voice profile was built from your account's most recent campaigns in recency order, so a sale email would be styled after whatever went out last, even if that was a newsletter or announcement.

No action is required. If Active Intelligence can't identify the type of email from your brief, or if your account hasn't sent that type before, it falls back to recency order as before.

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.

Clicking the dashboard-level Refresh refreshes every visible widget at once, while keeping each widget's result and error state independent — a problem with one widget doesn't affect the others. The Refresh control is disabled and shows a busy state until all requests complete. Hidden and prompt-less widgets are excluded.

Create and Manage actions are also available at the dashboard level, both leading to the widget-management page.

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.

Tuesday, Sep 1525 updates

25 updates: 6 new · 9 improved · 10 fixed, across 10 areas.

Selected updates · 5 of 25 updates

  • Users and Groups settings page layout improvements Two layout fixes on the Users and Groups settings page make the group editor easier to work with. Permission accordions start collapsed when you open the modal, and the Users and Groups tab row is aligned with the page header title.
  • Sync drawer supports selecting multiple items The sync drawer includes a multiselect option so you can select more than one item at a time, and scope drawer radio buttons display correctly in all themes.
  • Search all pipelines from the Deals CRM pipeline view A Search all pipelines action appears in the Deals CRM pipeline view search field, taking you to the all-pipelines spreadsheet view in one step and carrying your search term, owner, status, and tag filters with you. Stage filters are dropped when you cross pipeline boundaries, and the back button returns you to your previous view.
  • Scheduled task preview recipient search includes all account users When adding recipients to a scheduled task preview, the recipient search field returns all users on the account, not only admins, so non-admin team members are easy to find and add.
  • In-app Ideas portal You can submit product ideas and flag issues directly from the help menu in the global navigation, then track their status, votes, and notes at Settings › Ideas. This feature is off by default and must be enabled for your account before it appears.

25 updates: 6 new · 9 improved · 10 fixed, across 10 areas.

Previously, permission accordions opened expanded regardless of what permissions were already granted, requiring you to scroll past expanded panels before making changes. Saving a group without expanding an accordion continues to work as before. The tab row alignment now matches the layout used by other settings pages.

The sync drawer includes a multiselect option so you can select more than one item at a time, and scope drawer radio buttons display correctly in all themes.

When you're in the Deals CRM pipeline view (pipeline or tasks view), a Search all pipelines action appears in the search field while it's focused or holds a term. Activating it takes you directly to the all-pipelines spreadsheet view in one step, carrying your typed search term and your account-wide filters — owner, status, and tag — with you.

Stage filters are dropped when you cross pipeline boundaries, since they're specific to a single pipeline. The back button returns you to your previous view with your pipeline restored.

Known limit: If you type a term and activate the action within 300ms, the search term may not be carried back when you press the back button. This is expected behavior.

When adding recipients to a scheduled task preview, the recipient search field returns all users on the account, not only admins. Previously, non-admin team members had to be added another way.

A new Ideas portal lets you submit ideas or flag issues without leaving the product. Open the help menu in the global navigation to reach the modal, where you can describe your idea, search for similar ones already submitted, and see which page you're on when you submit.

Once submitted, your ideas are available at Settings › Ideas, where you can see status updates, customer notes, and voting.

The portal is off by default. It must be enabled for your account before it appears in the navigation.

The goals table loads correctly and displays all rows without errors. Checkboxes are vertically centered against row text, and the checkbox appears to the left of the chevron arrow.

  1. Alphabetical folder sort in filter: The folder filter dropdown sorts folders alphabetically, matching the folder grid order. "Any" stays first.
  2. Pinned folder view: When a folder filter is set, the grid pins to exactly those folders, overriding asset-search matches.
  3. Filters persist across List and Folder views: Switching views does not reset your filters. Only bulk selection clears on toggle.
  4. Scroll position preserved when applying a filter: Applying a filter no longer jumps the page to the top.
  5. Manage Folders link in create/edit modal: The create and edit folder modals include a link to Manage Folders.

The automations folder dropdown filter has also been updated to match the behavior of other asset indexes.

Errors that appeared when an account's billing currency was not supported are resolved.

In edit mode, you can select notifications in the Active Intelligence notifications center and delete them. The delete button shows how many items you've selected, confirms successful deletion with a count, and reports clearly if something goes wrong.

The filter bar on the Deal Sales Performance report has consistent vertical padding, matching the spacing used by the Deal Task Overview and Deal Forecast reports.

Previously, the timeframe appeared under the title and the freshness stamp appeared at the far right of the card header. They're now consolidated into one line, making it easier to scan at a glance. Timestamps differ per card because each widget refreshes independently. If one label is absent, the dot separator is omitted.

Two issues with contacts basic search are corrected:

  • Space key restored: On accounts with no saved searches, the space key was being swallowed before it reached the search field, so typing "john smith" produced "johnsmith." Spaces work correctly in the search field.
  • Saved-searches dropdown hides while typing: The saved-searches dropdown hides as soon as you start typing and returns when the field is cleared. Pressing Escape clears the field when a search term is present and dismisses the dropdown when the field is empty.

The activity stream and pending task list on the contact detail page load correctly and stay loaded.

A mismatch between how the page was requesting data caused the entire feed to go blank for a number of accounts, retrying every 30–60 seconds without success. A separate issue caused deleted records to be re-fetched repeatedly on every feed refresh. Both are resolved.

A related fix prevents the add-contact association panel from replacing the entire account page when a search selection is cleared.

No action is required.

Charts in Active Intelligence, Campaigns, Contacts, Automations, and the Partner Portal have updated visuals. Changes include a six-series color palette, area fill gradients, hover tooltips, and bar value labels that automatically use a contrast-safe color. Each chart assigns colors from its series labels, with red reserved until the other five colors are used.

No action is required.

The loading spinner on the campaigns page is correctly positioned with consistent spacing, matching the in-page loading indicator.

No action is required.

Those controls only work during the preparation phase; once emails are going out they have no effect. Pause and Stop remain available during preparation, and Stop remains available for paused campaigns and campaigns awaiting review. Accounts without the sending-progress experience feature see no change.

Bulk edit and archive modals on the Contacts page open, apply changes, and close as expected.

Clicking the insight card opens Active Intelligence with a summary of the top issues. Selecting a specific row docks Active Intelligence and takes you directly to the automation in the builder, where missing settings are now shown as plain-language labels — "a tag," "a list," "an email," and so on — rather than raw parameter keys.

The trigger/action filter button on the automations overview toolbar shows a visible "Filters" label alongside its icon, matching the equivalent button on the automations/messages page. Previously it was an icon-only button. The button height is now aligned with the status and label dropdowns.

In Automations, messages that had never been sent were incorrectly labeled as drafts. The label correctly reflects that these messages have simply not been sent yet.

Active Intelligence reporting widgets show the time window that was actually queried, not the window you requested. If you asked for "last 35 days" but the data resolved to a 30-day query, the widget subtitle reads "Last 30 days" rather than "Last 35 days."

When a window is both shorter than requested and ends materially before today, the subtitle switches to absolute dates rather than a relative label, so the description is always accurate. Calendar-month and trailing-month windows are unaffected — partial months are expected there.

Active Intelligence is more transparent when something goes wrong during an approved action.

Partial and failed writes: Active Intelligence distinguishes between fully applied, partially applied, rejected, and unknown write outcomes. When only some steps of an approved action land, the summary says which steps applied and explicitly states that the rest did not, rather than claiming the whole request is done.

Approved calls that return a plan instead of executing: When Active Intelligence is told to execute but the backend returns a plan to approve instead, it retracts any "executing now" text it already showed and displays an "awaiting approval" state rather than "nothing changed." This persists across page reloads.

Known limits: The new failure path does not yet increment the sub-agent error counter.

Asking Active Intelligence to copy a campaign, or to make something "like last month's newsletter," works dependably.

  • A fuzzy time-based reference ("another one like last month's newsletter") prompts Active Intelligence to ask which campaign you mean rather than guessing or failing silently.
  • An ambiguous campaign name also triggers a clarifying question.
  • A translation request is treated as an in-place edit, not a copy, preventing translated campaigns from being minted as unwanted duplicates.
  • Campaigns attached to an automation or mid-send are refused with a clear reason rather than failing silently.
  • When a copy succeeds, Active Intelligence tells you the duplicate keeps the original's audience selection and is saved as a draft with the schedule cleared.

Active Intelligence custom instructions are active by default for new setups. Previously they required manual activation after being created.

Hover over any widget on your Active Intelligence homepage and an Analyze button appears on the card. Click it and Active Intelligence opens in a full-screen conversation pre-loaded with that widget's data — its title, reporting window, the prompt that created it, and a snapshot of the numbers — so you can ask questions and dig into what you're seeing without any copy-paste.

On touch devices the button is always visible. It does not appear while a widget is still generating or if there's a permission issue with the widget.

Monday, Sep 1425 updates

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.

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.

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.

The segment builder in the score editor stretches to the full width of the rule card instead of collapsing to content width. As a side effect, error messages appear below the builder rather than squeezed against the right edge.

No action is required.

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.

This applies to EML-sourced campaigns. The same offer for HTML-sourced campaigns is not included in this release.

SMS reply rows in the contact activity feed were showing "Replied to SMS message [campaign] with" and then nothing. The reply text is displayed correctly.

No action is required.

The gap between the last alert and the subdomain banner on SMS pages is now 32px as intended, not 64px.

Filter dropdowns across seven reports used to load every record on your account before the picker became usable — up to ~200 sequential requests on mount, then blocking the browser while rendering thousands of options. On a 10,000-row account this measured as 42 seconds with the picker disabled and a 38-second frozen browser.

Filters load one page of results on open, then search your account as you type. Your selected value is pinned so it survives a search that doesn't include it in the first page.

The seven reports updated:

  • Tag Trends — Tag filter
  • Form Submission — Form filter; a zero-result search no longer shows the "create your first form" empty state
  • All Automations — Folder and automation filters
  • Deal Task Overview — Six unbounded filters (deals, task owners, contact tasks, deal tasks, any tasks, pipelines) replaced with server search; four bounded filters (task type, user group, task outcome, pipeline) keep a single request with client-side filtering
  • Deals Overview and Deal Task Metrics — Owner filters
  • All One-to-One Emails — Automation, email, and label filters
  • Deal Forecast — Owner filter

No action is required.

The Active Contacts, Contact Trend, and other KPI widgets on the legacy overview dashboard display correctly without an unwanted scrollbar.

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.

Campaign, form, SMS, and automation folder views paginate their contents at 12 items per page. A numbered pager appears when a folder has more than one page. Out-of-range page requests clamp back to a valid page.

Known limits: Page-position announcement copy, an in-flight page-turn indicator, and search-truncation surfacing for forms and SMS are not yet available.

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.

On the contact record, email activity rows previously showed only the subject line. The full message body renders for one-to-one emails, campaign replies, campaign sends, and link-data opens — matching what the previous version of the contact record showed.

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.

URLs and email addresses in contact record activity notes are now clickable, and multi-line notes keep their line breaks — across deal-task notes, tracking-log feed rows, and tracking-log detail panels.

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.

Report filter inputs no longer show a visible text label above the field. The accessible label for screen readers is unchanged, and the filter bar's layout and alignment are unaffected.

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.

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.

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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 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."

Sunday, Sep 1335 updates

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.

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.

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.

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 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.

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.

Inbound emails with no To header, or a To header with no domain, are processed correctly by reply forwarding.

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.

Campaign previews and live sends that use conditional content with an in_array check against a personalization tag like %FIRSTNAME% render correctly. Previously, campaigns using this combination could fail to render entirely, affecting both the preview and the live send.

Matching is case-insensitive and whitespace-normalized. Array-valued tags like %TAGS% behave exactly as before.

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.

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.

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.

Adding the block to an Automation fills in empty fields — first name, last name, phone, LinkedIn URL, Twitter URL, Facebook URL, company, and location — for each contact who passes through. Existing data is never overwritten.

The block has no configuration options. Contacts continue through the Automation after enrichment regardless of outcome, and one contact's result doesn't affect others.

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.

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.

If your contacts or accounts have emoji, certain non-ASCII characters, or symbols in their names, emails, or tags, several operations were silently failing. These are fixed:

  • Contact list subscriptions: Updating contact names via subscribe-form submissions works correctly.
  • Account name checks: Creating or validating accounts via the accounts API works correctly.
  • Contact email lookups: The contact sync API works correctly when email addresses contain these characters.
  • Salesforce account sync: Salesforce account sync works correctly across all affected accounts.
  • Ecommerce tag sync: Tag comparisons during ecommerce sync work correctly when tag names contain these characters.
  • Tracked link following: Contacts in affected accounts can follow tracked links correctly.

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.

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.

Saving a campaign handles the case where a campaign lookup returns no result, so the save completes rather than producing a server error.

Previously, any font not recognized by an exact match against a short internal list was replaced with a default font. Font resolution now works against a broader catalogue of families.

If your brand font can't be served, it falls back within its own category: a serif falls back to a serif, a sans-serif to a sans-serif. Outlook on Windows also receives the correct font declarations, so your brand font resolves to the right fallback there instead of defaulting to Times New Roman.

The campaign editor's font picker offers the same families your brand kit does, sorted consistently. All previously supported families still resolve to themselves unchanged.

Most other missing components degrade gracefully rather than blocking the editor entirely.

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.

  • Logo storage: Brand logos are re-hosted on dedicated storage across all paths — create, replace, update, and backfill — so logos don't silently break after initial import.
  • Color validation: An invalid hex color resolves to absent rather than discarding the whole kit.
  • Brand tone quality: Tone is no longer generated from content-poor pages such as parking pages or bare navigation; scraping stops below the length where page copy carries meaningful voice.
  • Connection handling: Connection errors, rate limits, and vendor errors are classified correctly and the status reaches you rather than being flattened to a generic error.
  • Logo import: A logo with an unset theme is imported as light artwork instead of being discarded.
  • Image uploads: Scraped-image uploads that were failing in a retry loop are resolved by capping alt text before upload.
  • Multi-kit accounts: Brand kit email previews on multi-kit accounts no longer mix images between kits.
  • Social and webmail URLs: Social-media and webmail URLs no longer import another company's branding.

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.

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.

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.

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.

Active Intelligence can work with the Contact Created automation trigger when building or editing automations.

Active Intelligence competitors enrichment runs consistently after every Brand Kit save. For some accounts it was previously skipped silently right after saving.

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.

You can import and export automation text, and Active Intelligence can work with automation text in the builder.

Legacy API contact-sync requests that submit a contact field as a list of values instead of a single value are handled correctly.

Friday, Sep 1181 updates

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.

You can send a specific trigger or action block directly from the automation builder as context to Active Intelligence. It reads that context and uses it when responding, so you get answers that are grounded in the exact part of your automation you're working on.

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.

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.

The Manage Contacts panel supports column sorting by Contact, Entered, Completed, and run counts. The same chevron controls used in the Automations Overview apply here.

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.

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.

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 in the content manager. SVG files appear in the file picker, pass upload validation, show an SVG type label in the detail pane, and display as thumbnails in both grid and list views.

SVG files can't be opened in the image editor, which is designed for raster formats — the same restriction that applies to PDFs and GIFs.

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.

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.

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. Covered actions include login, enable/disable sync, sandbox, trial, fix API key, and move account. A success toast 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.

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.

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.

You can browse your automations, campaigns, forms, and SMS assets in a Folders view. Toggle between the familiar list and a grid that shows every folder with the assets it holds. Drill into any folder; search, status filters, and filter chips all work the same way in both views.

Each index table gains a dedicated Folders column so you can see which folder an item belongs to at a glance. The terminology across all four surfaces has also been updated: "label" is now "folder" everywhere.

The Folders view is rolling out gradually. When it reaches your account, you'll see the toggle — until then, your pages look exactly as they do today.

Known limit: Folder drill-down currently shows the first 20 assets per folder. Support for browsing beyond 20 is built and on its way.

On the Apps tab in the Add-an-action modal, a category dropdown lets you narrow the app grid to a specific category instead of scrolling through all apps. Category names match the labels used on the apps list page, so the vocabulary is the same in both places.

To use this: The category dropdown is rolling out gradually. Contact your account team if you'd like it enabled.

Known limits: Two category labels may display as raw text keys until translations are finalized.

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.

When deleting a user fails, the error messages displayed are correctly translated instead of showing untranslated or missing strings.

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.

When the Contacts page can't load its first-time experience, it shows a notification so you know something didn't load correctly. Previously the page recovered silently, giving you no signal that anything had gone wrong.

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.

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.

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.

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.

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 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.

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.

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.

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. Non-English users were previously seeing English text in several places: audience-change and design-edit warning dialogs, the address picker empty state, send-time status labels, and the message the canvas sends when you open the Layout panel.

The layout-selection fix also corrects an issue that affected every locale, including English: without the 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.

No action is required.

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.

Thursday, Sep 1013 updates

Two refinements make it faster to check sending status without extra clicks.

"View details" availability by campaign type

For one-time campaigns and A/B splits, nothing changes — "View details" opens sending details while a campaign is scheduled, awaiting review, or after a stop, exactly as before.

For campaigns that run on their own cadence (RSS, auto-responders, date-based reminders, recurring, text, series, and special campaigns), "View details" no longer appears while the campaign is scheduled. The link appears as soon as there's actual progress data to show, so you're never opening a panel that has nothing in it yet. Winner-based splits (read/click) remain excluded from "View details" in every status.

Status tooltip on the sending-progress chip

When "View details" isn't available — including on drafts — hovering over the sending-progress chip shows the same status detail the status badge carries, for example "Sent to 1,000 contacts 2 days ago." When "View details" is available, no tooltip appears on the chip. The send-date text keeps its own date tooltip in both cases.

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, the export ignored your active filters and exported every deal instead. The export applies the same filters you see on screen, so what you export matches what you're looking at.

When you refresh a dashboard widget, its subtitle correctly reflects the data window you're looking at. Previously, a subtitle correction you made would silently revert the next time you refreshed — the refresh path wasn't applying the same validation as widget creation. That gap is closed, so your subtitle stays accurate.

This was observed across all accounts in live testing.

Known limits: Rebuilding data sources on the refresh path is separate work not yet shipped, so some refresh behavior remains unchanged beyond the subtitle fix.

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.

The activity feed on a contact record correctly labels and displays deal-related emails and several other activity types.

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 right color and icon for each type.

Eight activity types that previously showed as generic entries now display real titles and detail: automation blocks, contact restores, ecommerce orders ("Made Purchase" / "Abandoned Cart"), contact enrichment, Facebook audience events, WhatsApp conversations, WhatsApp flows, and omni-channel link data.

The activity card caret is restored to its previous appearance. The Reply button has been removed from deal activity detail panels — replies to deal emails start from the emails tab, which is unchanged.

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.

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 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.

Wednesday, Sep 923 updates

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.

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.

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.

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 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.

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.

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.

When you add a contact to an account record and it works, a success banner confirms it. When it doesn't work, the page shows the actual reason instead of a generic message.

If the contact can't be created, you see "We couldn't add this contact. Please try again." If the contact was created but couldn't be linked to the account, you see "Contact was created, but it couldn't be linked to the account."

Previously, a successful add was silent, and a failed one gave you nothing useful to act on.

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.

Tuesday, Sep 858 updates

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.

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.

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.

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.

MCP server connections in the Active Intelligence editor are scoped per user rather than shared across your account.

When this is enabled for your account, an info banner appears in the MCP connections modal explaining the change, and a one-time attention indicator appears on the MCP servers button until you open it.

The connection and reconnect flows are unchanged. This feature is off by default and must be enabled for your account.

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.

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.

Emails that put their sender information and unsubscribe link inside conditional content blocks always deliver a footer to every recipient, even when the condition doesn't apply to them. Previously, recipients who didn't meet the condition received the email with neither the conditional content nor any footer.

A few specifics worth knowing:

  • Personalized emails that fetch content per contact defer the footer until after that content is rendered, so the footer is always accurate.
  • A conditional block that covers every case (has an else branch) and includes the required content in every branch is treated as unconditional — those emails skip the deferral entirely.
  • Contact field values that look like compliance tags are ignored for the purpose of deciding whether a footer is needed, so they can't accidentally suppress it.

Emails already in flight are not affected retroactively.

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.

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.

The contact record page stays current without a manual refresh. 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 refresh 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.

The activity stream continues on a 60-second refresh 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.

Previously, template preview images were served from cache even after you updated your brand name, description, or industry. The cache now validates against a fingerprint of those four brand fields and refreshes automatically when any of them change. Existing cached records without a fingerprint are refreshed on first access.

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.

Opening a campaign you hadn't changed was sometimes enough to update its "last modified" timestamp and alter its content. Seven related behaviors have been corrected:

  • Copies no longer carry over the source campaign's design when the markup wasn't also carried. Copies that do carry the source markup — such as reuse-message and winner-collapse copies — still receive the design as expected.
  • Split test variants inherit the source campaign's design, falling back to the campaign's own stored content on the first split. Nothing is inherited when the markup differs.
  • Content remapping uses the campaign's stored markup as the source, so compliance links are preserved. The target template's footer prevents unsubscribe and sender-info tags from appearing twice.
  • Opening an unchanged campaign no longer triggers an autosave or updates the modified timestamp.
  • Saving skips the write when every message already contains exactly the same HTML; edits to subject lines or preheader text still save as expected.

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.

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.

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.

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.

Unsubscribe rate was previously missing from the reporting response.

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.

Friday, Sep 425 updates

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 how to preview a scheduled task, it correctly points you to the "Run now to preview" button on the scheduled-tasks page.

Previously, Active Intelligence applied a "no immediate run" rule too broadly and told you that scheduled tasks couldn't be previewed at all — even though the button was right there. The instruction has been corrected, so you get accurate guidance every time.

You can review and send a campaign directly from the Active Intelligence canvas, skipping the classic campaign flow entirely.

Subject and preheader sit above three trigger controls: Recipients (list, segment, contact count), Send (immediately, scheduled, or predictive send in your account time zone), and More settings (sender and verification, tracking, physical address, campaign archive). Split campaigns add a variant strip and split-test trigger, with settings following the selected variant.

Deeper flows open as sub-screens with a back arrow rather than stacking modals: manage tracked links, add address, create segment, translations checklist. Test & Preview walks linearly through test send, spam check, desktop preview, and email-client previews. The send gate checks all 24 conditions from the classic page and names each unmet one.

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 is set by the widget service on every generate, refresh, or seed operation. The 6-hour auto-refresh staleness calculation also uses this timestamp instead of the client-authored creation time, so a cosmetic save can no longer make stale data appear fresh.

If a widget predates the new field, the "Updated x ago" label is hidden and staleness falls back to the creation time, preserving existing behavior until the backend change 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.

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.

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 can learn your brand's voice from your recent sent campaigns and apply it when generating new content, so new campaigns sound like you wrote them, not like a generic template.

The system reads your recent sends, strips out boilerplate, and builds a structured voice profile that flows into every new campaign it drafts. Validation across real accounts scored voiced composition 7 wins out of 8 in blind judging.

This capability is off by default and requires your account to have the feature enabled. Until it's turned on, campaign generation works exactly as it does today.

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.

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.

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.

Three improvements to the account record page:

Add notes from a slide-out drawer. You can add notes to an account from a drawer without leaving the page. After saving, the note appears in the notes panel immediately.

Contact search shows email and phone. When adding a contact to an account, search results display the contact's email address — and phone number when your account is configured for phone-only — matching the behavior of the previous version.

Upgrade prompt when you've reached your contact limit. When an account has reached its contact limit and the search field is empty, the Add Contact button is replaced with an upgrade prompt that opens the plan expansion modal.

Thursday, Sep 320 updates

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 custom-range Start and End date inputs share the same bottom edge as the filter pills on the toolbar row, so the toolbar looks consistent.

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.

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.

For each resource type, you can choose Allow, Ask, or Deny for Create and Update/Delete independently. Changes save as soon as you adjust a control, and each change affects only that resource-operation pair. Resources without an explicit rule follow the wildcard setting. Where only creation applies — such as contact lists and campaign creation — the Update/Delete column shows "Not available." Bulk copy actions always ask before proceeding.

When a permission rule is added, changed, or removed, the event appears in the activity feed with a title and description. Clicking a permission-related feed row opens the Permissions section directly, both on the full page and in the Active Intelligence sidebar.

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.

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 shows a title for each step, a color-coded chip indicating whether the step is read-only, a creation, or a change or deletion, the number of affected records formatted for your locale, and the first 8 affected record IDs. Preflight warnings and the assumptions behind the plan are also shown.

Read-only or create-only plans show no card.

Known limit: 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.

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.

Wednesday, Sep 271 updates

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.

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.

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.

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.

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.

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.

Industry trend, seasonality, and regulatory queries often have no fresh coverage within 7 days. The broader default window means well-formed queries return results rather than a dead end.

This change applies only to Industry Intelligence. Brand monitoring and competitive intelligence are unaffected.

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.

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.

Row-level "End Current Run(s)" (kebab menu on each contact row): Ends every active run for that contact in the automation in one click. Useful when a contact has duplicates and multiple active runs need to be closed together.

Per-run "End Run" (button in the expanded child table): Ends only that specific run, leaving other runs for the same contact untouched.

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.

Date pickers on six report pages — automations performance, custom field overview, deal forecast, deal task metrics, deal task overview, and sales performance — match the standard style. The sales performance page's distinct layout, including its visible label, calendar icon, and popover placement, is preserved.

When you work through the database sync setup, the "Next step" and "Save" buttons display a spinner while each step's request is in progress. This applies to the connection test step, the field discovery step, and the save step. The fields step has no request and shows no spinner, which matches its existing behavior.

Each step of the database sync setup now checks that required inputs are present before letting you move forward.

  • Connection step: the button stays inactive until you've entered a sync name, source user, source host, and chosen a target list.
  • Tables step: you must select a table or type something into the custom query field.
  • Fields step: every required ActiveCampaign field must have a mapping assigned.
  • Rules step: there are no required fields here, so the button is always active.

If something is filled in but wrong — for example, localhost as the host, a custom query that isn't a SELECT statement, or a duplicate field mapping — you'll still need to click to see the specific error message. Disabling the button in those cases would hide the reason rather than explain it.

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.

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.

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 holds its position correctly while content loads. Previously, the page jumped during the loading state as the skeleton shifted before content appeared.

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.

The warning shows up as you configure the schedule, giving you a clear heads-up before committing the setting.

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.

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.

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 Active Intelligence creates an automation that hits its step limit and then exhausts its available editing passes while the automation is still truncated, the chat shows either an "exhausted hops" message or a "keep prompting" prompt. Previously, the chat showed misleading copy suggesting the leftover edits had been applied.

This applies when the multi-step edit feature is enabled. When the feature is off, behavior is unchanged: capped creates keep their existing keep-prompting disclosure.

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 in chat, each answer includes an inline disclosure telling you what data was used: the time period covered and whether the source was Campaign Reports or contact activity. The disclosure is collapsed by default so it stays out of your way, but you can expand it any time to check the details.

If a single question pulls from both campaign and contact data, you'll see two separate disclosures in the order the data was fetched. The same labels and sources appear when you reload the conversation, not just during the live stream. If a response carries no date range or source note, nothing is shown.

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.

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.

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.

Tuesday, Sep 152 updates

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.

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.

The SMS Performance Report has an Automations tab alongside the existing one-time sends view, showing your SMS automations with their performance metrics and a snapshot of key totals.

Filter toolbars across 12 report pages share a consistent appearance and behavior.

Dropdown labels use the standard inline style on the automations reports. Single-line toolbars are right-aligned across automations, conversion performance, conversion attribution, custom field overview, deals task metrics, deals task overview, sales performance, deal forecast, predictive content, and revenue performance. On the deals task overview report, 14 filters wrap at wide viewports; right-aligned wrapping is the expected behavior at that width.

The deals task overview toolbar is no longer hidden behind the loading overlay. Dropdown menus in the deal forecast report appear above other content; the same fix was applied to deal task metrics, sales performance, and revenue performance. Uppercase text that was overriding dropdown values in the automations toolbar has been removed.

Padding and border radius are consistent across custom field overview, deal forecast, sales performance, deal task overview, and deal task metrics.

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.

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.

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.

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.

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.

The new GET /api/3/campaigns/{campaignId}/reports/clicks endpoint lists tracked links in a campaign along with click counts and the contacts who clicked.

Supported parameters: messageid (optional; 0 or absent returns the whole campaign), limit (maximum 1,000), offset, and includeBotClicks (true/false/1/0, default true).

The response includes a campaignLinks array with each link's id, url, name, tracked, uniqueClicks, totalClicks, and a contacts array containing each clicking contact's id, email, clicks, and lastClickDate.

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.

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.

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 CRM spreadsheet view has a revised column set.

  • Deal Name is renamed to Deal Title; Contact is renamed to Primary Contact and links directly to the contact's page.
  • An Account column and a Status column (open/won/lost chip matching the Deals CRM pipeline view's color palette) have been added.
  • Win Probability and Forecasted Close columns have been removed.
  • The new column order is: Deal Title, Primary Contact, Account, Value, Pipeline (All Pipelines view only), Stage, Status, Owner, Created, Last Updated.

The Primary Contact, Account, and Status columns can also be sorted — previously these columns were display-only and could not be sorted, unlike the list view.

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 include an Account column complete as expected even when account names contain emoji or other characters outside the standard range. Previously, those imports would stall at 0% and never progress.

Account names are normalized before the lookup: invalid byte sequences are dropped and characters outside the standard multilingual range are stripped, while common characters such as ™ and curly quotes are preserved. This applies to both CSV and API imports.

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.

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 .eml files 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.

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.

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.

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.

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.

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.

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 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.

Updated 13 October 2026