pipeline-analytics
Generate interactive analytics dashboards from CRM data. Use when asked to "show pipeline stats", "create a report", "analyze leads", "show conversion rates", "build a dashboard", "visualize outreach data", "funnel analysis", or any data visualization request from DuckDB workspace data.
Best use case
pipeline-analytics is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Generate interactive analytics dashboards from CRM data. Use when asked to "show pipeline stats", "create a report", "analyze leads", "show conversion rates", "build a dashboard", "visualize outreach data", "funnel analysis", or any data visualization request from DuckDB workspace data.
Teams using pipeline-analytics should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/ironclaw-pipeline-analytics/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How pipeline-analytics Compares
| Feature / Agent | pipeline-analytics | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Generate interactive analytics dashboards from CRM data. Use when asked to "show pipeline stats", "create a report", "analyze leads", "show conversion rates", "build a dashboard", "visualize outreach data", "funnel analysis", or any data visualization request from DuckDB workspace data.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agent for Cold Email Generation
Discover AI agent skills for cold email generation, outreach copy, lead personalization, CRM support, and sales-adjacent messaging workflows.
Best AI Agents for Marketing
A curated list of the best AI agents and skills for marketing teams focused on SEO, content systems, outreach, and campaign execution.
SKILL.md Source
# Pipeline Analytics — NL → SQL → Interactive Charts
Transform natural language questions into DuckDB queries and render results as interactive Recharts dashboards inline in chat.
## Workflow
```
User asks question in plain English
→ Translate to DuckDB SQL against workspace pivot views (v_*)
→ Execute query
→ Format results as report-json
→ Render as interactive Recharts components
```
## DuckDB Query Patterns
### Discovery — What objects exist?
```sql
-- List all objects and their entry counts
SELECT o.name, o.display_name, COUNT(e.id) as entries
FROM objects o
LEFT JOIN entries e ON e.object_id = o.id
GROUP BY o.name, o.display_name
ORDER BY entries DESC;
-- List fields for an object
SELECT f.name, f.field_type, f.display_name
FROM fields f
JOIN objects o ON f.object_id = o.id
WHERE o.name = 'leads'
ORDER BY f.position;
-- Available pivot views
SELECT table_name FROM information_schema.tables
WHERE table_name LIKE 'v_%';
```
### Common Analytics Queries
#### Pipeline Funnel
```sql
SELECT "Status", COUNT(*) as count
FROM v_leads
GROUP BY "Status"
ORDER BY CASE "Status"
WHEN 'New' THEN 1
WHEN 'Contacted' THEN 2
WHEN 'Qualified' THEN 3
WHEN 'Demo Scheduled' THEN 4
WHEN 'Proposal' THEN 5
WHEN 'Closed Won' THEN 6
WHEN 'Closed Lost' THEN 7
ELSE 99
END;
```
#### Outreach Activity Over Time
```sql
SELECT DATE_TRUNC('week', "Last Outreach"::DATE) as week,
"Outreach Channel",
COUNT(*) as messages_sent
FROM v_leads
WHERE "Last Outreach" IS NOT NULL
GROUP BY week, "Outreach Channel"
ORDER BY week;
```
#### Conversion Rates by Source
```sql
SELECT "Source",
COUNT(*) as total,
COUNT(*) FILTER (WHERE "Status" = 'Qualified') as qualified,
COUNT(*) FILTER (WHERE "Status" IN ('Closed Won', 'Converted')) as converted,
ROUND(100.0 * COUNT(*) FILTER (WHERE "Status" = 'Qualified') / COUNT(*), 1) as qual_rate,
ROUND(100.0 * COUNT(*) FILTER (WHERE "Status" IN ('Closed Won', 'Converted')) / COUNT(*), 1) as conv_rate
FROM v_leads
GROUP BY "Source"
ORDER BY total DESC;
```
#### Reply Rate Analysis
```sql
SELECT "Outreach Channel",
COUNT(*) as sent,
COUNT(*) FILTER (WHERE "Reply Received" = true) as replied,
ROUND(100.0 * COUNT(*) FILTER (WHERE "Reply Received" = true) / COUNT(*), 1) as reply_rate
FROM v_leads
WHERE "Outreach Status" IS NOT NULL
GROUP BY "Outreach Channel";
```
#### Time-to-Convert
```sql
SELECT "Source",
AVG(DATEDIFF('day', created_at, "Converted At"::DATE)) as avg_days_to_convert,
MEDIAN(DATEDIFF('day', created_at, "Converted At"::DATE)) as median_days
FROM v_leads
WHERE "Status" = 'Converted' AND "Converted At" IS NOT NULL
GROUP BY "Source";
```
## Report-JSON Format
Generate Recharts-compatible report cards:
```json
{
"type": "report",
"title": "Pipeline Analytics — February 2026",
"generated_at": "2026-02-17T14:30:00Z",
"panels": [
{
"title": "Pipeline Funnel",
"type": "funnel",
"data": [
{"name": "New Leads", "value": 200},
{"name": "Contacted", "value": 145},
{"name": "Qualified", "value": 67},
{"name": "Demo Scheduled", "value": 31},
{"name": "Closed Won", "value": 13}
]
},
{
"title": "Outreach Activity",
"type": "area",
"xKey": "week",
"series": [
{"key": "linkedin", "name": "LinkedIn", "color": "#0A66C2"},
{"key": "email", "name": "Email", "color": "#EA4335"}
],
"data": [
{"week": "Feb 3", "linkedin": 25, "email": 40},
{"week": "Feb 10", "linkedin": 30, "email": 35}
]
},
{
"title": "Lead Source Breakdown",
"type": "donut",
"data": [
{"name": "LinkedIn Scrape", "value": 95, "color": "#0A66C2"},
{"name": "YC Directory", "value": 45, "color": "#FF6600"},
{"name": "Referral", "value": 30, "color": "#10B981"},
{"name": "Inbound", "value": 20, "color": "#8B5CF6"}
]
},
{
"title": "Reply Rates by Channel",
"type": "bar",
"xKey": "channel",
"series": [{"key": "rate", "name": "Reply Rate %", "color": "#3B82F6"}],
"data": [
{"channel": "LinkedIn", "rate": 32},
{"channel": "Email", "rate": 18},
{"channel": "Multi-Channel", "rate": 41}
]
}
]
}
```
## Chart Types Available
| Type | Use Case | Recharts Component |
|------|----------|-------------------|
| `bar` | Comparisons, categories | BarChart |
| `line` | Trends over time | LineChart |
| `area` | Volume over time | AreaChart |
| `pie` | Distribution (single level) | PieChart |
| `donut` | Distribution (with center metric) | PieChart (innerRadius) |
| `funnel` | Stage progression | FunnelChart |
| `scatter` | Correlation (2 variables) | ScatterChart |
| `radar` | Multi-dimension comparison | RadarChart |
## Pre-Built Report Templates
### 1. Pipeline Overview
- Funnel: Lead → Contacted → Qualified → Demo → Closed
- Donut: Lead source breakdown
- Number cards: Total leads, conversion rate, avg deal size
### 2. Outreach Performance
- Area: Messages sent over time (by channel)
- Bar: Reply rates by channel
- Line: Conversion trend week-over-week
- Number cards: Total sent, reply rate, meetings booked
### 3. Rep Performance (if multi-user)
- Bar: Leads contacted per rep
- Bar: Reply rate per rep
- Bar: Conversions per rep
- Scatter: Activity volume vs. conversion rate
### 4. Cohort Analysis
- Heatmap-style: Conversion rate by signup week × time elapsed
- Line: Retention/engagement curves by cohort
## Natural Language Mapping
| User Says | SQL Pattern | Chart Type |
|-----------|-------------|------------|
| "show me pipeline" | GROUP BY Status | funnel |
| "outreach stats" | COUNT by channel + status | bar + area |
| "how are we converting" | conversion rates | funnel + line |
| "compare sources" | GROUP BY Source | bar |
| "weekly trend" | DATE_TRUNC + GROUP BY | line / area |
| "who replied" | FILTER Reply Received | table |
| "best performing" | ORDER BY conversion DESC | bar |
| "lead breakdown" | GROUP BY any dimension | pie / donut |
## Saving Reports
Reports can be saved as `.report.json` files in the workspace:
```
~/.openclaw/workspace/reports/
pipeline-overview.report.json
weekly-outreach.report.json
monthly-review.report.json
```
These render as live dashboards in the Ironclaw web UI when opened.
## Cron Integration
Auto-generate weekly/monthly reports:
```json
{
"name": "Weekly Pipeline Report",
"schedule": { "kind": "cron", "expr": "0 9 * * MON", "tz": "America/Denver" },
"payload": {
"kind": "agentTurn",
"message": "Generate weekly pipeline analytics report. Query DuckDB for this week's data. Create report-json with: funnel, outreach activity (area), reply rates (bar), source breakdown (donut). Save to workspace/reports/ and announce summary."
}
}
```Related Skills
marketing-analytics
Analyze marketing campaign data to generate performance reports and optimization recommendations
docs-pipeline-automation
Build repeatable data-to-Docs pipelines from Sheets and Drive sources. Use for automated status reports, template-based document assembly, and scheduled publishing workflows.
datafast-analytics
Query DataFast website analytics and visitor data via the DataFast API for metrics, time series, realtime stats, breakdowns, visitor details, and goal/payment management.
Analytics Tracking Skill
## Trigger
product-analytics
Use when defining product KPIs, building metric dashboards, running cohort or retention analysis, or interpreting feature adoption trends across product stages.
ci-cd-pipeline-builder
CI/CD Pipeline Builder
analytics-tracking
Set up, audit, and debug analytics tracking implementation — GA4, Google Tag Manager, event taxonomy, conversion tracking, and data quality. Use when building a tracking plan from scratch, auditing existing analytics for gaps or errors, debugging missing events, or setting up GTM. Trigger keywords: GA4 setup, Google Tag Manager, GTM, event tracking, analytics implementation, conversion tracking, tracking plan, event taxonomy, custom dimensions, UTM tracking, analytics audit, missing events, tracking broken. NOT for analyzing marketing campaign data — use campaign-analytics for that. NOT for BI dashboards — use product-analytics for in-product event analysis.
lead-gen-pipeline
Automated lead generation pipeline with AI-powered lead scoring and personalized follow-up generation. Score leads 0-100 with reasoning, generate context-aware follow-ups in multiple tones. Integrates with any CRM. Use for sales automation, cold outreach, and pipeline management.
ml-pipeline
Complete machine learning pipeline for trading: feature engineering, AutoML, deep learning, and financial RL. Use for automated parameter sweeps, feature creation, model training, and anti-leakage validation.
youtube-analytics
YouTube Data API v3 analytics toolkit. Analyze YouTube channels, videos, and search results. Use when the user asks to: check YouTube channel stats, analyze video performance, compare channels, search for videos, get subscriber counts, view engagement metrics, find trending videos, get channel uploads, or analyze YouTube competition. Requires a YouTube Data API v3 key from Google Cloud Console.
ga4-analytics
Ruft Google Analytics 4 Daten für akku-alle.de ab - Seitenaufrufe, Nutzer, Sessions, Top-Seiten und Traffic-Quellen. Nutze das shell Tool um /root/.openclaw/skills/ga4-analytics/ga4-analytics auszuführen.
indigo-analytics
Query TVL, protocol statistics, APR rewards, and DEX yield data for the Indigo Protocol.