Changelog

Product updates, new features, and improvements.

Reliability: crawl failure alerting and error monitoring across the platform

changelog
release notes
what's new
updates
reliability
crawler
monitoring
observability
sentry
operations

Crawl failures now announce themselves

A failed crawl is the worst kind of failure: your site content quietly drifts out of date while every dashboard stays green. That class of silence is gone.

  • Every crawl failure now alerts the Savanto team in real time, with the underlying cause — not just "failed" — captured in the crawl record.
  • The crawler refuses to run stale code: a deployment guard detects when a worker is about to execute an outdated bundle and corrects it before the crawl starts.
  • Failure streaks are tracked per workspace, so a site that fails twice in a row is flagged for investigation even if each individual failure looked transient.

Error monitoring everywhere

Sentry now covers the entire platform — the marketing site, the customer dashboard, the API, and the crawl workers. Server errors, browser errors, and worker failures are captured with enough context (which tenant, which workspace, which crawl) to go from alert to diagnosis without archaeology.

For you, this mostly means problems get fixed before you've written the support email: a 5xx spike, a broken dashboard page, or a crawl-time exception now reaches us within minutes of the first occurrence.

Behind the scenes

Our internal operations console gained an attention system that watches the signals customers feel first — consecutive crawl failures, stalled onboarding, provisioning errors, and API error rates — and ranks them by urgency. It's internal tooling, but it exists for one external reason: when something breaks for you, we want to be the first to know, not the last.

Security page, truer dashboard metrics, and a WordPress listing refresh

changelog
release notes
what's new
updates
security
dashboard
analytics
usage
wordpress
sign in

Public security page

There's a new Security & data protection page covering how Savanto handles your content and your visitors' conversations: encryption in transit and at rest, tenant isolation, data retention, and how to reach us about security issues. If your procurement process asks "do they have a security page?", the answer is now a link.

Dashboard metrics that mean what they say

A truth-in-labeling pass on the dashboard:

  • The Overview trend now tracks user-facing search activity — actual visitor searches — rather than the internal billing meter, which also counted background retrievals and made quiet weeks look busy.
  • The usage page labels metered usage explicitly, so the number you're billed on and the number that describes visitor behavior are no longer conflated.
  • The Feature Availability card is gone — it implied per-feature toggles that didn't reflect how tiers actually work.
  • Search Analytics empty states are visually consistent across cards.

Sign-in and workspace management

  • Google sign-in always shows the account chooser, so users with multiple Google accounts can't silently land in the wrong one.
  • Workspace deletion reports success accurately (a response-mapping bug could show an error toast for a deletion that succeeded).

WordPress.org listing refresh

The plugin's WordPress.org listing got a full refresh across four releases: current screenshots of the chat and search widgets and the WP admin, stale videos removed, and links to the WordPress-specific documentation. Nothing changes in the plugin's behavior — but if you evaluated the listing months ago, it now shows the product as it actually looks.

Search widget: Ask Assistant handoff and full keyboard accessibility

changelog
release notes
what's new
updates
search widget
chat widget
accessibility
aria
keyboard navigation

Ask Assistant: search hands off to chat

Sometimes a search box is the wrong tool — the visitor types "which of these works with a 2019 model?" and no result list can answer that. The search widget now shows an Ask Assistant button that hands the query to the chat widget, which answers conversationally with the site's full context.

It's on by default for workspaces running both widgets, configurable under Workspace → Search Widget, and the button label is yours to change ("Ask us", "Get help choosing", whatever fits your voice). The handoff carries the visitor's query along, so they never retype.

Keyboard and screen-reader accessibility

The search overlay now implements the full ARIA combobox pattern: results are announced as options, the active result is exposed to assistive tech, and state changes (loading, result counts) are read out. Alongside that, a batch of keyboard-behavior fixes:

  • Enter opens the highlighted result instead of re-running the search.
  • Arrow-key navigation scrolls the active result into view in long lists.
  • The input is focused on every open, including the first open after a page navigation, and focus returns to the trigger when the overlay closes.

