# Key concepts

> Conversation data and business data, the meaning layer, Dimensions and prompts, conversations, when enrichment runs, and projects.

## Conversation data and business data

Dimension Labs works with two kinds of data, and treats them differently.

| | Conversation data | Business data |
|---|---|---|
| What it is | Chats, calls, tickets, reviews, survey answers, social posts: anything a person wrote or said | Revenue, orders, renewals, accounts, locations, usage: rows and columns |
| Where it goes | **Data Sources > Unstructured data** | **Data Sources > Structured data** |
| How it gets in | An integration, the [universal API](/api/tracker), or a file upload | File upload only today. An API is on the roadmap. |
| What happens to it | Read in full and enriched into Dimensions | Stored as a table you and the agent can query. Never enriched. |
| When you can use it | Queryable after a short sync. Dimensions arrive as described in [When enrichment runs](#when-enrichment-runs). | Queryable within about a minute |

Each item in **Data Sources** is a **source**: an integration or an upload under Unstructured data, or a table under Structured data.

The value comes from joining the two: what customers said, next to what they spent, renewed or returned. See [Join business data](/data/join-business-data).

## The meaning layer

The meaning layer is the name for the whole structure the agent works on: your original conversations, the Dimensions extracted from each one, and your business data, in one schema you can query together. You don't build it by hand. It is built from the data you connect.

Every source, whether a file upload, the API or an integration, is first put into the same [conversation format](/data/conversation-format), so a chat, a review and a survey answer can be read the same way. From there, data moves through the four steps on [What Dimension Labs does](/get-started#what-happens-inside-it): enrich, join, prove, repeat.

## Dimensions and prompts

A **Dimension** is one typed field the platform extracts from each conversation: a category, a yes or no, a score, or a short verbatim quote. A **prompt** is the configuration that defines a set of Dimensions, and each prompt writes its own table. **Enrichment** is running prompts over conversations.

Every workspace has the **standard Dimensions** available, called **System Prompts** in the app. Prompts you design yourself are custom prompts, and the **Prompts** tab lists all of them. See [What a Dimension is](/dimensions).

Because the labels are stored, they act as a ground truth: everyone who asks the same question of the same data gets the same counts, every label can be checked against its conversation, and the results can be counted and tested. Enrichment is a recognition task (finding whether something is present in text that already exists), which is the kind of task language models do most consistently. See [How reliable the labels are](/causal/validation).

## Conversations

The unit Dimension Labs reads is a **conversation**: one chat, ticket, call, review or survey response, with every message in it in time order. Messages are grouped into a conversation by their `sessionId`. The model reads the whole conversation at once, customer and agent or bot turns together, and writes one set of Dimensions for it. That's why the `sessionId` in your data matters. See [Sessions and conversations](/data/sessions-and-conversations).

## When enrichment runs

Enrichment doesn't happen the moment data lands.

| Data | When it gets Dimensions |
|---|---|
| A live integration (a one-click integration, or a universal API job sending to `/track`) | Automatically, every day |
| A file upload, or anything sent to `/trackhistorical` | When you run a backfill from the **Backfill** tab. A backfill typically shows up within the hour, depending on how much data is being enriched. |
| Standard Dimensions | Every day only when Dimension Labs turns on daily enrichment for your workspace (ask support@dimensionlabs.io). Otherwise, run a backfill. |
| Business data | Never. It's queryable within about a minute of upload. |

See [When enrichment runs](/dimensions/when-enrichment-runs) and [Backfill history](/dimensions/backfill).

## Drivers, not volume

The most-mentioned issue isn't always the one that costs you. Dimension Labs ranks drivers by their effect on an outcome you choose (a renewal, a refund, a predicted CSAT score), after accounting for other differences between customers. See [How we prove a driver](/causal).

## Projects and chats

A conversation with the agent is a **chat**. A **project** holds the files, standing instructions and chats for a piece of work. Anything in the project's `AGENTS.md` file is read as a standing instruction in every chat of that project. See [Projects and standing instructions](/agent/projects-and-instructions).
