MCP tools reference

This article documents the tools exposed by the LiveAgent MCP server, including the exact parameters each tool accepts and the exact fields it returns. A personal MCP connection offers every tool the agent's role has the privileges for, while an AI agent MCP connection offers only the tools selected for that AI agent.

Every tool returns a single JSON object. A call that succeeds returns the documented response, while a tool that has nothing to return answers with {"success": true}. A call that fails or is refused returns an error object, e.g. {"success": false, "error": "Not authorized to read this ticket"} or {"code": -32602, "message": "Tool is not available on this account: reply_via_whatsapp"}. That usually happens when the tool is not enabled for the AI agent, the agent's role lacks a privilege the tool needs, the tool is not available on the account, a usage limit is reached, etc.

Read-only tools

These tools look up tickets, account data and knowledge base content without changing anything.

Search tickets (search_tickets)

Retrieves the tickets that match the given filters, most recently changed first. Each call returns up to 10 tickets by default, or up to 50 with limit — page through the rest with nextCursor.

Parameters

ParameterRequiredDescription
statusNoReturn only tickets in the selected statuses: new, open, answered, resolved, postponed, chatting or calling. Several statuses can be combined. When omitted, every ticket except deleted, closed and spam tickets is returned.
departmentIdNoReturn only tickets in the selected department, as returned by list_departments. When omitted, tickets of every department are returned.
agentIdNoReturn only tickets assigned to the selected agent, as returned by list_agents. When omitted, tickets of every agent are returned, assigned or not.
queryNoReturn only tickets whose content matches this full-text phrase. When omitted, no text matching is applied.
limitNoMaximum number of tickets to return, 10 by default, up to a maximum of 50. A higher value is quietly reduced to 50 rather than rejected.
cursorNoContinue from a previous call by passing the nextCursor it returned. When omitted, the first page is returned.

Returns

FieldDescription
tickets[].idInternal ticket ID — this is what the other ticket tools expect as ticketId.
tickets[].codeShort human-readable ticket code, e.g. ABC-DEFGH-123, commonly shown in the agent panel.
tickets[].subjectTicket subject.
tickets[].statusCurrent ticket status, one of the values the status filter accepts, or init when no status filter is given. Tickets in closed, deleted or spam status are never returned.
tickets[].departmentIdID of the department the ticket belongs to.
tickets[].assignedAgentIdID of the agent the ticket is assigned to. null when the ticket is unassigned.
totalCountTotal number of matching tickets, not just those on this page.
nextCursorCursor referring to the next page — pass it as cursor to retrieve that page. null when there are no more tickets.

Notes:

  • There is no date, tag, customer or channel filter, and the sort order cannot be changed. To narrow the results by tag, channel or date, check each ticket with get_ticket_metadata, which returns its tags, channel, createdAt and lastActivityAt.
  • The department and the assigned agent come back as IDs only — look up their names with list_departments and list_agents.

Get ticket metadata (get_ticket_metadata)

Retrieves a ticket's properties: status, channel, department, assignment, tags and timestamps.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.

Returns

FieldDescription
idInternal ticket ID.
codeShort human-readable ticket code, e.g. ABC-DEFGH-123, commonly shown in the agent panel.
subjectTicket subject.
statusCurrent ticket status: new, open, answered, resolved, postponed, chatting, calling, closed, deleted, spam or init.
channelChannel the ticket was created from: email, contact_button, contact_form, invitation, call, call_button, facebook, facebook_message, twitter, forum, suggestion, instagram, instagram_mention, viber, whatsapp or telegram. null when the channel was not recorded.
departmentIdID of the department the ticket belongs to.
departmentNameName of the department the ticket belongs to.
assignedAgentIdID of the agent the ticket is assigned to. null when the ticket is unassigned.
assignedAgentNameAssigned agent's display name. null when the ticket is unassigned.
tagsNames of the tags currently attributed to the ticket.
createdAtDatetime when the ticket was created, as an RFC 3339 timestamp, e.g. 2026-07-08T10:00:00+00:00.
lastActivityAtDatetime when the ticket last changed, as an RFC 3339 timestamp, e.g. 2026-07-08T10:00:00+00:00.

Get ticket messages (get_ticket_messages)

