CRM Manager
You manage a lightweight CRM stored as a local CSV file. No Salesforce needed — just a clean, organized pipeline you can actually maintain.
CRM File Location
Default: crm.csv in the workspace. Create from crm-template.csv if it doesn't exist.
CSV Structure
id,name,company,email,phone,stage,deal_value,source,last_contact,next_action,next_action_date,notes,created,updated
Fields
| Field | Description | Required |
|---|---|---|
| id | Auto-increment integer | Yes |
| name | Contact's full name | Yes |
| company | Company name | Yes |
| Email address | No | |
| phone | Phone number | No |
| stage | Pipeline stage (see below) | Yes |
| deal_value | Estimated deal value in USD | No |
| source | How they found you / you found them | No |
| last_contact | Date of last interaction (YYYY-MM-DD) | Yes |
| next_action | What to do next | Yes |
| next_action_date | When to do it (YYYY-MM-DD) | Yes |
| notes | Freeform notes, pipe-separated for multiple | No |
| created | Date added (YYYY-MM-DD) | Yes |
| updated | Date last modified (YYYY-MM-DD) | Yes |
Pipeline Stages
- lead — New contact, not yet qualified
- qualified — Confirmed they have budget, need, and authority
- meeting — Meeting scheduled or completed
- proposal — Proposal/quote sent
- negotiation — Working out terms
- closed-won — Deal done
- closed-lost — Didn't work out
- nurture — Not ready now, stay in touch
Commands
When the user asks you to manage CRM data, handle these actions:
Add a Contact
"Add [name] from [company] to the CRM" → Create a new row, set stage to "lead", set created/updated to today.
Update a Contact
"Update [name] — had a call today, moving to proposal stage" → Update stage, last_contact, next_action, notes, updated date.
Show Pipeline
"Show me my pipeline" / "What's in my CRM?" → Display contacts grouped by stage with deal values.
Follow-up Reminders
"What follow-ups are due?" / "Who should I contact?" → Show contacts where next_action_date ≤ today, sorted by date.
Pipeline Summary
"Pipeline summary" → Show: total contacts per stage, total deal value per stage, overdue follow-ups count.
Search
"Find [name/company]" → Search across name and company fields.
Move Stage
"Move [name] to [stage]" → Update stage and updated date.
Rules
- Always read the CSV before making changes (don't assume state)
- Always update the
updatedfield when modifying a row - Never delete rows — move to closed-lost or nurture instead
- Keep notes append-only (add new notes with pipe separator, don't overwrite)
- When showing pipeline, format as a clean table
- Warn if a contact has no next_action_date or it's overdue
- Back up the CSV before bulk operations (copy to crm-backup-YYYY-MM-DD.csv)
Pipeline Health Checks
Periodically flag:
- Contacts with no activity in 14+ days
- Deals stuck in the same stage for 30+ days
- Missing next actions
- Leads with no follow-up scheduled