Skip to content
New: simulate any flow against real records before it goes live. See what's new

Changelog

What's new

The product moves quickly. Everything that ships lands here first.

Team planning together in a bright office
  1. AI Assistant

    The email the assistant is writing now sits beside the chat — and it won’t overwrite your words

    Asking the assistant to draft an email used to give you the email <em>in the conversation</em>. Ask for it shorter and you got a second one. Ask again and you had three, all nearly identical, scrolling away above you, and no way to tell which one was real. <strong>There is now one draft, in a panel beside the chat.</strong> It stays put while the conversation scrolls, it survives a reload, and every change goes into that one email rather than producing another copy. <strong>The part that matters is what happens when you’ve typed into it.</strong> Once you’ve touched the draft, the assistant stops writing into it. Ask for a rewrite and the change arrives as a suggestion — your version stays exactly as you left it, with the proposed wording shown above it, struck-through before and plain after, and two buttons: use theirs, or keep yours. Nothing is lost either way. That is deliberate and it isn’t caution: an assistant that silently replaces a half-written email in a panel you weren’t looking at is one you switch off, and rightly. It also won’t merge the two versions into sentences neither of you wrote, which looks like it worked and is worse. <strong>It says so honestly, too</strong> — “I’ve suggested a rewrite, it’s waiting for you” rather than “done”. <strong>Send goes from the panel</strong>, and sends exactly what you were reading: if anything moved the draft between you reading it and pressing the button, it tells you and asks you to look again rather than posting something you never saw. It names what’s missing — no subject, no recipient, empty body — while you’re writing, instead of at the moment you press Send. Your permission to send from that address, and whether the recipient has unsubscribed, are re-checked at the moment of sending, on exactly the same path the rest of the product uses.

  2. AI Assistant

    The assistant can now reach every part of the app

    The last gaps are closed. <strong>It can answer for itself now:</strong> “how much AI have we used, and who’s using it?”, “what have I missed?”, “is anyone actually visiting the site?”, “did that automation fire — is anything failing?”, “how’s the ticket queue?”, “why isn’t my email reaching them?”. That last one is the quiet one: an address that has unsubscribed or bounced will never receive anything, and until now nothing would tell you. <strong>Teams, not just roles.</strong> “Give Sam access to Deals” used to have no good answer — the assistant could only change someone’s <em>role</em>, and promoting people to admin to fix a visibility problem is how workspaces end up with five admins. It now manages teams properly, and tells you up front if team permissions are switched off, so you don’t set access and wonder why nothing changed. <strong>And it can reply to customers</strong> in the shared inbox — confirm-gated, because that goes to a real person and can’t be recalled. It sends through exactly the same path the inbox screen uses, which matters more than it sounds: on social channels, writing a reply without properly delivering it means you see it in the thread and your customer never does.

  3. AI Assistant

    Ask the assistant to look at your website — it reads the actual page

    “Is the call to action on my home page strong enough?” It reads what the page really says — headings, copy, every button and <em>where each one links</em> — and tells you. The most common problem it finds isn’t the wording: it’s a button with perfect copy that links nowhere, which you can’t spot by reading the page. It also flags a page with no call to action at all, and one where four different asks compete for attention (repeating the <em>same</em> ask down a long page is good practice, and it knows the difference). <strong>SEO, written for you and filled in.</strong> Ask it to check your site and it lists every page with a missing, too-long, too-short or duplicated search title or description, worst first. Ask it to write them and it drafts from the page’s own headline plus what it knows about your business, shows you, and saves them when you agree. It sticks to what’s checkable — whether your description gets cut off mid-sentence in search results — rather than claiming things about rankings nobody can verify. <strong>Copy changes go to the draft.</strong> When it edits a headline or a button label it changes exactly that one thing, leaves every image, colour and layout choice alone, and saves it as a draft — your live website doesn’t change because of something said in a chat. You publish when you’re happy. The one exception is SEO on an already-published page, which is live immediately — and it tells you that before doing it.

  4. AI Assistant

    The assistant can add fields now, not just read them

    “Add a renewal date to deals.” “Contacts need a lead-source dropdown with referral, website and event.” “Deals should link to a project.” It does them — including the fiddly ones: a link between two objects creates the matching field on the other side, a lookup checks it can actually read the field you named, and a formula is validated against your real fields before it’s saved rather than silently computing nothing on every record. <strong>This is the thing that was holding the rest back.</strong> Ask it to build a form and map an answer to a field that doesn’t exist yet, and its only option used to be to tell you to go and make it first. <strong>It won’t delete fields.</strong> Deliberately: deleting one destroys that data on every record at once, and deleting a link tears down the whole relationship. Adding and renaming are reversible; that isn’t, so it stays a decision you make on the screen with the warning in front of you. <strong>It also won’t let you end up with “Phone” and “Phone number”.</strong> Ask for a field that already exists under a slightly different name and it points at the existing one instead of quietly making a second. Renaming is always safe — the underlying key never changes, so reports, forms and automations keep working. Admin only: editing a value and changing what values are possible are different powers.

  5. AI Assistant

    Send it in three weeks — unless they get back to you first

    Draft an email with the assistant and tell it when to go: “in 3 weeks”, “next Tuesday”, “tomorrow”. It works out the date, shows it to you, and asks before queuing anything — because the send happens when nobody is watching. <strong>The useful part is the condition.</strong> “Follow up in three weeks <em>unless they reply first</em>” is a real setting, not a reminder to check. If they write back before then, the follow-up doesn’t go, and it tells you why it didn’t — “they replied on the 3rd” — rather than silently doing nothing, which is indistinguishable from a bug. You can also make it “unless anything happens on that record at all”, and schedule to several people in one go, then cancel the whole batch with one instruction. <strong>Two things it deliberately won’t do.</strong> It won’t treat a colleague’s email about the same customer as “they replied” — you still owe them the follow-up. And it re-checks, at the moment of sending, that you’re still allowed to send from that address and that the recipient hasn’t unsubscribed in the meantime. Three weeks is long enough for both of those to change.

  6. AI Assistant

    “Is it too early to message them again?” — now an answerable question

    Ask the assistant about any contact and it answers from what actually happened: when you last emailed, when <em>they</em> last replied, when anyone last spoke to them, and how many messages have gone unanswered. <strong>The answer is the same every time you ask it.</strong> It’s worked out from the record’s history rather than judged in the moment — an assistant that says four days is fine on Monday and too soon on Thursday isn’t advice, it’s a coin toss. <strong>And it knows when to tell you to stop.</strong> The suggested gap widens with each unanswered message — a few days, then a week, then a fortnight — and after four with no reply it says so plainly: another one is more likely to cost you the relationship than win an answer. Most bad outreach isn’t badly written, it’s the fifth one. If they’ve unsubscribed or bounced, that’s a flat no regardless of timing. If they replied after your last message, it just says the ball’s in your court.

  7. AI Assistant

    Ask the assistant what’s overdue, and it knows

    The helpdesk was the last big screen the assistant couldn’t see. Now: “what’s overdue?”, “what’s unassigned?”, “what’s on my plate?”, “raise a ticket for Acme about the failed install”, “assign #1042 to Sam”, “mark it solved”. It reports the SLA state in words — on track, due soon, breached — rather than making you read timestamps. <strong>It respects your mailbox permissions exactly.</strong> A shared inbox is divided up on purpose, and the assistant only ever sees tickets in mailboxes you have access to. Ask about one you can’t see and it says there’s no such ticket — because confirming a ticket exists but isn’t yours to read is a disclosure in itself. It also won’t assign work to a teammate who can’t open the mailbox it lives in; that’s worse than leaving it unassigned, because it looks handled. <strong>And it keeps your reporting honest.</strong> Raising a ticket’s priority re-targets its deadline from when the ticket was <em>raised</em>, not from now — so an already-late ticket stays late instead of quietly getting a fresh window. Solving one tells you it has emailed the customer a satisfaction rating, so nobody marks a ticket solved “just to see”.

  8. AI Assistant

    Describe a form and the assistant builds it — wired to the right fields

    “Make me a contact form that saves to Contacts, with name, email, company and a message.” It builds it, puts first and last name side by side, and connects every answer to the actual field it belongs in. <strong>It always builds a draft.</strong> Publishing is a separate step you confirm, so asking for a form can never put a page on the public internet — you look at it first, and it has no working link until you say so. <strong>It refuses to guess at fields.</strong> If you ask it to save an answer somewhere that doesn’t exist, it says so and lists the fields that <em>do</em>, rather than saving a form that looks perfect and quietly discards that answer on every single submission — which is the kind of thing you discover months later when you notice none of your leads have a phone number. It also tells you if a question isn’t being saved anywhere at all, in case that was deliberate. <strong>And it won’t give you duplicates.</strong> Forms default to updating the existing person when someone fills it in twice, matched on their email address, instead of creating a second copy of them.

  9. Plan & Billing

    See exactly what’s spending your AI credits, and who

    Credits were being spent correctly all over the app — the assistant, the chatbot answering visitors, AI steps inside automations, social drafts, campaign checks, inbox reply drafts — but the billing page could only tell you the total. “Why did we use 4,000 credits last month?” had one answer: “the AI did.” <strong>Billing now itemises it.</strong> Two charts under your credit balance: what’s spending them, and who’s spending them, over 7, 30 or 90 days. <strong>The row that usually explains the bill is the one with no name on it.</strong> The chatbot answers strangers on your website, and automation AI steps run at 3am whether or not anyone is watching — both are grouped as “Automatic”, because they genuinely aren’t anybody’s doing, and they’re the easiest spend to not notice. <strong>Attribution is written by the same code that charges the credit</strong>, so a feature can’t bill you and stay out of the chart — if you were charged for it, it’s in there. Voice input also now costs a credit like every other AI action, and tells you if you’re out before recording rather than after. The per-person view is admin-only.

  10. AI Assistant

    The assistant now remembers your business between chats

    Every conversation used to start from nothing. Tell it on Monday that you only sell to trade, and on Tuesday it asks again. <strong>It now keeps notes.</strong> When you tell it something that will still be true next week — what you sell, when your busy season is, what you call your customers, which tools live outside the CRM, how you like your answers — it writes it down and starts from there next time. There are two sets of notes: one about <em>the business</em>, shared with everyone and editable by admins, and one about <em>how you personally work</em>, private to you. <strong>Ask it “what do you remember about us?” and it will tell you, exactly.</strong> Tell it to forget something and it forgets it, and says which lines went. <strong>Two deliberate limits.</strong> The notes are capped — when they fill up, older ones are compressed rather than allowed to grow — so this costs a rounding error per message rather than a little bit more every day forever. And it remembers <em>facts</em>, never instructions: anything phrased as a standing rule (“always do X”, “never ask before Y”) is refused. That’s not fussiness. Notes get written from things it read in your records and emails, and a remembered instruction would be a way for text someone else wrote to change how the assistant behaves in <em>your</em> chats, weeks later, with nobody watching.

  11. AI Assistant

    Ask the assistant to change a setting, invite someone, or find out who changed what

    It can now operate the settings screens rather than pointing at them. <strong>Any workspace setting.</strong> “Show dates as day/month/year”, “make members read-only for records”, “require two-factor for admins”, “only let people with an acme.com address be invited” — it reads the current value, shows you exactly what would change from what, and asks before doing it. Every value is checked before anything is written, so one bad value changes nothing rather than leaving half a policy in force. <strong>And people.</strong> Invite someone with the right role, change a role, disable a sign-in, remove someone — with the same rules the screen enforces: an owner can’t be demoted or removed, nobody can change their own role, and re-enabling someone re-checks your seat count. <strong>It also reads the audit trail now:</strong> “who changed this deal’s value?”, “who removed Sam?”, “what did the assistant itself do yesterday?” — all answerable in chat. Anything that decides who can log in asks for confirmation first, even where clicking the same toggle in Settings doesn’t. A wrong field value on a record is visible on the record; a wrong security policy is only visible when somebody can’t get in.

  12. AI Assistant

    Hand the assistant a spreadsheet and it works out the columns — and what’s wrong with them

    Import has always guessed at your column names. It now gets a second opinion. Paste a CSV to the assistant, or point it at one, and it proposes a mapping column by column, tells you which headers it couldn’t place, and — the useful part — tells you what’s wrong with the data <em>before</em> you import it. <strong>It cleans what people actually type.</strong> <code>$1,200.00</code>, <code>(1,200)</code> and <code>1200 AUD</code> are all twelve hundred. <code>+61 (0) 400 123 456</code> and <code>0400-123-456</code> are both phone numbers. <code>Jane Doe &lt;[email protected]&gt;</code> is an email address. <code>N/A</code>, <code>-</code> and <code>unknown</code> are all empty. <code>closed-won</code> is your existing <em>Closed Won</em> stage. Blank rows and the header line some exporters repeat halfway down the file are dropped rather than imported as records called “Email”. <strong>What it won’t do is guess.</strong> Dates read day-first, the way the rest of the product does — but <code>04/25/2026</code> could only be month-first, so that row is read that way and says so. A percentage is flagged rather than divided by 100, because we don’t know whether the field wants 15 or 0.15 and being wrong there is wrong in every row at once. A value matching two dropdown options asks you which. Anything unreadable keeps its original value and gets listed — one odd cell never fails a row, and nothing is ever silently rewritten: every change is shown, grouped and counted, for you to approve before a single record is written.

  13. AI Assistant

    Talk to the assistant instead of typing

    There’s a microphone button in the assistant composer now, in both the full chat and the floating panel. Press it, say what you want, press stop — and the words appear in the box. <strong>They appear in the box, not in the conversation.</strong> The transcript is never sent automatically: you read it, fix the word it got wrong, and press send yourself. That’s deliberate rather than cautious — an assistant that can archive records shouldn’t act on a sentence nobody checked, and “did we hear back from Dell?” is one mishearing away from something you’d rather it didn’t do. <strong>The recording is never stored.</strong> It exists in memory for as long as the transcription takes and is then gone — not saved to the conversation, not written to disk, not in any log. It goes to the same provider that already powers the assistant, so no new company is involved, and cancelling means the audio never leaves your machine at all. It works in Chrome, Safari and Firefox, stops itself after five minutes if you forget, and if your browser blocks the microphone it tells you where to unblock it rather than just failing.

  14. AI Assistant

    Ask the assistant to set up your company email, and it sets up your company email

    Until now, asking the assistant how to send from your own address got you a link to Settings. Which is what a search box does. <strong>It now does the work.</strong> Ask it, and it takes the domain from the address you mentioned, registers it, and hands you the DNS records <em>in the chat</em> — each one with its own copy button, sorted so DKIM (without which nothing sends) doesn’t look like the same kind of thing as BIMI (a logo). Tell it you’ve added them and it re-checks, and tells you which specific record is still outstanding rather than just “not verified”. When ownership goes green it switches sending on and hands you the DKIM records the same way. <strong>Open Settings afterwards and you’ll find it exactly as if you’d done it by hand</strong> — because it did do it by hand: every one of these runs the same code the settings screen runs, so there is no second way for the setting to be written and no state the assistant can leave behind that the screen can’t show. <strong>And a new question it can answer:</strong> “why didn’t my email send?” now gets a real diagnosis — whether a domain is verified, whether DKIM is outstanding, whether you personally have an address you’re allowed to send from — and one next step rather than a list of everything imperfect. Permissions are unchanged: verifying a domain is an owner/admin action, so if you’re a member the assistant tells you precisely what to ask your admin for instead of refusing.

  15. Reporting

    Reports can finally answer “who have we gone quiet on?”

    The most-asked reporting question there is was the one report builder couldn’t answer. Activities — notes, calls, emails, meetings — live in their own table, and a report runs over one source at a time, so there was no way to reach an interaction date from a contact or company row. You could chart email volume by month, but you couldn’t ask which customers hadn’t heard from anyone since March. <strong>Every object now carries its own recency, derived from its real timeline.</strong> Five new fields on contacts, companies, deals and every custom object: <code>Last activity</code>, <code>Last email sent</code>, <code>Last reply received</code>, <code>Last call or meeting</code>, and <code>Days since last activity</code> — the last of which is a number, so you can filter on <code>&gt; 180</code> and group the result by owner. <strong>Inbound is deliberately separate from outbound.</strong> “We emailed them” and “they wrote back” are different facts, and only one of them is engagement. <strong>And the mirror image:</strong> the Activity and Email report sources now expose <code>Record</code> and <code>Record type</code>, so you can group the interactions themselves by who they were with — your ten most-emailed accounts last week, in one report. A record with no activity at all reports as empty rather than as zero days, because never contacted is not the same as contacted today. The AI assistant picks all of this up automatically and will stop hedging that it’s working from recent record edits rather than a verified interaction — it now has the verified interaction.

  16. Email Infrastructure

    Every sending domain gets its own page — and the records it was asking for now actually appear

    Email setup had grown past the space it was living in. Every sending domain — its DNS records, its authentication, its warm-up, its footer — was crammed into one row of a list, and the symptoms were exactly what you'd expect from that. <strong>Each sending domain now has its own page.</strong> The email settings screen is a list of domains at a glance: status, DKIM / SPF / DMARC / BIMI as four dots you can read in a second, how many records are still outstanding, and warm-up progress if it's running. Click one and you get everything for that domain in one place. <strong>Three things that were plainly broken are fixed.</strong> Turning on the bounce address told you to publish an MX and a TXT record, and then — the moment you reloaded the page — <em>didn't show you the records</em>. It sat there saying "waiting on DNS for bounce.yourdomain.com" with nothing to copy. The records now appear every time, alongside the DKIM ones, because a trip to your DNS host should cover everything at once. <strong>DMARC now offers you a record in every situation where there's one worth publishing.</strong> Previously, if you sent from a subdomain like <code>mail.acme.com</code> and <code>acme.com</code> already had a DMARC record, you were shown nothing at all — you inherit the parent's policy, so there was technically nothing missing, but you also had no way to give the sending subdomain its own. And when you were monitoring at <code>p=none</code>, the page told you to "move to quarantine once your reports look clean" without ever giving you the value to move to. Both now hand you the exact record. We still never publish or change a DMARC record for you — it governs every system that sends as your domain. <strong>And BIMI is finally reachable.</strong> The logo-in-the-inbox setup existed but had no upload button anywhere, so there was no way to use it. You can now upload your SVG, and it's checked against BIMI's requirements the moment you choose the file — square, no animation, no scripts, a <code>&lt;title&gt;</code>, the right profile declared — rather than being rejected by a certificate authority days later with no explanation. <strong>The warm-up ramp now counts everything, and shows you where it's up to.</strong> It was only counting campaign sends, which meant marketing emails sent from a flow went out completely uncapped <em>and</em> invisibly — a brand-new domain limited to 20 a day could be pushed well past that without anything noticing. All bulk mail now draws on one budget, one-to-one and transactional mail still always sends but counts toward the total, and the domain page shows "Day 3: 47 of 75 sent today". Nothing is ever dropped for being over budget: it waits for tomorrow's allowance. <strong>A marketing footer per brand.</strong> The postal address every marketing email legally has to carry belongs to whoever is sending it, so if you send as two companies you can now set the address, privacy policy and terms per sending domain, with the workspace defaults filling in anything you leave blank. It resolves per email, so a campaign rotating across brands puts the right address in each one. <strong>Replies now find the right mailbox.</strong> A reply to something you sent came back to a single workspace-wide address, which meant replies to <code>sales@</code> and <code>support@</code> arrived indistinguishable and unassigned. They now route to the mailbox that owns the address, and auto-assignment runs on them like any other message. <strong>Two smaller things.</strong> The one-click "add these records for me" button for DNS providers that support it now appears on the email screen, next to the records it would be adding, instead of only on the Domains tab. And a domain whose records have all gone green but which still shows as awaiting DNS now says why — the certificate is issued after your DNS is confirmed, which takes its own few minutes — rather than looking stuck.

  17. CRM Platform

    One date picker across the whole product, and folders you can rename and safely delete

    Two things that were never anyone's headline feature and were quietly costing everyone time. <strong>Every date field in Solstral now uses the same calendar.</strong> Until today they were the browser's built-in date boxes, which meant the CRM looked like a different application depending on which browser you opened it in, ignored your theme entirely, and in some of them offered no calendar at all — just three grey boxes you tabbed between. There is now one picker: a proper month grid in your workspace's colours, with today marked, <strong>Today</strong> and <strong>Tomorrow</strong> shortcuts, a clock column for the fields that need a time, and past or future dates greyed out where a date genuinely can't be chosen — a booking window's end date won't offer a day before its start. <strong>You can still just type.</strong> The field takes <code>today</code>, <code>tomorrow</code>, <code>+7</code>, <code>+2w</code>, <code>25/12</code> or a full date, and reads it when you leave the field — if it can't read what you typed it leaves your existing date alone rather than guessing. Dates are read the way they're written here: <strong>3/4 is 3 April</strong>. One deliberate exception: <strong>public forms on your own website keep the native control</strong>, because on a visitor's phone the operating system's own date wheel is better than anything we can draw, and those pages carry your styling rather than ours. <strong>And folders can now be renamed and deleted everywhere they exist</strong> — flow folders, website folders, the Content Library, email templates, and the label groups in your shared inbox. Some of those could already do both, some could only delete, and the flow folders couldn't be renamed at all: a typo in a folder name was permanent. Every rail now has the same pencil and cross on hover. <strong>Deleting a folder tells you what's in it first.</strong> If it holds anything, the confirmation names the count — “Onboarding holds 3 flows” — and states plainly that deleting the folder keeps every one of them and moves them to Unfiled. That was always true; it just wasn't said, and “Delete folder?” reads like it will take the contents with it. Nothing inside a folder has ever been deleted along with it, and nothing is now. Renaming also catches a name you already have in that spot before it fails, rather than after.

  18. Email Infrastructure

    One place to add a domain — and email authentication that tells you what actually matters

    Domains could be added in <em>two</em> places: Settings &rarr; Domains, and again inside Settings &rarr; Email. They were separate lists that knew nothing about each other, so the same domain could exist in both, in different states, with two sets of DNS records and two Check buttons. <strong>There is now one front door.</strong> You add a domain once, in <strong>Settings &rarr; Domains</strong>, and prove you own it once. Everything else borrows it: turn on sending in Email, attach it to a website in Sites, or make it the address the CRM itself is served from. <strong>You are also no longer asked what a domain is for while you're adding it</strong> — a question that came before the domain was even verified, and which you had to answer before you could know. Adding a domain proves ownership and nothing else; what it's used for is a consequence of using it, and the row now states that in plain words rather than in badges. <strong>A fix that had been quietly infuriating: a domain waiting on DNS couldn't be removed.</strong> If you added one, marked it for the CRM app and mistyped it, it was stuck in your list permanently — it was serving nothing, but being <em>intended</em> for the app counted as being in use. Remove now works unless something would genuinely break, and when it won't, it tells you exactly what to undo first: the website publishing on it, the sending addresses using it, or the CRM being served from it. <strong>Email authentication is now ranked rather than listed.</strong> DKIM, SPF, DMARC and BIMI used to look like four equally mandatory chores. Each now says what it does, how much it matters and what happens if you skip it — DKIM required, SPF and DMARC recommended, BIMI optional. Two are new. <strong>An optional bounce address</strong> puts SPF on a subdomain you own instead of Amazon's, so your mail passes on either SPF or DKIM rather than DKIM alone; it only ever touches a dedicated subdomain, so it can't disturb the SPF record covering your everyday business email. And <strong>DMARC is now read and explained</strong> — including the trap where a sending subdomain inherits its policy from the root domain, or has it overridden by an <code>sp=</code> tag, which is how people end up at <code>p=reject</code> on paper and unprotected in practice. We never publish or change your DMARC record: it governs every system that sends as your domain, not just us. Where you have none, we offer a monitoring-only value to copy. <strong>BIMI</strong> — your logo beside your emails — is there too, deliberately labelled optional and gated on DMARC actually being at enforcement across all your mail, which is the usual reason a BIMI setup silently never shows up. <strong>And who owns a domain is now decided by DNS, not by who typed it first.</strong> Adding a domain used to claim it globally: if any other workspace had already added <code>acme.com</code> — verified or not, in use or not — you simply couldn't, and there was no way through except contacting us. Registering a domain now claims nothing. Several workspaces can be part-way through setting up the same one, and <strong>the first to publish the DNS record keeps it</strong>; the others are told plainly that it's gone rather than being left with a domain that never turns green. If a verified domain later loses its DNS record, it releases the name for whoever proves it next. Finally, <strong>one-click DNS setup is live</strong> for providers that support the open Domain Connect standard: you approve the records at your own DNS provider and they're created there, with no credentials ever reaching us.

  19. CRM Platform

    Report a bug from the assistant, a signup that no longer dead-ends, and error messages that name the problem

    <strong>You can now report a bug or ask for a feature by telling the assistant.</strong> Describe what went wrong in your own words and it files the report — with the page you were on and any errors your browser recorded already attached, so you never have to go looking for them. Anything resembling a password or key is stripped out first, and the report is saved in the CRM before it’s emailed, so it still reaches us if the emailing part is what’s broken. <strong>Signing up no longer dead-ends.</strong> Starting from a plan on the website took you to a page that could only add you to an existing workspace, so a brand-new customer submitted their email and heard nothing. One address now does both: if your company already has a workspace you join it, and if it doesn’t we start you a new one. If we can’t deliver the verification email we say so on the spot instead of showing “check your email” for an email that was never sent — and there’s a “send it again” link on the confirmation screen. Starting a signup with an address that already has an account now gets a “you already have one, here’s the sign-in link” email rather than silence. <strong>“Validation failed” now says which field.</strong> Every form error that used to be those two words now names the field as it appears on screen and what’s wrong with it. <strong>Automated social replies are labelled.</strong> Replies published by a comment rule now carry a visible automated-reply line, honouring the per-account setting that previously had no effect; replies a person writes or approves are untouched. <strong>The messaging-window warning in the inbox now matches the platform’s actual rule</strong> — a blocked Instagram or Messenger thread explains that the seven days a human agent gets have run out, instead of quoting a 24-hour limit you’d just been told didn’t apply. <strong>And the AI assistant works again on the current OpenAI models</strong>, where every tool-using request was failing; when it does hit a problem it now explains it in plain terms instead of printing the provider’s raw error.

  20. Marketing

    A social calendar you can actually read, editable queues, and error messages written for humans

    A round of changes from watching people use the social module rather than from a roadmap. <strong>The calendar is properly visual now.</strong> Posts in the month view are larger, with a real image preview, the channel logos and the time &mdash; enough to tell which post is which without opening any of them &mdash; and there's a new <strong>week view</strong> where each post is a full card with a large preview, which is the view you want when you're judging whether the week looks right rather than whether it's full. Video posts show their preview frame with a play badge instead of appearing as an empty box. Your choice of view is remembered. <strong>Opening a post now tells you where it's going, at the top.</strong> A published or scheduled post opens with its channels stated first &mdash; logo, handle, status, and a direct link to the live post where there is one &mdash; instead of leaving you to work it out from a disabled account picker halfway down. Anything that failed or was skipped says so there, with the reason. <strong>Posting queues can be edited and deleted.</strong> The first cadence anyone sets is a guess, and until now the only way to change one was to not change it. Editing a queue's times doesn't move posts already scheduled from it, and deleting a queue doesn't delete its posts &mdash; they keep their times and go out as planned. <strong>Connected accounts show their channel's logo</strong> on the Accounts tab and on the connect buttons, and connecting an account no longer opens a new tab, so you end up back where you started rather than with two tabs and no idea which is current. <strong>Disconnecting an account now tells you what it affects.</strong> If comment automations are attached, they're listed by name first &mdash; and the wording distinguishes the two cases honestly: disconnecting <em>stops</em> them until you reconnect, removing the account <em>deletes</em> them. <strong>Comment automations gained a search box</strong> plus filters for channel and for what the rule does. <strong>A scheduled video is now kept until it goes out.</strong> Video files are held for the post that needs them rather than added to your Content Library, and previously that hold was seven days from upload &mdash; which meant a post scheduled a month ahead could quietly lose its video before publishing. Scheduling now extends the file's life to cover its own post, however far ahead that is. A related fix: reopening a scheduled video post used to show no video, and saving it would have turned the post into a caption. <strong>And the error messages.</strong> "Couldn't connect the account (bad_state)" is gone, along with the rest of that family: failures are now sentences that say what happened and what to do, with the diagnostic code tucked behind a &ldquo;details for support&rdquo; link rather than handed to you mid-sentence. The generic "Validation failed" that used to name raw request fields now names things as they appear on screen. Dismissed notifications stay dismissed &mdash; the connect result was being kept in the page address, so reloading brought the banner back. Finally, <strong>an empty Analytics tab now explains itself</strong>: whether the networks simply haven't reported yet, whether the platform has no statistics to give, or whether the connection has lost permission to read insights &mdash; which is the one case you can fix, and it now says so.

  21. Marketing

    Video posts, your back catalogue on the calendar, and analytics that finally show your own posts

    A batch of things the social module was missing, and two it was quietly getting wrong. <strong>You can post video.</strong> Drop an MP4 or MOV into the composer and it publishes to Instagram, Facebook and Threads like any other post. Video is deliberately <em>not</em> added to your Content Library — a 200MB file you use once shouldn't sit in a library you browse — so it's held for seven days to publish from and then removed. The preview frame is kept permanently, so a post from months ago still looks like something on your calendar. <strong>Your existing posts are now on the calendar.</strong> Connect an account and Solstral imports what you already published, going back about two months, so the calendar and the analytics aren't empty on day one. Imported posts are read-only history — they've already gone out — and there's an <strong>Import past posts</strong> button on each account for connections made before this shipped. <strong>Deleting a post can now delete it on the platform too</strong>, and editing a published post's text updates it where the platform allows. Both tell you exactly what will happen before you commit, per platform, because the platforms differ enormously: Facebook can do both, Threads and X can delete but not edit, and Instagram allows neither — an Instagram post can't be removed by any app, so we say so rather than clearing it from your calendar and letting you believe it's gone. <strong>Media problems are caught before you schedule, not after.</strong> Instagram only accepts JPEG, which is the kind of thing you discover when a post fails at 6am; a PNG is now flagged with a one-click fix. Images that are the wrong shape or too large are flagged too, with a resize that crops the way you'd choose rather than the way the platform would. <strong>And two fixes.</strong> Comment automations weren't firing on Instagram — the account was never subscribed to the platform's notifications, so the comment never reached us. That's fixed and now checks itself, and an account that isn't receiving updates says so on the Accounts tab instead of failing silently. Threads comments weren't being collected at all; they are now, though Threads has no direct-message API, so a rule there replies publicly — the rule builder now asks which you want and only offers what the account can actually do. The <strong>analytics tab was showing the wrong thing entirely</strong>: it described comments the engagement engine left on other people's posts, not the posts you published. Your own posts, their views, likes, comments and shares, and your best performers now sit at the top of that tab.

  22. CRM Platform

    The waitlist is gone — start a free trial and you're in today

    Until now, clicking &ldquo;Start free&rdquo; put you on a waitlist and you waited for us. <strong>That's over: signing up now creates your workspace immediately and starts a free trial of the full product.</strong> Not a demo, not a sandbox with the good parts removed — the real CRM, with real limits, on your own data. We ask for a card at signup so the trial rolls straight into a paid plan when it ends rather than stopping dead in the middle of your week; nothing is charged until the trial is up, the exact date and amount are shown before you enter anything, and cancelling is one click from your billing settings. <strong>The trial is now a plan in its own right</strong>, which sounds like an internal detail and isn't: it means the trial has its own published limits on the pricing page, the plan it turns into is named up front, and both can change without anything being buried in code. If you cancel, your workspace drops to the Free plan — <strong>your data is never deleted</strong>, it's all still there and still readable, and anything you're over the Free limits on simply stops until you upgrade again. And if you're one of the teams we set up and invoice directly, none of this changes: you're on a plan we assigned, with no Stripe subscription and no card on file.

  23. CRM Platform

    Social finally lands ON the record — and flows can act on the person who commented

    Social was in the CRM without being on the record, and this closes that. <strong>Comments and direct messages now appear on the contact's timeline</strong>, next to their emails, calls and meetings. Before this, someone who commented on your Instagram post could become a contact — and then you'd open that contact and find nothing there, with no sign of the interaction that created them. Each entry shows what was said, on which platform, and links back to the post. The timeline entry is a mirror: the conversation itself stays in the inbox, and the moderation log keeps its own record. A published post deliberately does <em>not</em> appear on individual contacts — a brand post isn't about any one person, and a timeline full of everything your company ever posted would bury the things that actually involve them. <strong>Flows can now act on the person, not just hear about them.</strong> The social comment and DM triggers now enrol the matched contact, so a flow can update a field, add them to a list, send them an email or route them to an owner — the ordinary things you'd expect. Until now those triggers passed information a flow could read but no record it could work on, which made them useful for notifications and little else. <strong>And flows can publish.</strong> A new <strong>Publish social post</strong> step schedules a post to your connected accounts, so "new case study added → post about it" is a flow rather than a reminder to yourself. It creates the scheduled post and stops there — the normal publishing engine sends it, which means a post created by a flow gets exactly the same platform checks, daily-limit handling, retries and audit trail as one you wrote by hand.

  24. Marketing

    Write posts with AI, repurpose what you've already written, and ask the assistant to do it for you

    Three additions to social, and one piece of housekeeping we think matters more than any of them. <strong>Write with AI</strong> is now in the post composer: draft from a one-line brief, rewrite existing copy for a specific platform, shorten it, expand it, or get hashtag suggestions. "Tailor per platform" writes a separate version for each account you've selected, each one built against that platform's real character limit — so the X version is genuinely short rather than a truncated Instagram caption. Everything it writes lands in the editor for you to accept or change; nothing goes from the model straight to scheduled. <strong>Repurposing</strong> turns something you've already written into a series of posts. Point it at a website page or an email campaign and it pulls out several distinct ideas, each stated in full so it stands alone — not a summary, and not the same idea three times. It only uses facts present in the original, and it works on your own content, never anything fetched from the web. <strong>The AI assistant can now work your social accounts.</strong> "Draft an Instagram and Facebook post about the new pricing and queue it for 9am tomorrow" is one instruction instead of four screens. It can list your accounts and their limits, draft, save, schedule, add to a queue, show what's going out this week, and work through the AI reply queue. Anything that publishes publicly still asks you to confirm first — drafting is free to run, sending is not. <strong>And the housekeeping: all of this is metered against your plan's AI credits.</strong> Every model call the social module makes is charged, and the batch actions reserve the whole job up front rather than per item — so asking for five platform variants with two credits left is refused cleanly instead of quietly finishing three over your cap. The composer shows the credit cost on the button before you click it. We also found and fixed a call that wasn't being charged at all: the sentiment check that decides whether AI is allowed to answer a comment. If you run out of credits mid-way, the effect is that the robot stops rather than the customer going unanswered — comments route to a person instead.

  25. CRM Platform

    Comments land in the shared inbox — and a fix for replies that were never actually sent

    Two changes to social conversations, one of which is a fix worth being direct about. <strong>The fix first.</strong> Replying to an Instagram, Facebook or WhatsApp conversation from the shared inbox wrote your reply into the thread but <strong>did not send it to the platform</strong> — you saw your message, the customer never received it. That is now fixed: a reply is delivered first, and only recorded once it has actually gone. If it can't be delivered you get a plain explanation instead of a message that looks sent — most often "this platform only allows a free-form reply within 24 hours of the customer's last message, and that window has closed", which is Meta's rule rather than ours. If you have replied to social conversations from the inbox before today, it is worth checking whether those customers ever heard back. <strong>Second, comments now become real conversations.</strong> Until now a comment was either handled by an automation or it disappeared — a question nobody had written a keyword for went unanswered. Comments now arrive in the shared inbox like any other message, which means they inherit everything the inbox already does: labels, assignment, snoozing, internal notes, @mentions, bulk actions, the waiting timer and SLA reporting. Each comment thread is its own conversation, so replying is unambiguous, and replying from the inbox posts publicly on the comment. Because a busy account can collect hundreds of "🔥🔥" comments a day, the default is deliberately not everything: you get the comments that <em>need</em> a person — ones no rule answered, ones a rule explicitly escalated, and <strong>anything that reads as negative, even when an automation already replied to it</strong>. An automation answering an unhappy customer should not be the end of the story. You can widen this to every comment, or switch it off, per account. Comments you have moderated are never routed — hiding something and then putting it in your inbox would defeat the point, and the moderation log already records what happened and why. Finally, the inbox rail gained a <strong>Channels</strong> section, so you can jump straight to Email, Website chat, Instagram, Facebook, WhatsApp or X.

  26. Marketing

    Social gets its other half: schedule posts, and turn the people who reply into contacts

    Solstral could already handle what came <em>in</em> from social — comments, DMs, the shared inbox. It could not put anything <em>out</em>. Now it can. Write a post once, tailor it per network, and schedule it to <strong>Instagram</strong> (feed, carousel, reels and stories), <strong>Facebook Pages</strong>, <strong>X</strong> and <strong>Threads</strong> from a calendar that sits beside your campaigns and your pipeline rather than in a separate tool. The composer checks each post against the platform's real rules as you type — character limits, image counts, formats — so a post that looks fine while you are writing it does not get rejected an hour later. Instagram cannot publish text without an image, and you are told that up front instead of finding out when it fails. Copy longer than 280 characters on X becomes a thread automatically, and because <strong>X has charged per post since February 2026</strong>, the composer shows you what a post will cost before you schedule it — including the considerably higher price when it contains a link. The <strong>calendar</strong> shows the month at a glance, drag a post to a different day and it keeps its time of day, and double-click an empty day to start writing there. <strong>Posting queues</strong> are a weekly pattern of times — Monday, Wednesday, Friday at 9am — and "add to queue" drops a post into the next slot nothing is using, so keeping a cadence stops being a daily decision. Free slots are ghosted into the calendar, which means the gaps in your rhythm are visible rather than only noticed later. <strong>Approvals</strong> let team members compose and admins approve; editing an already-approved post sends it back for approval, because otherwise approving and then rewriting would walk straight through the check. Daily publishing limits — 100 posts per rolling 24 hours on Instagram, 250 on Threads — are handled for you: a post that hits one waits and goes out when the window frees, rather than failing. Alongside publishing, <strong>comment automations grew up</strong>. A rule used to do one thing: send a DM. Now a single rule runs a list of actions, so one comment can get a public reply ("Sent you a DM!"), a private message with the actual link, <em>and</em> create the commenter as a contact on a nurture list — which is the thing a standalone scheduler cannot do at all. Comments are also now <strong>moderated before anything is sent</strong>, because you should not DM a spammer a discount code: a keyword blocklist plus signals like links from first-time commenters, promo language and contact details can hide a comment automatically. Hiding is preferred to deleting — it is reversible, and the author still sees their own comment — and every action is logged with a plain-English reason, so "why was my comment hidden?" has an answer. Negative comments are never answered by AI; they go to a person. And the commenter is matched to a CRM record by their handle, never by their display name, so two customers who happen to share a name are never merged into one.

  27. CRM Platform

    Flows and agendas now share one record, and the assistant can build an agenda for you

    A small but important correctness fix, and a shortcut. First the fix: a conversation flow's <strong>Capture lead</strong> step used to match or create a contact entirely on its own. Now that a bot can also be running an agenda in the same conversation, that was a way to end up with <strong>two contacts for the same person in one chat</strong> — the agenda creating one from an email, the flow creating another from a name. Both paths now bind to the same record: if the conversation already has one, the flow fills the empty fields on it rather than creating a second, and it doesn't overwrite anything already there. Flows also gained a <strong>Set agenda</strong> step, so a scripted path can hand goal-seeking back to the bot once the scripted part is done — the agenda picks up on the next turn, so you never get two questions in one reply. Second, the shortcut: the <strong>AI assistant</strong> (and any MCP client) can now list, create, test, publish and assign agendas. "Build me a bot that pre-qualifies leads from the pricing docs" is one instruction instead of a tour of four screens. Testing through the assistant is a real dry run — nothing is written and no credits are spent — and publishing is the only one of those that changes what customers experience, so it's the only one gated as a live change.

  28. CRM Platform

    Every value your chatbot writes now says where it came from — plus dry runs and agenda stats

    When software fills in your CRM for you, the obvious question is <em>how do you know that's right?</em> Agendas now answer it. Every value a bot learns is recorded with its <strong>provenance</strong>: whether it matched a recognised format (an email, a phone number, an amount) or was <strong>inferred by AI</strong> — and if so, which model and how confident it was — along with which record field it was written to, or why a write was refused. Open a chat conversation in the Inbox and you'll see a panel listing what the bot has gathered, with values it inferred marked <strong>AI</strong>, so an agent taking over knows which details to double-check rather than treating everything as equally solid. Fields you mark as personal data are <strong>redacted in that log</strong> — an email shows as <code>s…@acme.com</code>, a phone as its last four digits, free text as a character count. The real value still goes to the record where it belongs; the log keeps enough to recognise a value you already know and not enough to learn one you don't. Deliberately not a hash, either, since a hash of an email address is still a stable identifier. You can also set a retention window per agenda, after which the value payloads are cleared while the trail of <em>what was written, when, by which model</em> is kept — because the audit question is about the write, not the value. Two more things arrived with it. <strong>Dry runs</strong>: type a few messages a visitor might send and see exactly what the agenda would extract, which question it would ask, where each value would land, and how the person would qualify — with nothing written, no AI called and no credits spent. It also flags which turns <em>would</em> have needed AI, so you can see what an agenda costs before you turn it on. And <strong>stats</strong>: per-field asked / answered / written counts, completion and qualification rates, median time to complete, and the share of values that came from AI versus a free format match — a number that's both a cost signal and a trust signal. Agenda runs are also a first-class <strong>report source</strong> now, so qualification rates by agenda, by channel or over time work in the normal report builder and on dashboards, rather than being locked in a statistics panel.

  29. CRM Platform

    Give your chatbot a job: gather details, qualify the lead, build the record as it talks

    Your chatbot could answer questions. Now it can also <strong>get something done</strong>. An <strong>agenda</strong> is a set of objectives you give a bot — gather these details, qualify against these rules, then do this — that it pursues <em>while</em> it answers, rather than instead of answering. Start from a preset (<strong>Capture lead</strong>, <strong>Pre-qualify a lead</strong>, <strong>Book a meeting</strong>, <strong>Support triage</strong>) or build your own, and assign one or more to any bot. The behaviour is deliberately restrained, because a bot that interrogates people is a bot people close: it answers the visitor's actual question first and appends <strong>at most one</strong> follow-up question, it stays quiet for the opening turns so someone can say what they came to say, it never asks the same thing twice in a row, and it gives up on a question after a couple of tries and moves on. As it learns things it <strong>builds one record</strong> — not a new contact each time. The first identifying detail matches or creates the contact, and everything learned afterwards is added to that same record. It only ever fills fields that are <strong>empty</strong>: if a salesperson already typed a phone number, the bot won't replace it. And it can only write to the fields the agenda explicitly names, checked against your actual schema before it's allowed to go live, so an agenda can't quietly start writing somewhere you didn't intend. Most of what it extracts costs nothing — emails, phone numbers, links, amounts and menu choices are recognised outright, and only genuinely free-form answers use AI, and only when nothing else was found that turn. <strong>Qualification</strong> reuses the same condition builder as flows: score answers, set a threshold, and the visitor comes out qualified, disqualified, or — importantly — <strong>unknown</strong>. A lead is never binned for a question you never got round to asking. Qualifying, disqualifying and completing all fire automation triggers, so routing, notifications and follow-ups hang off them like anything else. Finally, agendas are <strong>versioned</strong>. You edit a draft and publish when ready; a conversation already underway keeps the rules it started with, so changing an agenda can never rewrite the terms mid-conversation. Publishing shows you exactly what's changing first, and because every past conversation still points at the version it ran under, you can always answer "what were the rules when this lead was qualified?"

  30. CRM Platform

    Choose who answers your chat — and the bot now knows to get out of the way

    A chat widget with a bot on it used to have exactly one behaviour: the bot answered everything. Now you choose, per bot, from four <strong>answering modes</strong>. <strong>AI first, then a human</strong> is the default and works as before — the bot answers and hands over when it isn't confident. <strong>AI only</strong> never escalates. <strong>Humans only</strong> keeps the bot silent, so a widget can carry a bot for after-hours without using it during the day. And the one most teams actually want: <strong>humans while we're open, AI otherwise</strong> — visitors reach a real person while someone is online and you're inside your office hours, and outside that the bot picks up instead of leaving them waiting until Monday. Both conditions have to hold for a human to take it, so an open-hours window with nobody actually online still gets answered. Underneath all four is one rule that can't be switched off: <strong>the bot stops the moment a teammate steps in</strong>. Replying to a conversation, or simply assigning it to yourself, takes it over — from that point the bot won't add another word to that thread, no matter which mode it's in. Previously this was inferred by checking whether anyone had replied yet, which worked but couldn't be undone; now it's an explicit state you can see and reverse. The conversation header in the Inbox shows <strong>Bot handling</strong> or <strong>You have it</strong>, with <strong>Take over</strong> and <strong>Return to bot</strong> beside it — so you can silence the bot before you start typing, and hand a resolved conversation back afterwards. Handing a live customer back to a bot is recorded in the audit log, because it's a real decision. Visitors can also just ask: "can I talk to a human" and similar phrasings route the conversation to your team. That check is deliberately conservative — it looks for an actual request rather than any mention of people, so asking whether you have a human resources module doesn't silence the bot. One quiet fix came with it: a widget outside office hours with a bot attached that wasn't going to answer used to send the visitor nothing at all. Your away message now appears whenever the bot isn't taking the turn.

  31. CRM Platform

    Several knowledge bases, and each chatbot only reads the ones you give it

    Your chatbot's knowledge used to be one undivided pile: every published article was readable by every bot on every widget. Now you can keep <strong>as many separate knowledge bases as you like</strong> — product docs, pricing and policies, reseller-only material, a support playbook — and grant each bot the ones it may answer from. Pick one, pick several, or leave it unset to read everything. That means two widgets on the same site can run genuinely different bots: a public support bot that only knows the help centre, and a partner bot that also knows the reseller terms. A base can also be marked <strong>bot-only</strong>, so it feeds answers without ever appearing in the widget's browsable Help tab — useful for internal guidance you want the bot to follow but not publish. Website crawls and Notion syncs now target a base, so importing your docs site doesn't dump pages into the same bucket as everything else. Nothing changed for existing setups: your current articles were moved into a base called "General", and every existing bot keeps reading everything until you narrow it — a bot with no selection is never a bot with no knowledge. Deleting a base never deletes what's in it either; its articles return to Unfiled and stay answerable, the same rule already used by media and template folders. The Knowledge tab has a rail down the left to move between bases, and each article can be filed or moved from its editor.

  32. CRM Platform

    Visitors see the real person they're talking to — and the chatbot moves in with chat

    Two changes to live chat. First, <strong>the widget now shows the actual teammate handling the conversation</strong> — the profile photo and chat name from their own profile, in the chat header as well as on their replies. Until now the header always showed a fixed brand avatar and a generic name like "Support", even while a named person was clearly typing back. It updates live: if a conversation is assigned to someone else, or picked up by a different person on the next shift, the header follows. The status dot now reports whether <em>that person</em> is around rather than whether anyone on the team is, because "the team is online" and "Sam is here" are not the same promise. The home screen's avatar stack shows whoever is genuinely online instead of a hardcoded list. A teammate with no photo uploaded gets their own initials, never the brand image with someone's name attached — and if you'd rather present a single faceless brand, one switch in the widget's Branding settings turns the whole thing off, for the header and the replies alike. Nothing else about the visitor's view changed, and no new information is exposed: agent names and photos were already shown on replies. Second, <strong>the AI chatbot is no longer a separate section</strong>. Bots, the knowledge base, FAQs and conversation flows were sitting under their own sidebar item, away from the widgets they run on — one product split across two places. They're now tabs inside Chat, alongside Widgets. Each tab is its own page, so you can link to and bookmark the knowledge base or a specific flow, and the back button behaves. Existing links keep working.

  33. CRM Platform

    Reporting grows past records: activities, email, campaigns, meetings, tickets and more — plus stage history, goals and forecasts

    Until now the report builder could only see <strong>records</strong> — contacts, companies, deals and your custom objects. Everything else in Solstral kept its own private statistics panel that you could look at but not do anything with: you couldn't filter it, pin it to a dashboard, compare it to last month or export it. That's gone. <strong>Ten new report sources</strong> open up the rest of the product — activities, email, campaign recipients, meetings, tickets, inbox conversations, form submissions, automation runs, web events and stage changes — all in the same builder, on the same dashboards, with the same filters and exports. Ask "average hours to first response by agent", "meetings booked per host per week", "click rate by campaign" or "form submissions by referrer" the same way you'd ask anything about a deal. Rate metrics come built in, so opened, clicked, bounced, solved and no-show are things you can average into a percentage rather than counting by hand. <strong>Pipeline analytics arrived</strong>, and they needed something Solstral wasn't recording before: every stage change is now kept as history, so you can finally measure how long things sit in each stage, where deals stall, how fast they move and how many make it from one step to the next. Because a pipeline in Solstral is just a field with stages on it, this works for tickets, projects and any custom object you've given a pipeline to — not only deals. A re-opened deal correctly counts both visits to a stage rather than quietly under-reporting. <strong>Goals</strong> let you set a target for any metric by month, quarter or year, optionally per person, and track progress against it. <strong>Weighted forecasting</strong> uses the win probabilities already on your stages, so no setup is needed. Reports also got better at answering "compared to what": pick <strong>Compare to previous period</strong> and a number gains a change indicator, while a trend chart gains a dashed line showing the same window last time. Rolling ranges compare against the equivalent stretch immediately before, calendar ranges against the previous calendar period — so "last 30 days" means the 30 days before that, not last month. You can now also <strong>group by owner</strong>, which was the most obvious thing missing. Visually, charts were rebuilt: proper axes, gridlines, hover tooltips and legends, and five new chart types — combo, scatter, heatmap, pivot table and an improved funnel showing drop-off at each step. <strong>Click any bar, slice or row to open the records behind it</strong>, with the report's own filters and date range carried across so the list matches the number you clicked. Where a segment can't be reproduced exactly, the chart simply isn't clickable rather than showing you a list that doesn't add up. Dashboards became arrangeable: drag widgets into the order you want and set each one to a third, half or full width. And under the hood, reporting is now measurably cheaper to run than it was before this release — several tables gained the indexes these questions need, identical queries arriving at the same moment are answered once instead of many times over, and every report has a time limit so no single question can slow the system down for everyone else.

  34. CRM Platform

    Free trials that end gracefully, and plan pricing you can change without a deploy

    Two things changed about how Solstral is sold and paid for. First, <strong>trials</strong>. A workspace can now run on a time-boxed trial of any plan with no card required — which is how a workspace handed to you already set up should start. Three days before it ends you get an email, and when it does end the workspace becomes <strong>read-only</strong> rather than being cut off: every contact, deal, email and report stays exactly where it was and stays fully readable, and only changes are paused until payment details are added. Nothing is deleted, and no workspace is ever suspended for a billing reason. Adding a card unlocks editing immediately — the moment the subscription goes active, the lock lifts and the trial clears itself, with no waiting on anyone. Attempting a change while read-only explains the situation and points to the right place instead of failing silently, and a banner across the top means nobody has to discover the state by bumping into it. Team members who can't add payment details are told to ask an admin rather than being sent to a page they can't act on. Second, <strong>plans are now editable</strong> from Settings → Plans &amp; pricing: prices, every usage limit, trial length, whether a trial asks for a card, and what happens when an account passes a limit — hard stop, bill the overage, or draw down prepaid credits. You can create an entirely new tier from scratch and it provisions itself with the payment provider on save. Two protections are built into that, and both are deliberate. Changing a <strong>price</strong> never changes what current subscribers pay: a new price is created and existing subscriptions stay on the one they signed up at, so nobody is repriced by accident — you migrate them when you decide to, not as a side effect of an edit. Changing a <strong>limit</strong> applies at each subscriber's next renewal rather than instantly, so no one loses capacity mid-month. Before anything saves, a panel spells out in plain English exactly who is affected: how many subscribers keep the old price, how many are already above a limit you're lowering, and what a change to overage behaviour means for them.

  35. CRM Platform

    The shared inbox becomes a real inbox: labels, folders, notes, search and an editor that's already open

    The shared inbox now works the way you expect an inbox to work. <strong>Labels</strong> are colour-coded and many-to-many — a conversation can be "Billing" and "VIP" at once, so labelling something never removes it from somewhere else — and you group them into <strong>folders</strong> in a new left-hand rail alongside standing views for Unread, Assigned to me, Unassigned, Starred, Snoozed, Closed and Archived, each with a live count. Deleting a folder never deletes what's inside it; its labels simply return to Ungrouped. Deleting a label removes it from conversations and touches nothing else. <strong>Search</strong> now covers message bodies, email subjects and senders — not just names — and any combination of filters can be kept as a <strong>saved view</strong>, private to you or shared with the team. <strong>Internal notes</strong> arrived: write a note in the thread, @mention a teammate and they're notified, and it's rendered in unmistakable amber so nobody confuses it with a reply — notes are never delivered to the customer, never reorder your inbox and never reopen a closed conversation. Everyday triage got faster: <strong>star</strong> to pin a thread to the top, <strong>archive</strong> to clear it without declaring it resolved (an archived thread comes straight back if the customer writes again), <strong>snooze</strong> with real choices — an hour, three hours, tomorrow, next week — rather than only a day, and <strong>bulk actions</strong> from checkboxes in the list to close, archive, assign, label or mark read across a whole selection at once. <strong>Keyboard shortcuts</strong> are the Gmail ones: <code>j</code>/<code>k</code> to move, <code>e</code> archive, <code>y</code> close, <code>s</code> star, <code>u</code> unread, <code>a</code> assign to me, <code>r</code> reply, <code>n</code> note, <code>l</code> labels, <code>/</code> search, <code>?</code> for the list. Every row now shows a <strong>waiting timer</strong> — how long the customer has been waiting on a reply, amber past an hour and red past four — so a thread going cold is visible rather than discovered. Two long-standing annoyances are fixed. Replying to an email no longer means opening a dialog over the conversation you're reading: the full rich composer is now <strong>docked in the thread</strong>, open and ready to type into, with recipients and subject folded away until you want them. And a conversation from someone who isn't in your CRM yet no longer dead-ends: instead of a broken "View contact" link, the panel now offers <strong>suggested matching records</strong> — each with the reason it matched, whether that's the same email address, the same mailbox ignoring plus-tags, or a company that owns the sender's domain — plus a one-click create-and-link pre-filled from the sender. Consumer mail domains are deliberately never treated as a company match, so two people on Gmail are never mistaken for colleagues. Separately, the floating AI assistant bubble no longer sits on top of page controls anywhere in the app — the layout now reserves space for it.

  36. Marketing

    Email builder rebuilt: forgiving drag-and-drop, blocks inside columns, and mobile that actually fits

    The email builder no longer asks you to aim. Drag-and-drop was rebuilt on a proper drag engine, so blocks land where you're pointing instead of needing a precise hit on a thin line — and you can now <strong>drag blocks straight into a column</strong>, between columns, and back out again, rather than adding them through a settings panel. Dragging is forgiving in both directions: drop into empty column space to append, or onto an existing block to place it exactly there. 2, 3 and 4 columns are now three separate blocks in the palette instead of one block you had to reconfigure after dropping. Mobile rendering is fixed properly: multi-column rows now stack full-width on phones and images shrink to fit the screen instead of casting off the side, so the Mobile preview shows what recipients actually get. A block set to zero top padding now renders with zero top padding — the stray white gap above the first block is gone. Images changed too: the free-text image URL box is gone (it only ever let broken, unhosted links into emails), uploads now go straight into your <strong>Content Library</strong> so anything you add in an email is available everywhere else, and you can pick from the library — folders and all — without leaving the builder. Replacing an image no longer stacks up a growing pile of thumbnails; you see the current image with Replace, Library and Remove. Finally, the builder now saves reliably: an edit made in the moment before you click away is written rather than dropped, which is what made work occasionally vanish on return. The same fix covers the campaign Recipients step.

  37. Marketing

    Folders for the Content Library and the template library, plus template test sends

    Two libraries just got organised. The <strong>Content Library</strong> now has folders — create, rename and delete them from the rail on the left, move any file into one from its card, and upload straight into the folder you're viewing. Deleting a folder never deletes what's inside it; files simply return to Unfiled. Those same folders show up in the email builder's image picker, so a large library stays navigable while you're designing. The <strong>email template library</strong> gets the same treatment and switches from cards to rows, so a few dozen templates stay scannable rather than filling the screen — each row shows its subject, folder and when it was last edited, with search across names and subjects. You can also now <strong>send yourself a test</strong> straight from a template, without first attaching it to a campaign: hit Send test, enter up to five addresses, and the real compiled email lands in your inbox for a rendering check.

  38. Marketing

    Replies to campaigns and automated emails can now land back on the record

    When someone replies to a marketing campaign or an automated email from a flow, that reply can now be captured in the CRM and threaded onto the timeline of the contact, company or deal it belongs to — instead of sitting unseen in a mailbox. Turn it on per campaign (and per send-email step in a flow) with a choice of two modes: <strong>route replies to the CRM</strong>, which sets the reply address to your CRM inbound address so responses come straight in, or <strong>also CC the CRM</strong>, which keeps your existing reply-to and logs a copy. Each send carries its own tracking code, so a reply is matched back to the right campaign and record. Click and open tracking are unaffected either way. Whichever mode you pick is remembered as your workspace default, so the next campaign and the next flow step start where you left off rather than making you choose again.

  39. Marketing

    The form thank-you screen is now designed, not typed

    What someone sees after submitting a form is now built on the <strong>Thank you</strong> tab — the same drag-and-drop canvas as the form itself, with headings, paragraphs, rich text, images and dividers. The old single-line "Thank-you message" box in the Actions step is gone, so there is only one place that screen comes from and no chance of a stale sentence quietly overriding the page you designed. Any wording you had already typed in the old box is carried across into the new canvas as a text block, so nothing is lost and you can now format it, add a logo or link somewhere useful instead of being limited to one line. New forms start with a thank-you screen already in place, ready to edit. Redirecting to your own page instead is unchanged.

  40. CRM Platform

    Duplicate detection stops treating a shared LinkedIn as the same company

    The Duplicates page was grouping records that had nothing in common beyond a social or directory link. Matching on a web address only makes sense for a domain a company actually owns — everyone's page is on <code>linkedin.com</code>, everyone's listing is on the same directory, and plenty of businesses share a website builder's domain — so those were folding dozens of unrelated records into one group. Solstral now recognises social networks, business directories and review sites, site builders and link shorteners, and compares the part of the address that identifies you: <code>linkedin.com/company/acme</code> and <code>linkedin.com/company/globex</code> are correctly different, the same profile written two ways still matches, and a bare <code>twitter.com</code> with no profile on the end is ignored entirely. Regional and mobile variants (<code>au.linkedin.com</code>, <code>m.facebook.com</code>) fold onto the same network instead of looking like separate sites. The same field can also mean two different things depending on where it sits: a website on a company identifies that company, while a company domain on a contact identifies their employer — and forty colleagues sharing it are forty different people. Solstral now works that out from your data rather than asking you to configure it, so a repeated domain on a mostly-unique field is still a duplicate, while a domain that repeats by design only counts when the names agree too. Two records for Jane Doe at acme.com are offered as a duplicate; her colleagues are left alone. Any single address that pulls in an unusually large crowd is treated as a shared platform rather than a duplicate set, which catches directory sites we haven't catalogued yet, and the page now tells you how many records were skipped for these reasons so an empty result doesn't read as a bug. CSV import matching follows exactly the same rules, so an imported row can no longer attach itself to an unrelated record because both happened to list a LinkedIn URL.

  41. CRM Platform

    Seven more product areas documented, and screenshots that actually capture

    The knowledge base now covers the whole product rather than most of it. Seven areas that shipped without a feature record — the website builder, the shared inbox, tickets and SLAs, tasks and reminders, social engagement, web analytics and the AI assistant — are now in the structured feature catalogue, which means each one automatically has a reference page and appears in search, the sitemap and the machine-readable feed. Twelve how-to guides that had been left as short stubs were rewritten as full walkthroughs with numbered steps, cross-links and the reasoning behind each choice, roughly tripling their depth. There are five new guides covering the inbox, tickets, tasks, analytics installation and the assistant, and two new knowledge-base sections to hold them. Separately, the weekly screenshot capture has been repaired: it was failing silently every Monday — a login that was never awaited, no handling for accounts with multi-factor auth or a custom workspace domain, and two hardcoded record IDs that only existed in one workspace — while still reporting success. Every one of those failure modes now stops the run loudly instead of committing nothing, and a new demo-data seeder populates a workspace with realistic fictional records so the captured shots show a product in use rather than a wall of empty states.

  42. CRM Platform

    One place for domains, a calendar-only booking block, and animations that actually animate

    Domains now live in one place. Settings → Domains lists every domain and subdomain your workspace owns, and each one says what it's for: <strong>the CRM app</strong> (reserved, shown as taken) or <strong>websites</strong> (available to publish a site on). That fixes a real trap — a domain you verified for your website was being claimed for the app, which is why it never appeared as connectable under your site. New domains now default to websites, and the Domain section on each site lists every domain with the reason beside any you can't pick: awaiting DNS, reserved for the app, or already used by another site. Email sending domains stay where they were, in Settings → Email. You can now also <strong>choose</strong> which domain the CRM itself runs on: the top of the page always states the current app address, and any app-role domain has a <em>Use as the app address</em> button that registers it and issues its certificate, releasing the previous one. Previously whichever domain you happened to add first won, silently, with no way to change it. DNS records got a lot clearer too. Every domain has a <strong>DNS records</strong> button that works at any time — before, during and after verification — so you can always check what you published. Each record says what it's for (routing, ownership or certificate) and carries its own green or amber indicator based on a live lookup of that exact record, so one typo'd entry is pinpointed instead of leaving the whole domain on "pending". Verified domains now show a solid green state rather than just dropping the word "pending". And because verification genuinely runs in two stages — prove ownership, then issue the certificate — the panel now says which step you're on and warns you up front that the ownership record will drop off the list and be replaced by <code>_acme-challenge</code> records. That was always correct behaviour; it just looked like your records had vanished. Website domains now get an HTTPS certificate issued automatically the moment you register them — previously only the app address did, so a custom website domain would verify, go green, and then fail in the browser with a certificate error. And if you enter a root domain like <code>acme.com</code>, Solstral now says so up front and explains the three ways to point it at us, instead of handing you a CNAME record that DNS won't let you create at the root. The booking block for websites got a Show setting, defaulting to <strong>Calendar only</strong> — just the date and time picker, without the avatar, host name, duration and location card that the standalone booking page shows, since your own page already says all that. Embedded booking and form widgets now grow to fit their content instead of being cut off at a fixed height (which is what made a published booking block show its details card and no calendar), they're transparent so they sit in whatever section you drop them into, and there's no "Powered by" line on your site. In the builder, animations were rebuilt: every preset now plays its full effect — Fade up genuinely fades as it rises rather than sliding in already visible — and each one gained a strength control, so you set the distance of a slide, the degrees of a rotation, the scale a Scale up grows from, or the blur amount, instead of accepting one hardcoded magnitude. Duration now drives the looping Float and Pulse effects too. Sliders got a proper autoplay checkbox instead of a text box, and any element inside a slider can be made the previous or next control — with a one-click way to restore the arrows if you delete them. The Popup element no longer ships with a trigger button you have to delete: drop the popup, then point any button at it from Settings, make any element inside it a close control, and tick close-on-outside-click. Finally, panel polish: the breakpoint switcher stops sliding around while you work, dropdowns and number fields no longer squeeze themselves down to an unreadable width (they wrap to their own line instead), the spacing box fits values like "auto", and the pages table sits on a white card.

  43. Automation

    Test flows with real data, click-in data chips, and folders

    Building automations is now a test-and-map loop, for every trigger — not just webhooks. Hit "Listen for test data" on any trigger and do the real thing (submit the form, create the record, open the campaign email) and the actual submission appears in the builder within seconds, even on a draft; or press "Load recent data" to pull the latest matching record so you're never waiting. The captured sample flows through the whole flow: run a test and each step shows its real output, which then becomes click-in data chips for the steps below it — so you insert {{First name}} from a dropdown instead of typing mustache by hand, and a configured field reads "Hi [First name] from [Company]". Branch and filter conditions get the same chip picker. New flows now start by asking you to choose a trigger rather than guessing one, and can't be turned on until you have. Marketing steps got smarter too: adding to a list from a flow triggered on a different object now matches by email instead of adding the wrong record, with a picker to use the enrolled record, a linked record, or a typed address; the "send marketing email" step shows the template's real subject and won't offer a phantom email field when there's no record; and a "create record" step warns when the form that triggered the flow already creates that record. Finally, organise everything into folders — with per-folder visibility so you can keep some flows to admins or specific teammates — right from the automations list.

  44. CRM Platform

    Tabs, sliders, popups and a dozen more elements in the website builder

    A big batch of new elements, and one important fix. First the fix: adding a Link or a Form element could crash the builder and force a restart. That's resolved, and panels are now isolated — if something does go wrong in a side panel, your page and its autosave keep working instead of the whole editor going down. Forms also embed properly now: they used to sit on a grey slab, and they now inherit whatever section you drop them into, with only the fields keeping their own background. The form picker works too, so you choose which of your published forms to show from a dropdown. New elements: Tabs, Slider (arrows, dots and optional autoplay), Accordion and a standalone accordion item, Popup, and Lightbox images that open full-screen on click. Plus the everyday pieces — Divider, Spacer, Icon, Quote, Badge, Social links, and an Embed block whose code you paste in the Settings panel (or a full-size editor) instead of onto the page, so the canvas stays readable. Video backgrounds arrived two ways: a ready-made Video background section, and a Video field in the Backgrounds settings that puts a muted, looping video behind any element you've selected. None of them are sealed widgets: each is ordinary markup you can open in the Navigator, take apart, restyle and rebuild, and they're all visible while you're editing even though they're hidden or collapsed on the live page. Finally, the Interactions tab can now show, hide or toggle any other element on click — give an element an ID, point a button at it, and you've built a popup, a dropdown or a read-more panel out of plain divs. Press Preview to try any of it exactly as visitors will see it.

  45. CRM Platform

    Website builder fixes: elements palette, autosave, panel layout and canvas handles

    A round of fixes to the redesigned website builder. Classes now do what classes are for: style an element that has a class and every element sharing it updates too — previously the change stayed on the one element. The style selector also spells out what you're editing ("Editing .button — affects every element with this class"), and you can click a class to include or exclude it from the rule, so styling .button and .button.is-large are both one click away. Saved components keep their styling: they used to save the markup only, so dropping one on another page gave you an unstyled copy. Saving a component now happens in a proper dialog with a dropdown of your existing groups instead of two browser prompts, and those groups finally show up as headings in the Add panel. Copies stay linked to the original — edit the component once and every instance updates — and they're labelled "Component (linked)" so that's obvious; right-click and Detach if you want one to differ. Dropped sections are no longer black boxes: the Navigator now shows each one as a labelled outline — Hero → Container → Heading, Text, Row → Button — so you can click straight to the piece you want, restyle it, or pull it into a layout of your own. Building from scratch got easier too, with plain Section, Container and Div elements plus vertical, horizontal and grid boxes. The column rows were rebuilt as well — 2, 3 and 4 columns and two sidebar splits — and they're now proper grids, so with a row selected you add or remove a column from the Layout panel in one click, and set it to a single column on mobile without touching the desktop layout. The old column blocks styled every row on the site at once and stacked at a screen size the builder didn't even offer. Grid layouts no longer need you to know CSS: pick Grid and just type how many columns and rows you want. Previously the field wanted CSS track syntax, and typing a plain "3" was invalid CSS the browser threw away — so nothing happened. Aspect ratio is a named list — Square, Widescreen, Portrait and so on — and image cropping is a nine-point grid rather than a pair of percentages. Interactions now play when you hit ▶ Preview in the builder: previously animations stayed frozen there, which was the one place you'd go to check them. Scroll-triggered animations also fire correctly on sections taller than the screen, which used to stay invisible. The Elements and Layouts palette no longer sits on "Loading…" — it fills in as soon as the editor opens. Autosave now actually persists: page edits were being saved correctly but discarded when the page was read back, so reopening a page showed the old version; that's fixed, and if a save ever does fail you'll see it in the top bar instead of it failing quietly. Saving page settings no longer reloads the canvas and loses unsaved work. The old leftover toolbar that overlapped the top bar and the Style tab is gone, which also removes the buttons that could quietly put the editor into a state where clicking an element stopped opening its panel — and selecting an element now always reveals the panel. Paired controls like Width/Height and Min/Max no longer overlap in narrow panels: their labels sit above the field, wide option pickers wrap instead of squashing, and the panels can be dragged wider. Every numeric field is now click-and-type as well as drag-to-scrub — including the spacing box, where a single click opens a text field — and slider readouts (opacity, blur, shadow offsets) are editable, so you can enter an exact value anywhere. Finally, the canvas resize handles stay locked to the edges of the page frame when you switch breakpoints, and can no longer be dragged off-screen or over the side panels.

  46. CRM Platform

    A redesigned website builder: real CSS controls, layered backgrounds and a resizable canvas

    The website builder now looks and works like a professional design tool. The whole interface moved to a dark designer theme, and the style panel was rebuilt from scratch around the way CSS actually works — grouped into Layout, Spacing, Size, Position, Typography, Backgrounds, Borders and Effects. Spacing is now a visual box you drag: hold Alt to change both sides at once, Shift for all four. Flex layouts get a nine-point alignment picker. There's a proper Position section — static, relative, absolute, fixed and sticky with offsets, z-index, float and clear — which simply didn't exist before. Typography shows the six controls you reach for and tucks the other fifteen behind "More type options". Backgrounds are now layers you stack, reorder and toggle — images and linear, radial or conic gradients with a draggable angle dial and editable colour stops — over a single background colour, exactly as CSS models them. Effects is a full suite: multiple box shadows (inside or outside), 2D and 3D transforms, transitions, filters and backdrop filters — blur, brightness, contrast, hue rotate, saturation, grayscale, invert and sepia — each an add-and-reorder stack. Every colour field now has a real picker with an alpha channel, an eyedropper, and one-click swatches from your site theme. Two things make it trustworthy: a coloured dot beside every property tells you whether a value is set on this breakpoint, inherited from a wider one, or just the browser default — click it to remove — and controls that wouldn't do anything are disabled with a reason, so offsets grey out until you leave Static and float greys out inside a flex container. The canvas got handles on both edges: drag to any width, snapping to the real breakpoints, and Desktop now fills all the space between the panels. Breakpoints match the industry standard at 991, 767 and 479 pixels, and a label down the canvas tells you which resolutions your edits affect. You can now right-click any element for cut, copy, paste styles, duplicate, wrap in a container, convert its tag, select parent, hide and copy CSS. And a new Interactions tab adds click, hover, scroll-into-view and page-load animations with duration, delay and easing — previewable on the canvas, and automatically skipped for visitors who prefer reduced motion. The Add panel was rebuilt too: elements are now searchable and split into Elements (structure, basic, typography, media, forms) and Layouts (navigation, heroes, whole sections and your saved sections), so you type "pricing" instead of scrolling. And the Settings tab now gives every element a proper ID field for in-page links, a per-breakpoint Visible/Hidden switch, custom HTML attributes, and an option to keep its text out of search result snippets.

  47. CRM Platform

    An AI chatbot trained on your business — answering and capturing leads 24/7

    Your chat widget just learned to answer for itself. Build a knowledge base — write articles, crawl your website, or sync a Notion database — and the AI chatbot answers visitors from it: grounded in your real docs, brand-matched to your widget, and honest about what it doesn't know. It's deterministic-first, so it's fast and cheap: curated FAQs are matched before the model (instant, free), and only genuine open questions use AI and draw a credit — run out and it gracefully falls back to FAQs and a human, so the widget never breaks. Every conversation stays in your CRM: a bot-captured lead becomes a normal contact on a timeline (so your routing automations and reporting just work), bot replies show right in the shared inbox alongside your agents, and when the bot is unsure it hands off — a normal assignment to whoever's online. Build guided conversation flows too — ManyChat-style: greet, ask questions, branch, capture the lead, then route to sales or hand to support — running turn-by-turn inside the chat. It threads through everything: automations get a reply-in-chat and start-flow action plus bot-captured-lead / handoff-requested / flow-completed triggers; the AI assistant and MCP can create articles, mine FAQs from your past chats, and generate flows; and there's a REST API to push articles and trigger ingestion. It all runs from the one Solstral tag you already install — and the same knowledge doubles as your widget's Help tab and an internal wiki.

  48. CRM Platform

    A richer record timeline: formatted notes and email, signatures, task assignment, reminders and pinning

    The activity timeline on every record just grew up. Notes, calls and meeting logs now use a full rich-text editor — bold, headings, bullet and numbered lists, quotes, tables, links and inline images — so an account note reads like a proper document instead of a wall of plain text. Composing an email from a record is the same Gmail-class experience: formatting, images you drag or paste (uploaded and hosted so they show up in the recipient's inbox), and a live preview of what you send. Signatures are built in and layered: set your own in your Profile with variables like {{user.name}}, {{user.title}}, {{user.phone}}, your photo and your booking link, and choose to auto-add it to new emails — while admins set a workspace-wide signature and per-team signatures in Settings → Email, so everyone stays on-brand with their own details filled in automatically. Tasks can now be assigned to a teammate (they get a notification and can filter their Tasks page to "Assigned to me") and carry a reminder time that pings the owner when it's due. You can insert a saved email template into any one-to-one message — merge tags fill in from the record — filter the timeline by Notes, Emails, Calls, Meetings or Tasks, and pin the important stuff to the top. Under the hood, all rich text is scrubbed through an industry-standard sanitizer before it's stored or sent.

  49. Marketing

    Engagement smart lists and multiple email fields per contact

    Two audience upgrades. First, smart lists and campaign segments can now filter on real engagement: build a segment like "opened a campaign in the last 30 days", "hasn't opened anything in 90 days", "has not opened Campaign X", or "opened at least 3 campaigns this month" — using new engagement conditions (last emailed / opened / clicked dates, per-campaign opened/clicked/received, and 30/90-day counts) alongside the existing 0–100 engagement score. They work everywhere conditions do: dynamic lists, campaign refinements, and exclusions (like "skip anyone emailed in the last 7 days"). Second, records with multiple email fields are handled properly: each list now has an ordered email-field priority — say work email first, then general, then personal — and every campaign sends to the first field holding a valid address per recipient. Fallbacks only cover empty or invalid values; an unsubscribed address is never bypassed by rotating to another one. Because any object can be an audience in Solstral, both features work identically for contacts and for any custom object you email.

  50. Marketing

    A rebuilt campaigns experience: create modal, calendar, smart sending and follow-ups

    Building and sending a campaign is now faster and clearer. Start from a new Create-campaign dialog (name it, tag it, begin blank or from a saved template), then move through a streamlined three-step flow — Recipients, Message, Review — with a progress bar at the top. The campaigns list gets a proper workspace: search and filter by status, tag, A/B test or archived, flip between a List and a Calendar view of what's scheduled and sent, and see open and click rates at a glance. Turn on Smart Sending and anyone who already got a campaign from you in the last several hours is automatically skipped, so a busy week doesn't fatigue the same people. Add a follow-up email and Solstral will automatically resend to everyone who didn't open, a set time after the campaign finishes — a proven way to lift total opens. The Review step now groups everything into Recipients, Message and Tracking sections with clear checks and a one-click Edit back to any step, and a new Audit campaign button runs an AI pass over your subject, preview and copy for concrete suggestions before you hit send. The email builder got a polish too: an icon-based block palette you drag or click, a + Dynamic tag dropdown that inserts personalization at your cursor (grouped by your audience's own fields), and a cleaner settings panel with collapsible groups. Personalization now uses object-agnostic {{recipient.field}} tags, so merge tags read correctly even when a campaign targets a custom object with no Contact.

  51. CRM Platform

    Meetings: Calendly-class booking pages, built into your CRM

    Stop paying for a separate scheduler. Solstral now hosts your booking pages: connect your Google or Microsoft calendar, set weekly availability with date overrides, and share a link — visitors pick a time in their own timezone, and double-bookings are impossible (we check your real calendar and add buffers, minimum notice and daily caps). Booked meetings land on your calendar with an auto-generated Meet or Teams link, both sides get confirmations with a calendar invite attached, and reminders go out automatically. Embed the scheduler on your own website as an inline widget, a floating button, or from any link — with your branding, custom questions, and a confirmation page or redirect you control. Teams get round-robin distribution (weighted) or collective co-hosted events. And because it's your CRM, every booking matches or creates the contact, lands on their timeline, and can kick off automations — meeting booked, rescheduled, cancelled or completed — plus a new 'send booking link' flow step. Invitees self-serve too: every confirmation carries a secure link to reschedule or cancel within the policy you set.

  52. CRM Platform

    Live chat, leveled up: saved replies, routing, files, CSAT and AI drafts

    A big upgrade to the chat inbox and widget. Agents get saved replies with /shortcuts right in the composer, an AI "draft reply" button that writes the next message from the conversation so far, and one-click file and image sharing — visitors can send files too, inline in the thread. New conversations can auto-assign round-robin to the least-busy online agent, and set your office hours so the widget shows you as away and sends a friendly auto-reply out of hours. Both sides now see typing indicators, agent profile photos appear on replies, and after a chat is closed the visitor can leave a star rating that shows up on the conversation. Agents also get a desktop notification and a sound the moment a visitor messages in.

  53. CRM Platform

    One tag for analytics, chat and forms

    Install a single Solstral tag on your website and everything runs off it — no more pasting a separate script for each feature. It streams web analytics (pageviews, unique visitors, sessions, top pages and referrers) into a new Web analytics dashboard, boots your chat widget and any embedded forms, and lets you fire custom events and identify visitors from your own code (solstral("track", …) and solstral("identify", …)). Build ordered conversion funnels over any mix of page visits and events, and when a visitor identifies with an email that matches a contact, their whole journey is stitched onto that contact. It's GTM-friendly, respects Do-Not-Track, and the chat widget now shows each agent's profile photo on their replies — while your team gets a desktop notification and a ping the moment a visitor messages in.

  54. Marketing

    Consent tracking, compliance footers and sending-health guardrails

    Sending marketing email responsibly is now built in. Every campaign automatically carries your business's postal address and Privacy/Terms links in its footer — set your address once in Settings → Email, and campaigns won't schedule without it (it's the law). We now record how and when every contact consented — double opt-in, a form, the preference center, an attested import or a manual add — shown right on each list with a consent-mix summary, so you can always answer "how did this list get built?". Adding contacts runs an address hygiene check (valid syntax, real mail domains, and blocked watchdog addresses like postmaster@), and bulk imports require you to confirm the recipients actually opted in. Finally, Solstral watches your bounce and complaint rates: campaigns from an unhealthy domain are warned or blocked before they send, and if things get bad enough your marketing pauses automatically to protect your sender reputation — one-to-one and transactional email keep flowing.

  55. Marketing

    WhatsApp & Messenger: inbound, automated sends, and template broadcasts

    Connect your own WhatsApp Business number and Facebook Messenger and run them from Solstral. Inbound messages land in the same inbox as everything else, so your team replies in one place. Automate outbound too: a new flow step sends a WhatsApp, Messenger or Instagram message when something happens in your CRM — a deal moves, a form is submitted — respecting each platform's rules (WhatsApp needs an approved template outside the 24-hour window; we handle the switch automatically). And send a template broadcast to a whole list, campaigns-style, with the same careful throttling. Connecting WhatsApp is self-serve: click Connect, authorise your number through Meta, and your approved templates sync in. Opt-in and template approval requirements apply, as Meta requires.

  56. Marketing

    Social engagement: comment-to-DM and a creator engagement engine

    Solstral now works your social channels. Connect Instagram, Facebook, X or Threads and set up comment-to-DM rules — when someone comments a keyword like "LINK" on your post, we automatically send them a private message, then bridge the conversation into your inbox so a reply picks up with full context. Inbound DMs on Instagram and Facebook arrive as inbox conversations too, respecting each platform's messaging window. And for X and Threads, a creator engagement engine watches the creators and keywords whose audience matches yours, drafts an on-brand comment with AI, and — with an approval queue and human-like caps, spacing and a sensitive-content skip — helps you show up in the right conversations. It's official APIs only, with a per-account kill switch and analytics on everything placed and skipped.

  57. CRM Platform

    Billing emails, resume anytime, and receipts with your details

    Managing your subscription is now complete end-to-end. Cancel and you'll see exactly when access ends — with a one-click Resume any time before then. You'll get email notifications for the moments that matter: subscription confirmed, plan changed, cancellation scheduled or reversed, a failed payment (with the date your access is protected until), a payment-method update, and AI credit top-ups — sent to the workspace owner, plus any admins or a dedicated billing address you choose. And a new Billing information section lets you add your legal business name, address and tax number (ABN, VAT, GST and more) so they appear on every receipt and invoice.

  58. Automation

    Send data into flows with visual field mapping

    Flows can now be how data comes into your CRM. Every automation has its own webhook URL — point a website form, Typeform, or any tool at it and hit "Catch test data" to capture a real submission right in the builder, no activation needed. Then, on a Create or Update record step, map the incoming fields to your object's fields visually: one click of Auto-map matches them by name, or pick each one by hand — no formulas to write. Whatever triggered the flow (a form, a chatbot, a webhook, a record change) shows up the same way, so the mapping always looks the same. We also redesigned the step picker into a searchable tile grid with icons, added text tools (split, substring, extract email/phone, defaults) and a new Calculator step for math across fields.

  59. Marketing

    Social engagement: comment-to-DM and a creator engagement engine

    Solstral now works your social channels. Connect Instagram, Facebook, X or Threads and set up comment-to-DM rules — when someone comments a keyword like "LINK" on your post, we automatically send them a private message, then bridge the conversation into your inbox so a reply picks up with full context. Inbound DMs on Instagram and Facebook arrive as inbox conversations too, respecting each platform's messaging window. And for X and Threads, a creator engagement engine watches the creators and keywords whose audience matches yours, drafts an on-brand comment with AI, and — with an approval queue and human-like caps, spacing and a sensitive-content skip — helps you show up in the right conversations. It's official APIs only, with a per-account kill switch and analytics on everything placed and skipped.

  60. Marketing

    Much bigger email allowances on every plan

    Every plan now sends far more marketing email. Free jumps to 10,000 emails a month — enough to run real campaigns, not just a demo — and the paid tiers scale up with it: Starter 50,000, Growth 250,000 and Scale 1,000,000 a month. Paid plans still flow past the included volume into low-cost overage rather than stopping you. Nothing else about your plan changes.

  61. CRM Platform

    Plans, billing and AI credits

    Solstral now has plans: Free, Starter, Growth and Scale, plus Enterprise. Each is a flat monthly price with generous usage limits — records, marketing emails, automation runs, seats and storage — and upgrading takes two clicks with the card form built right into Settings. Metered volumes like email flow into low-cost overage instead of hard-stopping you, and annual billing gives two months free. The AI assistant now runs on credits: every workspace gets 100 to get started, paid plans include a monthly allotment, and you can buy non-expiring top-ups any time — while the rest of the CRM works with or without them. A live usage view shows exactly where you stand, and existing workspaces are unaffected until they choose a plan.

  62. Automation

    Flow goals, multi-branch and simulation

    Flows V2 is live: set a goal and members exit the moment they convert; branch on multiple conditions at once; wait in business days or until a date field; restrict actions to execution windows; and — the headline — simulate any flow against a real record before activating it. Plus two new actions: rotate owner (round-robin routing) and notify a teammate.

  63. CRM Platform

    Team-member fields

    A new attribute type links records to people on your team — an account manager on a company, a reviewer on a project. Flows can rotate it round-robin for automatic lead distribution.

  64. Email Infrastructure

    Per-user sender permissions

    Personal senders each teammate verifies with an emailed confirmation link, shared senders granted per member or to everyone, and one server-enforced rule deciding who sends from what. Admins get a workspace toggle for member self-verification.

  65. Email Infrastructure

    Multiple sending domains and senders

    Verify as many sending domains as you need and create multiple From identities across them, with one workspace default and a per-email From picker in the composer. Domain verification is now fully self-serve with automatic status checks.

  66. Marketing

    Campaigns: A/B testing, warm-up and rotation

    The campaign engine now supports A/B tests with automatic winner selection, per-hour trickle limits, managed warm-up ramps for new domains, and sender rotation across a mailbox pool. Suppression is enforced three separate times per send.

  67. CRM Platform

    One flexible object model

    Companies, contacts and deals now run on the same flexible object engine as custom objects — one storage model, one code path. Every feature (views, imports, campaigns, flows, reports) works identically across every object, standard or custom.

Get the new stuff the day it ships

Every plan runs the same, latest platform.