If your site has accessibility requirements, the search widget should now pass keyboard-only and screen-reader audits out of the box.

Chat widget fixes

  • Empty assistant message bubbles (from responses that produced only cards) are no longer rendered.
  • After Leave a Message, the contact form stays visible instead of collapsing.
  • The PoweredBy footer uses the current Savanto mark.

Connect your site to AI: remote MCP server with one-click OAuth

changelog
release notes
what's new
updates
mcp
model context protocol
oauth
claude
cursor
ai agents
connected apps
api keys

Savanto is now a remote MCP server

Your Savanto workspace can now talk to AI assistants directly. The MCP (Model Context Protocol) server that previously required a local install and a pasted API key is now a hosted remote service at mcp.savanto.ai — and connecting takes one click.

From Claude (or any MCP client that supports remote servers), add https://mcp.savanto.ai and you'll get Savanto's OAuth consent screen: sign in, see exactly which workspace and permissions are being granted, and approve. No API keys to generate, copy, or accidentally commit. Tokens are short-lived, scoped to a single workspace, and self-healing — the client refreshes them automatically.

What AI assistants can do once connected

The tool surface is tiered, so an agent can do real work end to end:

  • Search & chat — run product and post searches, ask the assistant questions, QA your own relevance ("search my store the way a customer would and tell me what's weak").
  • Content lifecycle — manage products, posts, taxonomies, prompts, and webhooks from a conversation.
  • Workspace configuration — agents holding a config-admin key can update workspace settings: widget behavior, domains, tool surfaces.
  • Observability — pull search analytics, review conversation threads, and read feedback, then act on what they find in the same chat.

A typical session: "Look at last week's zero-result searches, figure out which products should have matched, and fix their descriptions." One connected assistant, no tab-switching.

Connected Apps

The dashboard has a new Connected Apps page listing every AI client you've authorized — what it can access and when it was last used — with one-click revocation. Under the hood the OAuth implementation is built to current best practice: PKCE required, dynamic client registration, refresh-token reuse detection (a replayed token revokes the whole family), rate-limited token endpoints, and RFC 9207 issuer identification. Authorization tokens never pass through your browser session.

In the MCP registry

Savanto is listed in the official MCP registry (io.github.SavantoAI), so clients that browse the registry can discover and connect to your store without manual URLs.

Finding it

  • New Connect to AI card on the dashboard overview walks you through connecting your first client.
  • New landing page at /mcp covers supported clients and the full tool list.
  • Docs include guided setup for Claude, Cursor, and other MCP clients.

Also in this release

API key revocation is now immediate. Revoking a key previously honored a short cache window; the cache is now invalidated on revoke, so a revoked key stops working the moment you click.

Multi-concern questions, sharper retrieval for technical terms, and SavantoChatbot.ask()

changelog
release notes
what's new
updates
chat
search
retrieval
relevance
widget
javascript api

Ask for two things, get both

Visitors don't always ask one question at a time: "trail running shoes and a lightweight rain jacket", "your return policy and whether the X200 ships to Canada". Previously the curator picked the dominant concern and often dropped the rest.

The Product and Post curators now detect multi-concern questions, run a separate retrieval for each concern, and merge the results — and the curator is instructed to cover every concern in its answer, not just the strongest match. Single-concern questions behave exactly as before; there's no configuration to change.

Retrieval upgrades for technical vocabulary

Three relevance improvements landed together, aimed at sites with technical content — documentation, spec sheets, part catalogs:

  • Exact-match subfield: hybrid search now indexes a non-stemmed copy of your content, so exact tokens like RTX 4090, ISO-8601, or a SKU match precisely instead of being blurred by stemming.
  • Term-bearing passages: post retrieval prefers chunks that literally contain the query's key terms, so the curator quotes the paragraph that answers the question rather than a nearby one.
  • Matched chunks in digests: the passages that drove a result are surfaced in the curator's working digest, improving both answer accuracy and citation quality.

