Messaging & Channels
- Your page can now hand context to the agent — The metadata your site sends the widget (
sendMetadataToAGO) only ever reached support tickets, so the agent still asked which plan someone was on even though your page already knew. Turn on Send metadata to the agent under Settings → Integrations → Widget & SDK and the metadata goes into the prompt as well, so the agent answers from it. Off by default. Your page controls the metadata and a visitor can edit it in their browser, so treat it as context and not as proof — keep permissions or JWT for anything that grants access, and an API Data Source for data that must come from your servers. See Widget Metadata Communication.
Knowledge
- The embedding step of an import now shows its progress — Preparing documents for search can take minutes on a large source, and the sync history row showed nothing but a spinner for the whole of it, so a run that had stopped looked the same as one that was working. The row now counts the chunks as they are embedded (
150/420 chunks embedded) with its own progress bar, and the step an import is currently on counts up the time it has spent there. See Knowledge Source Management. - An import whose embedding step fails is now reported as failed — It used to finish green with the Embeddings phase ticked off, even when nothing had reached search, so the only symptom was answers quietly going stale. The run now ends as Failed, saying it crashed at Embeddings and why. Saving a single document from the admin interface still works as before.
- A hung embedding request no longer holds an import open — Requests to OpenAI, Mistral and Bedrock embedding models now time out and retry instead of waiting indefinitely, so one stuck request fails the import in minutes rather than blocking it for hours. An import abandoned by a worker is also now recorded with the phase it died on.
- Cancelling an import now takes effect in every phase — Cancel used to be ignored once an import reached the embedding step, its longest phase, so the run carried on to the end as if the button did nothing. The run now stops once the current batch of chunks finishes, a run cancelled while still Pending closes without ever starting, and a finished run can no longer be flipped back to In Progress by a stray duplicate of its task.
API & Integrations
- MCP document tools now accept your own page identifier — Every tool that takes a document ID also takes the page identifier you gave that document, the one
list_documentsreturns next to the ID. An assistant that quoted a page identifier back to AGO used to get an internal server error and report the server as broken, instead of being told its argument was wrong; it now gets the document. If the same page identifier exists in several sources, the call says so and lists the document IDs to pick from. See MCP Server.
Admin
- The interface is now available in six languages — German, Spanish, Italian and Brazilian Portuguese join English and French. Pick yours under Settings > Language; the choice is remembered on your next visit. If you have never set one, AGO follows your browser’s language and falls back to English for anything else. Every screen is translated, not just the chat: agents, knowledge, tickets, analytics and settings.
Messaging & Channels
- The chat panel width is now a supported setting — Set
panelWidthin your widget snippet (or the--ago-panel-widthCSS custom property) to make the panel wider or narrower than the 550px default. Values below 400px are raised to it, the panel never overflows the viewport, and phones keep the fullscreen layout. An invalid value leaves the panel at 550px and says why in the browser console instead of silently breaking the layout. See Panel size.
AI Studio
- A simulation run no longer loses a tool call — A test case expecting a tool that hands something to the user and ends the turn — opening a ticket form, returning structured JSON, handing off to another agent, suggesting next actions — could be reported as failed even though the agent had called it. Running the same dataset twice against the same agent gave a different set of failures each time, so a score could not be trusted or compared. A run tests several cases at once, and a turn that ends without a written reply was being matched against another case’s conversation. Each case is now read from its own conversation. See Simulation Testing.
Messaging & Channels
- Replying twice to a shared conversation works, and starts a second conversation — Someone who opened a shared conversation link, replied, then came back later and replied again used to land on a blank screen with no explanation. Each reply sent from a shared link now opens its own conversation, so a visitor can return with a different question without folding it into the earlier one. The composer says what is about to happen before they type.
- Replies were being dropped on workspaces with link sharing turned off — If your workspace has conversation link sharing disabled, anyone writing into a conversation they did not own got nothing back: no message kept, no answer, no error. That setting governs whether people can read someone else’s conversation, and it was wrongly deciding whether their own message was allowed to exist at all. Their message is now kept and answered in a conversation of their own. With link sharing off, that conversation starts empty instead of carrying the original’s history and title, so nothing they could not already open reaches them.
Analytics
- See where a conversation was copied from, and open the copies made of it — A conversation started from a shared link now shows its source in the conversation panel, with a link that opens the original at the exact message it branched from. On the original you get the total number of copies, and a list of the most recent ones — newest first, each openable, with who started it. Messages carried over from the original are marked in the transcript, so it is clear which ones the user actually wrote.
Messaging & Channels
- A shared conversation link no longer puts everyone in the same conversation — Sending someone a link to a conversation used to drop them straight into it: their messages were added to the original, and everybody who opened the link could read everything the others wrote. Now, when someone who does not own a conversation writes into it, AGO starts their own copy and continues there. They keep the history for context, the original owner never sees their messages, and the people who opened the same link never see each other’s. Staff replying from the agent console still answer in the customer’s own conversation, and Slack, WhatsApp and Messenger conversations are unaffected. If you want to hand out a link that starts a fresh conversation for each person, use a conversation starter link instead.
API & Integrations
- Report a bad answer from the SDK, not just rate it — Submitting feedback on a message now takes
reasons(inaccurate,incomplete,information_not_found,technical_issue) and a free-textcommentalongside the rating. A rating on its own still records the thumbs up or down and nothing more; adding a reason or a comment files a report that shows up in the dashboard’s Feedback tab next to the ones users send from the chat interface, so a complaint raised inside your own application is triaged the same way. Sending feedback again for the same message replaces the earlier report rather than filing a second one. See Submit Feedback. conversation_idmay come back different from the one you sent — When a message is sent to a conversation its sender does not own, the SDK now answers in a copy owned by that sender. The stream opens with aconversation_forkedevent carrying the old and new IDs, andGET /messages/{id}/statusreturns the same object, so a client polling after a dropped stream sees it too. Store the returned ID and use it for subsequent requests. See Forked conversations.
AI Studio
- GPT-5 models work wherever you pick them — Choosing a model of the GPT-5 family, or one of OpenAI’s o-series reasoning models, as your default, fast or per-agent model made every call to it fail, so the short automatic tasks that run in the background — translating a knowledge document into your other languages, reading ticket details out of a conversation — stopped producing anything. These models set their own creativity levels, so Temperature and Top P are no longer sent to them. The agent builder now greys out a setting the selected model ignores rather than offering a slider that does nothing — that covers these models, Azure deployments, and Bedrock models for Top P. The value you saved is kept, and applies again if you switch the agent to a model that accepts it. See Agents.
- Add an LLM model without leaving the admin — Superadmins can register the models agents are allowed to use from Settings > LLM providers & models: pick a provider, then a model from the list, or type an ID the list doesn’t carry yet. Adding a model registers its provider on its own. The list names where each model is used — the platform’s default, fast or reasoning model, or a given agent — and a model still wired up cannot be deleted, so nothing silently falls back to another model. See LLM providers & models.
- Agents can create tasks for your team — The new Create Task tool (
ago_create_task) lets an agent turn a customer request into an action item on the internal task board when a human needs to follow up — a quote, an account change, a callback. The task carries a public reference the agent shares with the customer, links back to the conversation, and can be assigned to a team member by email or pre-assigned in the tool configuration. The assignee is notified in the admin notification bell. See Tools. - Security Lab — Red-team your own agents from AI Studio > Security Lab. Run a catalog of attacks (system prompt leaks, secret leaks, prompt injection, unsafe tool use, knowledge scope bypass, jailbreaks) against an agent, get a security score and per-attack findings with severity, and open any finding in the AI Debugger. See Security Lab.
- Security Lab tests memory poisoning, and names the OWASP category behind each attack — A new attack plants a false claim of authority in one conversation, then opens a fresh one to check whether the agent kept it and acts on it; it only applies when agent memory is on, and anything written while testing is removed afterwards. The Attack Catalog and a run’s findings now name the OWASP Top 10 for Agentic Applications entry each attack was written against, and attack categories read as plain labels instead of internal identifiers. See Security Lab.
Knowledge
- Connect Notion in one click, then pick pages from a tree — Authorize your Notion workspace once from Knowledge > Sources > Connections: click Connect with Notion, tick the pages to share, done. No integration to create at notion.so, no token to copy. Every source you create afterwards picks that workspace and then its content from a browsable tree — no more hunting for a page ID in a URL and pasting it in, and AGO sets the Page/Database setting itself from what you picked. One connection feeds as many sources as you like, and Connections shows which sources depend on it before you disconnect. API tokens still work, and stay the only option on instances without a Notion integration. See Connect Notion.
Analytics
- Filter conversations by source — Conversations now record the website they were started from, and a Source filter in the conversations list keeps only the ones from a given site. The filter shows up once your conversations come from more than one site. Chat-widget conversations record your AGO workspace address, because the widget runs inside a frame served by AGO; an application that uses the AGO SDK directly records its own address. See Chat History Filters.
- See which tools an answer used — Reviewing a conversation as a staff member, each agent answer now carries a Tools called bar naming every tool that ran, with its status, its arguments and its result. Until now the only trace was a generic line under the Thought for few seconds toggle, and calls the chat has no way to draw — one still waiting on the user, or one the assistant made without a matching display — left the answer looking as if nothing had run at all. See Conversation Management.
Messaging & Channels
- Stop a reply while it’s being written — The send button becomes a stop button while the assistant is answering. Press it and the reply stops where it is, keeping the text already on screen rather than discarding it. A tool that had already started still finishes, but nothing new begins.
API & Integrations
- Ask the MCP tools whether conversations created tickets —
get_dashboard_analyticsnow returns two more sections.thread_to_ticket: how many conversations there were over the period, how many of them created a ticket, the Thread to Ticket Rate and the escalation rate.performance: number of conversations and users, average messages per conversation, first-contact resolution, and the split of conversations per agent and per user type. The tool used to return evaluation metrics only, so an assistant asked “how many chats ended in a ticket last week?” had nothing to answer with. See MCP Tool API. - Stop a message from the SDK API —
POST /api/sdk/v1/messages/{message_id}/stopstops a reply that is still being generated, so you can put a stop button in your own chat interface. Closing the connection on its own does not stop the assistant, so call this endpoint as well. See SDK API. - Client functions accept full JSON Schema — A client function’s
parametersnow reach the agent as you wrote them. Keywords beyondtype,descriptionandenumused to be discarded before the agent saw them, soitemson an array,propertieson a nested object andminimum/maximumon a number had no effect and nothing told you. A function whose schema cannot be relayed is now refused on the request that declares it, with an error naming the function, instead of disappearing from the agent’s tools mid-conversation. See Client Functions. - Higher request limit — The limit is now 900 requests per minute per IP address, up from 300. Requests are counted per public IP address, so everyone in an office behind a single internet connection draws on the same allowance — at 300, a few dozen people using AGO at the same time were enough to reach it and start seeing 429 responses. See API Key Authentication.
Knowledge
- API reference pages display again — An endpoint page imported from an OpenAPI source showed an error message and a stack trace instead of the documentation, whenever the endpoint’s response pointed at one of the spec’s shared schemas rather than spelling the schema out in place. Those pages now show the method, path, summary, description, parameters with their default and allowed values, request body and responses. Where a response refers to a shared schema, the schema’s name is shown. The pages also load a fraction of the code they used to. See OpenAPI Integration.
- Automatic sync no longer loses its time — Saving a source that syncs daily or weekly could clear the configured hour without saying so. Auto-sync still showed as switched on, but the time was blank and the source stopped syncing until someone noticed the documents were out of date. Re-saving a source now keeps its time, and an auto-sync source that still has a complete schedule gets its next run restored on its own if it went missing. If a source has already lost its hour, set it again once and it will hold. See Knowledge Source Management.
- Sync intervals are stated in hours — The interval schedule is now labelled Every X hours, and its summary reads “every 2 hours” rather than “every 120 minutes”. The choices themselves are unchanged. Scheduled syncs are checked once an hour, on the hour, so a source set to 13:30 runs at 14:00 — the schedule panel now says so. See Knowledge Source Management.
- Links between imported files now work — Importing a folder of files, a link from one page to another kept the address it had on the original site (
/content/product/mmp/graphql,../index.md), so clicking it in AGO led nowhere. Those links now point at the matching AGO document, anchors included. A link to a page that is on your site but not in the imported folder becomes a link to your site, if you filled in External Link Base URL — and that address now treats anindexfile as its own folder, the way documentation sites publish it. See File Directory Integration.
Admin
- A home page for the admin area — The admin area now opens on a Home page that lists what needs you: conversations flagged for review, pending knowledge update requests, and negative feedback, each linking straight to the matching list. Counted queues disappear once they’re empty, and a queue that fails to load says so with a Retry instead of vanishing. Shortcuts to create an agent, tool, or knowledge source sit alongside. See Administration.
- Open the Assistant from the menu — Ask AGO now sits at the bottom of the left menu, so the Assistant no longer depends on knowing the ⌘K shortcut. ⌘K still opens it; use the X in the panel header to close. See Assistant.
- A calmer Assistant panel — The message box now grows with what you type (Shift+Enter for a new line), and once three or more steps in a row have finished they fold into one line you can unfold. Scrolling up while a reply is being written no longer snaps you back to the bottom on every new line — a Latest button takes you there when you want it. See Assistant.
- Search users by their full name — Typing someone’s first and last name in User Management found nobody: the whole phrase was matched against each field separately, so “maxime thoonsen” was looked for inside a first name, then inside a last name, then inside an address, and matched none of them. Each word is now matched on its own, in any order, and email search no longer cares about capitals. See User Management.
- The Assistant finishes what it starts — A request that took the Assistant more than a couple of steps could end on a promise: “I found Roy Santana and I’m now opening his profile page”, and then nothing. Two causes, both fixed. It ran out of allowance mid-task, because opening a page or applying a filter for you was counted against the agent’s reasoning budget even though each one is a separate exchange with your browser — those steps now have their own, much larger allowance, and an agent’s Reasoning Iterations setting no longer limits how many things it can do for you in one request. And when it moved you to a page whose contents were still loading, it could act on the page it had just left; it now waits for the new page before carrying on. See Assistant.
- The Assistant can open a user’s profile — Ask it to “open Maxime Thoonsen’s profile” and it searches User Management, then opens that person’s page. It used to stop at the filtered list and hand you the link to click, because it could only open pages that are the same for everyone. Once there it answers about the profile itself: organization, permissions, ticket form, when they joined, how many conversations and tickets they have. See Assistant.
- The Assistant answers about what a page shows — Ask it to search User Management and it now tells you who it found, instead of applying the filter and leaving you to read the table. It waits for the page to finish loading, then answers from the results — on user search, on the knowledge sync history (including the error message of a failed run), and on the dashboard figures for the period you selected. It reads the page of results on screen, not every record you have. See Assistant.
- The Assistant can save the page for you — On the agent, tool, knowledge source, conversation starter, incident banner, prompt template, business hours and permission builders it no longer stops at a filled-in form: “create a permission named VIP, make it public and set priority 10, then save it” ends on a saved permission. If the page refuses the save it tells you which field is missing instead of claiming it worked, so you can answer with the value in the same conversation. See Assistant.
- Deleting asks you first — The Assistant can now delete a permission from Agent Permissions, but never on its own: it stops, names the permission it is about to delete, and waits for you to click Yes in the panel. No cancels it. Saving needs no confirmation; deleting always does. See Assistant.
- The Assistant reads your permissions — On Agent Permissions it now answers from the list — “which permissions are public?”, “what priority is VIP?” — and can open one of them for editing, the way it already opens a user’s profile. See Assistant.
- Shareable filtered conversation links — Links into chat history now carry their filters in the address bar, so you can bookmark a filtered view or paste it to a colleague and they’ll see the same results. See Administration.
- Preview the ticket denied message — Editing a permission now shows a preview under the denied message field: your markdown is rendered in the same yellow callout the user sees in the chat, and it updates as you type. The two instruction fields below it are relabelled “Extra agent context when the user CAN / CANNOT create tickets”, so it’s clear that text goes to the agent and never to the user. See Ticketing.
- Ticket creation status on a user’s profile — A user’s profile page now shows whether that person is currently allowed to open a ticket: Can create tickets, Cannot create tickets, or Unknown when the ticketing system couldn’t be reached. Handy when someone reports the assistant won’t open a ticket for them. See User Management.
- A ticket form for one person — A user’s profile now has a Ticket Form selector, and the same choice is on the Create User page. The form you pick there wins over the form of their permission and over the default form, so a single key account can get a form nobody else sees without carving out a permission for them. Pick Use the form from permissions to remove it. See Ticket Form Customization.
- Set a user’s ticket form from the API or an agent —
POST /api/v1/userstakes aticket_form_id, and every user the API returns now carries itsticket_form, so a nightly sync can assign forms per user instead of doing it by hand.GET /api/v1/tickets/formslists the forms to pick the ID from. The same three are available to agents as theupsert_user,get_userandlist_ticket_formsMCP tools. See Users API.
API & Integrations
- Sync documents with your own IDs — Documents now accept a
page_id, your own identifier for the record. Sending the samepage_idtoPOST /api/v1/documents/bulkupdates that document instead of creating a duplicate, so a nightly sync from n8n, Zapier, or a script can run as often as you like.POST /api/v1/documents/bulk-deleteacceptssource_id+page_idsfor the same reason, and reportsnot_foundback as your identifiers. See JSON Integration.
Analytics
- Large exports run in the background — Exporting more than 1,000 conversations, tickets, or feedback entries no longer ties up your browser tab. The file is prepared in the background while a notification tracks progress; when it’s ready the download starts automatically, and if you’ve navigated away a bell notification lets you retrieve it later. Files are compressed for transfer, delivered as regular CSV, and stay available for 24 hours. Smaller exports download immediately, as before. See Conversations.
- Follow-ups dashboard tab — A new Analytics tab reports how follow-up suggestions perform: the engagement rate overall and per agent, plus the most-clicked suggestions. See Follow-up Replies.
AI Studio
- Follow-up suggestions stay with the conversation — The clickable follow-up replies under an answer no longer disappear when you reopen a past thread; they reappear under the latest answer so a user can pick one up later. See Follow-up Replies.
- See which secret key a tool uses — When you reopen a tool that already has a Secret Key saved, the builder now shows a masked hint (for example
s*********y) so you can confirm the right key is stored without revealing it. Inline help explains how to reference the key in your request headers with the{{secret_key}}placeholder. See HTTP Request Tool.
Ticketing
- Test your Zendesk connection — The Zendesk configuration page now has a Test connection button that checks your domain, admin email, and API token against Zendesk before you save. Success shows the account AGO connected as; failure tells you whether the domain or your credentials (admin email / API token) are the problem. Leave the token field empty to reuse the saved one, and enter the Zendesk domain either as the bare subdomain (
mycompany) or the full host (mycompany.zendesk.com). See Ticketing.
Messaging & Channels
- Voice conversations now live in the chat — A voice call no longer takes over the screen: a compact bar sits above the message box with the call status and a mic level meter, while your words and the assistant’s replies appear in the thread as you speak. The transcript is saved to the conversation history like any typed exchange, bracketed by “Voice call started/ended” markers with the call duration and turn count. Voice turns carry a small mic badge (hover it: the text is auto-transcribed and may contain errors), replies you talked over are marked Interrupted, and any turn that couldn’t be saved is flagged instead of vanishing. Typing is paused during the call and resumes in the same thread when you hang up. See Voice Conversations.
Ticketing
- Configure ticketing systems from the admin — Each ticketing system now has its own configuration page showing only the settings that system needs: Zendesk asks for its domain, admin email, API token and a sync toggle; HubSpot for a private app access token and portal ID; HelpScout for its OAuth2 app credentials and mailbox ID. Open it with the wrench button next to the Active Ticketing System selector on the Ticket Forms page. Tokens are stored encrypted and shown only as a masked preview afterwards — leave the field empty to keep the current value.
Admin
- Reopen past AGO Assistant chats — The in-app Assistant now keeps a history of your conversations. Click the history icon in the panel header to see your past chats, newest first, and click any one to reopen and continue it. See Assistant.
AI Studio
- JSON Mode tool — A new tool type that has an agent return a structured JSON payload for your own backend to process, instead of a text reply. You define the fields in AI Studio → Tools and attach the tool to an agent; when the agent calls it, AGO hands the JSON to whoever is driving the conversation over the API and ends the turn. It’s tied to the agent (not declarable from the browser), so only agents you configure can produce it. See the JSON Mode Tool reference.
Ticketing
- Run an agent on new tickets — A new ticket trigger action, Invoke AGO Agent, hands a new ticket to a background agent. The ticket gets an internal note linking to the agent’s run so you can watch it work, and the agent’s answer is posted back to the ticket as a staff-only internal note. Turn on Background agent for the agent you want, then add the action to a Ticket Created trigger and pick the agent (set an optional objective with placeholders like
{{ticket.subject}}). If the agent needs approval for a sensitive step, the ticket gets a note linking straight to the approval.
Admin
- See what the Assistant is doing — The in-admin Assistant now shows each step inline as it works — “Navigating to Agents”, “Updating the page”, “Opening conversations” — in order, between the parts of its reply, so an answer reads as the sequence of what it did and what it wrote.
- Feedback CSV export now includes the conversation — The feedback export adds a Conversation column with the full transcript of each rated thread, so you can review what was said without opening each conversation. It’s filled in for negative-rated threads too, even when they have no written feedback.
API & Integrations
- Proactive mode (SDK) — An embedded agent can now detect friction in your app — inactivity on a page, hesitation between pages, rage clicks — and offer help before the user opens the chat. Developers declare triggers in the app code; clear-cut cases show a fixed message, ambiguous ones ask the agent whether a nudge is worth it and what to say. Nudges are small dismissable bubbles (never pop-ups), rate-limited per session and per day, held back for 24 hours after a dismissal, and can offer a one-click action like pre-filling a form. Off by default; enable it per workspace and tune it per agent. See Proactive Mode.
AI Studio
- Approve sensitive agent actions before they run — Tools can now be marked Require approval in background runs (tool builder → Access & Restrictions). When a background agent is about to use one — issuing a refund, say — the run pauses and an approval card appears in the conversation: staff users see the tool and the exact values it wants to send, approve or reject in one click, and get a bell notification; other viewers only see that the run is waiting. Rejecting tells the agent the action was not approved so it concludes honestly, and a pending approval expires after 72 hours. Every decision is recorded in the run’s progress log with who decided and when.
- Background runs survive interruptions — Background agents now save their progress as they work. If a run is cut off mid-task (a deployment, a crash), it no longer restarts from zero or silently disappears: a card in the conversation asks a staff member whether to resume from the last completed step or stop the run. The saved progress is encrypted, and it is deleted as soon as the run finishes.
- Background agents: clearer progress, in your language — While a background agent works through its task plan, the progress log now names each tool it uses (the tool name only — never the tool’s data), and the whole progress panel follows the conversation’s language: task names, the “Task Details” and “Progress Log” sections, the completion bar, and every log line (“Plan mis à jour : 2/5 tâches terminées” in a French conversation). When the agent finishes, the task list now closes out at 100% instead of leaving the last task hanging, answers keep their formatting (poems, lists, and paragraphs render with proper line breaks), a run that stops early says “Objective not fully completed”, and a run that hits an internal error shows as a failed message rather than a successful reply.
API & Integrations
- Pause and resume the agent on client functions — When your app registers client-side functions, you can now send messages with
client_functions_mode: "pause": instead of continuing without the function’s result, the agent stops and waits (the stream ends with aWAITING_CLIENTstatus). Run the function, submit its result, then call the newPOST /messages/{id}/continueendpoint — the agent picks the same turn back up with the real result and the current page’s functions and context. The paused state is stored server-side, so it survives a full page reload: reload the conversation, submit the pending calls, and continue. A turn that called several functions resumes once all results are in, and sending a new message abandons the paused turn. The default mode is unchanged. - Send app events to the agent (hidden messages) — The SDK Send Message endpoint accepts a new
hiddenflag for messages sent by your application code instead of the user — for example “the user completed the payment”. The agent reads the event and replies right away, but the message comes back withrole: "system"so your chat interface can skip the user bubble. In the AGO conversation history, these events appear as a small centered chip instead of a user message. A hidden message requires an existingconversation_id; it cannot start a conversation.
Admin
- The Assistant can create and fill in builder forms — On the agent, tool, and knowledge source builder pages, the in-admin Assistant can now update the form for you. Ask it to “set the temperature to 0.2 and switch the model to GPT-5” on the agent builder, “make it a background agent with the Order Lookup tool”, “let it search all the SharePoint sources”, “create an HTTP request tool with this input schema”, “mark this tool as requiring approval in background runs”, or “enable auto-sync” on a knowledge source. It can also start from scratch and navigate for you — “create an agent that searches all our SharePoint sources” opens a blank agent builder and pre-fills it in one step. It only touches the fields you mention, and nothing is saved until you click Save.
- More builder pages the Assistant can fill in — Form-filling now also covers the conversation starter, incident banner, prompt template, business hours, and permission builders. Try “create a starter titled Onboarding feedback and show it on the home screen”, “draft a maintenance banner in red and activate it”, “create a template named Support that tells the agent to keep answers short”, “name this schedule Support hours and set the timezone to Europe/Paris”, or “create a permission named VIP, make it public and set priority 10”. As before, start from scratch too — “create a conversation starter …” opens a blank builder and pre-fills it, and nothing is saved until you click Save.
- The Assistant can drive the dashboard and list pages — Beyond forms, the Assistant can now change what you’re looking at. On the dashboard, “open the tickets tab” or “show the last 30 days” switches the active tab and time range. On list pages it applies filters for you: “search for john” or “show only staff users” on User Management, “show me the failed syncs” on the knowledge sync history, and “open the JWT-based permissions tab” on Agent Permissions.
API & Integrations
- Review knowledge gaps over MCP — The MCP server now exposes knowledge update requests (detected knowledge-base gaps). Connected MCP clients can list and read gaps, set their review status, mark them resolved, and trigger recommended knowledge-base actions, without opening the web app.
Admin
- Create users before they sign in — A new Create User button on Settings → User Management → Users lets you create a user ahead of time and assign their organization, permissions, metadata, and statuses. When the person logs in for the first time, they’re matched by email and reused (no duplicate), keeping the details you set. Re-using an existing email updates that user instead. The same capability is available through the Public API (
POST /api/v1/users) and theupsert_userMCP tool (accounts:writescope); the API can never grant Admin status. - Grant and revoke a user’s permissions via the API — Two new Public API endpoints add or remove permissions one at a time without touching the rest.
POST /api/v1/users/{user_id}/permissionsadds permissions on top of what the user already has, andDELETE /api/v1/users/{user_id}/permissions/{permission_id}removes a single one.GET /api/v1/users/{user_id}now returns the user’s current permissions too. The same actions are available as theadd_user_permissionsandremove_user_permissionMCP tools. Both write endpoints need theaccounts:writescope. - Find admin pages by name — The left admin menu now shows each item’s name next to its icon, grouped into Activity (chat history, dashboard, feedbacks, tickets) and Configuration (knowledge, data, AI Studio, settings). Pin the menu open, or unpin it to collapse to icons and free up space (for example next to a section’s own sub-menu) — using the pin button in the top-right corner, or by pressing Cmd/Ctrl + .. When collapsed, hover over the icons to bring the names back.
Knowledge
- Knowledge Coverage — A new Knowledge → Knowledge Coverage page measures how well your documents answer a set of reference business questions, grouped by domain (legal, HR, and so on). Import a question referential as JSON, run an evaluation, and see a coverage percentage per domain plus the list of questions your knowledge base can’t answer yet. Coverage, the reference questions, and the gaps are also available through the API and MCP for external agents.
- Import a local folder with the File Directory source — A new File Directory knowledge source imports every supported file in a folder and its subfolders, parsing each one by its type: Markdown and text files are used as-is, HTML is converted to Markdown, OpenAPI/Swagger specs are expanded into one document per API operation, and PDF, Office documents, and other supported files have their text extracted. Markdoc content is cleaned up too —
{% partial %}includes are inlined, role-gated{% if %}sections are resolved for a chosen audience, and images referenced in Markdown are imported and served by AGO. Include and exclude glob patterns let you choose which files to import, and an optional base URL turns each file path into an external link. - Filter gap reports by page and knowledge source — Knowledge Gap Reports has two new filters. Document pulls up every request about one knowledge base page — matching both requests linked to the page and those whose suggested edits target it — so you can handle a page’s gaps in one pass instead of one by one. Knowledge source narrows to requests for pages from a given source (for example Notion or Confluence). Both dropdowns list only entries that have at least one request, with a count. The old Source filter is now named Origin to make clear it filters by where the gap came from (user feedback, nightly review, simulation lab).
Messaging & Channels
- Connect WhatsApp without copying tokens — A new Connect WhatsApp button on Settings → Integrations → WhatsApp lets you connect a number by signing in to Facebook in a popup and picking your WhatsApp Business Account. Enter the two-step verification PIN and AGO collects the credentials, registers the number, and subscribes to message webhooks automatically. Manual token entry is still available under Advanced: manual setup.
- Reply to WhatsApp voice messages — When a customer sends a voice message on WhatsApp, AGO now transcribes the recording and the assigned agent answers it as text, using its knowledge and tools just like a typed message. The spoken language is detected automatically.
Ticketing
- Pick when a ticket trigger runs — Creating a ticket trigger now happens on its own page (under Tickets → Settings → Ticket Triggers) with a Trigger on choice: Ticket created or Ticket updated. “Updated” triggers fire when an AGO-managed ticket changes — its status changes, it’s assigned to a team member, or a staff member replies — so you can route or notify on changes, not just on new tickets. Conditions and actions (including AI category, permission, organization, and assign-to-team/user) work the same on both events.
- In-app notifications for ticket assignments and replies — A bell in the admin sidebar shows your notifications with a count of unread ones. You get one when a ticket is assigned to you (by a teammate or a routing rule) and when someone else replies on a ticket assigned to you. Click a notification to open the ticket; use Mark all read to clear the badge.
AI Studio
- See which agents use a tool — The tool editor has a new Agents tab listing every agent that has the tool attached. Click an agent to open it, so you can check what depends on a tool before changing or removing it.
Analytics
- Filter conversations by tool used — The Admin conversation list has a new Tool Used filter to show only conversations where the agent called a specific tool. Each conversation row also shows a Tools Used column listing the tools called during that conversation.
- Team Pulse counts reviews by review date — In the Team Evaluation dashboard, the Total reviews, Active reviewers and KO rate cards now count human evaluations by the date the reviewer evaluated the conversation, not by when the conversation happened. So work done this week shows up in this week’s numbers even for older conversations. The Unevaluated backlog card still counts by conversation date, and the Total reviews and Unevaluated backlog cards now show an info tooltip explaining what they measure.
Knowledge
- Per-step timing and crash location in sync history — Each finished import now shows how long it spent in each phase (Import, Cleanup, Links, Embeddings, Translation). When an import fails, the history row shows which phase it stopped on (for example “Crashed at: Embeddings”), so you can see where a run broke without digging through logs.
Ticketing
- SLA tracking — New SLA policies set first-response and resolution targets measured in business hours. Manage them under Tickets → Settings → SLA Policies, matching on the ticket’s priority, typology, and tags, or on the requester’s organization, permission, or email domain. When a ticket is created, the matching policy sets its deadlines; a badge on the tickets list and ticket detail shows the time left and turns orange as a deadline nears, red once it’s missed. The first-response deadline is met when an agent posts the first public reply, the resolution deadline when the ticket is closed.
- Route new tickets with triggers — Triggers can now match on who the requester is — their permission, organization, or which AI agents they can use — and on an AI Category assigned by an AI classifier that reads each ticket. New Assign to User and Assign to Team actions send the matching ticket to the right place as soon as it is created. Configure the classifier’s prompt and category list per ticketing system.
- Assign tickets to a team member — Each ticket now has an Assignee you can set from the ticket detail view, with an Assignee column on the tickets list so you can see who owns what. Pick any internal team member or set it back to Unassigned; every change is recorded. Tickets synced from an external system keep that system’s assignee.
- Business hours schedules — A new Settings → Business Hours page lets you define a timezone, weekly opening hours (including breaks via multiple intervals per day), and holidays. Each schedule marks which hours are open and which are closed — for a Monday–Friday 9:00–17:00 calendar, Friday evening and the weekend are closed and the next open time is Monday at 9:00.
Admin
- In-app Assistant — Chat with AGO’s own agent without leaving the admin interface. Open it from the Assistant icon in the left sidebar; it docks as a companion panel on the right so the page stays usable while you chat. Ask about your account, knowledge base, or conversations, attach a file to a question, and ask it to take you to a page (“open the agents page”, “show ticket settings”) — it navigates you there, and can open the conversations list with filters already applied (“conversations needing review handled by the Support agent”). Your conversation is kept across page refreshes, and a New conversation button starts a fresh chat.
AI Studio
- AI-generated test cases in the Agent Lab — A Generate with AI button in the dataset builder reads the agent’s knowledge base and prompt, then writes realistic test cases with expected answers (1–50 at a time). Test cases are multi-turn conversations by default: each one opens with a question and follows up the way a real user would, up to the per-conversation message limit you pick in the dialog (set it to 1 for single questions). Two modes: generate from the knowledge documents directly, or describe a user profile (type of user and how they behave) so questions are asked the way that user would. Generation runs in the background and the new test cases land in the dataset ready to run or edit.
- Knowledge gap detection from simulation runs — A Detect knowledge gaps option when starting a simulation run turns failed answer tests into Knowledge Gap Reports. Each report carries the question, what was missing, suggested knowledge base edits, and the new “Simulation lab” source so you can filter them in Knowledge → Knowledge Gap Reports.
- Keep HTTP tool API keys out of the headers config — In an HTTP Request tool, put your credential in the encrypted Secret Key field and reference it from a header with the
{{secret_key}}placeholder. The placeholder is replaced at request time, so the key never sits in the headers JSON. Works with any auth scheme, including custom token formats likeToken token="{{secret_key}}".
Knowledge
- Import duration in sync history — Each finished sync now shows a Duration column in the sync history, so you can see how long an import took from start to finish.
API & Integrations
- The JavaScript SDK is now open source —
@useago/sdkis published under the Apache 2.0 license. You can read the source, use it in commercial projects, and build on it freely. Install it withnpm install @useago/sdkand follow the framework guides for React, Vue, Angular, or plain JavaScript. - Filter MCP results by agent — The
list_conversations,search_conversations,list_feedback, andlist_ticketsMCP tools now accept anagentfilter, so an integration can pull just the conversations, feedback, or tickets handled by a specific agent. Pass an agent name or ID, or a comma-separated list to match several. Conversations and feedback match the name exactly; tickets match by substring. Uselist_agentsto find valid names. - MCP requests queue under heavy load — When too many MCP requests arrive at once, the server now holds excess requests briefly until a processing slot frees up, instead of letting the load degrade every request. If no slot frees up in time, the request gets a
429response with theconcurrency_limit_exceedederror code and aRetry-Afterheader telling your client how long to wait before retrying. See API Errors for details. - Define a conversational form in the backend — A form’s fields can now be stored in AGO and fetched by name instead of written into your page. Reference it with
loadFormCollector(client, { name }),useFormCollector({ name }), or a{ name }entry in the widget’sforms— change a field in the admin interface and every page picks it up on next load. - Submit a conversational form to a webhook URL — In the form builder, a Webhook URL field sets where a completed form is sent: AGO POSTs the values to that URL as JSON, from the server. No HTTP tool to create first — the advanced submit config (custom headers, tool destinations) stays available when you need it.
- Form submission history — Every conversational form submitted through the server is now kept in a history. Open Form Collectors → Form Submissions to see when each form was sent, by whom, and whether it completed or failed; click a row to open its detail page with the full submitted data. Filter by form, status, or date range.
- Simpler SDK API authentication — The widget/SDK identification header is now called
X-User-Anon-Id, matching what it really is: an anonymous identifier for the end user. The oldX-Widget-Idname keeps working. On the SDK API, requests that carry a JWT can skip the header entirely — the user identity comes from the token’ssubclaim. See Widget & SDK Authentication.
AI Studio
- Smart Table search returns full row content — When an agent searches a Smart Table, the full
contentof each matching row is now included in the results by default, so the agent can read the whole document. A new Exclude full row content option in the tool configuration leaves the content text out (keeping the column values and a link to view it) when rows are large. - Tunable follow-up replies — Follow-up reply suggestions are now configured per agent in the agent’s Follow-up Replies section, with an optional Instructions field to set your own rules for when to skip them. Suggestions are also skipped automatically when the agent is asking the user for information such as their name or email.
Knowledge
- Translation progress counter — When your knowledge base uses more than one language, a syncing source’s history row now shows how many documents are left to translate during the translation step (for example,
6/10 documents remaining to translate). Only documents that actually need translation are counted. - Internal documents are never cited — Documents with public display disabled can still inform an agent’s answer, but the agent no longer cites, quotes, or links them. Internal and public sources are kept in separate lists when building the agent’s context.
Analytics
- Team Pulse dashboard tab — A new Team Pulse tab on the Dashboard tracks how your team reviews conversations over the selected period, compared to the period before: total reviews, active reviewers, KO rate, and the unevaluated backlog. A per-reviewer table shows each person’s review count, OK% and KO%, and a tag table ranks the tags most often found on KO-rated conversations. Clicking a reviewer, a tag, or the backlog opens the matching conversations in Chat History.
API & Integrations
- Team Pulse over MCP — The full Team Pulse dashboard (period-over-period KPIs, the per-reviewer table, and the conversation- and admin-tag breakdowns of KO conversations) is available through a single MCP tool,
get_team_evaluation_analytics, protected by the Analytics Read (analytics:read) scope. - Conversational forms survive a reload — A form an AGO agent was filling now comes back when a visitor reloads the page and reopens the conversation. The SDK replays the values the agent already recorded, so the form’s collected values, what’s still missing, whether it’s complete, and whether it was already submitted are all restored instead of starting over.
- Conversational forms in the SDK — A new
createFormCollectorhelper (anduseFormCollectorReact hook) lets an agent fill a form through conversation: define the fields once and the SDK keeps a live store, gives the agent a function to record values, tells it what’s still missing, and submits the completed form either from the browser or via a server-configured destination. - Tool calls in the SDK conversation history — The SDK conversation endpoint now returns a
tool_call_dataarray on each message, listing the tool calls the agent made (with their status and how to display them). You can use it to replay a past conversation — including its tool calls — in a custom chat interface, matching what the built-in widget shows.
AI Studio
- Connect agents to external MCP servers — Register external Model Context Protocol servers (streamable-http transport) under AI Studio > MCP Servers with their endpoint URL and an optional auth header. Saving a server pulls its tool list and adds each one to your tool catalog. From an agent’s Capabilities tab you can then attach the whole server (the agent gets every current and future tool from it) or pick individual tools one-by-one if you only want a subset. Tools synced from an MCP server are tagged with the server name in the picker. A Forward end-user JWT option swaps the stored credential for the chat user’s bearer token at call time, for MCP servers that authenticate against your IdP.
Knowledge
- Step-by-step import progress — While a knowledge source is syncing, its history row now shows a live checklist of each stage of the import, ticking off one by one as it progresses. This now works across all connectors, not just SharePoint.
API & Integrations
- Richer markdown in the SDK chat widget — Assistant replies rendered by the SDK’s React
ChatWidgetandMessagecomponents now show GitHub-flavored markdown (tables, task lists, strikethrough), plus headings and images, on top of the existing bold, lists, code, and links. A new exportedMarkdowncomponent lets you render the same formatting in a fully custom chat UI. AshowAgentNameprop onChatWidgetandMessagehides the agent name above replies when set tofalse.
AI Studio
- Sort smart-table results from the chat agent — When configuring a custom data source search tool, pick which columns the agent may sort by. The agent can then answer “top/largest” and “smallest/lowest” questions on its own, like “give me the 5 invoices with the largest amount”. Sort is ignored during semantic search, where results are already ranked by relevance.
- Smart-table row content + viewer page — Each smart-table row now has a
contentfield that holds the full extracted markdown (auto-filled for PDF uploads and document smart sources, or set explicitly via the API). A dedicated viewer page renders the markdown at/smart-tables/<slug>/rows/<external_id>, accessible from the admin rows table. When the chat agent searches a smart table, rows with content also expose aview:URL so the agent can link to the full content in its replies.
Analytics
- Filter chat history by conversation starter — Admin Chat History has a new Conversation Starter filter so you can list every conversation triggered by a specific starter. The starter’s edit page also gets a View all in chat history link and clickable rows in its conversation list, making it easier to export or drill into the underlying conversations.
API & Integrations
- Full Access scope for API keys — When creating an API key under Settings > Integrations, you can now pick Full Access to grant access to every API v1 endpoint, present and future — handy for back-office integrations that would otherwise need every scope checked individually. The dedicated
custom_data_sources:readandcustom_data_sources:writescopes for smart tables also appear in the scope picker. - Clear a smart table — A new Clear table action in the rows view deletes every row in a smart table in one go while keeping the schema. Also exposed as
POST /api/v1/custom-data-sources/{slug}/rows/clear. The smart tables list now shows a Rows column with the current row count for each table, and the Data section’s left nav now opens directly on Smart tables.
Messaging & Channels
- Conversation starter cards on the home page — Mark a conversation starter as Show on home to display it as a clickable card on the chat home page and widget welcome screen. The card shows the starter’s description; clicking it sends the initial message and opens the conversation.
- “Widget starter” renamed to “Widget auto-starter” — The toggle that auto-sends a starter when a widget user opens with no active conversation is now labelled Widget auto-starter to make its behavior clearer.
Knowledge
- Live import progress for SharePoint — Sync history now shows live stats for in-progress SharePoint imports: documents done out of total, the file currently being extracted, how long ago the last file finished, throughput, and ETA. The page refreshes automatically while a sync is running.
- Cancel a SharePoint import — Stop a running SharePoint sync from its row in sync history. The import halts once the files currently being extracted finish; already-imported documents are kept and the row is marked Cancelled.
API & Integrations
- Connect Claude Web with OAuth — Paste your AGO MCP URL into Claude Web’s “Add custom connector” and sign in once — no API key copy-paste. AGO now supports OAuth 2.1 with PKCE for MCP clients. Existing X-API-Key integrations keep working unchanged.
Admin
- OAuth Connections page — Review and revoke active OAuth tokens issued to MCP clients (Claude, etc.) under Settings > OAuth Connections. Revoking a token forces the client to reconnect.
Knowledge
- SharePoint folder browser — When configuring a SharePoint knowledge source or smart source, click into the folder tree of the selected site and library instead of typing the path manually. Breadcrumbs let you jump back to any parent folder.
- Granted SharePoint sites list (Selected sites mode) — Add the SharePoint site URLs your admin granted to AGO under Settings > Integrations > SharePoint. The site picker is now a real dropdown in Selected sites mode instead of asking you to paste a URL each time.
- Automatic knowledge gap detection — When a user marks an answer as “information not found”, AGO now reviews the conversation in the background and files an Update Request shortly after. A nightly review at 3:00 AM also catches gaps that users did not flag. Both new and old requests appear under Knowledge → Knowledge Gap Reports.
Ticketing
- Option messages on ticket fields — Show a contextual message under a select field as soon as a specific option is picked. Pick a style — Info (blue), Warning (amber), or Danger (red) — to flag expected delays, ask for an attachment, or warn about restricted scope before the user submits.
Analytics
- Thread to Ticket Rate — The dashboard overview now shows the share of conversations converted into tickets, replacing the old “Escalation Rate” card. The new metric counts conversations linked to a ticket, giving a clearer picture of when the AI hands off work to your team.
Knowledge
- SharePoint Selected sites mode — Restrict AGO’s SharePoint access to specific sites only. Choose between “All sites” (Sites.Read.All, simple setup) and “Selected sites” (Sites.Selected, limited scope) under Settings > Integrations > SharePoint. In Selected sites mode, paste a site URL when creating a knowledge source and click “Test access”; if access is denied, AGO surfaces the Microsoft Graph curl command to send to your admin.
AI Studio
- Agent Lab results view — Run results now lead with a success-rate ring and a verdict card showing the LLM evaluation reasoning and per-criterion scores. Expected and actual answers display side-by-side with full markdown rendering (tables, code blocks, lists). Datasets and personas show as cards with relative “last run” times. Fixed: dataset test-case count was multiplied by the number of runs.
Admin
- Agent permissions diagram — A visual flow on the Agent Permissions page now shows how a user is granted a permission and how that permission unlocks an agent.
API & Integrations
- Conversation thread payload enriched —
GET /api/v1/conversations/{thread_id}now returns the full thread with all of its messages, including knowledge sources, feedback, tool calls, attachments, agent details, ticket info, and evaluation fields. Breaking: the separateGET /api/v1/conversations/{thread_id}/messagesendpoint has been removed — request the thread instead and read itsmessagesarray. - Top shared documents MCP tool — List the top N knowledge documents shared (cited) in conversations over a given period. Available as the
get_top_shared_documentsMCP tool under theanalytics:readscope, withusageandclicksranking metrics. Defaults to the last 7 days and 50 documents. - Conversations write API — Set thread evaluation, admin comment, admin tags, and admin status programmatically via Public API v1. New
conversations:writescope unlocksPOST /api/v1/conversations/{id}/evaluation,/admin-comment,/admin-tags, and/status.
Knowledge
- SharePoint connector — Import documents from SharePoint document libraries (Word, PowerPoint, Excel, PDF, OpenDocument, plain text). Supports Microsoft Entra ID app credentials for background sync and OAuth for user-based access. Configure under Settings > Integrations > SharePoint, then create a knowledge source of type SharePoint with site, library, and folder pickers.
- Smart Tables PDF upload — Add a row to a smart table by uploading a PDF. An LLM reads the document and fills in the table’s columns based on the schema and extraction prompt. Available from the rows view via “Add file”, and over the API at
POST /api/v1/custom-data-sources/{slug}/upload.
API & Integrations
- SDK page context — Attach structured context to every message so the agent knows what the user is viewing. Use
client.setContext()or the ReactuseAgoContexthook with static objects or dynamic provider functions. - Simulation API — Full programmatic access to agent quality simulations via Public API v1 and MCP. Create datasets and test cases, start simulation runs, poll for results, and run quick single-question tests. 24 MCP tools available for AI agent workflows.
- AGO CLI — Manage knowledge documents, agents, conversations, tickets, and analytics from your terminal. Install with
npm install -g @useago/cli, then run commands likeago agents listorago documents create. Every command supports--jsonfor piping intojq.
AI Studio
- Selectable by users toggle — A new switch on each agent’s General tab lets you keep an agent active for tools and routing while hiding it from the user-facing agent picker. The Agents list shows a “Selectable” column so you can see at a glance which agents end users can choose.
Messaging & Channels
- Default agent by name in widget —
defaultAgentin the widget snippet now accepts an agent name (as shown in the admin interface) in addition to a UUID, making routing config easier to maintain. If the name doesn’t match an agent the user has access to, the user’s permission default is used instead.
Admin
- Legacy API keys deprecated — Legacy API keys are now deprecated in favor of API v1 scoped keys. New key generation is disabled. Existing keys continue to work, but you should migrate to API v1 keys for scoped access and better security.
API & Integrations
- Organization and User API — Read-only access to organizations and users via Public API v1 and MCP, with a new
accounts:readscope - Conversation organization filtering — Filter conversations by organization name or ID, or exclude a specific organization
- Simplified SDK setup — Removed API key requirement and added automatic widget ID generation for easier integration
- SDK framework integrations — Added Vue.js and Angular integration guides, SSE helpers, zero-config mode, and pre-built functions
AI Studio
- Full system message in debug — View the complete system message sent to the AI in the conversation debug page
- API source data in debug — See which API data sources were queried and their responses in the conversation debug page
Ticketing
- Smarter ticketing instructions — Ticket permission instructions are now hidden when no ticketing system is active, reducing noise for non-ticketing agents
AI Studio
- Suggested actions — AI generates clickable reply options to guide conversations, with keyboard shortcuts and multi-question support
- Simulation improvements — Tool call overrides, persona-specific simulation users, and agent routing validation for more realistic testing
Analytics
- Satisfaction feedback dashboard — Filter and analyze user satisfaction ratings with new dashboard visualizations
- MCP analytics — Track MCP tool server usage with call logging and a dedicated analytics dashboard tab
Admin
- Redesigned admin portal — Separated admin interface from the customer-facing portal with a dedicated design system
AI Studio
- Multi-turn simulation tests — Create test cases with multiple conversation steps to validate back-and-forth agent workflows within a single thread
- Simulation personas — Define reusable personas with custom roles, behavior notes, and agent overrides to simulate different user profiles during testing
- Invisible router — Route conversations transparently between specialized agents without visible handoff to the user
- API data source mocking — Mock API data sources when testing agents with personas in Agent Lab
Knowledge
- XML-to-JSON knowledge sources — Import XML data as a knowledge source with configurable field exclusions
- YouTube private videos — Include private videos when importing YouTube playlists
Messaging & Channels
- Home page management — Customize the chat homepage layout with global and per-permission-group settings
- Widget selection per permission — Control which widgets are available for each permission group
Analytics
- Feedback status filters — Filter satisfaction feedback by status and admin tag
Admin
- Read-only viewer role — New viewer user type with limited read-only access to the admin interface
- Not-in-organization filter — Filter chat history and dashboard by users not linked to any organization
API & Integrations
- SDK developer tools — AgoProvider component, defineFunction helper, and testing utilities for the JavaScript SDK
- SDK navigation and logo — Navigate programmatically and display a custom logo via the JavaScript SDK
Messaging & Channels
- Conversation starters — Configure pre-defined conversation openers that users can click to start chatting instantly
Analytics
- Smiley satisfaction feedback — New 3-smiley response type for quicker user satisfaction ratings
- Message timestamps — Timestamps now visible in the admin conversation view
Knowledge
- Image auto-compression — Large images are automatically compressed before AI extraction for better processing
Knowledge
- Diataxis documentation templates — Quickly create document types aligned with the Diataxis framework (Tutorial, How-to Guide, Reference, Explanation) using pre-configured quality rules
- Auto-classify documents by doc type — Automatically classify all documents in a knowledge source into doc types using AI, with a coverage report showing distribution and gaps
- YouTube playlist connector — Import content from YouTube playlists as a knowledge source
- .docm file support — Upload and extract content from macro-enabled Word documents
- Regenerate translations — Regenerate individual document translations on demand from the translations page
Analytics
- CX score export — CX score details are now included in conversation exports
- CX score filter — Filter conversations by overall CX score in the dashboard
- Topic tree view — Topics now display in a hierarchical tree with parent-child tooltips
Admin
- Incident info banner — Display configurable alerts to all users directly in the chat interface
- Translations page redesign — Redesigned translations admin page with table layout and builder page
- Multiple JWT JWKS URLs — Configure multiple JWT JWKS endpoints in the widget SDK settings
API & Integrations
- JWT Query Parameters for API Data Sources — Map JWT claim values to URL query parameters for user-specific API calls
Analytics
- Topic Analyzer — Renamed from Thread Tagger with a redesigned settings page featuring custom instructions and configurable settings
- Topic hierarchy — Topics now support parent-child relationships for hierarchical organization
- Conversations list update — Tags are now Topics, Admin Tags are now Tags, with updated filters and table columns
API & Integrations
- File upload for knowledge sources — Upload files (PDF, Word, PowerPoint, Excel, images, and more) to knowledge sources via the REST API or MCP, with automatic extraction to markdown
Knowledge
- Back navigation on source detail — Navigate back to the sources list or quality overview from the source detail page
- Persistent quality overview filters — Filter selections on the quality overview page are now preserved across navigation
- Knowledge sidebar on document types — The knowledge sidebar is now visible on document type pages for consistent navigation
- Redesigned document type form — Tabbed layout with General, Built-in Rules, and Custom Rules sections for a cleaner editing experience
Messaging & Channels
- Welcome video modal — Configure a welcome video that auto-plays for new users on their first visit, with a rewatch link on the homepage
- Pre-chat qualification form — Configure a question with answer options in the widget to qualify users before they start chatting, each option assigning a permission that controls which agents the user can access
Ticketing
- AI pre-fill for custom fields — Enable per-field AI pre-fill on ticket forms so the AI extracts custom field values from conversations automatically
Ticketing
- Embedded external forms — Embed HubSpot, Typeform, or any web form directly in the chat instead of using the built-in ticket form
- Embed form auto-fill — AI-extracted conversation data now automatically fills fields in embedded external forms
- Embed form data capture — Submitted form data is captured and stored in tickets, including subject, body, and all field values
API & Integrations
- MCP endpoint — Added to Public API for tool server integration
- SDK API v1 — Launched for programmatic widget and messaging control
- Zendesk ticket sync — Sync tickets with periodic polling and manual trigger
AI Studio
- Ticket context injection — Agents now receive ticket context for more relevant responses
- Review flagging — Flag conversations for review based on custom instructions
- Minimum validation score thresholds — Set minimum scores for the thread evaluator
Analytics
- User profile analytics — View date-based message charts and agent distribution per user
- Tag filter — Filter tickets by tag on the admin tickets page
- Mermaid diagram rendering — Conversation exports now render Mermaid diagrams
AI Studio
- User memory — Agents remember context from previous customer interactions for personalized support
Knowledge
- HubSpot Knowledge Base connector — Import content from HubSpot Knowledge Base
- ReadMe connector — Import content from ReadMe documentation
- Source-type-specific forms — Easier knowledge source management with forms tailored to each source type
Ticketing
- HubSpot ticket integration — Sync and manage tickets with HubSpot
Ticketing
- Configurable ticket success message — Customize the confirmation shown to users after ticket submission
- Ticket field configuration — Improved field management with custom select field support
AI Studio
- Version history for prompt templates — Track and compare changes to your prompts over time
Analytics
- Satisfaction feedback — Collect user satisfaction ratings via an in-chat widget
- User list improvements — Now shows last login and account creation date
Knowledge
- LLM-powered document extraction — Improved file processing using AI for better accuracy
- Qualios connector — Import content from Qualios knowledge bases
AI Studio
- Prompt template admin interface — Manage and organize prompt templates from the admin panel
Messaging & Channels
- Facebook Messenger integration — Connect with Facebook Messenger using OAuth authentication
Ticketing
- Custom enum field filters — Filter and chart tickets by custom enum fields
