Contacts — User Guide
Who can use Contacts
Your workspace must have the Contacts module installed. Your role must include the relevant permissions (view, create, update, delete, restore, force.delete, assign, export, import as needed).
Without assign, you only see contacts assigned to you.
List
Open Contacts from the sidebar under CRM.
- Search by name, email, phone, company (legacy string), or job title
- Filter by company, assignee, lifecycle (On Boarded Clients / Off Boarded Clients), or toggle My Contacts
- When a contact is linked to a Company, the table shows the linked company name (falls back to the legacy company string)
- KPI cards summarize total contacts, my contacts, unassigned, on boarded / off boarded clients, with email, and created this week
- The table shows the latest note; hover a truncated preview to read the full note
- Users with restore can filter Active / Include deleted / Deleted only, then Restore a soft-deleted contact from the row menu — this trash filter is not the same as lifecycle On/Off Boarded
- Delete permanently (force delete) requires
contacts.force.delete— granted to the workspace owner by default
Create & edit
- Click New contact, or press
Nwhen not typing in a field (opens a side sheet on the list) - Enter name (required) and optional email, phone, job title, lifecycle, and assignee
- Optionally pick a Company (when the Companies module is installed and you can view companies). Selecting a Company links
company_idand syncs the legacy company text to that organization name. Leaving the picker empty keeps any existing free-text company value on edit; clearing a previously linked Company removes the link - When Companies is installed and you have companies.create, use New next to the Company picker to create a company in a dialog — after save, that company is selected automatically
- Save — Create closes the sheet; Create & open / Open full page use the dedicated record routes
Click a contact row to peek in the sheet with Overview, Notes, Follow-ups, and Activity tabs. Use Edit in the sheet or Open full page for portal, billing hub, and other deep work.
Related sales documents
On a contact record page (when the matching module is installed and you have create permission), use:
- New quotation → opens Quotation create with this contact preselected (
?contact=;?company=when a company is linked) - New invoice → same for Invoices
- New payment → same for Payments
You finish the document on that module’s create page (quotations still require an opportunity).
Billing hub & statement
When Invoices and/or Payments are installed and you can view them, the contact record shows a billing summary: invoice count, total invoiced, amount paid, and remaining balance (per currency when needed). Recent invoices, payments, and credit notes (when Credit Notes is installed) appear under related documents.
- View all opens the Invoices or Payments list filtered to this contact (
/invoices?contact=//payments?contact=) - Statement opens a period account statement (default: start of workspace year → today) with line history, opening/closing balance, totals, and PDF download when available
List pages also accept ?contact= and ?company= deep links so you can share a filtered view without searching by name.
Related opportunities, tickets, projects & documents
When those modules are installed and you can view them, the contact record also lists recent opportunities, help desk tickets, projects, and documents linked to this contact. View all opens the module list filtered with ?contact=.
Assignment
Users with assign can set or clear the assignee from the record page or the create/edit form.
Notes & activity
- Notes — free-form notes on the contact
- Activity — timeline of create, update, assignment, note, and delete/restore events
Converting a Lead to a Contact
When your workspace has both Leads and Contacts installed, converting a Lead (from the Lead record page) creates a linked Contact with lifecycle On Boarded Clients. If Companies is also installed and the lead has a company name, convert creates or reuses that Company and links it on the Contact. You can optionally create an Opportunity in the same step when Opportunities is installed. After conversion, the Lead record page shows View contact (and company / opportunity links when applicable).
Follow-ups (1.7.0)
Open a contact record page and use the Follow-ups section:
- Enter a Title and Due at (workspace Timezone, Settings → General), optional notes/assignee — requires
contacts.update - Create follow-up saves it as pending. The contact's Next follow-up field (shown on the record header, table, and list sheet peek) always reflects the earliest pending follow-up
- Reschedule loads a follow-up back into the form so you can change its due date, title, or notes, then Save follow-up
- Complete marks a follow-up done — it drops out of Next follow-up and no longer triggers due/overdue reminders
When Calendar is installed, each contact's next pending follow-up is projected onto the assignee's calendar as a 1-hour event (source Contact); completing or clearing the last pending follow-up removes that projection automatically.
Due / overdue reminders: the assignee (falling back to the contact's assignee) gets an in-app notification when a follow-up's due date arrives or has passed, sent by the same daily crm:send-due-notifications job that runs Lead, Task, and Contract reminders — one notification per follow-up per day.
Import (1.7.0)
Users with import can bulk-load contacts from CSV or XLSX:
- Open Import and download a sample template if needed (CSV or XLSX)
- Upload a file (drag & drop or browse)
- Map spreadsheet columns to contact fields (Name is required; Email, Phone, Company, Job Title, Source, Lifecycle Status, and Assigned To are optional)
- Choose unique fields (Email / Phone) and duplicate behavior (Skip, Update existing, or Keep duplicate)
- Preview counts and validation errors (nothing is written yet)
- Start the import — it runs in the background; watch progress until complete
Update existing also requires the update permission. Unlike Leads, Contact import has no equal-distribute assignment mode — an Assigned To column (matched by user email) sets the assignee directly, or rows default the same way manual create does.
Use Import history to review past imports, download the original file, failed_records.csv, or error_report.csv.
Export (1.7.0)
Users with export can download the current filtered set as CSV or XLSX, including lifecycle status, assignee, creator, and next follow-up.