> ## Documentation Index
> Fetch the complete documentation index at: https://cntillion.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Training and publishing

> How edits become live answers, and what to check before they do

Adding, editing, removing, or restoring a source automatically updates your
agent's draft. Imports and training run in the background, so you can close the
page.
The dashboard and Developer API share the same durable training queue.

These updates change the selected branch's draft configuration. Wait for sources
to show **Synced**, then [publish the branch](https://cntillion.com/docs/agents/releases-and-workflows.md)
to use that knowledge in new customer conversations. Existing conversations
keep the knowledge saved in their assigned version.

Owners and Members can manage knowledge and settings. Viewers can inspect the
current knowledge and test it in Playground. See [workspace roles](https://cntillion.com/docs/workspaces/members.md).

## Retraining

There is no routine retrain step in the dashboard. Each row shows **Syncing**
while importing or applying its content and **Synced** when the draft can use it.
The header shows **Last synced**. Import failures show **Failed** or **Partly
imported**, with the reason and an option to retry remote sources.

Source changes enqueue training immediately. A background job checks the queue
every minute as a recovery path and waits for imports to finish. Training is
attempted up to three times. If it still fails, **Sync failed** shows a **Retry
sync** button. The Developer API also accepts `POST /agents/{agentId}/train`.

Use **Resync now** to re-read a website or Notion source after changes outside
the app. Standard and Pro plans can enable weekly **Auto-resync** for websites,
Notion, and tickets. See [Adding knowledge](https://cntillion.com/docs/agents/knowledge.md).

Training reuses embeddings for unchanged passages. A new index replaces the
previous one atomically, after checking that sources have not changed during
the build. A failed build keeps the previous index available. Source membership
and page changes affect the draft; published versions keep their saved knowledge.
Removing a source from the workspace stops retrieval in every version.

Automatic starter questions can refresh when training completes. Editing or
clearing those questions in Display settings keeps your custom questions.
Website imports can enrich untouched role-template instructions; imported
reference material stays in data sources. Connected Notion imports do not
change instructions.

Playground and Compare consume message credits. Automated tests have a separate
test allowance. Check [Plans](https://cntillion.com/docs/workspaces/billing.md) before a large test run.

## What "published" means

Every agent starts with a **Main** branch, its first saved version and 100% of
new conversation traffic. Saving edits updates your draft. **Publish** saves
the branch's next version for new conversations; existing conversations keep
their assigned version. Channel controls still decide whether customers can
reach it: website chat is on for new agents, and messaging channels start paused
until you turn each one on.

Training is not a gate. An agent that has never been trained still answers, using
its instructions alone, and it has no knowledge to draw on while it does. That is
usually worse than silence, because it sounds confident and knows nothing
specific. Wait for sources to show Synced, publish the branch, then turn a
surface on.

## Testing before you turn it on

The **Playground** uses the selected branch's draft. Customers assigned to a
published release use that release's saved knowledge. Playground also differs
in these ways:

* **It uses whatever is on screen.** Instructions, guardrails and temperature are
  sent as you have them in the editor, saved or not. Handy while you are drafting,
  and a trap when you forget to save and then wonder why the live agent behaves
  differently.
* **Most actions do not run.** Test lead collection, ticket creation, live chat,
  and custom API actions on a real surface. Owners and Members can run Stripe
  actions through **Chat as user** with a linked customer, as described below.
* **Human-first intake is bypassed.** Test that setting on a new website or
  mobile SDK conversation. Its first message should open a ticket before AI
  answers. The Playground continues to test AI responses.
* **Messages use credits.** Playground and Compare use message credits at the
  selected model's rate, including additional model requests during tool steps.
* **Test users are made up.** By default you chat anonymously. On a website
  channel, **Chat as user** lets you enter a user ID and JSON metadata, such as
  a name and email, that the agent can read for that conversation. Changing the
  user starts a new conversation. Metadata contains only what you typed. For
  Stripe, the server matches the User ID entered by an Owner or Member to an
  existing Contact; metadata cannot choose a billing customer. A real
  [signed-in identity](https://cntillion.com/docs/customer-data/identity-verification.md) is still tested on
  your website.

Choose a channel from the menu at the top of the Playground to open its
settings. Email shows a static message preview for the sender, signature,
disclaimer, and footer. It has no message composer and generates no answer.
Use Chat bubble to test answers, then send an actual message through your
[email channel](https://cntillion.com/docs/channels/email.md) to check its delivery and handoff behavior.

You can send 60 test messages a minute per workspace.

Saved Playground chats appear under **Conversations**. Pausing a
chat there, or [taking it over](https://cntillion.com/docs/helpdesk.md#taking-over-a-conversation), stops its
AI replies. Resume a paused chat from its conversation menu; after takeover,
use **View ticket** and choose **Allow AI replies** in the ticket menu.

Ask it the questions your team answers most. Then ask it something it should not
know, and check it says so rather than inventing an answer.

If you enabled [Centillion live chat](https://cntillion.com/docs/helpdesk.md#centillion-live-chat), test a
request for a person on a channel selected in that action. Check that the
customer receives the waiting confirmation, the inbox shows a **Live chat**
ticket, and a teammate's reply reaches the same conversation. AI replies stay
paused during takeover. Closing the last open ticket resumes AI only when
**Resume AI when all tickets close** is enabled. With it off, choose
**Allow AI replies** in the ticket menu to explicitly hand back the conversation.

Test [Shopify actions](https://cntillion.com/docs/channels/shopify.md) in the connected storefront's chat
bubble. Check the actual store cart after adding, changing, and removing an item.
Sign in to a customer account before testing profile, address, or order-tag
changes. A checkout link is an unpaid draft until the shopper completes payment.

For [Stripe actions](https://cntillion.com/docs/customer-data/stripe.md), select **Chat bubble**, open
**Chat as user**, and enter the external User ID of a contact with a linked
Stripe customer. This test uses the connected Stripe environment. Start
with synthetic test records, then verify the signed website flow too. Compare
and Action Preview do not execute billing actions. Customers confirm changes
in Stripe; generating a portal link alone makes no billing change.

### Testing procedures

The procedure editor's preview evaluates whether a sample customer message
matches the trigger. It simulates the flow without running actions, and records the AI usage for that preview.

Test an activated procedure on the customer channel too. Check that it starts
for the right request, waits when it needs customer input, and continues from
that step when the customer replies. Only one procedure can run in a customer
turn.

## How an answer is put together

Worth understanding, because it explains most surprising answers.

**Exact questions come first.** If the question matches one of the variants on a
Q\&A entry, that entry is used without any searching, and on a surface with no
actions configured it is sent exactly as you wrote it. Case and punctuation are
ignored in the match.
When AI is available and the latest message includes files, the model reads
those files and writes the reply instead of returning the saved answer alone.

**Otherwise the agent searches.** It looks for passages two ways at once, by
meaning and by keyword, merges the two lists, and keeps the best six. Those
passages, and only those, are what it writes from.

Six passages is not many, which is the argument for keeping knowledge tidy. Every
page you add is another candidate competing for those slots.

## After you publish

Once sources show **Synced**, publish the updated knowledge. Send one real
question through the surface your customers actually use, not just the
Playground. Then check the answer in the agent's Conversations, where you can
see which sources it drew on: up to three, most relevant first.

If the answer is wrong, the fix is almost always in the knowledge rather than in
the instructions. A page that contradicts another page is the most common cause,
and the second most common is a page you removed from the draft but kept in a
published version.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.