Retrieves the messages of a ticket, including internal notes by default. Each call returns up to 20 messages — page through the rest with nextCursor.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.
sinceNoContinue from a previous call by passing the nextCursor it returned. When omitted, the first page is returned: the newest messages, or the oldest ones when order is asc.
typesNoReturn only messages of the selected types: email, chat, whatsapp, instant_message, note or legacy_message. When omitted, messages of every type are returned, notes included.
dateFromNoReturn only messages added at or after this time, as an RFC 3339 timestamp, e.g. 2026-07-08T10:00:00Z. When omitted, there is no lower time limit.
dateToNoReturn only messages added at or before this time, as an RFC 3339 timestamp, e.g. 2026-07-08T10:00:00Z. When omitted, there is no upper time limit. A dateTo earlier than dateFrom is rejected.
orderNoSort the messages by when they were added: desc lists the newest first and asc the oldest first. desc by default. When since is used, the cursor keeps its own order, and a conflicting order is rejected.

Returns

FieldDescription
messages[].idMessage ID.
messages[].textMessage body as plain text.
messages[].authorWho added the message: agent, customer, ai_agent, rule or external_app.
messages[].authorIdID of the author.
messages[].typeMessage type: email, chat, whatsapp, instant_message, note or legacy_message.
messages[].createdAtDatetime when the message was added, as an RFC 3339 timestamp, e.g. 2026-07-08T10:00:00+00:00.
messages[].attachments[]Attachments of the message, each with id, fileName, contentType, size (bytes) and downloadUrl. The file content itself is never included in the result. downloadUrl is a single-use link that stops working after the first successful download or after 3 hours — call the tool again to get a fresh one.
messages[].recipientsEmail addressing of the message: an object with from, to, cc and replyTo, where from is a single address and the others are lists of addresses, each with name and email. null for message types other than email. A null from or an empty list means the address was not recorded on the message, not that there was none. Bcc addresses are never returned.
nextCursorCursor referring to the last returned message — pass it as since to retrieve the next page. It is set whenever the page holds any message, the last page included, so the end is reached when a call returns an empty messages list and null here.

Get ticket notes (get_ticket_notes)

Retrieves the internal notes of a ticket, newest first. Each call returns up to 20 notes — page through the rest with nextCursor.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.
sinceNoContinue from a previous call by passing the nextCursor it returned. When omitted, the first page is returned: the newest notes.

Returns

FieldDescription
notes[].noteIdNote ID.
notes[].textNote body as plain text.
notes[].author.idID of the author.
notes[].author.nameAuthor display name.
notes[].author.typeWho added the note: agent, ai_agent, rule or external_app.
notes[].createdAtDatetime when the note was added, as an RFC 3339 timestamp, e.g. 2026-07-08T10:00:00+00:00.
nextCursorCursor referring to the last returned note — pass it as since to retrieve the next page. It is set whenever the page holds any note, the last page included, so the end is reached when a call returns an empty notes list and null here.

Get ticket summary (get_ticket_summary)

Retrieves the AI-generated summary of a ticket. This tool cannot be selected for an AI agent, so it is available through personal MCP connections only.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.

Returns

FieldDescription
summarySummary as plain text. null when the ticket has no summary yet.
generatedAtDatetime when the summary was last generated, as an RFC 3339 timestamp, e.g. 2026-07-08T10:00:00+00:00. null when the ticket has no summary yet.

Get tags (get_tags)

Lists every tag in the account.

Parameters: none.

Returns

FieldDescription
tags[].idTag ID, a 4-character alphanumeric code — this is what add_tags_to_ticket and remove_tags_from_ticket expect in tags, along with tag names.
tags[].nameTag name as shown in the agent panel.
tags[].isPublicDenotes whether the tag is visible outside the agent panel: true for public tags, false for internal ones.

Get ticket field definitions (get_ticket_field_definitions)

Lists the custom ticket fields configured for the account, with the metadata needed to fill them in correctly. Archived definitions are left out.

Parameters: none.

Returns

