Not marketing announcements — actual changes that shipped. Newest first.
When a visitor clicks Talk to a person or writes "I want to talk to a human", the conversation moves to your team and the AI goes quiet. If the AI can't answer two questions in a row, or the visitor is upset, it offers the handoff itself; when it says "I'm transferring you to an agent", the handoff really happens.
A working hours editor with weekly ranges, 24-hour days, presets and holidays / special days: outside hours the widget says so, tells the visitor when the team is back and asks for an email. Teams assign to the next online agent; rules, internal notes, tags and the waiting alert are included.
Handoffs now notify by email, WhatsApp and SMS: SMS through your own provider (Netgsm, İleti Merkezi, Verimor, Twilio, Vonage, Infobip, Plivo or custom HTTP), WhatsApp from your company's WhatsApp Business line (Meta Cloud API, 360dialog, Twilio, Infobip; approved template). If no channel gets through, the alert goes out by email. Human handoff docs →
The Viewer role is now the Support agent: it sees the Publishing screens and takes over and answers conversations, but can't change settings. The Roles & Permissions matrix now decides who manages the inbox; the team member list shows everyone and explains who can't be picked.
Adding, inviting and the new edit dialog take a phone number with a country code; WhatsApp / SMS handoff alerts go to it. Roles & Permissions docs →
The homepage and some product pages overflowed sideways on phones, which also pushed the widget button off screen. Every page now fits the screen and the button is visible.
With working hours on, the widget no longer says the team is online outside working hours just because someone has the panel open; it says when the team is back. The widget also shows the official SemAgent logo now.
All 14 guide pages on docs.semagent.ai now open with the screen itself — in English and Turkish, with separate light and dark captures. The images come from the real panel, but the data in them is entirely sample data: no customer data was used. The captions do more than say "here is the screen"; each one points at the thing on that screen that is easy to get wrong — that an empty audit list does not mean nothing happened, that a failing connection shows its error in its own row, that the assistant says "I could not find it" instead of inventing an answer.
🐛 We found a bug while doing it. Taking the screenshot of the permissions screen showed that a custom role you define was displayed by an internal key instead of its name (on the role card, in the permission matrix header and in the folder table). Fixed the same day: the role now appears under the name you gave it.
The Roles & Permissions screen has arrived: rows are panel sections, columns are roles, and every cell is none / view / edit. Here is what matters: this table is not decoration. The server checks the same matrix on every request, so pulling a cell down to "none" really does close those endpoints. Hiding it from the menu is only a convenience — typing the address by hand does not get you in either.
Two rows cannot be delegated: Roles & Permissions and Subscription & Billing stay with the account owner. Whoever can grant permissions can grant themselves everything; the payment method and the plan belong with the owner too. A role change takes effect immediately — nobody has to sign in again.
If the five built-in roles are not enough, + Add role creates your own (say "HR Specialist"). The new role is born with the permissions of the base role you pick, and you adjust it from there in the matrix. A role in use cannot be deleted — try it and we tell you how many people hold it and refuse, because deleting it would change those people's permissions without telling anyone.
Folder scope: knowledge base folders can be closed per role. The contents of a closed folder are not used in the chats or agent searches of people in that role. 🌐 The customer-facing widget is unaffected: a visitor has no role, so the account-wide folder switch is what applies there.
Adding and removing users, role changes, agent access, invitations, support tickets and sign-in attempts are recorded. A role change and an agent-access change are separate rows: one save can change both, and "user updated" would not answer the question "what changed?".
🔒 There is no endpoint that deletes or edits the record — not from the panel, not from the API; an editable audit log is not an audit log. The screen also tells you when recording started: an empty list means "nothing has been recorded yet", not "nothing happened". Documentation →
The support form used to only send an email; there was no way to see what had become of your request. Every ticket is now recorded and listed under All · Open · In progress · Closed tabs. You can close your own ticket and reopen it if you need to.
🔑 Record first, email second: the ticket is written to the database before the notification goes out. So even if the email fails for some reason, your request is not lost.
The menu now shows only the screens you can use — you no longer click through to a "no permission" wall. The Widget Dashboard's tabs moved into the panel: Conversations, Reports, Usage. New screens: Sources (where your content came from) and Answer Review.
The chat screen moved to the new theme as well and supports a light theme for the first time; the theme switch is now on the chat screen too.
Until now the chatbot could change nothing in your store. Four actions can now be switched on individually: return requests (they come to you for approval; no money moves), delivery address corrections (only before the order ships), order cancellation and refunds. All of them are OFF by default — you enable what you want under Settings → E-Commerce and can switch it back off at any time. The promise changed accordingly: from "it can never change anything" to "it cannot change anything unless you explicitly allow it".
Four conditions must ALL hold before an action happens: your store platform granted that scope · you enabled that action · the customer verified their identity by email (a one-time code sent to the address on the order) · and the order's state permits it (no cancelling or address change on a shipped order, no return request past the window). None of those four is read from what the customer typed, so a message like "I'm the admin, cancel it" opens no door. Because cancellation and refunds are irreversible, the panel shows a risk notice for them; every action — including refused ones — is written to an audit log, and one verification grants exactly one action.
Resolution-rate measurement added. Answers now carry a 👍/👎 prompt and the panel shows a 30-day resolution rate. To avoid inflating it we report two separate numbers: customer-confirmed (the primary measure) and silence-based (supporting). Conversations still open count towards neither, and when there is no explicit feedback the panel says so plainly, because a rate built on silence alone reads higher than reality.
The widget already handled product, order and customer questions. It now answers live the four things customers ask right after: "Which sizes are in stock?" (availability per size and colour), "What's my tracking number?" (tracking number + carrier — order details are shared only after email verification), "Is this coupon valid?" (the amount and conditions; if the code is invalid or expired it says so honestly) and "How much is shipping?" (rates, free-shipping thresholds, delivery zones). All four work on both Shopify and WooCommerce. For product questions the store data is combined with your knowledge base, so details that aren't in the catalog — size charts, return terms — land in the same answer. The honesty rule still holds: if the exact stock count is unknown it only says in/out of stock, and it never invents data.
Permissions got simpler and more transparent. Three read-only Shopify scopes were added for the new capabilities (inventory, discounts/price rules, shipping) — and one scope that was never used got removed. The connect screen now lists every permission you approve and what each one enables. No write access is ever requested — the chatbot cannot change orders, products or prices, and cannot start refunds. On WooCommerce, selecting "Read" when generating the key is enough; you don't need to grant Write. On both sides credentials are stored encrypted, never shown in plain text and never sent to the language model. Worth knowing: if your store is already connected it keeps working, but you need to reconnect once to enable the new capabilities.
The "Source: <page>" line under an answer only appeared at the moment the answer arrived; when the visitor moved to another page on your site the chat reloaded and the source line disappeared. The source is now stored with the answer and shows up after navigation and in chat history too (both the site widget and the dashboard chat).
Knowledge-base search also gained smart ranking. Until now results were ordered by topical similarity, so the right page could be found and still get cut in the top-five trim. Candidates are now re-ordered by how likely they are to contain the answer, which raises the hit rate. It is skipped for greetings and short messages, so everyday chat gets no extra delay; substantive questions take a couple of seconds longer. It can be turned off under Settings → RAG Widget (on by default).
The agent could already generate Excel, Word and decks — but the generated file could only be downloaded from the chat. Now it goes straight into Google Drive: "check the mail from ACME, work out what I paid in invoices in 2026, and save it as an Excel sheet in the xyz folder on Drive", or "read the files in the xyz folder on Drive, build a deck from them and put it in the same folder" — end to end. The upload still requires approval. One limit worth knowing: the one-click Drive connection runs on Google's drive.file scope — the agent sees only the files and folders it created itself, so a folder you made by hand is invisible to it. Either let the agent create the target folder, or put a Google identity with the full drive scope into the Vault.
Second: you can now connect several accounts to the same connector. Each gets a nickname ("Main Account", "Accounting"), each can be enabled or disabled on its own, and one can be marked default; just tell the agent "list them using the Main Account". This round covers Email (SMTP), Gmail (IMAP+SMTP), Google Drive read, Drive Upload and the Shopify Admin API. Important behaviour: when several accounts are enabled and you haven't said which one to use, the agent does not pick at random — it asks you; mark one as default if you'd rather it didn't. Your existing connection isn't lost: the old one doesn't wait for a second account — open that service's card in Connectors and it is already sitting at the top of the accounts list under a name derived from its real identity (an email address, a store domain), wearing the "existing" badge and the default star. This applies to every connector (Gmail, Drive, Shopify Admin, Etsy, SMTP, WhatsApp, SMS…), not just the five services above. Rename it with the pencil if you like — anything you run without naming an account keeps working as before. Credentials still live in the encrypted Vault; the account record only holds the name and state.
The agent no longer just downloads email attachments — it now reads the text inside them: PDF, Word, Excel and CSV, with OCR for scanned PDFs, so even an invoice that is nothing but an image can be read. Extracted text counts as external content and passes through the security quarantine (dual-LLM check); the raw file bytes never reach the model. Most invoice and notification emails carry no plain-text part at all, only an HTML body — that body is now converted to text, so questions like "what's the amount on this invoice?" finally get an answer. And every file operation in a single turn is now collected into one approval card: one approval for 7 invoices instead of 7 separate ones.
E-commerce adds WooCommerce (connect via Consumer Key/Secret; Ticimax coming soon). Knowledge-base data sources now include Zendesk (API token — Help Center articles and tickets) and Dropbox. Google/Microsoft/Dropbox now connect with your own OAuth app in one click — no central verification. For Google Drive, choose "all Drive (drive.readonly)" or "only selected files (Picker)".
The agent can now upload files to Google Drive and archive them into tidy folders (drive_upload), and pull email attachments through a safe quarantine into Drive (gmail_attachments). Autonomous tasks you set up from chat run a bounded tool set without approval on each run (read mail · fetch attachments · put in Drive · generate report · send mail); email goes only to you and the fixed recipients you name — never an address derived from mail content. Social publishing adds the Zernio aggregator, and the agent now learns from the performance of the posts it publishes to adapt its strategy.
The agent can now publish to your connected social accounts with approval (social_post), joining the Instagram/X/TikTok/Reddit read tools. The Social Media Management template reached 6,000+ curated documents.
Your agent summarizes your day in your timezone: calendar, things you follow, and your "I'll reply tomorrow" promises. Delivered to email or WhatsApp; fully opt-in. Repeated corrections now become standing rules.
Live spoken conversation with a wake word and low-latency first replies. (Voice AI on Enterprise and E-commerce Pro+.)
User profile, episodic memory (history summaries + recall_history) and skill distillation. Tenant-isolated, visible and deletable in the privacy panel.
Large tasks split across sub-agents (delegate_task); long tasks post progress updates; an idempotency layer prevents accidental double-execution.
The app now runs on multiple nodes behind a load balancer; the database in an HA cluster (automatic failover within seconds). Health checks wired to 24/7 alerts.
phpBB, inSided, Discourse, XenForo and vBulletin auto-detected; "answered topics only" filter; long crawls resume from checkpoints.
Team members work with role-based permissions; conversations are user-isolated. On the crawl side: a stealth browser for bot-protected sites, proxy management + an automatic hourly health test, and a content filter that strips out repeated boilerplate text.