Companies, contacts and deals
The three tables your CRM is made of, the typed fields on them, the memory behind every record, and how the shape changes when you need it to.
Dopia keeps three tables — Companies, Contacts and Deals — and one living memory behind every record in them. That split is most of what you need: the tables are what you filter and report on, the memory is what you and the agents actually read.
The three tables
Companies are the organisations you sell to, keyed on their domain. Contacts are the people at them, keyed on email address. Deals are the specific opportunities — one company can have several over time.
You never wire them together by hand. A new email from someone at a new domain creates the contact and the company at once, already linked, and duplicates are resolved on the way in — the same person arriving from three places stays one record.
Fields have types
Each table has fields, the way a spreadsheet has columns. Unlike a spreadsheet column, a field has a type — text, number, currency, date, a single or multiple choice from a fixed list, a checkbox, a file, or a link to a record in another table. The type is what makes a field useful to more than your eyes: a Stage that is a real choice list can be counted, and a Deal Value that is real currency can be summed.
Every field also carries a description, and that description is not a note to yourself. Your assistant reads it before it queries that field. "Committed contract length agreed at close" gets filtered correctly; a field called Term with nothing written under it gets guessed at.
Types are also what you filter on. Filter offers each field the conditions that suit it — a date takes before and after, a choice list takes is and is not, everything takes empty and not empty — and View settings decides which columns show, and in what order. A filter you would otherwise rebuild every morning does not have to be: Save as New View names it, and it joins the views you switch between at the top left.
Changing the shape: ask for it
There is no New field button, and that is deliberate. You say what you want to track — let's keep which competitor we were up against on each deal — and your assistant proposes the field: a name, a type, the options. Then it stops. A card shows you the change and waits, because the shape of these tables is shared by everyone in your workspace. Approve it and the field exists from then on.
An entire new table works the same way, for the rare thing the three do not model.
The deal fields your numbers run on
| Field | What it holds |
|---|---|
| Stage | Lead · Qualified · Demo · Proposal · Negotiation · Closed Won · Closed Lost |
| Deal Value | The amount, in your currency |
| Expected Close Date | When you expect it to land |
| Owner | Whose number it counts toward |
| Probability | 0–100, seeded from the stage, editable |
| Forecast Category | Pipeline · Best Case · Commit · Closed · Omitted |
Revenue reporting is computed from exactly these. A deal counts as closed revenue when its stage is Closed Won and its expected close date falls in the current period.
The memory behind each record
Open any record and you get two halves: the fields on one side, and on the other that customer's memory — every email, meeting and call that involved them, in order. That half is what the agents work from, which is why a stale field costs you less here than it would elsewhere: the story survives even when a column does not.
Next: filling all of this
Nothing above is typed in by you. Your email and calendar is where it comes from.
Up next
Why Dopia needs your email and calendar
A revenue engine cannot run on what you remember to type. Your mailbox and calendar are where selling actually happens — this is what connecting them buys.