> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hihobbes.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Data model

> Understand how sessions, people, accounts, transcripts, and metrics relate.

The read API exposes four levels of derived demo intelligence plus optional raw
conversation turns.

```mermaid theme={null}
flowchart LR
  S["Session"] --> P["Person"]
  P --> A["Account"]
  S --> T["Transcript"]
  S --> M["Metrics"]
```

## Sessions

A session is one analyzed production demo. List responses contain the fields
needed for routing and synchronization. Session detail adds timeline events,
topics, objections, qualification reasoning, next steps, and full tracking
context.

Use the stable session UUID as your external-system idempotency key. `displayId`
is intended for humans and may be absent.

## People

A person represents a prospect aggregated across sessions. Hobbes identifies
people by normalized email and exposes their first and last activity, total
time, latest qualification, latest intent, and rolling summary.

Person records can evolve after later sessions. Treat them as current profiles,
not immutable events.

## Accounts

An account rolls people up by registrable business email domain. It includes
user, session, booking, qualification, high-intent, duration, and recency
aggregates.

Consumer email domains may not produce useful B2B accounts. Use person and
session records when a business domain is unavailable.

## Metrics

Metrics aggregate analyzed sessions over a trailing 1-365 day window. Counts
and rates are recalculated for each request. Use them for operational dashboards,
not as a substitute for storing session-level history.

## Null and empty values

* A `null` field means Hobbes did not capture or derive that value.
* An empty array means analysis completed but produced no items of that type.
* A missing resource returns `404`; it is not represented as `null`.
* New response fields may appear within v1. Ignore fields your integration does
  not recognize.