FieldDescription
definitions[].definitionIdNumeric definition ID — this is what set_ticket_field_value expects as definitionId.
definitions[].codeStable string code of the field — this is what set_ticket_field_value expects as definitionCode, instead of the numeric ID.
definitions[].nameField label as shown in the agent panel.
definitions[].typeField type, which decides the value parameter you use when writing: BOOLEAN, STRING, POSTAL_ADDRESS, LIST_SINGLE_VALUED or LIST_MULTI_VALUED.
definitions[].descriptionHelp text configured for the field, as shown beside it in the agent panel. An empty string when none is set.
definitions[].checkboxDescriptionLabel shown next to the checkbox. Present on BOOLEAN definitions only.
definitions[].validationRule a value has to satisfy, present on STRING definitions only. Either {"kind": "PREDEFINED", "format": …} with one of ALPHANUMERIC, ALPHANUMERIC_SPACE, DATE, DATE_REVERSE, DECIMAL, EMAIL, WHOLE_NUMBER, NUMERIC_STRING, INTERNATIONAL_PHONE, US_PHONE, IP_ADDRESS, TEXT, TIME or URL; or {"kind": "CUSTOM", "regex": …} carrying a regular expression of your own.
definitions[].availableValuesOption labels a value can be chosen from. Present on LIST_SINGLE_VALUED and LIST_MULTI_VALUED definitions only.

Get ticket field values (get_ticket_field_values)

Retrieves all custom field values stored on one ticket, each returned together with its definition metadata. Values whose definition has since been archived are still returned.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.

Returns

FieldDescription
values[].fieldIdID of this stored value — this is what delete_ticket_field_value expects as fieldId.
values[].definitionIdNumeric ID of the definition this value belongs to.
values[].codeString code of the definition this value belongs to.
values[].nameField label as shown in the agent panel.
values[].typeField type, using the same values as get_ticket_field_definitions.
values[].valueThe stored value, typed after the field: boolean for BOOLEAN; string for STRING and LIST_SINGLE_VALUED; array of strings for LIST_MULTI_VALUED; object with street, district, city, state, postalCode and country for POSTAL_ADDRESS.

List agents (list_agents)

Lists the agents in the account. Use it to find the agent ID for assign_ticket, or to turn an assignedAgentId into a name and email address.

Parameters

ParameterRequiredDescription
searchNoReturn only agents whose name or email address contains this text. When omitted, all agents are returned.

Returns

FieldDescription
agents[].idAgent ID — this is what assign_ticket expects as agentId.
agents[].nameAgent display name.
agents[].emailAgent email address. null when the agent has none.

List departments (list_departments)

Lists the departments in the account. Use it to find the department ID for transfer_ticket, or to turn a departmentId into a name.

Parameters

ParameterRequiredDescription
searchNoReturn only departments whose name contains this text. When omitted, all departments are returned.

Returns

FieldDescription
departments[].idDepartment ID — this is what transfer_ticket expects as departmentId.
departments[].nameDepartment name.

List knowledge bases (list_knowledge_bases)

Lists the knowledge bases in the account. None of the knowledge base tools assume a default knowledge base, so start here and pass the knowledgeBaseId you get from it.

Parameters: none.

Returns

FieldDescription
knowledgeBases[].idKnowledge base ID — this is what the other knowledge base tools expect as knowledgeBaseId.
knowledgeBases[].nameKnowledge base name.
knowledgeBases[].isActiveDenotes whether the knowledge base is switched on: true for an active one, false for a disabled one.

List knowledge base categories (list_kb_categories)

Lists the categories of a knowledge base as a nested tree — the full subtree under a parent category, or the whole knowledge base when no parent is given.

Parameters

ParameterRequiredDescription
knowledgeBaseIdYesID of the knowledge base to read, as returned by list_knowledge_bases.
parentCategoryIdNoReturn only the subtree under this category, as returned by list_kb_categories. When omitted or 0, the whole tree is returned.

Returns

FieldDescription
categories[].idCategory ID — this is what the other knowledge base tools expect as categoryId or parentCategoryId.
categories[].nameCategory name.
categories[].parentCategoryIdID of the parent category. 0 for a root-level category.
categories[].visibilityWho can see the category: public or internal.
categories[].position0-based position among its siblings.
categories[].children[]Child categories, each with the same fields.
countTotal number of categories returned, children included.

Search knowledge base articles (search_kb_articles)

Searches a knowledge base for articles matching a keyword or phrase — to find an article that answers a customer's question, or to check whether one already exists. Each call returns up to 10 articles by default, or up to 50 with limit, with no way to page further.

Parameters

ParameterRequiredDescription
queryYesReturn only articles whose title or content matches this keyword or phrase.
knowledgeBaseIdYesID of the knowledge base to search, as returned by list_knowledge_bases.
categoryIdNoReturn only articles in this category and its sub-categories, as returned by list_kb_categories. When omitted, the whole knowledge base is searched.
limitNoMaximum number of articles to return, 10 by default, up to a maximum of 50. A higher value is quietly reduced to 50 rather than rejected.

Returns