SavantoChatbot.ask()

The chat widget's JavaScript API gains an ask() method:

SavantoChatbot.ask('Do you price match?');

It opens the widget and submits the question in one call — wire it to your own buttons, FAQ links, or empty-state CTAs. Anywhere your site says "questions? ask us," you can now drop the visitor straight into a conversation with context.

Orchestration fixes

Four correctness fixes in chat orchestration, covering handoff edge cases and duplicate tool invocations under concurrent streams.

Live-updating answer cards, more trial headroom, and a security hardening pass

changelog
release notes
what's new
updates
chat
widget
custom domains
trials
rate limits
security

Answer cards now stream in

Custom-domain answer cards used to appear only when fully assembled. They now stream field by field while the curator works — the card skeleton appears immediately and fills in as data arrives, including when a summary lands late in the response. If your domain's tools are slow (an inventory API, a booking system), visitors see progress instead of a spinner.

Two curator behaviors improved alongside this:

  • When the model can't fill an optional card field, it now omits the field instead of inventing placeholder text.
  • When descriptive aliases are missing, the curator's own digest is promoted into the card summary, so cards no longer render with an empty description.

3× rate-limit headroom for trials

Trialing workspaces now get three times the chat and search rate limits of their target tier. Trials are exactly when you're stress-testing the widget on a staging site or demoing to stakeholders — the old limits could throttle a demo mid-sentence. Per-tenant tier overrides also flow through every usage check now, so custom arrangements behave consistently across chat, search, and recommendations.

Security hardening

A platform-wide pass on everything reachable with a publishable widget key:

  • Every publishable-key endpoint now sits behind rate-limit gates.
  • Per-tenant chat limits were tightened so a leaked widget key can't drain a month's chat budget in minutes.
  • Tool-call arguments are validated more strictly before execution.
  • Visitor emails are masked in logs, and raw visitor queries are no longer logged.

None of this changes documented API behavior for well-behaved clients — it narrows what an abusive one can do.

Widget fixes

Four browser-compatibility and performance fixes in the chat and search widgets, covering older Safari versions and reduced main-thread work during streaming.

API response envelopes, platform hardening, and reliability

changelog
release notes
what's new
updates
api
rest api
sdk
breaking change
reliability
security
widget
wordpress

Breaking changes for custom API clients

If you call the Savanto REST API directly (not via @savantoai/ai-sdk), read this section. SDK users get updated types from the latest package; regenerate or upgrade when you pull new OpenAPI.

Standard response envelope

Several endpoints now return the platform envelope every resource route uses:

{
  "object": "<resource_type>",
  "requestId": "<uuid>",
  "data": { }
}

POST /recommendations — Previously returned { "data": { … } } only. The handler now wraps the same payload in the envelope above with "object": "recommendations". Your product recommendations still live under data; add support for object and requestId if you validate the full response shape.

POST /chat (non-streaming) — The server already returned this envelope; OpenAPI and the published spec now match what the handler emits (object: "event"). No wire change if you were already reading data.

POST /threads/search — The handler has long returned data.items inside a search_result envelope. OpenAPI and the SDK now document items (not results). If you built against an older spec that said results, switch to data.items.

Product stockStatus and type

Unknown stockStatus or type values from WooCommerce or legacy indexes are no longer passed through as arbitrary strings. They are omitted from API responses when they do not match the published enum. Integrations that relied on passthrough strings should treat these fields as optional and validate against the OpenAPI enum.

Tenant and workspace deletion

DELETE /tenant/{tenantId} and DELETE /tenant/workspaces/{workspaceId} may return HTTP 207 when deletion succeeds but some cleanup steps fail. Inspect data.results for per-step success. OpenAPI now documents this path; it is not new runtime behavior for most tenants.

