AI knowledge base

How curated knowledge facts and indexed documentation work together, Teach AI, web imports, sitemap import and refresh, knowledge sources and re-sync, per-package, per-category and per-shop scoping, and source revocation.

The knowledge base is what makes the AI assistant accurate. It has two layers:

  • Curated facts — short, verifiable statements your staff teaches the AI (Teach AI, manual entries). Actively managed in the Knowledge tab.
  • Indexed documentation — web pages you import are cleaned and indexed as verbatim sections the AI reads from directly. Managed at page granularity in the Sources tab.

When both cover the same topic, the curated facts win: staff knowledge always outranks documentation excerpts.

Facts

Each curated fact has:

  • Content: up to 2,000 characters
  • Type: feature, config, command, requirement, troubleshooting, or other
  • Scope: any number of Tebex packages, whole categories or whole shops, or nothing at all — which makes the fact global (see Scoping a fact)
  • Source: where it came from (manual entry or a ticket conversation)
  • Confidence: how certain the AI was when it extracted the fact

There is no cap on the number of facts or indexed pages, on any plan.

Permissions

PermissionAllows
View AI settings and usageBrowse facts, see which facts an AI reply used
Generate knowledge from ticket conversationsExtract facts from ticket conversations (Teach AI)
Add/delete knowledge entriesAdd, delete, import, and revoke facts

How the AI picks its context

When generating a reply, the AI retrieves the entries most relevant to the customer's question from both layers: curated facts first (the priority layer), then the most relevant documentation sections, grouped with their page title and link so the AI can cite the doc. When they conflict, the curated facts win.

Scoping applies to both layers: if the ticket is linked to one or more Tebex packages, only those packages' entries plus the global ones are considered (a ticket about several scripts sees the union of their knowledge). A fact or a documentation page about script A is never used to answer a ticket that is only about script B.

Entries linked to a category are pulled in the same way: the entry is considered when one of the ticket's packages currently belongs to that category, or to one of its subcategories. Entries linked to a whole shop follow the same rule, one level up: they are considered when one of the ticket's packages belongs to that shop. This applies to curated facts and to imported documentation pages alike.

Scope is resolved when the question is asked, never frozen at import time. Moving a package into a category, or widening a page's scope, changes what the AI sees on the very next question — no re-import, no re-indexing.

Retrieval is cross-language: if your documentation is written in one language and the customer writes in another, the question is automatically reformulated into the documentation's language before searching, so the right sections are found either way.

Every AI reply records which facts it used. Staff can open the facts used popover on any AI message to see them, along with the AI's confidence score.

Package documentation in the ticket sidebar

Scoping a fact

A fact's scope answers one question: which tickets may this fact be used for? You pick it when creating the fact, and you can change it at any time with the pencil icon on any row of the knowledge list.

You can combine, in any mix:

  • Individual packages — the fact is used for tickets linked to any of them.
  • Whole categories — the fact is used for every package currently in that category. This is resolved when the AI answers, not when you save: a package moved into the category later inherits the fact automatically, with nothing to re-import.
  • Whole shops — the fact is used for every package of that Tebex shop, resolved the same way: a package added to the shop later inherits it with nothing to re-import. Useful for anything that is true of the whole store (refund policy, licensing, support hours) without making it global to your other shops.
  • Nothing at all — the fact is global and used for every ticket.

Selecting a parent category also covers its subcategories, at any depth: a fact on Vehicles reaches a package filed under Vehicles › Cars › Sports. The reverse is not true — a fact on Cars is never used for a package sitting directly in Vehicles.

A category is selectable even when it currently holds no package, so you can prepare knowledge for a category you are about to fill.

Two notes on categories hidden from your portal:

  • They are not offered in the scope picker, so you cannot create a new link to one.
  • If a fact was already linked to a category before you hid it, that link keeps working and stays visible on the fact so you can remove it. Hiding a category changes what customers see in the portal — it deliberately does not change what the AI knows.

A shop-scoped fact is reached through the ticket's packages: the AI works out which shop the ticket belongs to from the package(s) linked to it. A ticket with no package linked therefore only sees global knowledge, exactly as it does for categories. Linking a package (or letting the AI ask the customer which one it is) is what brings the shop's knowledge in.

Deleting a package or a category on Tebex never deletes the fact: the link simply stops matching anything, and the fact's remaining scope is untouched. Disconnecting a shop behaves the same way.

