The company record
One company, as all nine roles already see it. Open it from any account name in any panel, or search for it in the command palette.
Overview
Every other surface in the app is a list ranked by one lens. Deals ranks by risk, Customers by health, Escalations by what is commercially at stake. That is the right shape for deciding what to work on, and the wrong shape for working on one thing: a single deal meant visiting six panels and holding the join in your head.
The account record at /companies/<id> is the other view. One company, with each role's slice of it in one place.
You reach an account three ways: click its name in any panel, search for it at /companies, or type the company into the command palette. The page at /companies is a lookup rather than a twelfth ranked list, because ranking the book is what every panel already does and finding one company is what none of them did.
It computes nothing new
This matters more than any single section on the page. Every value here is one company's slice of a ranking that already exists, produced by the same engines the panels run over the same rows. The deal risk is inspectDeals, the same function Deals calls. The health score is inspectBook, the same one Customers calls.
Every tile names the role that produced it. An unattributed number is a claim nobody owns, and this page would be the easiest place in the product to grow a second set of answers that quietly disagree with the panels. If a section here would need a number no panel computes, that number belongs in the panel first.
What each section shows
- The tiles. Stage, open value, deal risk, health, renewal date, last touch and people. Each carries the role or the source it came from. A tile only appears when there is something real behind it, so an account with no opportunity has no risk tile rather than a risk of zero.
- What each role knows. Nine rows, one per role, each with what that role ranks by and what it has to say. A role with nothing says so, and says why. Two or three quiet rows on a working account is normal: crocronjob has nothing until a deal closes, and leadercron has nothing while you are the only person on the account.
- People. Contacts and prospects linked to this account, with their title and last recorded activity. Nothing is inferred; a field your book does not carry is absent rather than guessed.
- What happened. Agent runs and meetings in one order, newest first. A run that failed says so with its error. An entry with no real timestamp is dropped rather than dated today.
How an opportunity finds its account
The CRM import writes accountId onto each opportunity when the export carries an account column, and that link is what the record joins on. A book imported without one falls back to matching the account name, case-insensitively.
An account id that does not match wins over a name that does. Otherwise a renamed account would silently absorb another account's opportunities, which is the kind of error that looks like data and is not.
An empty account is a real state
An account imported four minutes ago has a domain and nothing else. The record says that, per role, rather than rendering a page of zeroes and grey bars that reads like a score of nought instead of an absence of data.
The health engine is the sharpest case. It treats missing adoption and engagement as risk on purpose, which is right on a board where an unmeasured account genuinely should worry a CSM, and wrong here, where it would tell you an account is at risk when nobody measured anything. So a health score appears only for an account there was something to score.