Back to Blog

RevOps AI: Build Your Entire Sales Team on Notion with Gemini and MCP

AINotionMCPNext.jsTypeScriptGeminiCRMRevOpsOpen Source
Futuristic AI-powered sales pipeline with Kanban data flows and interconnected database nodes

Most CRMs solve the wrong problem. They give you a pristine pipeline view while your actual work, the proposals, the meeting notes, the follow-up threads, lives somewhere else entirely. You end up maintaining two systems in parallel, paying twice, and trusting neither.

I built RevOps AI to collapse that gap. Notion is already where your team does its thinking. This project makes Notion your CRM too, with a Gemini-powered AI agent that operates it autonomously through the Model Context Protocol.

The Problem Worth Solving

Consider what a typical sales manager's week looks like. They check the CRM for pipeline metrics. They read the notes in Notion. They export data to a spreadsheet for the weekly report. They ask a rep to draft a follow-up email because the CRM's template engine is unusable. None of these tools talk to each other, and every transition between them costs time and introduces drift.

The underlying issue is that CRM tools treat your data as their data. Salesforce, HubSpot, and Pipedrive lock your contacts, deals, and activity history behind proprietary walls. Migration is painful and lossy. Custom fields cost money. AI features are locked behind enterprise tiers.

RevOps AI takes the opposite position. Your data stays in Notion, which you own and control. The AI is a layer on top, not a warden.

How MCP Makes This Work

The Model Context Protocol is the architectural piece that makes autonomous AI tooling practical at small scale.

Without MCP, building an AI that can "query the deals database and update a field" requires writing adapters, prompt-engineering tool descriptions, and maintaining that glue code every time Notion's API changes. With MCP, the Notion MCP server exposes all 22 Notion operations as a standardized tool catalog, and the mcpToTool() utility from @google/genai maps that catalog directly to Gemini function declarations at runtime.

typescript
// The entire AI-to-Notion bridge, in two lines const mcp = new MCPClient({ url: process.env.MCP_SERVER_URL }); const tools = await mcp.getTools(); // All 22 Notion operations, auto-mapped

Gemini receives the full tool list and decides at runtime which operations to chain. Ask "Brief me on the Acme deal before my call tomorrow" and the AI:

  1. Searches Notion for the deal record
  2. Queries the Activities database for recent interactions
  3. Retrieves the linked Contact and Company records
  4. Synthesizes a pre-call briefing from the raw data

No hardcoded query paths. No if/else dispatch. Just function declarations and Gemini reasoning.

What the Platform Does

Revenue Dashboard shows pipeline metrics in real-time — total pipeline value, win rate by stage, top deals by value, and recent team activity. All figures pull from Notion through MCP on each request.

Visual Deal Pipeline is a drag-and-drop Kanban board built with @dnd-kit. Deals move through six stages: Lead, Qualified, Proposal, Negotiation, Closed Won, Closed Lost. Every drag syncs back to Notion instantly via an MCP update call.

AI Lead Scoring runs a one-click analysis against a contact's profile — role seniority, company size, engagement history — and returns a 0–100 score with written reasoning. The score persists to the Notion contact record so your whole team sees it.

AI Sales Team Manager is the natural language interface. Ask "What's our pipeline health this quarter?" and the AI queries Notion, calculates win rates, and surfaces at-risk deals. Say "Create a follow-up activity for the Dubai Tech deal" and it creates the activity record linked to the right deal, in the right database, with no form-filling.

The Notion Database Schema

Four databases power the entire platform.

DatabaseKey Fields
ContactsName, Email, Company, Role, Lead Score, Source
DealsName, Contact (relation), Stage, Value, Close Date, Priority
ActivitiesType, Date, Deal (relation), Summary, Raw Notes
CompaniesName, Industry, Size, Website

The relation fields are what make the AI briefings work. When Gemini retrieves a deal, it follows the relation to the contact, then to the company, pulling context from three databases in a single multi-step reasoning chain.

Why Not Just Use an Existing CRM's AI?

Every major CRM now ships an AI feature. The problem is that they are trained on your data to serve their product roadmap, not yours.

Gemini through MCP gives you a general-purpose reasoning engine with full access to your data and no hidden guardrails. You can ask it to calculate custom metrics, draft emails in your specific tone, or analyze patterns that no CRM vendor would think to build a button for.

More practically: the Gemini free tier handles this workload without a bill. No enterprise tier required.

Getting Started

The full source is on GitHub. Setup takes about 15 minutes.

bash
git clone https://github.com/pooyagolchian/ai-sales-crm.git cd ai-sales-crm pnpm install cp .env.example .env.local # Add GEMINI_API_KEY and NOTION_TOKEN to .env.local pnpm dev:all

You need four Notion databases (Contacts, Deals, Activities, Companies) with the schema from the README. The setup guide walks through each field and the Notion integration permissions required.

Explore the project:

Built for the Notion MCP Challenge on Dev.to.

X / Twitter
LinkedIn
Facebook
WhatsApp
Telegram

About Pooya Golchian

Common questions about Pooya's work, AI services, and how to start a project together.

Get practical AI and engineering playbooks

Weekly field notes on private AI, automation, and high-performance Next.js builds. Each edition is concise, implementation-ready, and tested in production work.

Open full subscription page

Get the latest insights on AI and full-stack development.