{"skill":{"slug":"lead-gen-crm","displayName":"Lead Gen + CRM Pipeline","summary":"End-to-end lead generation and CRM pipeline automation for OpenClaw agents. Discover leads from web searches and directories, enrich with contact data, score...","description":"---\nname: lead-gen-crm\ndescription: \"End-to-end lead generation and CRM pipeline automation for OpenClaw agents. Discover leads from web searches and directories, enrich with contact data, score and qualify leads, push to CRM (HubSpot, Pipedrive, Zoho), and run automated email outreach sequences with follow-ups. Use when: (1) finding new leads or prospects, (2) enriching lead data with emails and company info, (3) pushing leads to a CRM, (4) setting up email outreach campaigns, (5) scoring or qualifying leads, (6) managing a sales pipeline, or (7) automating follow-up sequences.\"\n---\n\n# Lead Gen + CRM Pipeline\n\nFull lead generation pipeline — from discovery to CRM to outreach. Find prospects, enrich their data, qualify them, push to your CRM, and automate follow-up sequences.\n\n## Setup\n\n### Dependencies\n\n```bash\npip3 install requests\n```\n\n### API Keys (configure in `config.json`)\n\n- **Brave Search API** — lead discovery (already configured if web_search works)\n- **Hunter.io** — email finding/verification (`HUNTER_API_KEY`, free 25 searches/mo)\n- **HubSpot** — CRM integration (`HUBSPOT_API_KEY`)\n- **Pipedrive** — CRM integration (`PIPEDRIVE_API_KEY` + `PIPEDRIVE_DOMAIN`)\n- **Zoho** — CRM integration (`ZOHO_ACCESS_TOKEN`)\n- **SendGrid or SMTP** — outreach emails (`SENDGRID_API_KEY` or SMTP config)\n\nNot all are required — use what fits your stack.\n\n### Workspace\n\n```\nlead-gen/\n├── config.json           # API keys, CRM selection, scoring rules\n├── leads/                # Lead database (JSON files)\n│   ├── raw/              # Newly discovered leads\n│   ├── enriched/         # Leads with contact data\n│   ├── qualified/        # Scored and qualified\n│   └── archived/         # Closed/rejected\n├── campaigns/            # Outreach campaign configs\n├── templates/            # Email templates\n└── reports/              # Pipeline reports\n```\n\nRun `scripts/init-workspace.sh` to create this structure.\n\n## Core Workflows\n\n### 1. Lead Discovery\n\nFind leads matching your ideal customer profile:\n\n```bash\nscripts/discover-leads.sh --query \"ai agency owner\" --count 20\nscripts/discover-leads.sh --query \"shopify store owner\" --industry ecommerce --location \"United States\"\nscripts/discover-leads.sh --directory yelp --category \"marketing agencies\" --location \"Los Angeles\"\n```\n\nDiscovery sources:\n- **Brave Search** — find companies/people matching criteria\n- **Web scraping** — extract contact info from search results\n- **Directory parsing** — structured business directories\n\nOutput: raw lead JSON files in `leads/raw/`.\n\n### 2. Lead Enrichment\n\nAdd contact data and company info to raw leads:\n\n```bash\nscripts/enrich-lead.sh <lead-id>\nscripts/enrich-leads.sh --batch raw    # Enrich all raw leads\n```\n\nEnrichment adds:\n- **Email addresses** — via Hunter.io or pattern matching\n- **Company info** — website, size, industry, tech stack\n- **Social profiles** — LinkedIn, Twitter handles\n- **Domain authority** — basic SEO metrics\n\n### 3. Lead Scoring\n\nScore leads based on configurable criteria:\n\n```bash\nscripts/score-leads.sh                  # Score all enriched leads\nscripts/score-leads.sh --threshold 70   # Only qualify leads scoring 70+\n```\n\nDefault scoring rubric (customizable in `config.json`):\n- **Company size fit** (0-25) — matches your target\n- **Industry match** (0-25) — in your target verticals\n- **Email available** (0-20) — can reach them\n- **Web presence** (0-15) — active website, social profiles\n- **Tech signals** (0-15) — uses relevant technology\n\nLeads scoring above threshold move to `leads/qualified/`.\n\n### 4. CRM Integration\n\nPush qualified leads to your CRM:\n\n```bash\nscripts/push-to-crm.sh <lead-id>\nscripts/push-to-crm.sh --batch qualified   # Push all qualified leads\nscripts/push-to-crm.sh --crm hubspot       # Override default CRM\n```\n\nSupported CRMs:\n- **HubSpot** — creates contact + deal, sets pipeline stage\n- **Pipedrive** — creates person + deal\n- **Zoho** — creates lead record\n- **CSV export** — fallback for any CRM via import\n\nSee `references/crm-setup.md` for per-CRM configuration.\n\n### 5. Email Outreach\n\nRun automated outreach campaigns with follow-ups:\n\n```bash\nscripts/create-campaign.sh --name \"q1-outreach\" --template cold-intro --leads qualified\nscripts/send-campaign.sh --campaign \"q1-outreach\" --dry-run    # Preview first\nscripts/send-campaign.sh --campaign \"q1-outreach\"              # Send for real\n```\n\nCampaign features:\n- **Templates with variables** — personalized per lead\n- **Multi-step sequences** — initial + 2-3 follow-ups\n- **Delay between steps** — configurable (default 3 days)\n- **Tracking** — opens, replies, bounces (via SendGrid)\n- **Auto-pause** — stops sequence when lead replies\n- **Human approval** — requires explicit approval before sending\n\n**Critical: Never send without user approval.** `--dry-run` always first.\n\n### 6. Pipeline Reports\n\n```bash\nscripts/pipeline-report.sh                 # Current pipeline summary\nscripts/pipeline-report.sh --weekly        # Weekly activity report\nscripts/pipeline-report.sh --conversion    # Conversion funnel metrics\n```\n\n## Email Templates\n\nStore in `templates/` as JSON:\n\n```json\n{\n  \"name\": \"cold-intro\",\n  \"subject\": \"Quick question about {company_name}\",\n  \"body\": \"Hi {first_name},\\n\\nI noticed {company_name} is {personalization_hook}.\\n\\nWe help companies like yours {value_prop}.\\n\\nWould you be open to a quick chat this week?\\n\\nBest,\\n{sender_name}\",\n  \"follow_ups\": [\n    {\n      \"delay_days\": 3,\n      \"subject\": \"Re: Quick question about {company_name}\",\n      \"body\": \"Hi {first_name},\\n\\nJust following up on my previous note. {follow_up_hook}\\n\\nHappy to share more details if helpful.\\n\\nBest,\\n{sender_name}\"\n    },\n    {\n      \"delay_days\": 7,\n      \"subject\": \"Last note from me\",\n      \"body\": \"Hi {first_name},\\n\\nDon't want to be a pest — just one last check. If {value_prop_short} isn't a priority right now, no worries at all.\\n\\nIf timing changes, I'm here.\\n\\nBest,\\n{sender_name}\"\n    }\n  ]\n}\n```\n\n## Safety & Compliance\n\n- **CAN-SPAM / GDPR** — always include unsubscribe option\n- **Rate limiting** — max 50 emails/day by default (configurable)\n- **Bounce handling** — auto-remove bounced addresses\n- **Never scrape emails from personal pages** — only business contacts\n- **Always dry-run first** — no outreach without human review\n\n## Cron Integration\n\n- **Daily discovery** — run lead searches on schedule\n- **Batch enrichment** — enrich new raw leads nightly\n- **Follow-up sends** — check and send due follow-ups\n- **Weekly pipeline report** — summarize funnel health\n\n## References\n\n- `references/crm-setup.md` — Setup guides for HubSpot, Pipedrive, Zoho\n- `references/email-best-practices.md` — Deliverability, compliance, templates\n- `references/scoring-customization.md` — How to tune the scoring model\n","tags":{"crm":"1.0.0","hubspot":"1.0.0","latest":"1.0.0","lead-gen":"1.0.0","pipedrive":"1.0.0","sales":"1.0.0"},"stats":{"comments":0,"downloads":252,"installsAllTime":0,"installsCurrent":0,"stars":1,"versions":1},"createdAt":1771912533369,"updatedAt":1778491624313},"latestVersion":{"version":"1.0.0","createdAt":1771912533369,"changelog":"Initial release: lead discovery, enrichment, scoring, CRM integration, outreach","license":null},"metadata":null,"owner":{"handle":"reighlan","userId":"s176t3enhma27126tjq358btsx884rys","displayName":"Tyler Hill","image":"https://avatars.githubusercontent.com/u/5706227?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780089731365}}