CRM Accounts
The company-centric view of your unified contact directory — every organisation you deal with, with industry, website, and lifecycle stage, deals and activities linked through the same directory as your Customers.
Overview
CRM Accounts lists every company in TotalApp's contact directory — the same underlying store used by Customers and every other contact-facing screen, filtered to records flagged isCompany. There is no separate "accounts" table: creating a company here creates a normal contact record with roles.isCompany = true, and it shows up immediately under the Companies filter on the Customers screen too. Deleting it there removes it here, and vice versa — one record, two entry points.
Contact-Centric, Not a Separate Store
TotalApp deliberately does not keep a separate "CRM Account" table the way some CRMs do. A company and the people who work there are both rows in the same Contact directory — the company row has parentId = null, and each employee/contact at that company has parentId set to the company's own id. Listing "everyone at this company" is just filtering the directory by parentId, not a join across tables.
Fields
Each row shows the company-profile fields that live directly on its contact record:
- Name — the company's name.
- Industry — free-text sector/category (e.g. "Software", "Manufacturing").
- Website — the company's domain.
- Phone — primary phone number.
- Stage — the same four-value lifecycle used across the whole directory: Suspect, Lead, Opportunity, Customer. Change it directly from the dropdown in the table row.
Industry, Website, and Address are optional fields present on every contact record, but only meaningful — and only editable through the UI — on rows with isCompany = true; individual contacts leave them empty.
Adding a Company
Click + Add Account to open the form: Name (required), Industry, Website, Phone, and Address. Saving creates a contact with roles.isCompany = true and roles.isLead = true, lifecycle stage Lead — the same starting state a company gets when it's created from the Add Contact modal's company picker elsewhere in CRM.
Companies Created Elsewhere Show Up Here Too
When you add a new company inline from the Account picker in the Customers screen's Add Contact modal, that company appears in this list immediately — it's the same directory, not an import or a sync step.
Deals and Activities Link to the Same Company Row
A Deal or an Activity can be linked either to a person (contactId) or to a company (accountId) — both fields point into the same contact directory, just at different rows. Dragging a deal linked to a company into a Closed Won stage promotes that company's lifecycle stage to Customer exactly the same way it would for a linked person.
Deleting a Company with Open Deals or Tasks
Deleting a company that has open deals or open tasks/activities shows a cascade-delete warning first. If you proceed, that company's open deals are soft-orphaned (kept, but unlinked) rather than removed, while its linked activities are hard-deleted along with the company record.
Search, Export & Selection
The search box matches against company name and industry. Export CSV downloads the currently filtered list (name, industry, website, phone, stage). Checking rows shows a selected-count bar above the table with bulk delete and a × button to clear the selection — the checkbox shape, table corner rounding, and table-vs-card row layout follow the same List Style setting (Settings → Appearance) used across My Workspace list screens.
AI Assistant
CRM Accounts has a built-in AI Assistant, opened from the tab on the right edge of the screen. It receives the currently filtered account list — name, industry, website, and lifecycle stage — as structured context, and answers in Markdown.
Data Quality
Ask which accounts are missing industry or website information.
Lifecycle Review
Ask which accounts look stuck in an early lifecycle stage (Suspect/Lead).
Industry Mix
Ask for a summary of the industry distribution across your accounts.
Duplicate Detection
Ask it to flag account names that look duplicated or inconsistently formatted.
Checking rows in the table adds an Analyse Selected and Summarize Selected shortcut to the assistant, scoped to just those accounts. Any reply can be saved as a report via Save as Report, and relevant Knowledge Base sources can be attached with Add Knowledge before asking. The assistant's AI backend follows the Writer Engine setting in Settings → Agentic — Ollama and other local/in-browser engines run entirely on your machine, never through TotalApp's servers.