Skip to content

Update a KB entry

PATCH
/api/kb-entries/{entryId}

Updates the content of an existing knowledge base entry. You can modify the question, answer, and/or topics. Only the fields you include in the request body are updated — omitted fields are left unchanged.

entryId
required
string format: uuid

The unique identifier of the KB entry to update.

object
question

Updated question text.

string
>= 1 characters
Example
What are your delivery times within Europe?
answer

Updated answer text.

string
>= 1 characters
Example
Delivery within the EU takes 3-7 business days depending on the destination country.
topics

Updated topic tags. Replaces the existing tags entirely.

Array<string>
Example
[
"shipping",
"delivery",
"europe"
]

The KB entry was updated and the changes are effective immediately.

A knowledge base (KB) entry is a question-answer pair that the AI uses to respond to customer inquiries. Entries can be created manually, imported via the API, or proposed automatically by the learning loop after resolved conversations. Proposed entries require human approval before the AI can use them.

object
id
required

Unique identifier for the KB entry.

string format: uuid
Example
kb1a2b3c-5678-9abc-def0-1234567890ab
tenantId
required

The tenant this entry belongs to.

string format: uuid
Example
a0b1c2d3-4567-89ab-cdef-0123456789ab
workspaceId
required

The workspace this entry is scoped to. The AI only uses entries from the workspace that matches the conversation.

string format: uuid
Example
w1a2b3c4-5678-9abc-def0-1234567890ab
question
required

The question or topic this entry addresses. This is what the AI matches against when a customer asks something.

string
Example
What are your delivery times to Germany?
answer
required

The answer the AI should use when this entry is matched. Can include specific details, links, and instructions.

string
Example
Standard delivery to Germany takes 3-5 business days. Express delivery (next business day) is available for an additional fee of EUR 12.50.
topics
required

Tags that categorize this entry. Used for filtering and to help the AI determine relevance.

Array<string>
Example
[
"shipping",
"delivery",
"germany"
]
sourceType
required

How this entry was created. ‘manual’ means created by a human, ‘learning_loop’ means proposed by the AI after analyzing resolved conversations, ‘import’ means imported via the API.

string
Example
manual
confidence

Confidence score between 0 and 1, set by the learning loop when proposing entries. Higher values indicate the AI is more confident the entry is accurate. Null for manually created entries.

number | null
Example
0.92
status
required

Lifecycle status of the entry. ‘pending_review’ entries are proposed but not yet approved — the AI will not use them. ‘approved’ entries are active and used by the AI. ‘rejected’ entries were reviewed and declined. ‘archived’ entries are no longer active but kept for audit.

string
Allowed values: pending_review approved rejected archived
Example
approved
usageCount
required

Number of times this entry has been referenced by the AI when responding to conversations.

integer
Example
47
lastUsedAt

Timestamp of the last time the AI referenced this entry. Null if never used.

string | null format: date-time
Example
2026-03-25T14:20:00.000Z
createdAt
required

Timestamp when the entry was created.

string format: date-time
Example
2026-02-01T12:00:00.000Z
updatedAt
required

Timestamp when the entry was last updated.

string format: date-time
Example
2026-03-15T10:30:00.000Z

No KB entry exists with the given ID in the authenticated tenant.

Standard error response returned by all endpoints on failure.

object
error
required

A human-readable error message describing what went wrong.

string
Example
Conversation not found