AI agents that turn raw Notion leads into scored, researched, and prioritized opportunities you can act on faster.
Notion AI CRM Copilot reads leads from a Notion database, runs focused AI agents, and writes insights back to Notion:
- ICP Scoring Agent: scores lead fit (0-100) with confidence.
- Market Research Agent: generates a concise research brief.
- Signal Agent: detects trigger events and intent signals.
- Prioritization Agent: assigns
high,medium,low, orreview. - Action Agent: recommends the next best step.
The system is designed to be practical and transparent: configurable thresholds, clear outputs, and graceful handling of missing data.
| Before | After |
|---|---|
| Manual lead-by-lead research | Automated research brief per lead |
| Gut-feel qualification | Rubric-based ICP score + confidence |
| Unclear follow-up order | Priority tier with reasoning |
| Stale leads missed | Automatic stale lead flag |
Example Lead (Before / After)
Before
- Company: ExampleCo
- Website:
example.com - Notes: B2B SaaS selling to hospitals
After
- ICP Score:
82 - Confidence:
70 - Reasoning:
- Strong industry fit
- Clear B2B use case
- Budget signals in notes
git clone <your-repo-url>
cd notion-ai-crm
pip install -r requirements.txt# Recommended: guided setup (writes .env and can auto-create output columns)
python main.py --setup
# Or manual setup:
cp .env.example .envFill in:
NOTION_API_KEYNOTION_DATABASE_IDCLAUDE_API_KEY
For Notion database/integration setup, follow NOTION_SETUP.md.
# Dry run (no Notion writes)
python main.py --dry-run
# Process first 3 leads
python main.py --limit 3
# Process all leads
python main.py
# Force a full refresh (ignore incremental state)
python main.py --full-refreshBy default, runs are incremental: unchanged leads that already have core outputs are skipped.
- Tested on a small set of leads.
- Compared outputs against human judgment for fit and priority.
- Directionally useful for triage, not perfect.
- Works best when input data quality is good (website, notes, recent contact context).
- Uses a 5-dimension rubric.
- Produces:
icp_score(0-100)confidence_score(0-100)icp_reasoning
- Produces a short lead research brief.
- Flags lower-quality inputs and marks speculative reasoning.
- Appends source citations (website/search/CRM notes) for auditability.
- Uses a configurable enrichment waterfall (website -> Brave search by default).
- Outputs
research_confidence,research_source_count, andresearch_providers.
- Detects trigger signals from notes/research context.
- Produces:
signal_typesignal_strengthsignal_datesignal_reasoning
- Uses deterministic rules for obvious cases.
- Uses the LLM for edge cases.
- Applies a one-tier boost for strong signals (
high) when ICP fit is not weak. - Produces:
priority_tierpriority_reasoningstale_flag
- Recommends next step:
outreach_now,reengage,nurture,enrich_data,hold
- Produces:
next_actionaction_reasoningaction_confidence
Set behavior through .env:
HIGH_ICP_MIN=75
HIGH_RECENCY_MAX=10
LOW_ICP_MAX=40
LOW_STALE_DAYS=45
STALE_DAYS_THRESHOLD=14
INCREMENTAL_ENABLED=true
PIPELINE_STATE_FILE=.pipeline_state.jsonOptional: map custom Notion column names:
NOTION_PROP_COMPANY=Company
NOTION_PROP_WEBSITE=Website
NOTION_PROP_NOTES=NotesWeb research waterfall controls:
WEB_RESEARCH_WATERFALL=website,brave
WEB_RESEARCH_TARGET_CHARS=4000
WEB_RESEARCH_RUN_ALL_PROVIDERS=false- Web research is lightweight and may miss JS-rendered pages or blocked content.
- ICP quality depends on how clear your ICP criteria are.
- Large Notion batches can be slow due to API limits.
- AI output can be wrong or incomplete; verify important decisions manually.
CLAUDE_API_KEY is missing:- Confirm
.envexists and includesCLAUDE_API_KEY=....
- Confirm
Database not found:- Verify
NOTION_DATABASE_IDand confirm your Notion integration has access.
- Verify
- Leads processed but no Notion updates:
- Confirm output properties exist in your Notion database schema.
.envis gitignored (keep real keys only in local.env)..env.examplecontains placeholders only.- No hardcoded secrets in source files.
- Rotate keys immediately if a real key was ever committed.
MIT - see LICENSE.