Search query echo (additive)

POST /products/search and POST /posts/search responses include query.truncated and query.originalLength when the search text was shortened for indexing. Safe to ignore if you do not need it.


JavaScript SDK (@savantoai/ai-sdk)

Regenerated from the updated OpenAPI spec:

  • Response types for recommendations, chat, and thread search match the envelopes above.
  • Product stockStatus and type are strict enums in TypeScript.
  • Thread search list items are typed under data.items.

Upgrade to the SDK version published with this release and run your usual typecheck. See sdks/javascript/CHANGELOG.md for semver notes.


Chat and security

  • Input guardrails now run on confirmation, handoff, and custom-domain curator agents (not only the main product/post paths), with tighter persona-jailbreak detection and fewer false positives on normal shopper phrasing.
  • Service container loads chat agents lazily to avoid circular imports while keeping guardrails enabled.

Widgets

  • Chat loader: manual SavantoChatbot.init() can retry after a failed bootstrap; analytics consent grant/revoke is symmetric; data-manual is only read from Savanto script tags.
  • Search widget: keyboard shortcut handling is covered by unit tests.

Crawl and indexing

  • Crawl progress counters dedupe pagesFound per URL (including redirects) so failed navigations are not double-counted.
  • Tenant purge reports partial DynamoDB delete failures instead of silently under-counting removed records.

Dashboard and WordPress

  • Admin: tenant list search and filters work server-side; pagination and status summary chips reflect the full filtered set, not just the current page.
  • Website: JWT sessions invalidate on password change; auth callbacks load only passwordVersion from the database on each request.
  • WordPress plugin: taxonomy sync cron is wired; deactivation cleanup is tighter; taxonomy orphan cleanup is skipped when a sync hits its limit; sync interval values are sanitized consistently.

API schema hygiene

  • Webhook and feedback DTOs are aligned with route Zod schemas (apiKey vs api_key drift fixed).
  • Shared standardErrors on more routes for consistent error shapes in OpenAPI.

Built-in tools for the Product and Post curators

changelog
release notes
what's new
updates
tools
rest api
domains
product
post
curator

Built-in tools for Product and Post

The built-in Product and Post curators can now call REST tools directly. Previously, attaching live-data lookups to the chat assistant required spinning up a full custom domain — even for simple "is this in stock?" or "what's my membership tier's price?" follow-ups. As of this release, you can attach a small REST tool surface (max 2 endpoint groups per domain) to either built-in curator and the right tool will fire only when the indexed corpus can't answer the question on its own.

Configure it under Workspace → Chat → Domains, where a new Built-in Domains section sits above your custom domains. Click Configure on the Product or Post card to open the editor. The four knobs are:

  • REST tool endpoints — same editor as the custom-domain modal, capped tighter (max 2 groups, mirroring custom-domain limits).
  • Tool usage hints — free-form workspace-authored guidance the curator sees alongside the tool list. Use it to tell the curator when to call your tools.
  • Max tool turns — how many tool-call turns the curator may take per user message. Default 2, range 15.
  • Per-tool progress messages — replace the auto-derived "Calling <tool>..." chip with workspace copy.

When tools are attached, the curator's prompt picks up an explicit policy: trust the indexed corpus first, only reach for tools when the question requires live state, and never fabricate values when a tool call comes back empty. You can layer your own tool-routing logic on top via Tool usage hints.

Why this exists

A few customers were running into a footgun where the live data they needed was a side fetch, not a whole new agent. They'd configure a custom Inventory domain just to add an inventory check to product answers — and end up with two competing curators arguing over who owns the response. Built-in tools collapse that to one agent: the Product curator already understands your catalog, has the right voice, and can now fetch inventory inline.

If you're migrating: pre-1.x workspaces that wired inventory or pricing lookups via custom domains can usually consolidate them onto the Product domain now. The configuration is simpler and the curator has more context.