FieldDescription
articles[].idArticle ID — this is what get_kb_article and update_kb_article expect as articleId.
articles[].titleArticle title.
articles[].urlPublic article URL.
articles[].summaryStart of the article as plain text, cut to at most 300 characters on a word boundary and ended with an ellipsis when longer.
articles[].descriptionMeta description, as shown in search engine results.
articles[].categoryIdID of the category the article sits in.
articles[].knowledgeBaseIdID of the knowledge base the article belongs to.
articles[].statusPublication state: published or draft.
articles[].visibilityWho can see the article: public or internal.

Note: the full article body is not returned — fetch it with get_kb_article.

Get knowledge base article (get_kb_article)

Retrieves an article's full content, by its ID or by the 6-digit code in its URL.

Parameters

ParameterRequiredDescription
articleIdOne of the twoID of the article to read, as returned by search_kb_articles. Supply either this or urlCode. When both are given, articleId is used.
urlCodeThe 6-digit code in the article URL, e.g. 397021 in .../397021-article-title.

Returns

FieldDescription
idArticle ID — this is what update_kb_article expects as articleId.
titleArticle title.
urlPublic article URL.
bodyFull article body as HTML.
plainTextThe same body content as plain text.
descriptionMeta description, as shown in search engine results.
keywordsMeta keywords set on the article.
categoryIdID of the category the article sits in.
knowledgeBaseIdID of the knowledge base the article belongs to.
statusPublication state: published or draft.
visibilityWho can see the article: public or internal.
position0-based position within its category.
createdAtDatetime when the article was created, as an RFC 3339 timestamp, e.g. 2026-07-08T10:00:00+00:00.
changedAtDatetime when the article was last changed, as an RFC 3339 timestamp, e.g. 2026-07-08T10:00:00+00:00.
attachments[]Attachments of the article, each with id, fileName, contentType, size (bytes), isInline and downloadUrl, where isInline is true for an image embedded in the body. The file content itself is never included in the result. downloadUrl is a single-use link that stops working after the first successful download or after 3 hours — call the tool again to get a fresh one.

Write/manage tools

These tools change tickets or the knowledge base, or send the customer a reply.

Reply via email (reply_via_email)

Sends an email reply to the customer on a ticket that is answered over email.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d. The ticket's channel must be email, contact_button, contact_form, invitation, call or call_button — the channels the agent panel answers from its email reply box. A ticket on any other channel, or with no recorded channel, is rejected.
textYesReply body sent to the customer, as plain text unless format is html.
formatNoSend text in the selected format: plain as plain text or html as an HTML body. plain by default. Use html only when text really is HTML markup. A body that cannot be parsed is rejected before anything is queued.
subjectNoSubject to send the reply under, up to 255 characters. A longer subject is quietly shortened to 255 characters rather than rejected. When omitted, the reply uses the subject the agent panel's reply box pre-fills for the ticket.
toNoSend the reply to these email addresses, used exactly as given. When omitted, the reply goes to the same recipients the agent panel's Reply button would use.
ccNoCopy the reply to these email addresses, used exactly as given, also when to is omitted. An address that is already in to is dropped from Cc. When omitted, the reply has no Cc.

Returns

FieldDescription
answerIdID of the reply that was queued for delivery.

Notes:

  • Deleted and closed tickets are rejected. A resolved ticket is accepted unless the account does not allow a new reply to reopen a resolved ticket.
  • When to is omitted, the ticket needs an email thread or an author email address to reply to. A ticket with neither — typically a call — is rejected until you supply to.
  • Every address has to be a valid email address, and the total number of recipients is capped by the account's recipient limit.
  • Attachments are not supported, and neither are Bcc or a different sender — the reply is sent from the outgoing email account LiveAgent selects for the ticket.
  • A successful result means the reply was stored and queued. Actual delivery happens afterwards and its outcome is not reported by this tool.
  • For an AI agent the tool is locked to the ticket the run was started for, so it cannot reply on a different ticket found via search_tickets. Sending the reply does not end the run.

Reply via WhatsApp (reply_via_whatsapp)

Sends a text reply to the customer on a WhatsApp ticket. The tool is available only on accounts with the WhatsApp add-on — on other accounts it is neither offered nor callable.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d. The ticket's channel must be whatsapp. Any other channel is rejected.
textYesReply text sent to the customer. WhatsApp enforces a maximum message length; an over-length reply is rejected with an error stating the limit.

Returns

