Skip to main content

August 2026

New features

Two new controls on every conversation in Chat History. Take over the chat silences the AI while you hold the conversation: the visitor’s messages still land in the transcript, the visitor cannot switch back to AI, and only Release to AI hands it back. Mark as Resolved closes a conversation: the widget stops accepting new visitor messages, API sends return 409 CONVERSATION_CLOSED, and only your team can reopen it. Both rules hold across the widget, all channel integrations, and the v0 and v2 APIs.
AI agents can now create and use full SiteGPT accounts with their own verified identity. SiteGPT is an AgentID relying party: an agent with an AgentMail inbox starts at https://sitegpt.ai/auth/agentid, approves the request by signing a challenge with its registered key, and lands in the dashboard as a normal account under its verified @agentmail.to address — the same account a person would get, with the same API tokens, chatbots, and billing. The login page offers the flow, and agents discover it programmatically through the agent_auth.identity_assertion block in the OAuth discovery metadata and auth.md. See use SiteGPT with AI agents.
Marketing pages answer the emerging ?mode=agent convention: request any sitegpt.ai marketing page with ?mode=agent as the only query parameter and it redirects to the page’s markdown twin — the same machine view the .md suffix serves. Pages whose content depends on other query parameters keep serving HTML so agents never receive a default-variant markdown page labeled as something else.
The SiteGPT MCP server grew from three tools to seventeen. Alongside search, execute_read, and execute_write — which still reach the whole API — purpose-built tools now cover chatting with a chatbot, onboarding status, widget appearance (read and update), conversation inboxes and transcripts, analytics, leads, waiting escalations, and knowledge sources (list, connect, authorize, and file upload). On AI apps that support MCP Apps, these tools render as eight live views directly in the conversation — the actual chat widget, an analytics card, a leads browser, and more — and the same views ship in the OpenAI Apps format for hosts that use that dialect. Anonymous clients can complete the handshake and list every tool before authorizing; every tool call still requires the OAuth grant. See what the tools cover.
Every public sitegpt.ai page now serves a markdown twin for AI agents: append .md to the URL (https://sitegpt.ai/pricing.md; the homepage is /index.md), or request the page with Accept: text/markdown — docs pages included. llms.txt states the convention and links the machine-readable entry points, and a dedicated docs MCP server at https://sitegpt.ai/docs/mcp gives agents search over this documentation with no authentication. See machine-readable surfaces for agents.
The dashboard’s daily engagement series is now readable by your own tools: GET /api/v2/chatbots/{chatbotId}/analytics returns widget opens, messages, conversations started, unique visitors, escalations, leads, and unanswered turns per UTC day, with totals and a prior-period comparison (default: the trailing 30 days). The same surface ships everywhere at once: chatbots.analytics in the TypeScript and Python SDKs, Chatbots.Analytics in Go, sitegpt analytics in the CLI, the getChatbotAnalytics action in the Convex component, and engagement totals on the MCP analytics card. The account needs analytics enabled (the API answers 403 ANALYTICS_LOCKED otherwise), and insight-derived counters appear only when insights is on. See reading analytics through the API.
Three official clients for the API v2 shipped this month: @sitegpt/sdk on npm (typed end to end from the live OpenAPI document), sitegpt on PyPI (standard library only, Python 3.9+), and github.com/sitegpt/sitegpt-go (zero dependencies). All three share the same shape: convenience namespaces over chatbots, knowledge, conversations, leads, messages, and onboarding; structured errors carrying the API’s code, message, and hint; confirm-guarded deletes; a generic request escape hatch for every other endpoint; and the public no-token onboarding bootstrap. Releases publish from CI through npm, PyPI, and Go module trusted publishing.
SiteGPT now speaks the A2A protocol: an agent card at https://sitegpt.ai/.well-known/agent-card.json declares the SiteGPT Support Agent, and a JSON-RPC message/send endpoint at https://sitegpt.ai/a2a answers questions about SiteGPT — features, pricing, setup, APIs — from the same knowledge base as the sitegpt.ai support chatbot. No authentication required, and the reply’s contextId continues the conversation. See the A2A agent guide.
Both SiteGPT MCP servers are now in the official MCP registry: io.github.sitegpt/sitegpt (the account server at https://sitegpt.ai/mcp) and io.github.sitegpt/sitegpt-docs (the docs server at https://sitegpt.ai/docs/mcp). For clients that prefer a local stdio server, npx -y @sitegpt/mcp launches the same implementation through the CLI. See where to find the server.
Unknown API paths now answer structured JSON errors with a hint instead of an HTML page, GET /api/v2/health confirms reachability with no token, and MCP clients can complete the initialize handshake and list tools before authorizing (every tool call still requires the OAuth grant). The OpenAPI document now types every response, documents every parameter, and reports the real success statuses. See Getting started.
Each conversation starter now has an optional Show on pages field: list paths like /pricing or /docs/* (the same grammar as Excluded Pages) and the starter appears only when the visitor is on a matching page — “What’s included in the Pro plan?” on pricing, “How do I install the widget?” across the docs. Starters with the field empty keep showing everywhere, and channels without a page (Slack, WhatsApp, Messenger, Crisp) always show every starter. Also in the CLI (--page, --clear-pages) and API v2 (a paths array on each starter). See showing a starter only on certain pages.
Embedding the widget site-wide but don’t want it on checkout or pricing? A new Excluded Pages setting under Settings → General hides the floating chat button on the paths you name — /pricing for that page, /checkout/* for a whole section. It follows along in single-page apps, never loses the conversation, and leaves inline embeds and custom (hideBubble) launchers untouched. See hiding the widget on specific pages.
The relative timestamps under each widget message (“just now”, “2 minutes ago”) were the one string Language & Region could not translate — they always rendered in English. A new Timestamp language dropdown at the top of Language & Region fixes that: pick from 47 languages and the widget writes them natively, with correct plurals — Danish shows “lige nu”, Japanese shows「1 分前」. The localization settings API accepts the same setting as locale (endpoint reference). See Language & Region.
When the chatbot streams an answer longer than the chat window, the view now stays at the start of the reply — the visitor’s question holds at the top and the answer grows below it, so reading begins at the beginning instead of the end. Short answers behave exactly as before, any scroll the visitor makes takes priority, and a small arrow button appears whenever the latest messages are below the visible area. No configuration needed — this is the new default for every chatbot.
A new Allowed Domains setting under Settings → General locks your chat widget to the websites you name. Add domains as chips; each entry covers all of its subdomains, and enforcement happens in the visitor’s browser itself, so a copied embed snippet on an unauthorized site renders nothing. Your dashboard preview always keeps working, and leaving the field empty keeps today’s behavior — the widget loads anywhere. See restricting where your chatbot can be embedded.
Integrations and API access now switch on automatically with your plan: Growth and up unlocks the messaging integrations (Slack, Crisp, Messenger, Google Chat, Freshdesk, Zoho) and API keys, and the Zendesk AI Agent is included from Scale up. Downgrades revoke automatically — no support ticket in either direction.
Advanced analytics is now part of the plan tiers, and the insights experience was upgraded: unified topics, explicit analysis modes, a re-analyze action, an Analytics badge in the navigation, and the engagement funnel completing the insights view.
A new /brand page with official SiteGPT logos and the brand color, plus a right-click menu on the site logo for quick asset downloads.

Improvements

  • Clear trial terms on the pricing page: every self-serve plan now states its trial exactly — a 7-day free trial, credit card required, cancel anytime before it ends — and the yearly-billing toggle says “Save up to 40%”, matching the real per-plan discounts.
  • No cookie banner needed in the EU: visitors from the EEA and UK now get a fully storage-free analytics setup on sitegpt.ai — no analytics identifiers or tracking cookies are written to their device, so there is nothing to consent to. The chat widget you embed was already tracker-free and is unchanged.
  • Leaner AI-assistant responses: replies served to AI assistants over MCP no longer carry internal identifiers or teammate email addresses. API responses are unchanged — tools and scripts still need those fields.
  • Widget accessibility: fixes across the chat widget from a WCAG 2.1 AA audit — contrast, focus handling, and screen-reader semantics.
  • Dashboard update banner: long-open dashboard tabs offer a one-click refresh when a new version ships, instead of running stale.
  • Auto-sync jobs go live: the sync-jobs list updates in real time with accurate loading states.
  • Ingestion resilience: transient quota-check hiccups no longer fail documents during training.

Bug fixes

  • Resolved conversations leave the Attention view: marking a conversation resolved now removes it from Chat History’s Attention view whatever its flags — so triage shows exactly what still needs a human. Later in August, resolving became a hard close: see the Human take-over and closed conversations entry above. See chat history.
  • Connecting messaging integrations works again: a provisioning bug broke new Messenger, Google Chat, Zoho, and Freshdesk connections for about three weeks in July and August; connecting them works again. Existing connections were unaffected.
  • iPhone app reply delivery (update 1.0.1): replies sent from the iOS app were failing with a connection error after a backend migration. Delivery was restored server-side for the app version already on phones, and the 1.0.1 update completes the fix — it also renders lead-capture and human-handoff system messages in conversations and shows an error with retry when lists fail to load.