The same package scoping powers a Documentation row in the ticket details sidebar. When a ticket is linked to one or more Tebex packages, the row shows how many documentation pages those packages have; opening it lists every page with its title and address, grouped by package when the ticket covers more than one.

The row appears in the staff dashboard and in the customer portal, so the customer can reach the right guide without asking. Staff can also drop a Documentation button straight into a reply from the composer's / menu: it opens the same list from inside the conversation, and is refused when the ticket has no documentation to show. It is hidden entirely when none of the ticket's packages has an imported documentation page. Pasted-text knowledge is never listed: it has no public address to link to. Revoking a page from the Sources tab also removes it from the sidebar.

Testing the knowledge base

You do not have to wait for a real customer ticket to check whether the AI answers well. The Test knowledge button, next to Add Knowledge, opens a playground where you:

  • pick a scope — packages, categories, or nothing for a global fact,
  • type a question, and
  • get the reply the AI would send.

The test uses the exact same retrieval, prompt, model, and post-processing as a real ticket auto-reply, so what you see is what a customer would get. The reply shows the facts used popover and the confidence score, just like a real message.

  • Anyone with View AI settings and usage can run a test.
  • Each test counts as one of your monthly AI responses, so Joely asks you to confirm the first test of each session. Tests stop when your monthly response quota is reached.

Teach AI

Teach AI extracts facts from a ticket conversation:

  • The conversation needs at least 2 human messages. Internal notes, AI-generated messages, and system messages do not count.
  • The last 20 human messages are analyzed.
  • The AI proposes a list of facts; nothing is saved automatically. You review, edit, or discard each fact before saving.

Facts saved from a ticket keep a reference to it. If the ticket is later deleted, the facts survive.

Adding facts manually

Staff with Add/delete knowledge entries can write facts directly. When you submit one, Joely compares it semantically against existing facts: if a near-identical fact exists (around 90% similarity), you get a warning showing the match. The warning is not blocking, you can save anyway.

Writing assistance in the text editor

When you write a knowledge entry as plain text (Add Knowledge → plain text, or editing an existing text source), two buttons sit next to the character counter:

Both require the Team plan:

  • Fix with AI — rewrites the text for grammar, spelling, tone and clarity, in its original language.
  • Translate — translates the text into any supported language.

Both act on your current selection when there is one, and on the whole entry otherwise, and both offer an Undo in the confirmation toast that restores your original text in full. Because a single request is capped at 10,000 characters, a longer entry can only be processed passage by passage: select the part you want, and the button explains this when it is unavailable. Nothing is indexed until you save.

Web import

Import any public documentation page — its content is indexed for the AI directly, with no review step:

  1. Submit a URL (one per import). Only public HTTP/HTTPS addresses are accepted; private and internal hosts are blocked.
  2. Choose the scope — any number of packages, any number of whole categories, or nothing at all for a global page. Leave Auto-detect package on (the default) and Joely works out which package the page is about from its content; turn it off to pick the scope yourself.
  3. Optionally provide CSS selectors to target specific page areas or remove noise (up to 10 selectors each).
  4. A background job fetches the page (content capped at 100,000 characters), strips navigation and boilerplate, splits the text into sections, and indexes them.
  5. The page serves AI replies immediately. The import modal shows the live progress (fetch, clean & chunk, embed, save) and ends on a summary showing the page and the scope it landed on. If that scope is wrong, change it right there — the correction applies instantly, without re-importing.

While a page imports, its row in the Sources tab shows a live state (queued, fetching, indexing). A failed import shows a retry button on the same row. A page that yields no indexable content after cleanup is flagged with a "No content" badge; any previously indexed content is kept.

Re-importing the same URL behaves as a refresh: if the page content has not changed since the last import, the job is skipped for free with a "page unchanged" message. If the page changed, its indexed sections are replaced wholesale by the new capture — unchanged sections reuse their existing index so only the changes cost anything.

Sitemap import and refresh

Available on the Team plan, sitemap import seeds the knowledge base from a whole documentation site at once instead of one URL at a time.

  1. Paste a sitemap.xml URL — or any page of the site (the site root or a deep documentation page both work). Joely discovers the sitemap via robots.txt, /sitemap.xml, and, for docs hosted under a subpath, the page's parent directories (for example /docs/sitemap.xml). Sitemap index files are followed one level deep. Only public HTTP/HTTPS addresses are accepted; private and internal hosts are blocked.
  2. Joely lists every page it finds. Filter by path prefix (for example /docs/) and select up to 100 pages per import.
  3. Pick a scope (packages, whole categories, or auto-detection per page) and optional CSS selectors once; they apply to every selected page.
  4. Each page becomes its own standard web-import job, processed one at a time. Pages are indexed directly — there is nothing to review.
  5. A progress panel then shows one square per selected page, filling in as each page finishes: indexed, unchanged, no readable content, or failed. You can close it at any time — the import keeps running, and the Sources tab shows the same per-page states.

