Stories A promise's telling
CRM, chapter two
Open a group and see who to talk to next, why, and what has worked for people like them — learned from every interaction, on one light screen, for us and for every client.
The seven beats
- World
- Seven groups keep their customers in one record, each forgetting at its own fade-rate. The record writes every stage move down and never adds them up.
- Cast
- The customer at the centre; the operators of each group and of its clients; the agency above them; analyst, journey-runner and onboarder, who draft, watch and hand work back.
- Knock
- The operator, 2026-09-28: the CRM is the core product; the customer is at the centre of everything; track everything, optimise on the interactions, and keep it extremely light, beautiful and usable.
- Want
- A record that learns, across people, which touch moves someone forward, and hands the operator the next person and the next word on one light screen.
- Way
- Signals already arrive. A stage move marks the touch before it; silence fades it; the hourly sync adds the moves up per group into the snapshot; the queue, the funnel, the pulse and health read the snapshot; a draft's outcome marks the path that wrote it.
- Turn
- The first morning the list is in a different order — the top row is someone who wrote nothing yesterday, with a one-line reason and a two-line draft.
- Lesson
- Open — learned when the order of the list is shown to have moved people who would otherwise have gone quiet.
This story carries its beats but no written telling yet — text/crm-learns.md has no “The story” section.
Connected to
Every link here was checked against the repo when the page was built. 3 names the story uses could not be found and are shown without a link.
People
- the customer
- the operator of a group
- a client's team
- the agency above them
Agents
Each opens a chat with that agent.
Skills
Each opens the skill's page.
- planning
- promise-make
- storytelling
Paths
The flows this story walks — trigger → step → step.
- trigger: a stage move → tool: mark the path from the last touch → delay: the group's fade window → tool: fade the touches followed by nothing
- trigger: the operator opens the people view → tool: the queue from the snapshot → human: pick a person → agent: agent:run drafts from crm:context → human: approve → tool: entity:reply
- trigger: the hourly sync → tool: compute funnel, pulse and health per group → tool: write the snapshot
Tools
Receivers and scripts it signals.
- event:track
- entity:reply
- crm:context
- agent:run
- world:route
- segment:preview
- analytics:revenue
- D1 stage_transition
- one.ie/web/scripts/route-budget.mjs
- one.ie/web/scripts/crm-design-probe.mjs
Promises
What it holds; a told promise opens its own story.
Events
Every event is a signal; each names the path it marks or warns.
- VERIFY: the stage-move writer (world-receivers.ts inserts stage_transition) · from a rule, an agent or a person the touch before the move → the stage it moved to (mark) tags: crm, lifecycle
- entity:reply · from the operator, or an agent with a person's approval draft → outcome (mark on a reply, booking or sale; fade on silence) tags: crm, messages
- event:track · from the page the person is on touch → channel → campaign tags: crm, activity
Transactions
- a sale after a draft marks the path that drafted it
- each draft spends group credit on one model call
Analytics
- stage-to-stage conversion and time in stage per group (deliverable 4)
- reply time, response rate, stage speed per group (deliverable 9)
- health with its inputs (deliverable 8)
- load time and bytes per CRM route (deliverable 11)