Programmatic configuration

For staged rollouts and channel-partner deployments, a new scripts/configure-builtin-tools.mjs script reads a JSON config, merges it into a workspace's settings, and busts the workspace-settings cache so the next chat request picks up the new tool surface — no cloud restart required. Same dual-target pattern as the existing configure-globus-* scripts: defaults to local dev, switches to production with TARGET=prod TENANT_ID=... WORKSPACE_ID=....

Per-domain caps

Built-in tools share the same per-domain caps as custom-domain tools: a maximum of 2 endpoint groups per domain, a tool-turn budget capped at 5 (default 2), and the same per-tenant chat rate limits that already govern tool calls today. Higher-volume deployments can request a per-tenant override — same tier-overrides flow as the rest of the platform.

Docs

A new Domains & Tools page under Dashboard in the docs walks through both built-in and custom domains, when to pick which, and how the curator decides whether to call a tool. See /docs/dashboard/domains.

Mobile performance, content parity, and reliability tune-ups

changelog
release notes
what's new
updates
performance
mobile
reliability
content

A mobile-first performance pass

The marketing site got a thorough mobile performance pass. The home page in particular feels noticeably snappier on phones now, especially over slow networks. A few of the improvements that compounded:

  • The off-screen platform marquee and the lower sections of the home page pause and stop painting when scrolled out of view.
  • Heavy third-party scripts (chat widget, analytics, marketing pixels) now load only after first interaction or once the page is idle, never blocking initial render.
  • Hero and feature images request the right resolution for the device they're on rather than defaulting to the largest available, trimming unnecessary bytes on phones.

Pricing and docs in lockstep

The chatbot's knowledge base is now refreshed against the same source of truth as /pricing, so visitor questions about tiers, limits, and per-API rate limits get answers that match the website itself. If your visitors ask "what is Enterprise pricing?" or "how many products can I index on Starter?", the chatbot now answers from the same numbers you see on the public pricing page.

Smoother onboarding finish

When you choose "email me when the crawl finishes" during onboarding, the flow now auto-advances to the next step instead of leaving you waiting on the crawl screen. A small thing — but it saves a click and removes a moment of "did anything happen?" from the experience.

More reliable Slack live-agent invites

The Slack invite modal in the dashboard now opens only after the Savanto bot is a member of the destination channel, eliminating an edge case where the invite could be created against an unjoined channel. We also tidied up the @-mention handle in the invite copy to @Savanto.

Steadier crawl jobs

A handful of crawl-reliability tune-ups landed. Stuck or slow workers are detected and retried more quickly, and any errors that reach the dashboard are presented as clear, customer-friendly messages.

