What's new in September 2026
- CRM
See your data model as a map, and emails that keep their styling in Gmail
Data model map
Settings ▸ Objects has a new Data model view: a map of every object, its key fields and the relationships between them, with 1 and many marked at each end of every line. Click an object to highlight what it connects to and see all of its fields, pipeline stages, lookups and formulas in a side panel. Objects that aren’t linked to anything are set apart so they’re easy to spot. It’s read-only: drag cards to untangle the view, but nothing there changes your data.
Emails that keep their styling
Text pasted into an email from a web page used to bring invisible formatting with it. Gmail threw away the styling of any text that carried it, so a coloured, bold heading arrived as plain text, and the extra weight could make Gmail cut a long email short with “View entire message”. That formatting is now removed automatically, from saved emails too, and each text block has a Clean up formatting button that strips fonts, sizes and spacing carried over from a paste while keeping bold, italic, colour and links.
- Marketing
HTML and plain-text emails, and dynamic blocks that change per recipient
Three kinds of email
Campaigns and templates can now be HTML (paste or write your own code, with a live preview) or plain text (just words, like an email from a person), as well as drag & drop. Pick one when you start, or switch with the Email type control above the editor. Switching never throws work away: each version is kept, so switching back brings your design back exactly. HTML is cleaned of scripts and forms, links are tracked and the unsubscribe footer is added if you left one out. Plain-text emails go out with a plain HTML copy so opens and clicks are still tracked.
Dynamic blocks
Any block, or a Dynamic block container from the palette, can be shown only to recipients who match a rule - the same conditions you use for lists and segments, plus In list or view. Dynamic blocks have a purple outline and a badge naming the rule. The rule is checked for each person at the moment their email sends, in campaigns, flow emails and one-to-one emails from a record. Use Preview as to see exactly what one contact would get. Dynamic blocks can be saved as saved sections too.
The campaign report shows each dynamic block’s reach - for example Gold members: 312 of 4,000 - with buttons to list who got it and who didn’t.
If a rule can’t be checked - the email goes to a different object, or a field it uses was deleted - the block is left out and the builder, the Review step and the field-delete dialog all say so.
- CRM
Chat: goals that finish, a bot that knows when nobody's in, and replies that reach people who left
A full review of website chat, and a fix for everything it found.
Goals
- When a visitor gives the last detail a goal asks for, the goal now finishes there and then: the completion message is sent and completion actions run. Before, the usual way a goal ended went unnoticed.
- A visitor answering the bot's question (typing their email, say) gets a thank you and the next question, instead of the bot searching your knowledge for their answer and offering to fetch a colleague.
- The answer to the last attempt at a question is kept, and a number, yes/no or choice is only taken from the reply to the question that asked for it.
People
- Asking for a person works on every widget, and when nobody can come the visitor is told so straight away.
- A handover is announced once, not on every unsure turn.
- Office hours use your workspace timezone, and overnight hours work after midnight.
- The widget header shows whoever is actually answering, the bot or a person.
- "Online" and round-robin assignment only count teammates who can reply.
- Replies a visitor hasn't read within 5 minutes are emailed to them, and their answer comes back into the chat.
Bots
- A bot's First message is now shown when that bot is answering.
- Whether the bot can hand over is decided by the widget's answering setting, as the editor says.
- AI steps in conversation flows use AI credits like every other answer.
Safety and tidiness
- Public chat endpoints are rate-limited, the lead form is checked on the server, and chat files count towards your storage.
- A chat file can only be opened by the visitor it belongs to.
- Deleting a widget with conversations archives it instead; deleting it for good needs its name typed.
- Knowledge search no longer drops older articles in big workspaces, and rescanning a large website doesn't remove pages it simply didn't reach.
- Automation
Flows: pausing holds people in place, and After loop waits for the loop
A full review of the flows engine, and a fix for everything it found.
Things you will notice
- Pause holds people where they are. Pausing a flow used to cancel anyone whose wait ended while it was paused. Now they wait, and carry on when you resume.
- After loop waits for the loop. Steps on a For each step's After loop path run once every item has finished (or after 24 hours), not straight away.
- A wait at the end of a flow ends it. A flow finishing on a wait no longer starts again from the top when the wait is over.
- The Run button works for flows that aren't about a record, straight from the Flows list.
- Testing a step for real says who it will act on before it sends anything.
- Two people editing one flow are told, instead of one silently overwriting the other.
Rules that now apply everywhere
- Enrolment settings (only once, not while already in the flow) apply to form, chatbot, booking and webhook flows, against the record the flow creates or finds.
- People whose record is archived, deleted or merged away leave the flow.
- Conditions no longer treat text like "Plan 1" and "Plan 2" as the same, and date conditions count days in your workspace's timezone.
- Scheduled flows look at every matching record, not just the oldest 500.
- A failed HTTP request follows the step's own error setting, retries only when retrying can help, and data with quotes or line breaks no longer breaks a JSON body.
- An approval can only be answered by the people it was sent to (or an admin), and closes itself if the run ends another way.
- Duplicating a flow copies its goal, unenrolment rules, schedule window, alerts and unpublished changes.
- CRM
Inbox: safer replies, honest unread counts and a snooze that comes back
A thorough pass over the shared Inbox, fixing everything a review turned up.
Replies go where you meant
- What you type is kept per conversation, so moving to the next thread never carries a half-written reply with it.
- An email reply goes to whoever wrote last, with the other people on that message copied.
- Files can be sent on website chats. On social threads the Attach button is gone, because the platforms never received those files.
Unread means unread
- A conversation is marked read when someone opens it, not because it happens to be on screen in a background tab.
- A new message from the customer brings a conversation back into the Inbox on every channel, including snoozed, archived and closed ones. Out-of-office replies and bounces no longer do.
- Snooze offers later today, 9:00 tomorrow and 9:00 Monday, and a snoozed conversation returns unread.
- Label counts match what the label shows, and the list has a Show more button.
Privacy and permissions
- Everything you can do to a conversation checks its mailbox, including linking records and AI drafts.
- @mentions only notify people who can open the conversation, and only on an exact name.
- Deleting a mailbox asks where its conversations should go instead of making them visible to everyone.
- Record suggestions respect record visibility.
- Only the person who made a shared view, or an admin, can change it.
Merging and routing
- Two website chats can't be merged, so no visitor is ever shown someone else's messages, and conversations must be in the same mailbox.
- Round robin now rotates, prefers people who are online, and threads you start are assigned to you so the reply doesn't land in Unassigned.
- CRM
Your Profile: confirmed email changes, one account across workspaces
A security and reliability pass over your Profile.
Changing your email now needs confirming
Changing your sign-in email asks for your current password and sends a confirmation link to the new address. Nothing changes until you click it, and it then applies to every workspace you belong to. Workspaces that use single sign-on, or don’t let members change their email, keep it locked.
One account, everywhere
- A password change applies to every workspace and signs out every other device, whichever workspace it was using.
- The Active sessions card lists all your devices, not just those that signed in to the current workspace.
- Recovery codes work whichever workspace you land in, and regenerating them replaces every earlier set.
- Two-factor can’t be switched off where your role requires it, and switching it off emails you a notice.
Smaller fixes
- Your photo now shows up in the signature recipients see, and on your public booking page.
- Uploaded photos are checked by their content, not their file type.
- Unsaved edits on one Profile card are no longer wiped when you save another.
- Quick changes to notification toggles no longer undo each other, and a failed save says so.
- Disconnecting a Google calendar no longer breaks a Gmail inbox or calendar that shares the same Google sign-in.
- Searching Settings for “password”, “2FA”, “signature” or “timezone” finds your Profile.
- CRM
Tasks: decisions you can find, due dates that stay put, and a list that only shows what you may see
A pass over Tasks, from the list to the reminders.
Waiting on your decision
Approval requests from flows and change requests from the assistant now have their own section at the top of Tasks, one row per request, with Approve and Reject. They used to be hidden from that page even though the notification sent you there, and a request with no record appeared nowhere. A request can no longer be ticked off, edited, reassigned or deleted like a to-do, and expired requests close themselves instead of sitting overdue.
Due dates are days
A due date now means the same day for everyone. Anyone west of Greenwich saw tasks due a day early, and saving a task moved it back another day. The Due today filter and the Today section now always agree.
Yours by default
A new task is assigned to you unless you pick someone else or choose Unassigned. Before, the picker said “Me” and saved nobody, so those tasks were missing from Assigned to me and from Home. Existing tasks created that way have been given back to the person who made them.
Reminders
You can change or clear a reminder from the task’s edit form, and reassigning a task passes its reminder to the new owner. A reminder that fails to send is retried. When someone is deactivated, their open tasks become unassigned and admins are told how many.
Privacy and speed
The Tasks page now only lists tasks on records you’re allowed to see, and tasks on records in the bin drop off it. The list loads in pages, the calendar loads the month you’re looking at, search looks at the words in a task’s details rather than its formatting, and the record name on each task links to the record.
- CRM
Tickets: SLAs in business hours, reopening, automatic tickets and a page for every ticket
A thorough pass over Tickets, so the numbers mean what they say and tickets fit into the rest of your CRM.
SLAs you can hold people to
- Each priority now has two targets: first reply and resolution, set in the new Settings ▸ Tickets & SLAs.
- Targets can be counted in your business hours.
- The clock pauses while a ticket is Pending (and, if you choose, On hold).
- Only a real reply counts as a first response. Changing the status no longer does.
- A ticket raised from a conversation starts its clock when the customer started waiting, and an earlier reply counts.
- The owner is warned before a target is due. A breach tells the owner, the mailbox managers and your escalation list.
Tickets and conversations stay in step
They share one owner. Solving a ticket closes its conversation, and closing the conversation solves it. A customer reply reopens a solved ticket within the reopen window, or starts a linked follow-up ticket after it. Mailboxes can raise tickets automatically.
Satisfaction surveys
The survey link now opens a confirm page, so mail scanners can't rate on the customer's behalf. Surveys only go out when someone replied, and low scores come back to the team.
Everywhere else
- Every ticket has its own page with history, the conversation and follow-ups.
- The Tickets list has views, search, filters, sorting and paging.
- Tickets appear on the contact's timeline and in reports, scoped to the mailboxes you can see.
- New flow triggers and Create ticket / Update ticket steps.
- Tickets over the REST API, and more ticket tools for the assistant.
- Ticket numbers no longer skip, and two people can't raise duplicate tickets on one conversation.
- CRM
Content Library: SVG logos that show up, safer deletes, and a storage limit that counts
A round of fixes to the Content Library and everything that uses it.
SVG logos work everywhere
For security, SVG files in the Library are never shown directly as images, which meant an SVG logo picked for a website, a form, the chat widget or a share card showed as a broken image. Picking an SVG outside the email builder now saves a PNG copy in your Library and uses that. SVGs dropped into the website builder are converted the same way. SVG thumbnails in the Library and the image picker now show the picture instead of a broken icon, and an SVG set as your BIMI inbox logo is served the way mailbox providers need.
Deleting tells you the truth
The delete warning now checks saved email sections, booking pages, snippets, knowledge articles and per-platform social images as well as sites, emails, forms and widgets. If the check can’t be made it says so, instead of saying nothing uses the file. That used to happen every time you deleted more than 100 files at once. A scheduled social post whose image was deleted is now skipped with a clear reason rather than going out without it.
Storage
Library files now count toward your plan’s file storage, as attachments always have. The largest single file is 100 MB, and the Library says which file is too big before uploading anything. An upload either lands completely or not at all, so a retry no longer makes duplicates.
Smaller fixes
- Renaming a file to something with a dot in it, like Brochure v1.2, keeps the whole name.
- Downloading a large selection as a zip is lighter on the server and can’t be tricked into building a huge archive.
- Drop files anywhere on the Library, or straight onto a folder, to upload them there.
- Errors from delete, rename, alt text and folders now appear on screen.
- Moving to the next file in the preview saves the alt text you typed.
- The image picker loads more than 500 images, and its folder counts show images only.
- Portrait phone photos report the right width and height, and videos stored in the database play in Safari.
- CRM
Booking pages respect every calendar they can read, and reminders arrive on time
Three fixes to meetings.
Availability
When one of the calendars checked for conflicts could not be read (a colleague’s calendar that was unshared, say), the whole account used to be treated as free, so booking pages offered times you were busy. Now the calendars that can be read are still checked, and Settings ▸ Calendars shows which calendar could not be read and how to fix it.
Reminders
Meeting reminders now go out when they are due, however many meetings are coming up. Before, a busy week could delay the 24-hour reminder until shortly before the call.
Assistant
Asking the assistant to list meetings only ever shows a member their own meetings, the same as the Meetings page. Admins can still ask for anyone’s.
- CRM
Reporting: reports, dashboards and goals in one place, and numbers you can trust
Reports, Dashboards and Goals are now one module, Reporting, with a tab for each and one entry in the sidebar.
One switch
Settings ▸ Platform ▸ Modules and team permissions now have a single Reporting switch instead of separate Reports and Dashboards ones. If you had turned Dashboards off on its own, Reporting now decides both. Old links to
/dashboardsand/goalsopen the matching tab.A new look
A reports library with search, favourites and recently viewed; a full-screen editor with Configure, Filters and Style tabs and drag-and-drop fields; a report page with a headline that says what changed and a side panel of the records behind any bar; and dashboards with goal cards, text notes and filters that apply to every tile. Charts now use your brand colour.
Numbers you can trust
- Dates are counted in your workspace time zone, so a deal won late on the 31st lands in the right month.
- “This month vs last month” compares the same number of days, instead of a part month against a whole one.
- Reports only count records you are allowed to see, and module sources respect team permissions.
- Pipeline and won-value templates count open and won deals correctly, and time-in-stage only counts finished stays.
- Deleting a report removes its tiles from every dashboard, and the warning lists which ones first.
- Automation
Flows that fill in the record for you, text size on highlighted words, and form search
A round of fixes to the places people told us they got stuck.
Flows
Every step now sits on the flow’s line. Drop a step on empty canvas and it joins the nearest point of the flow; delete a branch and the steps that hung off it go with it instead of floating on their own.
A new step that works on a record - update, add to list, send a marketing email, create a task - starts pointed at the nearest record before it: the one a Create record or Find records step just made or found, otherwise the record that started the flow. You can still point it anywhere, and a one-click Use the record from… button appears whenever a closer record is available. The Record ID pill for “the record that started this flow” now only appears on triggers that actually start from a record.
Every record step on the canvas now says which record it acts on - Acts on: Contact from Add or update record - and turns red when it has none. When nothing before a step makes a record, its Record ID box offers to add an Add or update contact step right before it, filled in from the trigger’s data and matched on email, and points the step at it.
Picking a trigger now loads its most recent data straight away, so every step has real values to map. If there isn’t any yet, the trigger asks you to send some test data.
Send marketing email now goes to the record’s own email address by default - choose which email field if it has more than one - or to a different address when you want to email someone else about that record.
Email builder
Font size and font are on the toolbar now. Highlight some words to change just those - across as many lines as you like - or click into a block without highlighting to change the whole block.
Forms
Dropdown, choice and checkbox-group options are now a list of boxes you add, remove and reorder, and multi-word options type normally. Submissions can be searched and filtered by the form’s current questions and a date range; answers to removed questions are still in the CSV download. The Records tab is gone - turning submissions into records is a flow.
Sharing and security
Link previews now reach every network’s scraper, share images are served directly with their size, and the Share settings explain how to refresh a network’s cached card. Sign-in alerts are now sent for a new country, not every new network.
- CRM
Scheduled tasks for the assistant: a standing job, what it did, undo it
The new Assistant tasks page gives the assistant standing jobs on a schedule: Daily summary writes a morning briefing, Data tidy-up tidies your data, Sending health watch watches sending health, Lead triage sorts new leads into hot, warm and cold, Follow-up drafts writes follow-ups to people who went quiet, and Campaign planning plans your next campaign from a brief you give it.
They start by proposing
Every task arrives paused and set to propose only: it shows you what it would do and changes nothing. When you trust it, move it to Act, ask when unsure or Act & report. The card says in plain words what each level means for that task - including that an email the Follow-up drafts task sends can’t be recalled. Follow-up drafts sends at most 20 a day and only to people who have replied to you before; Campaign planning schedules at least a day ahead and only to lists of 2,000 or fewer.
A log with undo
Everything a task changes is in the log with an Undo button. Undo refuses if someone has edited the record since, so it never overwrites a person. A campaign Campaign planning scheduled can be unscheduled with one click until it sends.
Costs you can see
Assistant tasks use AI credits, with a monthly budget per task, limits on every run and a workspace-wide brake. Most runs cost nothing, because a task checks first whether anything has changed. Monthly AI credits on paid plans have gone up to match: 400 on Starter, 1,500 on Growth and 5,000 on Scale.
Connected tools
Under Settings → Connected tools you can now attach your own systems’ MCP servers, so the assistant can look things up in them. Tools that change something always ask first.
- CRM
Hide the “None” column on a pipeline board
A pipeline board has always ended with a “None” column holding anything that hasn’t been given a stage yet. Useful when you’re filling a board in; clutter once you aren’t.
It’s now a row in Edit pipeline › Stages, alongside the stages themselves, with the same tick box. Untick it and the column comes off the board. Nothing happens to the records - they keep their empty stage, and they appear on the record, in filters, flows and reports exactly as before.
As with a hidden stage, the board never holds anything back quietly: if hidden columns are keeping records off the board, it says how many and offers one click to show them.
- CRM
Deleting a record type now shows you what goes with it - and waits 30 days
Deleting a record type used to be instant and final. One click took its fields, every record in it, every relationship pointing at it, and - quietly - the marketing list memberships of those records, with the consent record attached to each one. Nothing said how much, and nothing brought it back.
Now the confirmation shows you the real figures first: how many records, how many timeline entries, and how many list memberships with their consent history, which is the part no export can rebuild. If an active flow runs on that record type, or a marketing list sends to it, Solstral tells you which ones and stops - those break silently otherwise, and a list is yours to delete deliberately, not as a side effect of tidying settings.
When you do confirm, nothing is erased. The record type disappears from your sidebar, the API, reports and the assistant straight away, and sits in “Waiting to be deleted” under Settings › Objects for 30 days. Restore puts everything back exactly as it was. After 30 days it’s deleted for good.
- Automation
Flows put bookings and chats on the record they create, plus search and filters
When a flow creates, updates or finds a record, whatever started the flow is now added to that record’s timeline automatically: a booked meeting, a chat, a social comment or an email someone engaged with. There’s nothing to set up. Meetings stay in step afterwards too: a reschedule moves the timeline entry, a cancellation marks it cancelled, and later meeting triggers run for that record.
Finding flows
The Flows list now has a search box and filters for status, trigger, and flows that need attention (unpublished changes, broken references or failed runs). They work inside the folder you have open. Flows you create or duplicate stay in the current folder and are highlighted straight away.
Dropdown fields
When a flow step sets a dropdown field, you now pick from that field’s options instead of typing. You can still use data from the trigger, and the step tells you what happens if that data isn’t one of the options.
- Marketing
Send, schedule and run campaigns from your own Gmail or Outlook
Once you connect Gmail or Outlook, it shows up in the From list when you email someone from their timeline or the Inbox, and when you set up a campaign. Emails go out from your real address, and replies come back into your inbox and onto the record.
Send later, and cancel
Send later now works from your own inbox too. Emails waiting to go out are listed on the record’s timeline and in the Inbox thread, each with a Cancel button you can use any time before it sends.
Campaigns from your inbox
A campaign sent from your own mailbox goes out at a steady pace, within your mailbox’s daily limit (about 400 a day on Gmail, 1,500 on Google Workspace), and anything left over carries on the next day. Unsubscribe links work as usual. Opens and clicks aren’t tracked for these sends, so A/B tests and follow-ups to non-openers need a workspace sender. If the inbox is disconnected, the campaign pauses rather than switching to a different address.
- CRM
Connect Claude or ChatGPT to your CRM
Solstral now works as a connector inside the AI app you already use. Paste one address into claude.ai or ChatGPT, sign in, pick a workspace, and ask.
As you, with your role
A connection is signed in by a person and acts as them. A viewer gets a read-only CRM in Claude; a member can create and update records; nobody’s connection can reach settings, billing, DNS or the schema.
Sending stays opt-in
Out of the box a connection can read and write records, run reports and log activities. Sending email, booking meetings and switching on automations are per-connection toggles an admin enables under Settings → AI connections - and every send still asks first.
Off by default
External AI connections are off on every workspace until an admin turns them on. The same screen lists every live connection, who authorised it, when it was last used, and a Disconnect button. Developer tools (Claude Code, Cursor, n8n) keep using API keys exactly as before.
Available on paid plans. Each plan includes a daily allowance of connector actions; listing tools never counts.
- CRM
Duplicate booking pages, and filter menus that stay open
Any booking page you can edit now has a Duplicate button, on the list and inside the page. The copy brings everything across - times, questions, branding, reminders, policy and the share card - and arrives as a draft with its own link, so nothing goes live by accident. A custom link gets the next free number (intro-call becomes intro-call-2). Members can copy their own pages; admins can copy team pages and anyone’s.
Menus inside menus
Choosing a field or operator in the filter menu no longer closes the whole menu. The same fix applies wherever a dropdown, date picker or dialog opens from inside another menu.
- CRM
Reminders and wait times in days and hours, not 1440 minutes
Every setting that is a length of time now takes a number and a unit. Booking-page reminders are a list you add to - 1 day before, 1 hour before - instead of a comma-separated row of minutes, and buffers, minimum notice and cancel/reschedule notice work the same way. Flow deadlines, approval time-outs, campaign follow-up waits and A/B decision times can be set in days; social comment spacing in hours; slideshow autoplay in seconds. Nothing already saved changes - a reminder stored as 1440 minutes simply opens as 1 day.
- CRM
Hide stages on an Opportunities board
Each stage in Edit pipeline → Stages now has a tick box for whether it shows as a column on the board. Untick Won and Lost, say, to keep the board about the work still in progress. It only changes the board: the stages stay on every record and keep working in filters, flows and reports, and nothing is moved. The board says how many stages are hidden and how many records they hold, with one click to show them. At least one stage always stays visible.
- Marketing
Saved sections, a 1-column block, and social icons that stay visible
Build a piece of an email once and use it everywhere.
Saved sections
Save any block - or a group of blocks inside the new 1 column block - as a section, then drag it into any campaign or template. Link it to keep every email in sync, or drop in an independent copy. A linked section is editable right on the canvas, with a banner that says how many emails the edit reaches and a one-click Detach this copy. Sent campaigns keep the version they went out with. Manage everything under Marketing → Saved sections.
Custom social icons
An uploaded icon now sits in a circle in a colour you choose, so white-on-transparent icons no longer vanish on a white email. Turn the circle off and the icon shows whole on the block’s own background - no more cropped corners.
Links
Highlighting text and adding a link works reliably, and a new link arrives in your link colour with an underline you can change. Editing an existing link shows where it really goes, and Unsubscribe, Privacy policy and Terms are one click away.
- CRM
Goals you can act on, and charts that stop flattering the numbers
Targets get a home, and two ways a chart could quietly mislead you are closed.
Goals
Set a target - revenue won this quarter, calls made this month, deals created this year - and Goals shows where you are against it. Each target can belong to one person or to the whole workspace, and every number is measured by the same engine your reports use, so a goal can never disagree with the report behind it.
Every card shows pace, not just progress. 62% of target is excellent on the 3rd of the month and alarming on the 30th, and a progress bar on its own can’t tell you which you’re looking at. A marker on the bar shows where an even run-rate would have you by now, with days left and what the remaining days need to average.
Quiet periods now show as zero
A week with nothing in it used to be left out of a chart entirely, so a quiet fortnight between two busy ones looked like steady growth. Empty periods are now drawn. Counts and totals show zero; averages stay blank, because the average of nothing isn’t zero and drawing it as zero would invent a collapse that never happened.
The rest of a top 10
Showing the top 10 of 400 groups made ten bars look like the whole picture. You can now fold everything else into a single Other - and where adding up wouldn’t be honest, such as a count of distinct people who may appear in more than one group, it says so instead of showing a confident wrong number.
- CRM
Report templates, and six more parts of the CRM you can report on
Reporting no longer opens on an empty form, and it now reaches the parts of the product it could not see.
Templates
A library of ready-made reports across sales, activity, marketing, service, contacts, web & chat and adoption - pipeline by stage, time spent in each stage, task completion rate, opens and clicks by campaign, time to first response, contacts nobody has spoken to in 90 days, and more. Pick one and it opens in the builder as an ordinary report you can change: the date range, the grouping, the chart, anything. Nothing is saved until you save it.
You are only shown templates you can actually run. A template that needs a Deals pipeline doesn’t appear if you don’t have one, and one for a module you’ve turned off doesn’t appear at all - not greyed out, just absent.
Six more things to report on
Reporting could already cover records, activity, email, campaigns, meetings, tickets, conversations, forms, flows, web traffic and stage history. It now also covers marketing list membership (including how each list was acquired, which is what a deliverability review asks for), suppressions (why you stopped emailing people, by reason and over time), chat leads, campaigns as a whole, transactional email - password resets and invitations, delivered, bounced or retried - and the audit trail, which is the honest way to see who is really using the CRM.
- CRM
Reports: filters, number formats, and charts you can click
The report builder now offers everything the reporting engine could already do.
Filters
Reports can be narrowed by any field, with the operators that suit it - is, contains, greater than, before, is empty - and a value box that matches: a date picker for dates, yes/no for checkboxes, a number field for amounts. A filter you haven’t finished typing is left out of the preview instead of quietly returning nothing.
Numbers that read like numbers
Each measure carries its own format: currency in your workspace currency, percentages, rates, or durations shown as 2h 15m rather than 2.25. Totals appear under the table, and only where adding up actually means something - a column of averages gets no total rather than a misleading one.
Sort, top N, and your own date range
Sort by any grouping or measure, keep the top 10, or set an exact from/to range instead of a preset period.
Charts you can click
Clicking a bar, slice, funnel step, heatmap cell or pivot cell opens the records behind it - on dashboards too, which previously only looked clickable. Where a segment can’t be turned into an exact list, it stays unclickable rather than opening something that doesn’t match.
Everything else
A line under every report saying in words what it counts, the underlying rows shown beneath each chart, CSV export, search and duplicate on your saved reports, and a choice of who can see each one.
- CRM
Chat: one Knowledge list, leads you can see, and a preview that really answers
A round of changes to make building a widget simpler to follow.
Widgets, Knowledge, Bots
The thing on your website is called a widget now, and the AI that answers on it is a bot. Creating one goes Name → Who answers → Knowledge → Install, with installing last. Inside a widget the tabs are Look · Words · Answering · Behaviour · Leads, and the preview on the right answers with your real bot.
Leads
Every widget keeps its own Leads: anyone who left an email or phone number, with every answer they gave, exportable as CSV. Like form submissions, they're kept on the widget - add them to your CRM with the new Widget lead automation trigger.
Goals live on the bot
What a bot tries to find out is now part of the bot. Drag the details into the order it should ask for them.
One Knowledge list
Answers is now Knowledge, and FAQ and Articles are one list instead of two tabs - quick answers and articles side by side, badged, with a single + Add menu. Which one you want is explained where you choose: a quick answer is matched word-for-word before any AI runs, so it's instant and free; an article is read and summarised. Imported websites sit under Sources, where you rescan or replace them, so a scan of 200 pages no longer buries the dozen answers you wrote by hand. Collections only appear once you have more than one. Each knowledge base holds one website, and scanning is far more reliable - and says why when a site can't be read. Visitors only see articles you pick for a widget's Help tab.
Also
Office hours and the “show the real teammate's photo” switch now save properly, fonts are a list, and images come from your Content Library. Attaching a bot shows its picture and name, the long explanation of how “least busy” is decided moved into an ⓘ tooltip, and switching section no longer flickers.
- Marketing
Lists: sendable counts, duplicate, and an email field that lives on the object
The second half of the Lists work: the numbers on a list mean something now, and the field a list sends to belongs where it always should have.
Records, and records you can actually email
A list shows both. Sendable is the count that matters before a send, and hovering it breaks down the difference: how many unsubscribed or are blocked, how many have no address, how many are a second record holding an address already counted. Each reason links somewhere you can do something about it.
A list that has not been counted yet says so, rather than showing zero. Those are different facts and only one of them should send you looking for a problem.
Duplicate, and Refresh data
Both are on the … menu, on the index and inside a list.
Duplicate copies a list. For a static list it copies the members too - and it copies their consent records exactly as they stand. How and when each address opted in is carried over rather than re-dated to today, because a consent record saying somebody agreed on a day they did not is precisely the thing a deliverability review would be shown. People who had unsubscribed stay unsubscribed in the copy; a duplicate is not a way back through a door somebody closed.
Refresh data recounts on demand. It only exists because the counts are now cached - before, they were recalculated on every page load, and a refresh button would have done nothing visible and taught you to ignore it. The cache is also why the Lists page stopped being slow: a workspace with ten segments over fifty thousand records was re-evaluating all ten, in full, every time you opened it. Sending never reads the cache - a campaign always works out its audience fresh, at the moment it goes.
And Export CSV gives you the whole filtered list with the columns you have chosen, not the page on screen.
The email field moved to the object
A list used to declare which field it sends to. That meant five lists of contacts each stored their own answer and could quietly disagree about the same person’s address. Which mailbox belongs to someone is a fact about your contacts, not about one list of them - so it is now set once, per object, in Settings → Objects & fields, and lists use it. A list can still override it for the rare case that genuinely differs.
Existing lists keep their own setting and send exactly where they always did. Nothing moves on its own.
New lists can only be created on something with an email field, with a note saying where to add one. Before, you could make a list nothing could ever reach, and the only symptom was a campaign that went to nobody.
Deleting that field is refused, not obeyed
If a marketing list sends to a field, deleting the field is blocked, and the dialog names the lists. A list that merely filters on it is a warning instead - a deleted field reads as empty, which is a visible, understandable outcome.
This is deliberately not a cascade. Deleting a list takes its members with it, and those rows carry the consent record for every address on it - the answer to “how did you build this list?”, which cannot be recreated. A mis-click in settings should not be able to erase that for a few thousand people and cancel live campaigns on the way out. If an administrator forces the delete anyway, dependent lists are pointed at the object’s next address field, or paused where there is none - never deleted. A paused list refuses to be scheduled, by name and with the reason, instead of quietly sending to nobody.
- Marketing
Lists: find them, group your conditions, and stop typing out values
Lists is where you decide who a campaign reaches, and it had been left as the thinnest screen in Marketing: a table you could not search, a segment editor squeezed into a 320-pixel rail, and a member list that stopped at a hundred people without saying so.
Find a list
The index now has a search box, a filter for static lists versus segments, and a filter by which kind of record a list holds. That last one matters more than it sounds: a campaign’s lists all have to be about the same kind of record, so “which of these can I even combine” is a question the screen has to be able to answer. There is a column for it too, and you can sort by size or by when a list last changed.
Every row has a … menu with Rename and Delete, and the same menu is on the list itself - so renaming no longer means going back to find the row you just came from.
Delete says what you are actually about to lose
It used to say “contacts themselves are untouched”, which is true and is not the thing anyone needed warning about. It now names the campaigns that send to the list and will be left with no audience, separately from the ones using it to exclude people - where deleting it widens the send instead. And when the list has members it says plainly that the consent records go with it: how and when each address opted in, which is the paperwork you produce when an inbox provider asks how a list was built, and which cannot be recreated afterwards.
Inside a list
It tells you what it is now - static or segment, which records it holds, how many, and which field it sends to. That was on the index and nowhere on the one screen where you act on it.
The member table pages properly, and search works. It used to fetch the first hundred rows and then filter those, so searching a list of four hundred people quietly searched a quarter of it and printed the full count above six results. Search now runs across the whole list.
You choose the columns, the same way you do on a record list, from any field on the record. Each list remembers its own choice, because a win-back segment and a newsletter roster are not interested in the same things.
The segment editor got the width it needed
It sits full-width at the top of the list and collapses to a summary once you are done with it. In the rail it came from, every condition wrapped onto two lines.
AND and OR together. Conditions can now be arranged into groups: everything in a group has to match, or any of them, and the groups combine the other way - so customers in London or trials who opened something last month is one segment rather than two. Two levels, which is what expresses every audience anyone actually builds without turning the screen into a query console.
And you stop typing out values you already have. Where a field has a fixed set of values - a dropdown, your tags, your campaign names - is any of and is none of now give you a searchable list, and what you pick appears as tags in the one box. Previously that was a text field where you typed each value by hand, spelled exactly, separated by commas. You can still type a value that does not exist yet, and pasting a column out of a spreadsheet turns into tags. It works everywhere conditions do, so flows and campaign refinements got it in the same change.
Two things removed
- The per-list preference centre has gone. The link in your emails now goes to a single clear switch: subscribed, or not. It is still the only place someone can re-subscribe, and it is still the destination for anyone who mis-clicked unsubscribe - that page and its address are permanent, because they are inside mail already sitting in inboxes. What went is publishing individual lists to it for recipients to tick.
- The double opt-in checkbox on a list has gone. It was set at the moment a list was created, before it had a single member, and it changed what every later add did. Confirmation links already sent still work and anyone waiting on one still becomes subscribed when they click. Double opt-in itself is unchanged underneath - lists already set that way still confirm every new member.
And three bugs found along the way
- A segment made entirely of groups read as no segment at all in a couple of places that count conditions - a flow goal or an unenrolment rule that would have quietly stopped applying.
- The campaign refinement editor checked your whole rule and then saved only part of it.
- Deleting a field that a segment depends on only looked at the top level of that segment, so the warning had a hole in exactly the case it exists for.
- CRM
Pipelines: pick what goes on the board, and change your mind later
Setting up a pipeline used to ask two questions - what are you tracking? and who is each one linked to? - and half the time the second one had no answer. Put your contacts on a board and the pipeline is “linked to” the contact it already is.
One question now
What goes on the board? Either the records you already have move along it, or you start something new for them. Two options, one click, and everything else - the new record type, the join back, the details on it - gets set up for you.
You name the new thing yourself, and every screen follows your words. If you run programmes for athletes or matters for clients, that’s what it says - nothing assumes you sell deals to contacts.
You choose what to note down
Creating something new used to quietly add three fields - value, close date and owner - and nothing mentioned them, so the first you heard of it was wondering where they came from. They’re now a short list you can see, with what each is for written next to it, ticked by default and untickable. Add something else puts your own on there in the same breath.
You can also say who each one is for, and pick as many as you like - a deal that belongs to both a person and their company is normal. Their record shows a list of these back, so everything open for one of them is in one place.
And you can change your mind
The reason that first question felt heavy is that it looked permanent. It isn’t. When one record needs two things on the go at once, Track more than one per… splits every card into a record of its own - keeping its stage, its place in the column and everything you’d tracked about how it got there, each one joined back to where it came from. It tells you exactly how many it will touch before you press it.
Nothing gets deleted. Your original records keep everything they had, including the stage they were on; it just stops being a board and becomes an ordinary dropdown on their record. So “start simple and see how it goes” is now advice you can actually take.
Stages: drag to reorder, and Win % where you edit them
The stage list is drag-and-drop, and it’s now the same editor everywhere - setting up a board, editing one, or editing the field in settings. Those had drifted apart: one said Open where another said “In progress”, and only one of them had a win percentage.
That gap was doing real damage. Editing your stages from the board wiped every win percentage you’d set - so your forecast, which multiplies each card’s value by its stage’s percentage, quietly dropped to zero with nothing saying why. Win % is on the board editor now, it survives a rename along with the stage’s colour and won/lost setting, and an editor that doesn’t know about a setting can no longer erase it.
Add to the board without leaving it
Every column has a +, and whatever you add starts in that column. It’s the same form you get everywhere else, not a cut-down one. Create takes you to what you just made, and the back link says ← Sales pipeline and returns you to the board you came from rather than a list you were never on.
The header is one row now instead of two: which board you’re looking at, what’s on it, and one button to add to it. Setting-up jobs moved behind “…”, because they’re things you do once.
Plainer words throughout
A common piece of feedback was that the app read as more technical than friendly, so this section had a pass: it now describes what you’ll get rather than what the system does. “That record type no longer exists” became “those records aren’t there any more”; the note under a board went from naming a field to telling you you’ll see the stage on each contact too. More of this to come elsewhere.
- CRM
Timelines: shared conversations, private notes
A record’s timeline shows what happened on it, and also what happened on records linked to it - open a deal, see the emails with the people on it. That was running in both directions for everything, and it shouldn’t have been.
Two things changed
Only correspondence travels now. Emails, calls, meetings, social messages and form submissions move between linked records, because they record something that actually happened with someone - as true read from the deal as from the person. Notes and tasks stay where you wrote them. “Chase the revised quote” is a fact about the deal; on someone’s contact record it turned their history into a to-do list. If you want a note in both places, link it to both - that still works and now means something.
And you never see a conversation that was someone else’s. Say a deal has two people on it, Jane and Bob. You email Bob about pricing - that was appearing on Jane’s timeline too, a conversation she was never part of. It double-counted activity in reporting, over-shared if anyone asked what you held about her, and the first time a rep spots something like that they start double-checking everything, which is the opposite of what a timeline is for.
It works whatever you call your records
Neither rule looks for “contacts” or “deals”. The second one asks whether an activity already belongs to another record of the kind you’re looking at - so two jobs that share a customer never show each other’s history, and neither do two applications for the same person, without anyone setting that up.
One switch, not a puzzle
If you don’t want two kinds of record sharing their history at all, there’s a single tick per link under Settings → Objects → Shared history, on by default. An earlier version of this had a switch for each direction; once notes and tasks stopped travelling there was nothing left for a direction to disagree about, so it’s one plain sentence instead.
Two more
- New record types now come with a timeline switched on. Whether you got one used to depend on how the record type was created - and the AI setup, which is how most workspaces get built, was one of the ways that didn’t. Turn it off in Settings for things like products or locations where it isn’t wanted.
- A record with a very large number of links now says so. The timeline gathers from as many as it sensibly can; before, it quietly stopped at a limit, so a partial picture looked exactly like the whole one.
- Marketing
Campaign results: click a number, get the names
A sent campaign has always shown its numbers. What it couldn’t do was tell you who they were - and on any campaign bigger than a hundred people, it couldn’t even show you the list it had.
Every tile is now a button
Recipients, sent, delivered, opened, clicked, bounced, marked as spam, unsubscribed. Click one and the table underneath fills with those exact people. That is what the number was for.
Two groups the tiles don’t show but the filter does: delivered but not opened, and opened but not clicked - the audiences a follow-up actually targets. Both count only mail that was delivered, so a bounced address is never counted as somebody who chose not to open.
The list was there and you couldn’t reach it
The recipient table stopped at 100 rows, with no paging, no search and nothing on screen saying it had stopped. On a ten-thousand-person send the answer to “who bounced?” was rendered and unreachable.
It now pages, it searches by address, and Export CSV downloads everyone matching the current filter - not the page you are looking at - with the send, delivery, open, click, bounce, complaint and unsubscribe times on each row. “Everyone who clicked, as a spreadsheet” is two clicks.
And the email itself
A report could give you every number about an email and not the email. The campaign now shows what was sent, rendered exactly as it was delivered, beside the things you look for when a number surprises you: subject, preview text, From and reply-to, the lists it went to, the recipient count, and when it started and finished.
Two smaller ones: marked as spam finally has a tile of its own - the figure was already being counted, and it is the one that costs you a sending domain - and where a campaign rotated across several sending addresses, each recipient row shows which one carried it.
- Marketing
Import a CSV straight onto a marketing list
An import used to end at you now have 500 records. Emailing them meant going to Lists, finding the same 500 again and adding them by hand - and the consent attestation was asked in that second place, by whoever happened to be doing it, rather than at the moment the file arrived.
Pick the list while you import
The import wizard’s Options step now offers the marketing lists that hold this kind of record. Choose one and the rows go on it as they import. The consent tick sits next to it, because the person holding the file is the one who knows where it came from.
When you finish, the result says what actually landed: how many were added, how many were already on the list, how many are waiting on a double opt-in confirmation, and how many were left off - with the reasons separated, because this person unsubscribed and this address doesn’t exist are different problems and only one of them is yours to fix.
Nothing treats an imported contact as second-class
Worth saying plainly, because it is the question people ask: an imported record is exactly as mailable as one you typed in or one a form captured. Solstral does not ask how a record was created when it decides who a campaign goes to, and it never has. The only things that keep an address off a send are a standing unsubscribe, bounce or complaint; a watchdog alias like
postmaster@; or a double opt-in list it hasn’t confirmed yet. Ordinary shared addresses -info@,sales@,support@- go through.Somebody who has unsubscribed stays off, whatever the file says. That is the one rule an import cannot talk its way past, and the result tells you how many rows it applied to.
Two fixes alongside it
- A double opt-in list now says so before you import, rather than after - every row lands unconfirmed and waits for a click, which previously showed up as a campaign with an audience of nought.
- Records of the wrong type are no longer added to a list. A company on a contacts list has no address in the field that list sends to, so it sat there as a member nothing could reach while making the list look bigger than it was.
- Marketing
One subscription per address - and a page that says who you can't email
Two things could disagree about whether somebody had unsubscribed, and only one of them stopped mail. That is now settled, and the answer has somewhere to live.
Subscription belongs to the address
A contact record is your filing of a person. The same human can be two records, and one record can hold a work address and a personal one - so consent sits on the mailbox, which is what receives the mail and what somebody clicked unsubscribe in. One opt-out stops mail to that address everywhere in your workspace, on every object it appears on. It does not opt out the other address on the same contact, which is deliberate: two mailboxes, two consents, and the record now shows both so it reads as a decision rather than a surprise.
List membership went back to being what it is - segmentation, and the record of how someone consented. It is no longer a second, quieter opt-out that could say "subscribed" about somebody who had asked you to stop.
Do not email
A new page under Marketing lists every address marketing is blocked to and why, with a count against each reason. Forty spam complaints and forty dead addresses are different problems and neither shows up in a campaign report; now both are on one screen.
You can add an address yourself. “Take me off your list” gets said on calls and in replies far more often than it gets clicked, and until now there was no way to act on it - removing someone from a list left them mailable from every other one. Anyone who can edit records can do it, from that page or from the Marketing card on the contact, and it comes off every list at once. Transactional email they asked for still goes out. Lifting a block stays with administrators, because that is the direction that can resume mail to someone who reported you.
The record answers “why didn’t they get my email?”
It used to take four places to work out: a list status, a suppression, a bounce tally, a sunsetting rule. The Marketing card now leads with the state of each address on the record, the reason in plain words, and the date.
Managing your subscription, from the recipient’s side
The preferences link in your emails is now a single clear switch - subscribed or not - unless you have deliberately published two or more lists for people to choose between. It used to be able to show a page reading “no subscription options are available for this address”, which was the default state for anyone who added the link without setting lists up, and is the worst possible version of offering someone a choice.
It is also the only place a re-subscribe exists, so the unsubscribe confirmation now points at it - for the people who mis-clicked, and the ones who only wanted less mail rather than none. Where several lists are on offer, clearing every box is now treated as unsubscribing from everything, which is what it looks like; previously it left you mailable.
Three fixes behind it
- Unsubscribing via a non-standard email field - a work or billing address rather than the default one - stopped the mail but left every list showing that person as subscribed. Every email field on every object is matched now, and case no longer matters.
- Automations and imports could re-add someone who had opted out, as long as they had no row on that particular list. The mail never went out, but the membership recorded consent on a day the person had said the opposite. Both check the address now, and an import reports how many were skipped for it.
- Asking whether an address is suppressed could return any one of several reasons at random. It now names the most serious one - so a dead mailbox is never reported to you as somebody’s choice to leave.