v1.5.0 — The chat can see the page and use your data

1.5.0New featureDenis Povarov

The AI chat stopped being a search box over your articles. It now knows what the visitor is looking at, and it can reach data that never touches Kookee.

Page awareness, with nothing to configure

The widget reads what the page already says about itself — URL, title, meta description, schema.org JSON-LD, and a cleaned excerpt of the main text — and sends it with each question.

That last part matters more than it sounds. Shopify, WooCommerce and most WordPress SEO plugins already print product data into every page for Google. The widget reads the same block, so "is this in stock?" and "what does it cost?" work the moment you upgrade — no catalog import, no configuration.

On a Shopify or WooCommerce store it goes further and searches the store's own public product API for catalog-wide questions, so prices and stock are live rather than a copy.

Page content answers the question in front of it and is not stored; only the page URL and title are kept with the conversation. Turn it off per site with data-page-context="false".

Tools: your data, your code, your browser

Developers can register functions the assistant calls in the visitor's browser, with the visitor's own session:

JavaScript
KookeeChat.init({
  apiKey: 'YOUR_API_KEY',
  tools: [{
    name: 'search_orders',
    description: "Look up the signed-in customer's orders.",
    parameters: { type: 'object', properties: { status: { type: 'string' } } },
    handler: ({ status }) =>
      fetch('/api/my/orders?status=' + status, { credentials: 'include' }).then((r) => r.json()),
  }],
});

Only the name, description and parameters reach Kookee. The handler never leaves your page, so the assistant can answer from your prices, your stock and their orders without any of it being copied into a third-party index.

Assistant instructions

A free-text field on the AI Chat page for tone, currency, shipping rules and when to hand off to a human. Applies everywhere the widget runs, takes no code, and needs no redeploy.

Conversations

The AI Chat page is now split into Overview, Conversations and Settings. Conversations is new: every chat, kept 90 days, searchable across message bodies, with a No article cited filter that shows exactly which questions your help center failed to answer. Transcripts show the page the visitor was on and which tools ran.

Fixed

  • The Couldn't Answer rate could exceed 100% — it divided unanswered turns by unique conversations, so one visitor asking several unanswered questions in a session inflated it. Both sides now count the same unit, and turns the assistant answers without searching (greetings, "what can you do?") are no longer scored as content gaps.

  • The dashboard's Live Preview returned PORTAL_NOT_ENABLED on any project without a published public portal. It now authenticates the same way a real embed does.

Upgrading

@kookee/sdk and @kookee/react are at 1.5.0. The script widget at kookee.dev/chat/latest.js updates itself.

Page context is on by default, so existing embeds start sending page data after the upgrade with no code change. If you have pages that display personal data, add data-page-context="false" there.

For TypeScript consumers, HelpChatStreamChunk gains a client_tool_call variant — an exhaustive switch over that union needs a new case.

Learn more