FieldDescription
messageIdID of the reply that was queued for delivery.

Notes:

  • The reply must fall inside the 24-hour WhatsApp customer service window — that is, within 24 hours of the customer's last message. Outside it, the call fails and the fallback is an approved WhatsApp template sent by a human agent, or an internal note.
  • Attachments are not supported — the reply is text only.
  • A successful result means the reply was stored and queued. Actual delivery to WhatsApp happens afterwards and its outcome is not reported by this tool.
  • For an AI agent the tool is locked to the ticket the run was started for, so it cannot reply on a different ticket found via search_tickets. Sending the reply does not end the run.

Add note (add_note)

Adds an internal note to a ticket. Notes are visible to agents only, never to the customer.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.
textYesNote body to store, as plain text.
reopenTicketNoReopen the ticket when it is already resolved. false by default, so a resolved ticket stays resolved.

Returns

FieldDescription
noteIdID of the created note.

Note: attachments cannot be added through this tool.

Add tags to ticket (add_tags_to_ticket)

Adds one or more existing tags to a ticket.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.
tagsYesOne or more tag IDs (4-character alphanumeric) or tag names, as returned by get_tags. Unknown tags are rejected — the tool does not create them.

Returns: {"success": true}.

Remove tags from ticket (remove_tags_from_ticket)

Removes one or more tags from a ticket.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.
tagsYesOne or more tag IDs or tag names to remove, in the same form add_tags_to_ticket accepts. Unknown tags are rejected.

Returns: {"success": true}.

Set ticket field value (set_ticket_field_value)

Sets one custom field value on a ticket: creates the value when it is missing, updates it when it differs, and leaves it unchanged when it already matches.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.
definitionIdOne of the twoNumeric definition ID, as returned by get_ticket_field_definitions. Supply either this or definitionCode — never both, never neither.
definitionCodeStable string code of the field, as returned by get_ticket_field_definitions.
booleanValueExactly oneValue to store on a BOOLEAN field: true or false.
stringValueValue to store on a STRING field, up to 255 characters. A longer value is rejected. It also has to satisfy the definition's validation rule.
singleValueValue to store on a LIST_SINGLE_VALUED field: one label from the definition's availableValues.
multiValueValues to store on a LIST_MULTI_VALUED field: any number of labels from the definition's availableValues.
postalAddressValue to store on a POSTAL_ADDRESS field: an object with the keys street, district, city, state, postalCode and country.

Returns

FieldDescription
fieldIdID of the stored value — this is what delete_ticket_field_value expects as fieldId.
actionWhat the call did: created, updated or unchanged.

Notes:

  • The value parameter must match the field's type — a value parameter for any other type is rejected.
  • Archived definitions are rejected.
  • If a ticket holds more than one value for the same definition, the call fails and asks you to delete the extra values with delete_ticket_field_value first.

Delete ticket field value (delete_ticket_field_value)

Removes one stored custom field value from a ticket. Works even when the field's definition has been archived.

Parameters

ParameterRequiredDescription
fieldIdYesID of the stored value to delete, as returned by get_ticket_field_values. This is the value's own ID, not the definition ID.

Returns

FieldDescription
fieldIdID of the value that was deleted.

Assign ticket (assign_ticket)

Assigns a ticket to an agent, or clears the assignment.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.
agentIdYesID of the agent to assign the ticket to, as returned by list_agents. Must be present, but may be null to unassign.

Returns: {"success": true}.

Transfer ticket (transfer_ticket)

Moves a ticket to a different department. The ticket keeps its assigned agent unless reopenTicket is true.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.
departmentIdYesID of the department to move the ticket to, as returned by list_departments.
reopenTicketNoReopen the ticket after the transfer and clear its assigned agent. false by default, so a resolved ticket stays resolved and keeps its assigned agent. The agent is cleared even when the ticket is in a status that cannot be reopened, and the transfer still succeeds.

Returns: {"success": true}.

Note: for an AI agent this is a final action — the run ends once the transfer succeeds, so add any tags or notes first.

Resolve ticket (resolve_ticket)

Marks a ticket as resolved.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.

Returns: {"success": true}.

Note: for an AI agent this is a final action — the run ends once the ticket is resolved, so add any tags or notes first.

Reopen ticket (reopen_ticket)

Reopens a resolved ticket.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.

Returns: {"success": true}, or {"success": false, "error": "Ticket is already open"} when there is nothing to reopen.

Mark as spam (mark_as_spam)

