docs / crm-basics
CRM basics
The CRM niiko's own sales team runs on today. A lead Miira qualifies lands here as a client, with its history in one record — deals move through a pipeline, follow-ups get a due date, and nothing gets typed twice.
the lifecycle
Governed, not typed by hand.
// A client's stage only ever moves through a legal transition — never a free-text field.
Lead
A new contact enters the CRM — from Miira's handoff, a manual entry, or an import.
Qualified
The lead is worth pursuing. The badge changes; nothing else about the record is re-entered.
Client
The relationship is active. Deals and activities stay attached.
Churned
The relationship ended. The record isn't deleted — it stays, with its history intact.
contacts
The record starts full, not empty.
// The lead Miira qualified is already a client here, with the whole thread attached.
- Every contact has a lifecycle stage, an explicit owner (never derived), and a full activity history
- A client and the lead Miira qualified are the same record — never a copy you re-enter
- Dynamic fields let you extend a record without breaking the shared one underneath
follow-ups
A task that quietly disappears is a lost deal.
// Notes, calls and tasks — logged against the client, not a chat history.
- Notes and call logs attach to the client record — not to whoever remembers to write them down
- Tasks carry a due date, so a follow-up has a deadline instead of just a good intention
the pipeline
A board for the deals themselves.
// Deals are tracked separately from the client's own lifecycle.
- Every deal carries an amount, a currency and an expected close date
- Won and lost are terminal stages — losing a deal asks for a reason, so the pattern isn't lost with it
- A deal's stage is tracked independently from the client's lead/qualified/client/churned lifecycle
import
Bring your list in — honestly.
// A spreadsheet full of leads doesn't have to become a spreadsheet full of duplicates.
- Import leads and clients straight from CSV or Excel
- Possible duplicates are suggested, never merged automatically — a human confirms the merge
- Imported contacts default to no marketing consent — you decide who gets opted in, not the importer
saved views
A saved view is your audience.
// A view is a live query, so your audience is never out of date.
Save a combination of filters and that view is the audience — there's no separate "segment" object that quietly drifts out of sync. When the underlying records change, the view reflects it, because it's a query, not a frozen list.
What this guide doesn’t cover
The CRM is live, but it isn't finished. What this guide doesn't cover, because it isn't the current UI:
- A full 360° client view. Dynamic fields and a cross-module timeline are designed — coming with a later wave.
- Custom pipeline stages or drag-and-drop on the kanban. Deals move through stages today; making the stages themselves editable is next.
- AI scoring inside the CRM. Miira scores leads on WhatsApp; the CRM doesn't add a score of its own, on purpose.
- Email marketing or automated sequences. Not a goal for this module.
- Pricing or signup. There's nothing to pay for yet.
Last updated: 2026-07-15.