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.

Deals. Stage and Forecast Category are choices, not text; Deal Value is money, not a number in a box — which is what the Filter above them has to work with.

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

FieldWhat it holds
StageLead · Qualified · Demo · Proposal · Negotiation · Closed Won · Closed Lost
Deal ValueThe amount, in your currency
Expected Close DateWhen you expect it to land
OwnerWhose number it counts toward
Probability0–100, seeded from the stage, editable
Forecast CategoryPipeline · 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.

Did this answer your question?