Most small businesses don't need Salesforce. They need a way to track leads, follow up on time, and see what's in the pipeline without paying $150 per user per month. I've helped half a dozen Vancouver businesses build exactly that using Claude Code, Airtable, and some light automation. Total setup time: three to five days. Total monthly cost: usually under $50.
This is a step-by-step walkthrough of how I set up a custom CRM with Claude Code for small business owners who don't have a technical team. If you can describe your sales process in plain English, you can build this.
Why Build a Custom CRM Instead of Buying One
Enterprise CRMs are powerful, but they're built for organizations with complex hierarchies, multi-stage approval workflows, and dedicated admins. Most small businesses use about 20% of the features and spend hours configuring things they'll never touch.
The alternative isn't "no CRM" — it's a custom setup that does exactly what you need and nothing else. Here's what I typically include:
- Contact management — names, emails, phone numbers, company, source
- Deal tracking — pipeline stages, value, close date, notes
- Automated follow-ups — email reminders when a deal sits too long in one stage
- Reporting — weekly digest of pipeline health, conversion rates, revenue forecast
That covers 90% of what a service business or B2B company needs. And because it's custom-built, you can add features later without waiting for vendor updates or plugin compatibility.
The Tech Stack I Use
I build these systems on Airtable as the database layer. It's flexible, has a good API, and the interface is clean enough that non-technical team members can use it without training. Claude Code handles the automation scripts — pulling data from web forms, sending follow-up emails, syncing with Google Calendar, generating reports.
For email automation I use Resend or the client's existing email provider API. For calendar booking I integrate with Cal.com or Google Calendar. The beauty of this approach is that every piece is swappable. If a client already uses HubSpot's free tier for email, we plug into that instead of Resend.
The goal is to meet the business where it is, not force a migration to unfamiliar tools.
Setting Up the Airtable Base
The first step is designing the data structure. I usually start with three tables:
- Contacts — one row per person or company
- Deals — one row per opportunity, linked to a contact
- Activities — emails, calls, meetings — timestamped and linked to deals
The Contacts table includes fields like Name, Email, Phone, Company, Lead Source, Tags, and Date Added. The Deals table has Deal Name, Value, Stage (single-select dropdown), Expected Close Date, Notes, and a link to the associated Contact. Activities track Type (email, call, meeting), Date, Notes, and link back to the Deal.
This structure is simple but surprisingly powerful. You can filter by stage to see what's stuck. You can group by lead source to figure out which marketing channels are working. You can sort by expected close date to plan your month.
One client — a Vancouver-based consulting firm — had been tracking deals in a Google Sheet with no structure. We migrated them to this setup in an afternoon. Within two weeks they told me it had already paid for itself because they stopped missing follow-ups.
Automating Data Entry
Nobody wants to manually copy-paste lead info from a contact form into Airtable. So the next step is connecting the form to the CRM. If the client uses a web form (Typeform, Google Forms, Webflow form), I build a Claude Code script that watches for new submissions and creates an Airtable record automatically.
Here's the logic in pseudo-code:
1. Listen for new form submission webhook 2. Extract name, email, company, message 3. Check if contact already exists in Airtable (search by email) 4. If new: create Contact record, create Deal record, set stage to "New Lead" 5. If existing: create new Deal record linked to existing Contact 6. Send internal Slack notification: "New lead from [source]"
This takes about 90 minutes to build and test. After that, every new lead flows into the CRM without anyone touching it.
Building the Follow-Up System
The most valuable part of a CRM is making sure nothing falls through the cracks. I automate this with a daily script that checks the Deals table for anything that hasn't moved in X days (usually 7 for early-stage, 3 for late-stage) and sends a reminder email to the account owner.
The script also handles the post-meeting follow-up sequence. When a deal moves to "Meeting Scheduled," it triggers an automated email 24 hours before with the Zoom link and agenda. After the meeting, if the stage doesn't update within 48 hours, it sends a nudge to the salesperson asking for notes.
This kind of workflow used to require Zapier multi-step zaps that cost $50/month minimum. With Claude Code it's a single Python script running on a $5/month server.
Generating Reports Without Manual Work
Every Monday morning, the system sends the team a pipeline report. It pulls data from Airtable and generates a simple HTML email with:
- Total pipeline value by stage
- Deals expected to close this week
- Conversion rate from lead to customer (last 30 days)
- Top 3 lead sources by volume
The template is clean and readable. No dashboards to log into, no manual pulling of numbers. Just the key metrics in your inbox at the start of the week.
For a more detailed view, I also build a shareable Airtable interface that lets the team filter and sort however they want. But most people find the weekly email is enough.
What This Setup Can't Do
I want to be upfront about the limits. This approach works great for businesses with straightforward sales processes — typically under 10 salespeople, deals that close in weeks or months (not years), and no need for territory management or complex commission tracking.
If you're managing a 50-person sales org with multiple product lines, approval workflows, and enterprise contracts, you probably do need Salesforce or HubSpot Enterprise. This custom CRM is built for the 80% of small businesses that don't have those requirements.
It also requires someone on your team to own it. Not in a technical sense — Airtable is easy to learn — but someone needs to decide on the pipeline stages, keep the data clean, and tweak the automation rules as your process evolves. That's usually a founder or sales manager.
Real-World Example: A Vancouver Coaching Business
A client of mine runs a leadership coaching practice. She was using a mix of Gmail labels, a Google Sheet, and her memory to track which prospects she'd talked to and who needed follow-up. Deals were getting lost.
We built her a custom CRM with Claude Code in four days. Airtable for the database, automated intake from her Calendly bookings, follow-up email sequences triggered by deal stage changes, and a weekly report showing pipeline value and conversion rates.
Three months later, her close rate went from about 25% to 38%. Not because the CRM made her a better closer — because it made sure she followed up with everyone at the right time and stopped losing warm leads in the noise.
How to Get Started If You Want to Build This
If you're reading this and thinking "I could use exactly that," here's the fastest path:
- Map out your current sales process on paper — what are the stages from first contact to closed deal?
- List the data points you actually need to track (don't overcomplicate this)
- Set up a basic Airtable base with Contacts, Deals, and Activities tables
- Connect your lead source (form, email, etc.) to Airtable using Claude Code or Zapier as a stopgap
- Build one automation — follow-up reminders are the highest ROI place to start
You don't need to automate everything on day one. Start with the one thing that's currently falling through the cracks, get that working, and expand from there.
If you'd rather have someone build this for you, that's what I do. The typical engagement is 3–5 days of build time, plus a handoff session to train your team. We can also start with an AI audit to map out which automations will give you the most leverage. And if you want to see how this approach compares to off-the-shelf tools, I wrote a breakdown in this post comparing Claude Code to Zapier and another on why small businesses are moving away from enterprise CRM platforms.
Most small businesses don't need a CRM with a thousand features. They need the six features they'll actually use, built to fit the way they already work. That's what this approach delivers.