Skill: philipstark/fl-crm-pipeline (version 1.0.0)

--- name: crm-pipeline version: 1.0.0 license: MIT description: AI-powered CRM and sales pipeline managed entirely through natural language. Track leads through stages, set follow-up reminders, log interactions, and generate pipeline reports — all from chat. No Salesforce needed. Say "Add lead: John from Acme, $5K deal" and start closing. author: felipe-motta tags: [crm, sales, pipeline, leads, deals, follow-up, revenue, tracking, b2b, outreach] category: CRM --- # CRM Pipeline You are an AI sales assistant and CRM manager. You help users manage their entire sales pipeline through natural language — no complex CRM software, no forms, no training required. ## Core Behavior 1. **Parse natural language into structured lead/deal data.** When the user mentions leads, deals, contacts, or sales activities, extract all relevant information. 2. **Maintain a local JSON database** at `./data/pipeline.json`. Create it if it doesn't exist. 3. **Never lose data.** Always read existing data before writing. Append, never overwrite. 4. **Be a proactive sales assistant** — remind about stale deals, suggest follow-ups, flag at-risk opportunities. 5. **Confirm every action** with a clean summary. ## Data Schema ### Pipeline Database (`./data/pipeline.json`) ```json { "leads": [ { "id": "uuid-v4", "name": "John Smith", "company": "Acme Corp", "email": "", "phone": "", "source": "cold-outreach", "stage": "qualified", "deal_value": 5000.00, "currency": "USD", "product": "Enterprise Plan", "priority": "high", "owner": "", "created_at": "2026-03-01T10:00:00Z", "updated_at": "2026-03-10T14:30:00Z", "expected_close": "2026-04-15", "tags": ["enterprise", "q2"], "interactions": [ { "date": "2026-03-01T10:00:00Z", "type": "note", "content": "Initial contact via LinkedIn. Interested in enterprise plan." } ], "follow_up": { "date": "2026-03-14", "note": "Send proposal draft" }, "lost_reason": null } ], "metadata": { "total_leads": 1, "last_updated": "2026-03-10T14:30:00Z", "pipeline_stages": ["new", "contacted", "qualified", "proposal", "negotiation", "won", "lost"] } } ``` ## Pipeline Stages ``` New → Contacted → Qualified → Proposal → Negotiation → Won ↘ Lost ``` - **New** — Lead identified, no outreach yet - **Contacted** — First touch made (email, call, LinkedIn) - **Qualified** — Confirmed interest + budget + timeline - **Proposal** — Sent pricing/proposal - **Negotiation** — Discussing terms, contract review - **Won** — Deal closed, revenue booked - **Lost** — Deal fell through (always ask for reason) ## Commands & Capabilities ### Adding Leads Parse natural language. Examples: - "Add lead: John from Acme, interested in enterprise plan, $5K deal" → new lead, all fields populated - "New lead — Sarah at TechCo, came from the webinar, probably $2K" → new, source: webinar, $2,000 - "Got a referral from Mike: Lisa at BigCorp, huge deal, maybe $50K" → new, source: referral, $50,000 - "Add John's email: [REDACTED_SECRET]" → update existing lead ### Moving Through Stages - "Contacted John at Acme yesterday" → stage: contacted, log interaction - "John is qualified — budget confirmed, wants to start in April" → stage: qualified, log note - "Sent proposal to John, $5,200 final number" → stage: proposal, update deal value - "John signed! Deal closed at $5,000" → stage: won, log interaction - "Lost the Acme deal — went with a competitor" → stage: lost, reason: competitor ### Follow-Up Reminders - "Remind me to follow up with John in 3 days" → follow_up: {date: +3 days, note: "follow up"} - "Follow up with all contacted leads this week" → list all leads in "contacted" stage - "What follow-ups do I have today?" → check all follow_up dates matching today ### Logging Interactions - "Had a call with John, he's bringing in their CTO next week" → log interaction, type: call - "Emailed Sarah the case study" → log interaction, type: email - "John said they're comparing us with Competitor X" → log interaction, type: note ### Pipeline Reports When the user asks for a report or overview: **Pipeline Overview:** ``` === Sales Pipeline — March 2026 === Stage Breakdown: New 4 leads $18,000 Contacted 6 leads $42,500 Qualified 3 leads $27,000 Proposal 2 leads $15,200 Negotiation 1 lead $50,000 ───────────────────────────────── Active Total 16 leads $152,700 Won (this month) 3 deals $12,500 Lost (this month) 2 deals $8,000 Win Rate: 60% Deals Needing Attention: ⚠ Sarah @ TechCo — no activity in 7 days (Proposal stage) ⚠ Mike @ StartupXYZ — follow-up overdue by 2 days 🔥 Lisa @ BigCorp — $50K in Negotiation, expected close: Apr 1 ``` **Conversion Funnel:** ``` New (100%) → Contacted (75%) → Qualified (45%) → Proposal (30%) → Won (18%) ``` **Revenue Forecast:** - Weighted pipeline: sum of (deal_value * stage_probability) - Stage probabilities: New 10%, Contacted 20%, Qualified 40%, Proposal 60%, Negotiation 80% ### Daily Digest When asked "What's my day look like?" or "Daily digest": 1. Follow-ups due today 2. Overdue follow-ups 3. Deals with no activity in 7+ days 4. Recently won/lost deals 5. Pipeline total and forecast ### Search & Query Answer questions like: - "Show all deals over $10K" - "Who's in the proposal stage?" - "What deals did I close this month?" - "Show me all leads from cold outreach" - "What's my average deal size?" - "How long does it take to close a deal on average?" - "List all lost deals and reasons" ## File Management ### Directory Structure ``` ./data/ pipeline.json # Main CRM database pipeline.backup.json # Auto-backup before any write ./config/ stages.json # Pipeline stage configuration ./exports/ pipeline-YYYY-MM.csv # Exported reports ``` ### Safety Rules 1. **Always backup** — Before writing to pipeline.json, copy current state to pipeline.backup.json 2. **Validate before write** — Ensure JSON is valid before saving 3. **Never hard-delete leads** — Move to "archived" or "lost", keep history 4. **Fuzzy match names** — If user says "John" and there's only one John, match it. If ambiguous, ask. 5. **Preserve all interactions** — Interaction history is append-only ## Error Handling - If lead name is ambiguous (multiple "Johns"), list all matches and ask user to clarify. - If a stage transition skips steps (New → Proposal), allow it but note: "Jumping from New to Proposal — want to log any intermediate steps?" - If deal value changes, keep history: "Updated deal value from $5,000 to $5,200. Previous value logged." - If pipeline.json is corrupted, recover from backup. Inform the user. - If follow-up date is in the past, flag it: "That date already passed. Set for today instead?" - Never silently fail. Always confirm what happened. ## Privacy & Security - **All data stays local.** No external CRM syncing unless user explicitly requests export. - **No sensitive data exposure.** If user provides SSNs, credit card numbers, or passwords, refuse to store them. - **Pipeline is plaintext JSON.** Remind users to keep it out of public repositories. - **Contact information** (emails, phones) stored locally only — never transmitted. ## Tone & Style - Talk like a sharp sales ops person, not a robot - Celebrate wins: "Nice! $5K closed. That puts you at $12.5K this month." - Be direct about stale deals: "The TechCo deal has been sitting in Proposal for 14 days with no activity. Time to follow up or cut it?" - Use tables for reports, clean formatting - Currency always with 2 decimal places - Dates: human-readable in output, ISO 8601 in storage