Refresh semantics

Re-running the same sitemap is a safe, cheap refresh:

  • Unchanged pages are skipped without spending anything. Joely detects this with a quick content fingerprint before doing any heavy work.
  • Changed pages have their indexed sections replaced by the new capture.
  • New pages are imported normally.

Knowledge sources and re-sync

The Sources tab on the knowledge page lists every imported web page, grouped by website (one group per hostname). Each page row shows how many sections are indexed, its freshness, and — while an import runs — its live state (queued, fetching, indexing, or failed with a retry button). A warning badge appears on a source after 30 days without a sync. The list is available on every plan; the re-sync actions require the Team plan (same gate as sitemap import), while the automatic daily update is available from Plus (see below).

Re-sync refreshes a whole source in one click:

  1. Joely first runs a free diagnostic: it re-discovers the site's sitemap from one of the imported pages and fingerprints every known page, classifying each as unchanged, changed, new, missing, or errored.
  2. You then confirm the re-import. Only changed and selected new pages are fetched; unchanged pages cost nothing. If the diagnostic finds nothing new and nothing changed, the re-sync completes on its own — there is nothing to confirm.
  3. A changed page is simply re-indexed: its stored sections are replaced by the new capture (unchanged sections reuse their existing index).
  4. Pages missing from the sitemap are flagged as possibly removed. Their indexed content is never deleted automatically — you decide, using the per-page delete action.
  5. Pages that fail to fetch (for example a 404) are marked with an error badge. The marker is informational and clears on the next successful sync; the indexed content is kept.

When the re-sync finishes, the source shows an aggregated summary: how many pages were unchanged, updated, failed, and newly imported.

Automatic daily update

Available on the Plus plan, the Auto-update switch (Sources tab, next to Add knowledge) keeps your imported documentation fresh without any action. Anyone with Add/delete knowledge entries can turn it on or off.

  • Each website is re-checked 24 hours after its last activity: its last automatic or manual re-sync, or its last page import. Re-syncing a website yourself pushes its next automatic check back.
  • Only pages already imported are checked. Joely does not read the sitemap during an automatic update: new pages are never added, and pages removed from the site are never deleted.
  • An unchanged page costs nothing beyond its fetch. A changed page is re-indexed and keeps its package, category and shop scope.
  • Pages are fetched with the same content selectors as their last import. Pages imported before selectors were recorded use the default selectors.
  • A website with more than 300 pages is covered progressively: each update handles the 300 pages refreshed the longest ago.
  • While an update runs, the website shows Auto-updating… and you can stop it at any time.
  • You get a notification only when pages were updated or became unreachable. A page that was already failing does not notify you again every day; it keeps its error badge until it recovers or you delete it.
  • Automatic updates pause while the AI assistant is disabled or when the project's plan no longer includes the feature, and resume on their own afterwards.

Exporting the knowledge base

Available on the Plus plan, export downloads your facts as a file for backup, offline review, or reuse outside Joely.

  • Anyone with View AI settings and usage can export.
  • Choose JSON (a structured file with export metadata and every fact's full content) or CSV (one row per fact, ready for a spreadsheet).
  • The export contains the full, untruncated content of every fact, not the shortened preview shown in the list.
  • It respects the scope filter currently applied to the list: filter to a package (or to global facts) first to export only that scope, or leave it on "All entries" to export everything.

Provenance and source revocation

Because every entry tracks its source, you can clean up in bulk when a source turns out to be unreliable:

  • Revoking a ticket source deletes every fact extracted from that conversation. This is permanent.
  • Deleting a web page, a folder, or a whole website from the Sources tab removes its indexed content from the AI immediately and hides the pages from the list. Re-importing the same URL later brings the page back — and if its content has not changed, the restore is free (the stored sections are reused as-is).

Joely shows you what will be removed before you confirm.

The documentation suggestion

If staff reject 3 AI drafts in a row (see approval mode), Joely surfaces a one-time suggestion to import documentation, since repeated rejections usually mean the AI lacks knowledge rather than judgment. Approving any draft resets the counter; each staff member can dismiss the suggestion permanently.

Cookies & Privacy

We use cookies to make your experience on this website better.