Skip to main content

Overview

You organize your offers into a business hierarchy — a two-level structure of categories (top-level groupings) and sub-categories (nested beneath them). This hierarchy provides logical organization, drives custom field schemas, and enables category-level rules and reporting.

Categories

A category represents a top-level business domain or product line (e.g., “Credit Cards”, “Personal Loans”, “Insurance Products”).

Field Reference

Custom Fields

Categories define a custom field schema that applies to all offers within the category. Each custom field has:

Custom Field Types

Computed fields are the foundation of dynamic computed values. They let you define formulas like base_rate * (1 - customer.loyalty_score * 0.01) that are evaluated per customer at decision time.

Computed Field Formulas

Computed fields use the formula engine with three variable namespaces:

Formula Examples

1. Personalized interest rate — discount based on loyalty score:
If base_rate is 12.5 and customer.loyalty_score is 80, the result is 12.5 * (1 - 0.8) = 2.5. 2. Dynamic credit limit — capped at 3x income with a floor:
Uses the min and max functions to ensure the limit stays between 5,000 and 50,000. 3. Tiered welcome bonus — conditional on customer tier:
Uses nested ternary expressions: customers with excellent credit get 500, good credit get 250, and everyone else gets 100. 4. Formatted offer label — concatenated string:
Uses concat to build a string and coalesce to fall back if the preferred name is null.
See the Formula Reference for the complete list of supported operators and functions (min, max, round, abs, coalesce, concat, ternary). In the Composable Pipeline, the Compute node also evaluates these formulas.

Computed Field Validation

When you create or update a category with computed fields, KaireonAI validates:
  1. Formula is present — a computed field must have a non-empty formula string.
  2. Output type is validoutputType must be "number" or "text".
  3. Syntax check — click Validate in the UI to parse the formula and catch syntax errors before saving.

Sub-Categories

Sub-categories provide a second level of grouping beneath a category (e.g., “Premium Cards” and “Travel Cards” under “Credit Cards”).

Sub-Category Fields

With your hierarchy in place, you can create offers within it. Before doing so, understand how deletions cascade through the hierarchy.

Cascade Behavior

Deleting a category will cascade-delete all its sub-categories. However, offers are unlinked (their categoryId and subCategoryId are set to null) rather than deleted, preserving historical data and interaction history.
Deleting a sub-category unlinks its offers in the same way — offers are preserved but lose their sub-category association. Here is a summary of what happens at each level:
Because offers are unlinked rather than deleted, you will not lose any historical decision traces, outcomes, or experiment data when reorganizing your hierarchy.

Creating a Category

1

Navigate to Business Hierarchy

Go to Studio > Business Hierarchy in the sidebar.
2

Click Create Category

Click the + New Category button.
3

Fill in category details

Enter the name, description, icon, and color.
4

Define custom fields

Add custom fields that will apply to all offers in this category. For each field, specify the name, label, type, and whether it is required.
5

Add computed fields (optional)

For computed fields, enter the formula expression and select the output type (number or text). Click Validate to check the formula syntax before saving.
6

Save

Save the category. It is immediately available for creating offers and sub-categories.

Creating a Sub-Category

1

Select parent category

In the Business Hierarchy view, click on the category you want to add a sub-category to.
2

Click Add Sub-Category

Click the + Sub-Category button within the category detail panel.
3

Fill in details

Enter the sub-category name and optional description.
4

Save

Save the sub-category. It appears nested under its parent category.

API Reference

Create a Category

Request body:
Response (201 Created):

Create a Sub-Category

Pass the parent categoryId in the request body:

List Categories

Returns all categories with their sub-categories and custom field schemas.

Delete a Category

The id can be either a UUID or the category name (the API resolves names automatically).
This cascade-deletes all sub-categories and unlinks all offers. This action cannot be undone.

Next Steps

Offers

Create offers within your categories.

Computed Values

Full guide to dynamic computed values and formula syntax.

Formula Reference

Complete operator and function reference for the formula engine.

Composable Pipeline

Use the Compute node to evaluate formulas at decision time.