Dimensions
What a Dimension is
Dimensions are the typed fields Dimension Labs extracts from every conversation. What they are, the types, and how to read them.
A Dimension is a structured field extracted from a conversation. Sentiment is one question you can ask of text. Dimensions let you ask many: why did this customer get in touch, did they mention a competitor, how much effort did it take, what would they rate it, what exactly did they say about the delivery.
We're running a 60-day parallel evaluation of another vendor before we sign the renewal. Honestly, we were promised SSO in Q2 and it still isn't here, and this ticket has been open for three weeks.
- Competitor Mentionedyes · evaluation underway
- Churn & Cancellation Riskhigh
- Lifecycle Stagerenewal
- Urgency & Deadline60 days
- Expectation Gaproadmap promise missed
- Feature RequestSSO
- Resolution Statusopen · 3 weeks
Each colour links a phrase in the raw text to the Dimensions extracted from it. Hover either side.
Sentiment is a question
Section titled “Sentiment is a question”You probably know sentiment analysis, which sorts text into positive, negative and neutral. Think of it as one simple research question asked of every conversation:
- Question: What is the tone of the conversation?
- Answer:
positive,negativeorneutral
Asked across thousands of conversations, the answers add up to a share, which is how sentiment is usually reported. For example, a finding could read “X% of support conversations in March had a negative tone.”
Dimensions answer new questions
Section titled “Dimensions answer new questions”A Dimension works the same way, but the question can be anything the text can answer. Because a language model reads the conversation, you classify with a prompt instead of training a machine learning model.
- Question: What was the outcome of the conversation?
- Answer:
complete,escalatedorabandoned
Across thousands of support conversations, the share of escalations becomes clear. For example: “X% of live chat support conversations in June were escalated to a manager.”
Sentiment tells you the tone of an interaction. Dimensions can also tell you what happened, why it happened, and what to do about it.
Kinds of questions
Section titled “Kinds of questions”| Kind | Example Dimension | The question it asks | What it’s good for |
|---|---|---|---|
| Annotation | Products | Which products were mentioned? | Finding the products, services or features behind the most contacts |
| Scoring | Predicted Rating | How would the customer rate this interaction from 1 to 10? | A satisfaction signal on every conversation, without a survey. See Predicted scores. |
| Summarization | Predicted Feedback | How would the customer describe this conversation? | Seeing the service from the customer’s side, and the gap between your metrics and their experience |
| Recommendation | Predicted Solution | What could be done to resolve this issue next time? | A running list of fixes drawn from real conversations |
Open-ended questions and dynamic labels
Section titled “Open-ended questions and dynamic labels”Keyword searches, trained models and fixed segmentations all decide the categories in advance. A Dimension doesn’t have to. It can generate a label from what the conversation says, so themes you didn’t plan for still show up.
- Reason: what is the reason the customer reached out to support?
- Category: what is the overall theme of the conversation?
Labels written this way are called dynamic labels, for example order tracking inquiry or refund request.
Clustering answers into levels
Section titled “Clustering answers into levels”Some Dimensions come in pairs: a detailed answer and a cluster that groups similar answers. Reason and Category work like this, and so do Predicted Solution and Solution Cluster:
- Predicted Solution: what is the potential resolution to the customer’s issue?
- Solution Cluster: what are the themes across those resolutions?
The pair gives you two levels of analysis: the cluster to count, the detailed answer to read. You can also ask the agent to group dynamic labels into themes for you.
How a Dimension gets made
Section titled “How a Dimension gets made”- A prompt defines a set of Dimensions: a name, instructions, and for each Dimension its type and allowed values.
- Enrichment reads each conversation in full (all the messages that share a
sessionId; see Sessions and conversations) and fills in every Dimension of the prompt. - The results land in a table named after the prompt, one row per conversation, one column per Dimension.
reasoncategorybilling, delivery, product_quality, none_detectedcompetitorfree texta name, or none_detectedeffortinteger1 to 5refund_askedbooleantrue, false
conv-1001deliverynone_detected4true conv-1002billingnone_detected2false conv-1003product_qualityAcme Beans3false Dimensions are read from the conversation’s text only. The model doesn’t see your extra columns (rating, region, plan). Those are already structured, so you join them in afterwards.
For the ideas behind this, see How enrichment works.
Standard and custom Dimensions
Section titled “Standard and custom Dimensions”There are two kinds, and the platform uses its own names for each:
| Standard Dimensions | Custom Dimensions | |
|---|---|---|
| Called in the platform | System Prompts | Custom Prompts, or Prompts |
| Where to find them | The Prompts tab | The Prompts tab, once saved |
| Who defines them | Dimension Labs | You, or Dimension Labs with you |
| Covers | General questions that work on most text: Reason, Category, Predicted Rating, Summary and more | The signals specific to your business, in your own terms |
| When they run | Every day only if Dimension Labs turns on daily enrichment for your workspace; otherwise by backfill | Every day on live integrations they’re applied to; by backfill on uploads and history |
| Level of analysis | Session and section | Session |
| Page | Standard Dimensions | Design custom Dimensions |
Start with the standard set for a baseline, then add custom prompts to go deeper where it matters.
Output types
Section titled “Output types”Every Dimension has one of five output types. The same names are used on every page; the JSON for each is on the config reference.
| Output type | Use for | Example values |
|---|---|---|
| Fixed category | Classifying into a list you define | billing, delivery, product_quality, none_detected |
| Dynamic label | Short labels the model writes from the text, with no list | order tracking inquiry |
| Verbatim quote | The customer’s exact words on a topic | "the app logged me out twice" |
| Score | A whole number on a defined scale | 1 to 5 |
| Boolean | Present or not | true, false |
Decimal numbers aren’t supported. Use a whole-number scale instead.
none_detected and empty values
Section titled “none_detected and empty values”none_detectedmeans the model read the conversation and found nothing for that Dimension. It’s an answer: “this customer didn’t mention a competitor”.- An empty value means nothing came back for that conversation. For a score, an empty value is the right answer when there isn’t enough signal: see Predicted scores.
Count them separately. A Dimension that is mostly none_detected isn’t broken: a signal that appears in 5% of conversations can be the most important one you have.
Reading Dimension values
Section titled “Reading Dimension values”- Everything is stored as text, including scores and booleans. Ask the agent to treat a score as a number when you want an average.
- The model can occasionally return a value outside the list you defined, or a spelling variant (
none detectedwith a space). The agent can group these, and a cluster of unexpected values is sometimes a real signal worth a look.