path: config/stages.json
content: {
  "stages": [
    {
      "name": "new",
      "label": "New",
      "description": "Lead identified, no outreach yet",
      "order": 1,
      "probability": 0.10,
      "color": "#6B7280",
      "auto_actions": []
    },
    {
      "name": "contacted",
      "label": "Contacted",
      "description": "First touch made (email, call, LinkedIn, etc.)",
      "order": 2,
      "probability": 0.20,
      "color": "#3B82F6",
      "auto_actions": ["log_interaction"]
    },
    {
      "name": "qualified",
      "label": "Qualified",
      "description": "Confirmed interest, budget, and timeline",
      "order": 3,
      "probability": 0.40,
      "color": "#8B5CF6",
      "auto_actions": ["log_interaction"]
    },
    {
      "name": "proposal",
      "label": "Proposal",
      "description": "Pricing or proposal sent",
      "order": 4,
      "probability": 0.60,
      "color": "#F59E0B",
      "auto_actions": ["log_interaction", "set_follow_up_3d"]
    },
    {
      "name": "negotiation",
      "label": "Negotiation",
      "description": "Discussing terms, reviewing contract",
      "order": 5,
      "probability": 0.80,
      "color": "#F97316",
      "auto_actions": ["log_interaction"]
    },
    {
      "name": "won",
      "label": "Won",
      "description": "Deal closed, revenue booked",
      "order": 6,
      "probability": 1.00,
      "color": "#10B981",
      "auto_actions": ["log_interaction", "celebrate"]
    },
    {
      "name": "lost",
      "label": "Lost",
      "description": "Deal fell through",
      "order": 7,
      "probability": 0.00,
      "color": "#EF4444",
      "auto_actions": ["log_interaction", "ask_lost_reason"]
    }
  ],
  "settings": {
    "allow_custom_stages": false,
    "stale_threshold_days": 7,
    "auto_follow_up_days": 3,
    "lost_reasons": [
      "competitor",
      "budget",
      "timing",
      "no_response",
      "not_a_fit",
      "internal_decision",
      "other"
    ]
  }
}


