🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

CRM-in-a-Box

by @taylorhou

Bootstrap and manage an open, file-based CRM using the CRM-in-a-Box protocol (contacts, pipeline, interactions as NDJSON). Use when setting up a new CRM for...

Versionv0.1.0
Downloads1,733
TERMINAL
clawhub install crm-in-a-box

πŸ“– About This Skill


name: crm-in-a-box description: Bootstrap and manage an open, file-based CRM using the CRM-in-a-Box protocol (contacts, pipeline, interactions as NDJSON). Use when setting up a new CRM for a company, logging contacts/leads, updating deal stages, or recording interactions β€” all without any SaaS dependency. metadata: { "openclaw": { "emoji": "πŸ“‡" } }

CRM-in-a-Box Skill

An open, agent-native CRM protocol. One directory = one CRM. No vendor lock-in.

Files

  • contacts.ndjson β€” one JSON object per line, each a contact/company record
  • pipeline.ndjson β€” deal/opportunity tracking with stages
  • interactions.ndjson β€” append-only log of emails, calls, notes, meetings
  • config.yaml β€” pipeline stages and labels
  • Bootstrap a New CRM

    Copy the baseline files into a company directory:

    mkdir -p ./mycompany/crm
    cp /path/to/crm-in-a-box/{config.yaml,contacts.ndjson,pipeline.ndjson,interactions.ndjson} ./mycompany/crm/
    

    Or start fresh with empty NDJSON files and the default config.

    Contact Schema

    {
      "id": "c001",
      "name": "Jane Smith",
      "email": "jane@example.com",
      "company": "Acme Corp",
      "phone": "+1-555-0100",
      "stage": "new",
      "labels": ["hot-lead"],
      "notes": "Referred by John.",
      "created_at": "2026-01-01T00:00:00Z"
    }
    

    Pipeline Schema

    {
      "id": "p001",
      "contact_id": "c001",
      "stage": "proposal_sent",
      "deal": "Enterprise License",
      "value": 12000,
      "updated_at": "2026-01-15T00:00:00Z"
    }
    

    Interaction Schema

    {
      "id": "i001",
      "contact_id": "c001",
      "type": "email",
      "summary": "Sent intro email about Denver market sale.",
      "at": "2026-01-15T10:00:00Z"
    }
    

    Pipeline Stages (default)

    new β†’ contacted β†’ meeting_scheduled β†’ proposal_sent β†’ negotiating β†’ won / lost

    Default Labels

    hot-lead, warm-lead, cold-lead, referral, conference, inbound, outbound

    Agent Instructions

  • Log a contact: append a JSON line to contacts.ndjson
  • Update a stage: append an updated entry to pipeline.ndjson (keep old entries β€” append-only)
  • Log an interaction: append to interactions.ndjson
  • Search contacts: grep -i "name" contacts.ndjson | python3 -m json.tool
  • List pipeline: cat pipeline.ndjson | python3 -c "import sys,json; [print(json.dumps(json.loads(l), indent=2)) for l in sys.stdin]"
  • Forks / Verticals

    Fork config.yaml to customize stages and labels for your vertical:

  • pm-crm β€” Property management (tenants, owners, vendors)
  • saas-crm β€” SaaS sales
  • realestate-crm β€” Buyers, sellers, listings
  • recruiting-crm β€” Candidates, jobs, placements

  • *Part of the biz-in-a-box family of open protocols.*