Other small things

  • Steadier robots.txt delivery for consistent SEO scoring.
  • The bento feature modals on / now anchor reliably to the viewport across all screen sizes.
  • Branded email and SEO wordmarks regenerated in the new icon-purple palette (#6d28d9) for tighter visual consistency across emails and link previews.

Welcome to Savanto

changelog
release notes
what's new
updates
brand
rebrand
agents
memory
widget
sdk

A new name: welcome to Savanto

We've rebranded from Intufind to Savanto. The product is the same — a team of AI specialists for your website, with the same multi-agent triage, the same widgets, the same dashboard — but the new name better reflects what we're building: a savant that's been read into your business and quietly works alongside you. The cutover landed on April 29, 2026.

A few practical notes:

  • The marketing site, dashboard, and docs all live at savanto.ai now. Old intufind.com links automatically redirect.
  • The Shopify merchant dashboard moved to merchant.savanto.ai.
  • Email from us comes from @savanto.ai going forward — older addresses still forward, but please update any allow-lists.
  • Existing API keys, license keys, and plugin installs continue to work unchanged. No migration is required.

Custom Experts that understand variables and dates

Custom Experts — the per-workspace agents you can wire to your own tools and APIs — gained two important capabilities. Prompt variable interpolation lets you reference workspace-level variables (your support email, your hours of operation, your current promo code) directly in agent prompts, so you can update them in one place instead of editing prompts. Date handling means agents can now reason about today, tomorrow, and "next Tuesday" without you having to inject the date manually — useful for booking, scheduling, and time-sensitive answers.

You can also set a tool strategy and a max-tool-turns ceiling per Custom Expert, giving you finer-grained control over how aggressively an agent uses external tools before falling back to a direct answer.

A memory that learns and forgets gracefully

The Memory Collection Agent — the background agent that quietly persists durable visitor preferences across sessions — got smarter. Memories are now updated in place when a visitor's preferences change rather than piling up as duplicates, and stale memories decay over time so the agent does not act on a year-old preference as if it still applied. The result is more natural multi-session conversations without surprise long-term recall.

Embed Savanto inside any layout

Both the chat and search widgets now support an embed mode. In embed mode, the close button is hidden and the widget renders inline rather than as a floating overlay, so you can drop it into a sidebar, an iframe, a help-center column, or any custom layout that needs the widget to behave as a regular page element. Search results gained a configurable link target at the same time, so you can choose whether clicks open in a new tab, the same tab, or a parent frame.

Smoother, more responsive demo experience

The on-site demo got a small but meaningful polish pass. Mobile got a proper hamburger menu, the widget now sizes correctly on small screens, and the footer no longer overlaps the chat trigger. A nicer-looking demo means easier internal sharing.

A new home for the JavaScript SDK and a brand-new PHP SDK

The JavaScript SDK (@savantoai/ai-sdk) is now published from its own public repository, which makes it easier to track issues, contribute typings, and open PRs against the SDK without going through the broader codebase.

A PHP SDK is now in beta — generated from the same OpenAPI spec, so anything you can do from JS you can do from PHP with the same shape of code. Useful for WordPress shops that want to call the API from server-side code rather than the browser.

A faster crawler, overage billing, and richer workspace insights

changelog
release notes
what's new
updates
crawl
billing
analytics
search
privacy

A faster, more reliable web crawler

The crawl stack got a thorough rebuild. Crawls now run on infrastructure we operate end-to-end, which means faster start times, more pages per minute, and far fewer mid-crawl stalls. You can also cancel a crawl in flight from the dashboard, and smart strategy is now the default — pages that have not changed since the last visit are skipped automatically so your monthly budget goes further.

Pinpoint exactly what gets crawled

Two new crawl options give you precise control over what lands in the knowledge base.

  • Include patterns let you point the crawler at a specific section of your site (e.g. /blog/*, /help/*) without scanning the rest.
  • Exclude selectors let you strip noisy elements from a page before it is indexed — comment threads, related-post rails, breadcrumb chrome — so the AI sees only the substantive content.

You can configure both per crawl, and they apply to scheduled re-crawls too.

Pay-as-you-go for crawl overages

When your monthly crawl-page budget runs out, your knowledge base used to stop expanding until the next billing cycle. Workspaces can now opt in to overage billing at $0.004 per additional crawled page, billed at the end of the month. Toggle it on (or off) any time from Workspace Settings. There is no surprise charge — the option is opt-in and you see live usage in the dashboard.

Workspace insights right on the overview tab

The workspace overview is no longer just a status panel. It now surfaces recent conversations, content signals, and content gaps alongside your usage trend chart, so you can see at a glance what your visitors are asking, which content is doing the heaviest lifting, and where the chatbot is hitting walls. No clicking through three pages to find it.

Lower-latency embeddings

The text embeddings that power search and chat are now generated closer to where your data already lives, which translates to lower query latency for visitors and a clearer story for customers with regional data-residency requirements. There is nothing for you to configure; the change is transparent.

Onboarding tailored to your platform

The post-onboarding flow now adapts to how you connected — WordPress installs see WordPress-specific guidance, Shopify installs see Shopify guidance, and direct API customers get a developer-flavored path. The welcome emails follow the same pattern, with styled tips and a per-platform checklist.

Cookie consent and privacy controls

Visitors now see a cookie consent banner before any analytics or marketing pixels load, with a clear accept / decline choice and a granular preferences view. We also tightened up the privacy policy to reflect the new consent model. If you embed the Savanto widget on a site that has its own consent platform, the widget respects that signal too.

Team management, theme modes, and smarter chat routing

changelog
release notes
what's new
updates
teams
widget
chat
agents
quality

Invite your team

You can now invite team members to your organization by email. Invitees receive a branded email with a one-click link to join. If they don't have an account yet, the sign-up flow is streamlined — their email is pre-filled and onboarding is skipped entirely.

Roles and permissions

Every organization member has a role: Owner, Admin, or Member. Owners and admins can invite and remove members, manage workspaces, and configure settings. Members have view-only access to workspaces and conversations. You can change roles at any time from the Settings page.

Organization settings in the sidebar

The new Settings page in the sidebar gives you quick access to team management, organization renaming, and member administration — all in one place.

Light, dark, and auto color schemes

The chat widget now supports three color scheme modes: Light, Dark, and Auto. Light and Dark lock the widget to that theme. Auto follows your visitor's system preference, so the widget feels native on any device. You can set the mode in Appearance > Color Scheme in the dashboard.

Edit light and dark palettes separately

The theme editor now lets you switch between editing the light and dark palettes independently. Both are saved, and the color scheme setting above controls which one your visitors see.

Smarter question routing

Your visitors' questions now get answered directly more often. Previously, some factual questions would skip the content pipeline and jump straight to a live agent offer. Now the assistant tries to answer first, and only suggests a live agent when someone actually asks for one.

More honest answers after declining a live agent

When a visitor is offered a live agent and chooses to continue with AI instead, the assistant now smoothly hands back control without trying to answer the original question on the spot. This prevents situations where the assistant would guess at an answer it didn't have the information for.

A more personal, conversational tone

The assistant now speaks in first person — "I can help you find..." instead of "We offer..." — making conversations feel more like chatting with a helpful person than a company FAQ.

Better greeting responses

When visitors ask what the assistant can help with, it now describes your actual site content instead of listing generic capabilities. The response stays grounded in what your site covers, so visitors get useful guidance from the start.

Faster answers, clearer responses, and a new welcome popover

changelog
release notes
what's new
updates
chat
widget
performance

Faster answers in chat

Chat responses now feel quicker and more natural, especially when a question includes multiple parts.

Clearer, more focused responses

We improved how responses stay focused on what the user asked, reducing off-topic replies and making multi-part conversations easier to follow.

New welcome popover for the floating widget

The chat widget now supports a configurable welcome popover near the trigger button. You can choose whether it is enabled, set the message, control the display delay, and decide whether it appears once per session.

Smoother chat experience

We also polished typing and scrolling behavior in the widget to make conversations feel smoother overall.

Horizontal product cards, separate card settings, and content gap analytics

changelog
release notes
what's new
updates
widget
dashboard
analytics

Horizontal product card layout

Product cards now support a horizontal (compact row) layout in addition to the existing vertical style. The horizontal layout shows the image, title, price, and category side-by-side, making better use of space in the chat widget. You can switch between layouts in the admin under Content Cards > Product Cards > Card Style.

Separate product and post card settings

Image display and aspect ratio settings are now configured independently for product cards and post cards. This gives you full control over how each card type looks without one affecting the other.

Content gap analytics

The Conversations dashboard now includes a Content Gaps section that surfaces queries where your chatbot couldn't find relevant content. Use these insights to identify content creation opportunities and improve coverage over time.

Feedback summary improvements

The Feedback Summary and Content Gaps cards now show a helpful empty state when there's no data yet, instead of being hidden entirely. This makes it easier to discover these features and understand what they track.