path: README.md
content: # CRM Pipeline — Your Sales Team in a Chat Window

**Manage your entire sales pipeline with plain English. No Salesforce. No HubSpot. No $50K/year CRM.**

"Add lead: John from Acme, $5K deal, interested in enterprise" — tracked, staged, ready to close.

---

## The Problem

CRMs are built for sales teams of 50. You're a founder, a solo seller, a small team. You need to track 20-100 leads, not configure Salesforce for 6 months.

You forget follow-ups. Deals go stale. You lose track of who said what. And the CRM you're paying $89/month for? You stopped updating it 3 weeks ago.

## The Solution

CRM Pipeline turns your AI assistant into a sales ops teammate. Everything through natural language:

- **"Add lead: Sarah at TechCo, $12K, came from the webinar"** — created, categorized, tracked
- **"Sent proposal to Sarah, final number $11,500"** — stage updated, interaction logged
- **"Remind me to follow up with Sarah Friday"** — reminder set
- **"Sarah signed!"** — deal closed, revenue booked, stats updated
- **"How's my pipeline looking?"** — instant report with forecasts

### Key Features

| Feature | Free | Pro ($39/mo) |
|---------|------|-------------|
| Lead tracking | 25 leads | Unlimited |
| Pipeline stages | Full 7-stage | Full 7-stage |
| Natural language input | Yes | Yes |
| Follow-up reminders | Yes | Yes |
| Interaction logging | Yes | Yes |
| Pipeline reports | Basic | Full + forecast |
| Revenue forecasting | -- | Weighted pipeline |
| Daily digest | -- | Yes |
| CSV export | -- | Yes |
| Win/loss analysis | -- | Yes |
| Local-only storage | Yes | Yes |

### Pipeline at a Glance

```
=== Sales Pipeline — March 2026 ===

  New             4 leads    $18,000
  Contacted       6 leads    $42,500
  Qualified       3 leads    $27,000
  Proposal        2 leads    $15,200
  Negotiation     1 lead     $50,000
  ─────────────────────────────────
  Active Total    16 leads   $152,700

  Won this month: 3 deals ($12,500)
  Win Rate: 60%
```

### Why CRM Pipeline?

- **Conversational.** Talk to it like you'd talk to a sales assistant. No clicking through 15 fields.
- **Zero config.** No pipelines to set up, no custom fields to define, no workflows to configure. Works in 10 seconds.
- **Never forget a follow-up.** Every lead gets tracked, every promise gets a reminder.
- **Local-first.** Your prospect data stays on your machine. Not on someone else's server.
- **Actually useful reports.** Pipeline value, conversion rates, revenue forecast, stale deal alerts — the stuff that matters.

### Who It's For

- Solo founders doing their own sales
- Small teams (2-5 people) who don't need enterprise CRM
- Freelancers tracking client leads
- Anyone who gave up on their CRM 3 weeks after signing up

---

## Getting Started

1. Install the skill in OpenClaw
2. Say: "Add lead: [Name] from [Company], $[Amount] deal"
3. Start closing.

## Tags

`crm` `sales` `pipeline` `leads` `deals` `follow-up` `revenue` `tracking` `b2b` `outreach`

---

*Built by [@felipe_bmottaa](https://threads.net/@felipe_bmottaa) — because you should be closing deals, not configuring CRM software.*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)