Short definitions of the terms used across the product, the API and these docs.
The API endpoints named here are all documented in full in the generated
API reference.
Customers
- Status. Each customer is
active, inactive or churned. The seed ships a
~60/40 split between active and inactive, with no customers born churned — a
customer reaches churned over time.
- KPIs (
customers.kpis). The dashboard aggregates: total and active counts,
a breakdown by status (statusCounts), spend by country, recovery rate, totals,
and the summary used by the health card.
- Health score. A 0–100 summary of the customer base shown on the dashboard
(
customers.health): the higher the score, the healthier the base, and the
level runs healthy (≥ 60), attention (40–59), critical (< 40).
- Activity trend (
customers.activityTrend). Customer counts bucketed per
month across a trailing window, feeding the dashboard trend chart.
- Top customers (
customers.top). The customers with the highest spend — the
dashboard’s key accounts list.
- Import (
customers.import). Loads rows in one call; each row succeeds or
fails independently, and the result reports imported, duplicates and per-row
failures.
Segments
- Segment. A named audience: a set of conditions, all of which must hold (AND).
- Condition. One field, one operator, one value. Numeric fields accept
gt,
lt or eq; country accepts eq only.
- Preview (
segments.preview). Counts the audience for conditions that may
not be saved yet — the segment builder shows this number as you type.
- Summary (
segments.summary). Dashboard-level aggregates over the saved
segments: how many segments exist, and their audience coverage.
Campaigns
- Campaign. A generated draft for a channel (
sms, email, push) addressed
to a segment’s audience, carrying title, message and call to action.
- Status. A campaign moves
draft → ready → sent, and ready may return to
draft for another pass. Every other move is refused with conflict.
- Generation (
campaigns.generate). The model drafts from the objective,
segment name, channel and tone. It accepts an Idempotency-Key so a retried
request cannot create a second campaign.
Chat
- Thread. The container for a conversation; messages live inside it and the
first message sets its title.
- Stream events.
chat.messages.stream writes SSE frames of four types:
start, delta (repeatable), then a terminal done or error. done carries
the stored message so a client that appended deltas can go consistent with the
database.
Errors and transport
- Problem document (RFC 9457). Every
failure, with a stable
code to match on, human detail, per-field errors,
and a traceId shared with the server log.
- Idempotency key. A caller-chosen key for
campaigns.generate; the first
response is replayed for repeating requests and refused (conflict) for a
different body. Failure responses are never recorded, so a key stays retryable.
- Version headers.
x-api-version on every response; Deprecation: true and
Sunset on responses for a deprecated operation.
Sessions
- Access token. A 15-minute JWT sent as
Authorization: Bearer on every
request.
- Refresh token. An opaque, stored, single-use token that mints a new pair;
a leaked one is usable at most once.
Last modified on October 6, 2026