Pilot Sales Pipeline Setup
v1.0.0Deploy a sales pipeline with 4 agents that automate lead prospecting, qualification, outreach, and CRM synchronization. Use this skill when: 1. User wants to...
Sales Pipeline Setup
Deploy 4 agents that automate the full sales funnel from lead discovery to CRM sync.
Roles
| Role | Hostname | Skills | Purpose |
|---|---|---|---|
| prospector | <prefix>-prospector | pilot-discover, pilot-stream-data, pilot-metrics | Finds and scores leads from web and inbound sources |
| qualifier | <prefix>-qualifier | pilot-event-filter, pilot-task-router, pilot-dataset | Evaluates leads against ICP, enriches, categorizes by tier |
| outreach | <prefix>-outreach | pilot-email-bridge, pilot-cron, pilot-receipt | Sends personalized email sequences, tracks engagement |
| crm-sync | <prefix>-crm-sync | pilot-webhook-bridge, pilot-audit-log, pilot-slack-bridge | Syncs activity to CRM, maintains deal stages, reports forecasts |
Setup Procedure
Step 1: Ask the user which role this agent should play and what prefix to use.
Step 2: Install the skills for the chosen role:
# prospector:
clawhub install pilot-discover pilot-stream-data pilot-metrics
# qualifier:
clawhub install pilot-event-filter pilot-task-router pilot-dataset
# outreach:
clawhub install pilot-email-bridge pilot-cron pilot-receipt
# crm-sync:
clawhub install pilot-webhook-bridge pilot-audit-log pilot-slack-bridge
Step 3: Set the hostname:
pilotctl --json set-hostname <prefix>-<role>
Step 4: Write the setup manifest:
mkdir -p ~/.pilot/setups
cat > ~/.pilot/setups/sales-pipeline.json << 'MANIFEST'
<USE ROLE TEMPLATE BELOW>
MANIFEST
Step 5: Tell the user to initiate handshakes with direct communication peers.
Manifest Templates Per Role
prospector
{"setup":"sales-pipeline","setup_name":"Sales Pipeline","role":"prospector","role_name":"Lead Prospector","hostname":"<prefix>-prospector","description":"Identifies potential leads from web scraping, social signals, and inbound forms. Scores leads by fit.","skills":{"pilot-discover":"Scan web sources, LinkedIn, and inbound forms for prospect signals.","pilot-stream-data":"Stream raw lead data to qualifier in real time.","pilot-metrics":"Track lead volume, source conversion rates, and fit score distribution."},"peers":[{"role":"qualifier","hostname":"<prefix>-qualifier","description":"Receives raw leads for qualification"}],"data_flows":[{"direction":"send","peer":"<prefix>-qualifier","port":1002,"topic":"raw-lead","description":"Raw leads with fit scores"}],"handshakes_needed":["<prefix>-qualifier"]}
qualifier
{"setup":"sales-pipeline","setup_name":"Sales Pipeline","role":"qualifier","role_name":"Lead Qualifier","hostname":"<prefix>-qualifier","description":"Evaluates leads against ICP criteria, enriches with firmographic data, categorizes by tier.","skills":{"pilot-event-filter":"Filter leads below score threshold, deduplicate.","pilot-task-router":"Route hot leads to outreach immediately, warm leads on delay.","pilot-dataset":"Store enrichment data — firmographics, technographics, intent signals."},"peers":[{"role":"prospector","hostname":"<prefix>-prospector","description":"Sends raw leads"},{"role":"outreach","hostname":"<prefix>-outreach","description":"Receives qualified leads"}],"data_flows":[{"direction":"receive","peer":"<prefix>-prospector","port":1002,"topic":"raw-lead","description":"Raw leads with fit scores"},{"direction":"send","peer":"<prefix>-outreach","port":1002,"topic":"qualified-lead","description":"Qualified leads with tier and enrichment"}],"handshakes_needed":["<prefix>-prospector","<prefix>-outreach"]}
outreach
{"setup":"sales-pipeline","setup_name":"Sales Pipeline","role":"outreach","role_name":"Outreach Agent","hostname":"<prefix>-outreach","description":"Generates personalized email sequences, tracks engagement, handles follow-ups.","skills":{"pilot-email-bridge":"Send personalized emails, track opens and clicks.","pilot-cron":"Schedule follow-up sequences on cadence.","pilot-receipt":"Confirm delivery and track engagement receipts."},"peers":[{"role":"qualifier","hostname":"<prefix>-qualifier","description":"Sends qualified leads"},{"role":"crm-sync","hostname":"<prefix>-crm-sync","description":"Receives engagement events"}],"data_flows":[{"direction":"receive","peer":"<prefix>-qualifier","port":1002,"topic":"qualified-lead","description":"Qualified leads with tier and enrichment"},{"direction":"send","peer":"<prefix>-crm-sync","port":1002,"topic":"engagement-event","description":"Engagement events — opens, replies, meetings"}],"handshakes_needed":["<prefix>-qualifier","<prefix>-crm-sync"]}
crm-sync
{"setup":"sales-pipeline","setup_name":"Sales Pipeline","role":"crm-sync","role_name":"CRM Sync Agent","hostname":"<prefix>-crm-sync","description":"Syncs all pipeline activity to CRM via webhook, maintains deal stages, reports forecasts.","skills":{"pilot-webhook-bridge":"Push deal updates and stage changes to CRM via webhook.","pilot-audit-log":"Log all pipeline activity for compliance and replay.","pilot-slack-bridge":"Post forecast summaries and deal alerts to Slack."},"peers":[{"role":"outreach","hostname":"<prefix>-outreach","description":"Sends engagement events"}],"data_flows":[{"direction":"receive","peer":"<prefix>-outreach","port":1002,"topic":"engagement-event","description":"Engagement events — opens, replies, meetings"},{"direction":"send","peer":"external","port":443,"topic":"crm-update","description":"CRM updates and forecast reports"}],"handshakes_needed":["<prefix>-outreach"]}
Data Flows
prospector -> qualifier: raw-lead events (port 1002)qualifier -> outreach: qualified-lead events (port 1002)outreach -> crm-sync: engagement-event events (port 1002)crm-sync -> external: CRM updates via webhook (port 443)
Handshakes
# prospector <-> qualifier:
pilotctl --json handshake <prefix>-qualifier "setup: sales-pipeline"
pilotctl --json handshake <prefix>-prospector "setup: sales-pipeline"
# qualifier <-> outreach:
pilotctl --json handshake <prefix>-outreach "setup: sales-pipeline"
pilotctl --json handshake <prefix>-qualifier "setup: sales-pipeline"
# outreach <-> crm-sync:
pilotctl --json handshake <prefix>-crm-sync "setup: sales-pipeline"
pilotctl --json handshake <prefix>-outreach "setup: sales-pipeline"
Workflow Example
# On qualifier — subscribe to raw leads:
pilotctl --json subscribe <prefix>-prospector raw-lead
# On outreach — subscribe to qualified leads:
pilotctl --json subscribe <prefix>-qualifier qualified-lead
# On crm-sync — subscribe to engagement events:
pilotctl --json subscribe <prefix>-outreach engagement-event
# On prospector — publish a lead:
pilotctl --json publish <prefix>-qualifier raw-lead '{"company":"Initech","source":"linkedin","fit_score":82}'
Dependencies
Requires pilot-protocol skill, pilotctl binary, clawhub binary, and a running daemon.
Version tags
latest
Runtime requirements
Binspilotctl, clawhub