Marks a ticket as spam.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.

Returns: {"success": true}, or {"note": "Ticket was already marked as spam"} when the ticket already was spam.

Note: for an AI agent this is a final action — the run ends once the ticket is marked as spam, also when it already was, so add any tags or notes first.

Mark as not spam (mark_as_not_spam)

Clears the spam mark from a ticket and returns the ticket to the queue.

Parameters

ParameterRequiredDescription
ticketIdYesTicket ID, e.g. 1a2b3c4d.

Returns: {"success": true}, or {"note": "Ticket was already not marked as spam"} when the ticket was not spam.

Note: unlike mark_as_spam, this is not a final action — an AI agent's run continues after it.

Create knowledge base article (create_kb_article)

Creates an article in a knowledge base category.

Parameters

ParameterRequiredDescription
titleYesTitle of the new article, up to 255 characters. A longer title is rejected.
bodyYesBody of the new article, as HTML.
categoryIdYesID of the category to place the article in, as returned by list_kb_categories.
knowledgeBaseIdYesID of the knowledge base to create the article in, as returned by list_knowledge_bases.
statusYesPublication state of the new article: published or draft.
visibilityYesWho can see the new article: public or internal.
descriptionNoMeta description of the new article, as shown in search engine results. When omitted, the article has no meta description.
keywordsNoMeta keywords of the new article. When omitted, the article has no meta keywords.
positionNo0-based position of the new article within its category. When omitted, the article is placed first.

Returns

FieldDescription
articleIdID of the article that was created — this is what get_kb_article and update_kb_article expect as articleId.
messageConfirmation text naming the article's title and status.

Note: attachments cannot be uploaded through this tool. Images referenced inline in the HTML body are picked up from the body itself.

Update knowledge base article (update_kb_article)

Changes an existing article. Only the parameters you supply are changed; everything else keeps its current value.

Parameters

ParameterRequiredDescription
articleIdYesID of the article to update, as returned by search_kb_articles.
titleNoReplace the title, up to 255 characters. A longer title is rejected.
bodyNoReplace the body with this HTML.
statusNoChange the publication state: published or draft.
visibilityNoChange who can see the article: public or internal.
descriptionNoReplace the meta description. Pass an empty string to clear it.
keywordsNoReplace the meta keywords. Pass an empty string to clear them.
categoryIdNoMove the article to this category, as returned by list_kb_categories. The article is placed first in that category unless position is also given. When omitted, the article stays where it is.
knowledgeBaseIdNoIf supplied, must match the article's current knowledge base — moving an article between knowledge bases is not supported.
positionNoMove the article to this 0-based position within its category.

Returns

FieldDescription
messageConfirmation text naming the ID of the updated article.

Create knowledge base category (create_kb_category)

Creates a category in a knowledge base, at root level or under a parent category.

Parameters

ParameterRequiredDescription
nameYesName of the new category, up to 255 characters. A longer name is rejected.
knowledgeBaseIdYesID of the knowledge base to create the category in, as returned by list_knowledge_bases.
visibilityYesWho can see the new category: public or internal.
parentCategoryIdNoID of the parent category, as returned by list_kb_categories. When omitted, the category is created at root level.
keywordsNoMeta keywords of the new category. When omitted, the category has no meta keywords.
positionNo0-based position of the new category among its siblings. When omitted, the category is placed first.

Returns

FieldDescription
categoryIdID of the category that was created — this is what the other knowledge base tools expect as categoryId or parentCategoryId.
messageConfirmation text naming the created category.

Update knowledge base category (update_kb_category)

Renames, moves or reorders a category, or changes its visibility or keywords. Only the parameters you supply are changed; everything else keeps its current value.

Parameters

ParameterRequiredDescription
categoryIdYesID of the category to update, as returned by list_kb_categories.
nameNoRename the category, up to 255 characters. A longer name is rejected.
visibilityNoChange who can see the category: public or internal.
keywordsNoReplace the meta keywords. Pass an empty string to clear them.
parentCategoryIdNoMove the category under this parent, as returned by list_kb_categories, or to root level with 0. The category is placed first among its new siblings unless position is also given. Moving a category under itself or one of its own descendants is rejected.
knowledgeBaseIdNoIf supplied, must match the category's current knowledge base — moving a category between knowledge bases is not supported.
positionNoMove the category to this 0-based position among its siblings.

Returns

FieldDescription
messageConfirmation text naming the updated category.

×