04 · CRM
The CRM holds contacts and deals. It's where you track the people you do business with and your sales pipeline. Contacts can be linked to a customer (company) — see Customers for the company-side record.
Where to find it
Sidebar → CRM or /crm. Requires the crm feature. CRM pages are
admin-only — they're wrapped in the platform's admin guard.
Entities
There is no separate "Company" record inside the CRM — a contact's
company is either a free-text string or a link to a Customer
(PortalCustomer). Creating a contact and typing a new company name
auto-creates the matching customer record.
Contact
A person, usually associated with a customer/company (but standalone contacts are allowed). Fields: first name, last name, email, phone, job title, company (free-text or linked customer), owner, status, notes, and a type discriminator.
Contact type
Each contact has a type that drives filtering on the contacts list:
| Type | When to pick it |
|---|---|
| 🏢 Customer (default) | Someone who buys from you |
| 🔧 Contractor | Subcontractor / freelancer doing work for you |
| 📦 Vendor | Supplier / hardware vendor |
| 🤝 Partner | Channel partner / referral source |
| Other | Anything else |
The contacts list (/crm) has a chip strip at the top — click any
chip to filter. The chips also drive the colour pill rendered on each
row. Contractor and Vendor contacts are typically the same people who
hold a VENDOR-role login for the contractor / vendor
portal, but the two are not auto-linked — link by
hand on the contact's record when both exist.
Deal
A sales opportunity. Fields: title, value, currency, stage, close date, owner, contact, notes. A deal can optionally be tied to a contact but there's no separate company link.
Layout
The contact list is the CRM landing page. The type chips run along the top, with a status dropdown and a search box below them.
+--------------------------------------------------------+
| CRM. [Import CSV][Settings][Pipeline] |
| [+ New contact] |
+--------------------------------------------------------+
| [All][🏢 Customers][🔧 Contractors][📦 Vendors]... |
| [Status ▾] [Search name, email, company…] |
+--------------------------------------------------------+
| ☐ Name Type Company Email Status Deals |
| ☐ Jane Smith Customer Acme Ltd … LEAD 2 |
| ☐ ... |
+--------------------------------------------------------+
📷 Screenshot placeholder: screenshots/crm-list.png
Select rows with the checkboxes for bulk re-assign (to a new owner) or bulk delete.
Creating a contact
- Click + New contact (or + Add contact from a customer's detail page).
- Enter first name and last name (both required), email, phone, job title.
- Pick an existing Customer (company) from the dropdown, or type a new company name in the Company (freetext) field — typing a new name auto-creates a matching customer.
- Set the type and status.
- Save.
Importing contacts
Bulk import is at CRM → Import CSV (/crm/import), or the
equivalent admin route /admin/crm/import.
Importing contacts (bulk)
- Open
/crm/import. - Upload a CSV. Required columns:
firstname,lastname. Optional:email,phone,company,jobtitle,status. Header names are case-insensitive and several aliases are accepted (e.g.first_name,telephone,organisation,title). - The preview shows the first 10 rows.
- Click Import contacts. Existing contacts are matched by email and updated; new rows are created. Rows missing first or last name are skipped. The result summary reports created / updated / skipped counts.
The company column is stored as free-text on the imported contact;
the bulk importer does not link or auto-create customer records.
Deals (pipeline)
The deal board (/crm/deals) shows one column per stage. Default
stages are LEAD → QUALIFIED → PROPOSAL → NEGOTIATION → WON / LOST.
Each column header shows the deal count and total value; each card
shows title, the linked contact (if any) and value. Click a card to
open the deal. Cards are not drag-and-drop — move a deal between
stages from its detail page or with the bulk stage tool.
When a deal moves to WON, the platform emails the deal owner.
📷 Screenshot placeholder: screenshots/crm-deals.png
Configure stages under CRM → Settings.
Linkage
The contact detail page has tabs:
- Timeline — chronological feed of notes and logged activities
- Deals — deals linked to this contact
- Projects — projects assigned to this contact
- Tickets — helpdesk tickets assigned to this contact
A side panel on the same page has Add note and Log activity forms. The 360°-style aggregation across devices, assets and invoices lives on the Customer detail page, not the contact page — see Customers.
Attachments, notes and activities
The contact detail page carries an attachments card for stashing PDFs and files. Notes are free-text entries; activities have a type (Call / Email / Meeting / Task / Note), a subject and an optional due date, and can be marked complete. Both appear in the Timeline tab.
Common workflows
Onboard a new customer
- Create the customer (company) from Customers → + New customer.
- Add the primary contact — or use + Add contact on the customer page, which creates a CRM contact linked back to that customer.
- Open Helpdesk and create a "Welcome" ticket if you have a kickoff macro.
- Optionally create a project of type "Onboarding".
Find every interaction with a customer
- Open the customer's detail page — it aggregates contacts, projects, RMM devices, assets and tickets in one place.
See also
- Helpdesk — tickets reference CRM customer/contact
- Projects — projects link to a customer
- Customers — the master "customer 360" page
- Admin → CRM settings