How enrichment works
What AI data enrichment is, how a prompt turns raw text into labeled columns, and why it works better than keywords or trained models.
Optional. You don't need this to get started. Back to the quickstart
Conversations, reviews and open-ended survey answers are full of information, but it is locked in text. Enrichment reads that text with a large language model and writes what it finds as labels. Each label is a new column, and each column is a Dimension.
I asked for a person three times before it let me through. It kept sending me the same help article, which doesn't cover my situation. Twenty minutes to change one address.
- Human-Escalation Attempt3 attempts
- Bot Containmentfailed
- AI Failure Modeloop · repeated answer
- Self-Service Attemptarticle not relevant
- Effort Levelhigh · 20 minutes
- Automation Opportunityaddress change
Each colour links a phrase in the raw text to the Dimensions extracted from it. Hover either side.
The output looks like text coding, text mining or AI classification. These docs call the process enrichment.
From unstructured to structured
Section titled “From unstructured to structured”The messages between a customer and a bot or agent are unstructured data: there are no columns to count or filter on. Enrichment adds them.
Here is a dataset with two columns, a session id and the conversation text:
| Session ID | Conversation text |
|---|---|
| 112203 | User: Love your new product Bot: Amazing, thank you! |
| 231107 | User: Track order Bot: Happy to help with that. |
The text holds more information than the two columns show. Enrichment finds it and adds it as new columns.
The enrichment process
Section titled “The enrichment process”Each conversation is read by a language model that has been given a specific task: a prompt. The model applies labels by following the prompt’s instructions, and the labels are added to your data as new columns.
A fixed list: sentiment
Section titled “A fixed list: sentiment”- Task: sentiment analysis
- Prompt: “Identify the sentiment of this conversation.”
- Dimension:
sentiment, one ofpositive,negative,neutral
| Session ID | Conversation text | Sentiment |
|---|---|---|
| 112203 | User: Love your new product Bot: Amazing, thank you! | positive |
| 231107 | User: Track order Bot: Happy to help with that. | positive |
A dynamic label: contact reason
Section titled “A dynamic label: contact reason”The model can run several tasks on the same conversation, and a task doesn’t need a fixed list. It can write a label from what the conversation says:
- Task: reason analysis
- Prompt: “Detail the reason the customer engaged with support.”
- Dimension:
contact_reason, written from the conversation
| Session ID | Conversation text | Sentiment | Contact reason |
|---|---|---|---|
| 112203 | User: Love your new product Bot: Amazing, thank you! | positive | new product feedback |
| 231107 | User: Track order Bot: Happy to help with that. | positive | order tracking inquiry |
Unlike sentiment, the reason labels aren’t chosen from a list. These are dynamic labels. Once you see them, you can ask the agent to group them into themes.
Both kinds of task, fixed and dynamic, standard and custom, can run together on the same data. This is easier to set up and change than a trained machine learning model.
What enrichment reads
Section titled “What enrichment reads”Every source is brought into one format before it is enriched. Text from any source is organized as messages grouped into sessions, and the full text of a session is its transcript. See Sessions and conversations.
The same format holds many kinds of text:
| Kind | Messages are |
|---|---|
| Conversations | Incoming and outgoing messages |
| Surveys | Questions and answers |
| Online interactions | Posts and replies, reviews and comments |
| News content | Articles and comments |
| Documents | Long-form content |
Enrichment reads each conversation in full, both sides, and fills in every Dimension of the prompt for that conversation. It reads the text only: columns such as rating, region or plan are already structured, and you join them in afterwards. Business data files aren’t enriched at all.
Putting different sources into one format is what lets you apply one prompt to your chat, email, call, review and survey sources, and compare the results. You choose the sources a prompt is applied to when you save or backfill it.
Why it works
Section titled “Why it works”Text has many dimensions
Section titled “Text has many dimensions”A short piece of text can hold a lot of information, even when we don’t see it at first. Which parts matter depends on who is reading: your company, and your role in it. Disagreement about what a piece of text “means” isn’t a problem to solve. It shows how much is in the text.
Three examples, each read by two teams:
“This phone takes the best videos I’ve ever seen, seriously, they look professional! I did more than 3 hours of shooting yesterday and my external batteries kept me going strong.”
- Marketing: the camera stands out for photo enthusiasts and should lead the campaigns.
- Product: battery life could be improved to keep up with demanding features like HD video.
“The ticket I transferred to my husband didn’t work and we had to ask venue staff to fix it. They were so helpful and knowledgeable!!”
- Digital team: the ticket transfer flow has a problem to raise with the ticketing provider.
- Support team: venue staff are well trained on fixing the problems guests have with the app.
“I really love the new chicken tenders at Brand A, much better than Brand B (sorry!). I’ll def be going back for more.”
- Brand A: customers like the new menu item.
- Brand B: a competitor’s launch is a threat.
Each of those readings is a different Dimension of the same text.
The problem: too much to read
Section titled “The problem: too much to read”One conversation is easy for a person to understand. Thousands are not. As volume grows, it becomes hard to see consistent patterns, and impossible to count why customers get in touch, how they feel and how their issues end.
Boolean keyword searches and trained machine learning models fall short on both speed and accuracy. They take a lot of effort to set up, and they rely on brittle rules.
Keywords can’t tell meanings apart. A search for “cook” returns all of these:
- a job title: seeking line cook
- a verb: love to cook
- a noun used as an adjective: cook station
- a product: cook knife
- slang: let him cook
- an exclusion: culinary professionals only, no amateur cooks
Language models represent words by their relationships to other words in context (word embeddings), so they can tell these apart.
The fix: add structure
Section titled “The fix: add structure”Enrichment uses a language model to read each conversation the way a person would, then labels it. Each prompt extracts one aspect of the text, and each label becomes a column. Extracting several dimensions of meaning from the same text is a flexible way to analyze it, because you choose the questions.
| Dimension | Task | Example prompt | Output | Use |
|---|---|---|---|---|
| Brand sentiment | The emotional tone toward a brand | “What is the customer’s sentiment about [brand]?” | positive, negative, neutral | Trends in how people feel |
| Satisfaction | Predict a satisfaction rating | “Estimate the customer’s satisfaction with their experience.” | A whole-number scale such as 1 to 5 or 1 to 10, or satisfied, dissatisfied, neither | A consistent satisfaction measure without surveys. See Predicted scores. |
| Dynamic labels | Why customers contacted support | “What is the reason the customer engaged with support?” | Written from the text: order tracking inquiry, bonus code confusion, crypto withdrawal delay | Themes found from the content, with no list set in advance |
| Categorization | The matching category | “What was the topic of this interaction?” | Chosen from a list: billing_and_payment, technical_issue, product_inquiry | Counting topics against a known list |
| Outcomes | How the conversation ended | “What was the outcome of this interaction?” | complete, escalated, abandoned | Support effectiveness and resolution patterns |
Human judgment, at scale
Section titled “Human judgment, at scale”Enrichment follows the same method as human data coding. Researchers apply sentiment and topic codes by hand, using a detailed coding guide. A language model applies the same kind of guide, your prompt, to every conversation. The labels are applied the same way every time, with no variation between coders, and the turnaround is much faster.
Finding what you didn’t plan for
Section titled “Finding what you didn’t plan for”Traditional systems can only apply options decided in advance. Enrichment can also write new labels from what appears in the text, such as “bonus code confusion” or “crypto withdrawal delay”, instead of forcing every conversation into a fixed category. That is how you find issues and trends nobody defined.
| Traditional approaches | Enrichment |
|---|---|
| Keyword searches miss context | Reads context and meaning |
| Trained models are hard to change | You change the prompt |
| Manual coding doesn’t scale | Runs on every conversation |
| Fixed categories limit discovery | Dynamic labels surface new themes |
How reliable it is
Section titled “How reliable it is”Labeling is a recognition task: the model picks out what is already in the text and writes a short label. That carries much less risk of the model making things up than open-ended writing does, because it relies on the model’s pattern recognition and reasoning with very little generated output. Language models also handle what keywords can’t: the flow of a conversation, implied meaning and sentiment, industry terms, and the customer’s intent and emotion.
Low risk isn’t no risk. Labels are only as good as the prompt, so:
- Pair every judgement with a verbatim Dimension that copies the customer’s words, so any label can be checked.
- Test the prompt on a varied sample before running it on everything. See Test before you run.
- Read some results after every run, not just the counts.
In short
Section titled “In short”- Text holds a lot of meaning, from different points of view.
- Enrichment extracts that meaning as labeled Dimensions, one column per question.
- Dynamic labels surface patterns you didn’t define.
- Clear prompts, tested on your own data, keep the labels consistent at scale.