Overview
The business hierarchy is a two-level organizational structure for your offers. Categories are top-level groupings and sub-categories are 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”).Category Fields
| Field | Type | Description |
|---|---|---|
name | string | Display name of the category |
description | string | Optional description |
icon | string | Icon identifier for the UI |
color | string | Hex color code for visual distinction |
status | enum | active or archived |
ordinal | number | Display order position |
customFields | array | Schema definition for fields on offers in this category |
Custom Fields
Categories define a custom field schema that applies to all offers within the category. Each custom field has:| Property | Type | Description |
|---|---|---|
name | string | Field identifier (used as key in offer data) |
label | string | Display label in the UI |
type | enum | Field type |
required | boolean | Whether the field must be filled |
options | string[] | Choices for select type fields |
formula | string | Formula expression for computed type fields |
outputType | enum | Output data type for computed fields: text, number, decimal, boolean |
Custom Field Types
| Type | Description | Example |
|---|---|---|
text | Free-text string | Product description, internal notes |
number | Integer value | Points multiplier, term length |
select | Single choice from options | Risk tier, product variant |
boolean | True/false toggle | Pre-approved flag, promotional |
date | Date value | Effective date, review date |
computed | Formula-evaluated at decision time | Personalized rate, dynamic discount |
Computed Field Formulas
Computed fields use the formula engine with three variable namespaces:| Namespace | Source | Example |
|---|---|---|
| (bare name) | Other custom field values on the offer | base_rate, annual_fee |
customer.* | Enriched data from schema tables | customer.loan_amount, customer.credit_score |
attributes.* | Request-time attributes from the Recommend API | attributes.tier, attributes.channel |
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
| Field | Type | Description |
|---|---|---|
name | string | Display name |
description | string | Optional description |
categoryId | string | Parent category ID |
ordinal | number | Display order within the parent category |
Cascade Behavior
Deleting a sub-category unlinks its offers in the same way — offers are preserved but lose their sub-category association.Creating a Category
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.
Add computed fields (optional)
For computed fields, enter the formula expression and select the output type. Click Validate to check the formula syntax before saving.
Creating a Sub-Category
Select parent category
In the Business Hierarchy view, click on the category you want to add a sub-category to.