Skip to main content
Content in AI CMS is organised as a small dependency graph. Nothing in it can be created in isolation, so the order matters. This page shows the shape of the model and the order to build it in.

Octavia AI CMS – Product Overview

What AI CMS does and how it fits into your stack

The dependency graph

Most content hangs off an article, and an article needs three things to exist before it: a language, an author, and a category. A subcategory belongs to a category, so it comes just after. Read it as: language, author and category are the three leaves every article depends on. Subcategory hangs off category, tags hang off nothing, and forms are a separate tree that submissions hang from.

The order to create things in

Follow this sequence the first time you populate a tenant. Each step lists the minimum fields the API actually requires.
1

1. Create a language

Languages are referenced by a two-letter code and are unique per tenant. An article can only be written in a language that exists.Required: code, name
The language field on an article only accepts codes that exist here. Creating the language first is what makes that field work.
2

2. Create an author

An author is a public profile attached to articles. The email is used for attribution and must be unique.Required: name, slug, email
If you omit author when creating an article, the API falls back to the authenticated user. Creating authors explicitly is still worth it — it lets you reassign bylines later.
3

3. Create a category

Categories are the top level of the content tree. Slugs are URL-facing and must be unique.Required: name, slug
4

4. Create a subcategory

A subcategory always belongs to a category, so this step needs the category ID from step 3.Required: name, categoryId
A subcategory is optional. An article can be filed under a category alone — set subCategory to an empty array or omit it.
5

5. Create your tags

Tags are free-form and depend on nothing. Create them up front so you can attach them to every article as you go.
6

6. Create an article

Now the dependencies are satisfied. An article takes an array of category IDs and, optionally, an array of subcategory IDs.Required: mainTitle, content, category

Reference: fields on each resource

Use this as a quick check when you are unsure which field is mandatory. Only required fields block a request.
category and subCategory on an article are arrays of IDs, not single strings. author is a single ID, or omit it to fall back to the authenticated user.

Forms live in their own tree

Forms do not depend on articles, categories or authors. They have their own section-based schema, and submissions hang off a form. Because that is a separate model, forms are documented under their own group.

Forms

The form model, submissions, and captcha

Tags are a flat namespace

Tags have no hierarchy and no parent. One endpoint creates them by name, and they are referenced by name rather than ID when attached to an article:

Tags

Create and search tags

Where to go next

Articles

Read, search, and manage articles.

Content flow

A runnable end-to-end example that builds the whole graph.