Skip to main content
The Rules API manages two resources with different lifecycles: versioned intent rules and unversioned Business Rules. Every endpoint in this section uses a workspace API key.
The API paths use /hc-rules, which is the current controller contract. This reference calls these resources rules to match the product.

Intent rules

Rulebook workflows with drafts, published versions, version history, generation, and restore.

Business rules

Widget-escalation workflows with custom and Fini-provided template modes.

Evaluate rule

Run a saved rule against supplied input context and inspect node results.

Generate Rulebook tests

Generate suggested test cases from a Rulebook flow.

Endpoint relevance

The six endpoints that support both rule types share paths. Use type=intent or type=business on list and fields-context requests, and send the type explicitly when creating a rule.

Rule summary object

List and default-template routes return rule summaries without flowConfig.

Fields shared by both rule types

string
Rule ID.
string
ISO 8601 creation timestamp.
string
ISO 8601 last-update timestamp.
string | null
Workspace ID. Fini-provided default templates use null.
string
Rule name.
string
Natural-language rule description.

Intent-rule lifecycle fields

boolean
Whether the resolved intent-rule version is a draft.
number
Resolved version number for an intent rule.
string
Resolved version ID for an intent rule.
string
Version status. Current values are DRAFT, PUBLISHED, and ARCHIVED.
string | null
Published version from which a draft was created.
string | null
ISO 8601 publication timestamp.
boolean
Whether a draft is based on an older published version.
string | null
Current published version ID.

Assignment and type fields

string[]
Assigned agent IDs when the selected list mode includes assignments.
string
intent or business.

Business Rule configuration fields

string | null
Fini-provided template used by this rule, if any.
string | null
Rule source. The current enum value is widget.
string | null
Business-rule trigger. The current enum value is on_escalation.
InputSchemaField[]
Optional runtime input schema.

Rule object

The full rule object includes every applicable rule-summary field plus these fields:
RuleNodeConfig
Full rule tree.
string[]
Agent IDs assigned to the rule. Draft responses return an empty array.

Rule version object

Rule version objects apply only to intent rules.
string
Version ID.
string
Parent rule ID.
number
Monotonically increasing version number.
string
DRAFT, PUBLISHED, or ARCHIVED.
string
Name captured in this version.
string
Description captured in this version.
string | null
Published version on which this version is based.
string | null
ISO 8601 publication timestamp.
string
ISO 8601 creation timestamp.
string
ISO 8601 last-update timestamp.
boolean
Whether this is the rule’s active published version.
boolean
Whether this draft is based on an older published version.
RuleNodeConfig | null
Full version tree. Present on the get-version route and omitted from version-list items.

RuleNodeConfig object

string
Root node ID.
object
Map of node IDs to node configs. Every node has id, name, and type, plus fields specific to that node type.
Current node types are SEQUENCE, SELECTOR, CONDITION, ACTION, and WIDGET_FORM_RENDERER. Current action subtypes are LLM_EXTRACTION, TOOL_CALL, PROMPT_INJECTION, WIDGET_FORM_VALIDATION_ERROR, and SEND_MESSAGE.

InputSchemaField object

string
Field name.
string
string, number, boolean, array, object, or date.
boolean
Whether the field is required.
string
Optional runtime path to bind from.
any
Optional literal value.
string
Optional source: metadata, jwt, or apiResponse.
any
Optional fallback value.
string
Optional context path to bind automatically.
Rule creation and update validate referenced agent IDs, actions, and widget forms. Template-based rules cannot define their own flowConfig.