Create or update a knowledge base article

This endpoint performs an upsert operation: it creates a new article or updates an existing one
based on the article_id you provide.

Article Identification

If article_id is provided:

  • The article with that ID will be updated
  • If the article doesn't exist, a 404 error will be returned

If article_id is not provided:

  • A new article will be created
  • The slug must be unique within the specified collection

Automatic Synchronization (when updating)

When updating an existing article, the system automatically handles important synchronization tasks:

1. Collection Move: When you change collection_id, if this article has linked
versions in other locales, they will be automatically moved to the corresponding
collections in their respective locales. This ensures your article organization
remains consistent across all languages.

2. Featured Status Sync: When you change is_featured, the new value is automatically
synchronized across all linked articles in other locales. This ensures featured
articles are highlighted consistently regardless of language.

Required Fields

  • collection_id: The collection where the article belongs (required)
  • title: Article title (required)
  • body: Article content, supports HTML (required)
  • slug: URL-friendly identifier, must be unique within the collection (required)
  • status: Publication status - draft or published (required)
  • written_by: Account ID from /writers endpoint (required)

Optional Fields

  • article_id: ID for updating an existing article (optional)
  • description: Article description (optional)
  • keywords: Array of search keywords (optional)
  • is_featured: Whether article is featured, synced across linked articles (optional, default: false)
  • is_ai_enabled: Enable AI training for this article (optional, default: false)

The body HTML is automatically processed and sanitized. The slug must remain unique
within the target collection.

Content Visibility

Use contact_segment_ids and company_segment_ids to restrict access to this article in two contexts:

  • Aura (AI assistant): only contacts/companies in those segments can interact with this content.
  • Help Center: if the help center is published, only contacts/companies in those segments will see
    this article in the public help center.

If an article has no explicit visibility rules, it inherits them from its parent collection (if any).

  • Omit the field (or pass null) to leave existing visibilities unchanged.
  • Pass an empty array [] to remove all visibility restrictions for that segment type.
  • Pass a non-empty array to replace the current visibilities with exactly those segment IDs.

Requires the content_visibility feature on your plan.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
integer

Article ID for update (optional). If not provided, a new article will be created

integer
required

Collection ID. Changing this automatically moves linked articles to corresponding collections

string
required
string | null
string
required
string
required
string
required

Article status: draft or published

integer
required

Account ID from /writers endpoint

keywords
array of strings
keywords
boolean
boolean

Enable AI training for this article

contact_segment_ids
array of integers | null

Restrict visibility to contacts belonging to these segment IDs. Pass an empty array to remove all restrictions.

contact_segment_ids
company_segment_ids
array of integers | null

Restrict visibility to companies belonging to these segment IDs. Pass an empty array to remove all restrictions.

company_segment_ids
Responses

401

Authentication required

403

Permission denied or multi-locale feature not available

404

Article not found (when article_id is provided), collection not found, or writer not found in app

409

Slug already exists in the target collection

422

Validation error - When moving to a different collection, linked articles in other locales cannot be moved because corresponding collections are missing in those locales

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json