The layer underneath all of it.
Your CRM holds the fields somebody remembered to fill in. The ontology holds what actually happened: what the buyer asked for, who can sign, what was promised and what has moved since. It is assembled from the calls, the email, the documents and the CRM itself, and it is what every other part of Doris reads.
What happened
Calls, email, documents, CRM
The ontology
One typed record per deal
What reads it
Doris, your agents, your tools
Why a layer, and not another field.
A field is an answer with the question missing
Stage: Negotiation tells you somebody picked an option from a list. It does not say what is being negotiated, who pushed back, or what was promised to move it along. That meaning lives in the conversation, and a CRM was never built to hold it.
Every tool rebuilds the same picture badly
The dashboard, the forecast, the agent and the rep each assemble the deal from a different handful of fragments, so they disagree. One typed layer underneath means they are arguing from the same record.
An assistant with no record invents one
Point a general model at a deal with nothing structured behind it and it writes something that reads well and cannot be checked. The ontology is what turns an answer into a claim with a source.
What it does.
Things, not paragraphs
A commitment is a thing with an owner, a due date and a state. An objection has a theme and a status. Because they are records rather than prose, they can be filtered, sorted and counted across every deal you have.
One deal, from every source
The call, the thread, the attachment and the CRM field resolve onto the same deal. The record gets more whole as the deal goes on, rather than becoming another fragment beside the others.
The claim carries its source
Commitments, objections, concerns and the signals built on them point back at the passage they came from. A number in an answer can be checked rather than believed.
What moved since you last looked
Ask a deal what has changed since a date and it answers from its own event log: the commitments that opened, the stage that moved, the close date that slipped and when.
Your own tools read it directly
The same layer is served over MCP and REST. Connect Claude, Cursor or ChatGPT and they answer from your pipeline, under your permissions, with no export and no copy.
Read widely, write narrowly
Reads are open across your workspace. Writes go through a whitelist of the fields an agent may touch, and anything that could reach a buyer is refused unless a person started it.
Questions we get asked.
No. The CRM stays the system of record for fields, pipelines and the forecast. The ontology is the system of meaning beside it, holding what was said and agreed. Doris writes back to the CRM from it, and tells you where the two disagree rather than quietly overwriting one with the other.
Deals, accounts, people and meetings, and the things a conversation produces: commitments, objections, concerns, competitors, pain points, decisions and risks. Each has its own properties. The ones that come out of a conversation carry the evidence behind them.
Yes, over MCP and REST. Connect Claude, Cursor or ChatGPT and they answer from your pipeline directly. There is a public read-only sandbox if you want to see the shape of it before you connect anything of your own.
Only where a type says it may. Each one declares the fields an agent can write, every write is validated against that, and any action that could reach a buyer is refused unless a person initiated it. Drafting is open to an agent. Sending is not.
See it on your own pipeline.
We'll walk your pipeline with you and show what Doris finds in it.