Build four linked tables in Airtable: Companies, Contacts, Deals and Activities. Add a Stage field to Deals, a Kanban view grouped by Stage, a "Follow up today" view, and one automation that emails you the list each morning. A Team plan seat is $20 a month; the Free plan works up to 1,000 records.
Most CRM builds go wrong in the first hour, when everything is crammed into one table. A client with three contacts and four jobs then appears as seven duplicated rows, and nothing rolls up. The structure below avoids that, and each part is sized against Airtable's published plan limits so you know when the free version stops being enough.
Who this design suits, and who should pick a ready-made CRM
A service business sells time and expertise on a quote: cleaning contracts, bookkeeping, translation, design, installation, consultancy. Deals take days or weeks, one client may buy repeatedly, and the main risk is a quote that nobody chased. That fits a database with a pipeline view, because the pipeline is simple and the follow-up discipline is what matters.
It suits a team of one to eight people with a few hundred to a few thousand contacts. It suits poorly if you need email sync, call dialling inside the tool, quote documents with e-signature or reporting for a sales team of twenty. For those jobs, a dedicated CRM costs less time than building. Airtable vs Zoho CRM: Can a Database Replace a Small CRM? compares the two on price and effort.
The main example below is an illustrative six-person translation agency. It quotes projects of $400 to $6,000, takes about 60 enquiries a month, wins about a third, and loses most of its lost deals through silence rather than refusal. That last point drives the design: the base exists to make sure that every open quote has a date on which someone will chase it.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowThe four tables and what each one holds
Keep each table to one kind of thing. Where you need information from another table, link to it instead of retyping it.
| Table | One row is | Key fields |
|---|---|---|
| Companies | A client organisation, or a single person if they buy for themselves | Name, Website, Industry, Notes, Contacts (link), Deals (link), Total won (rollup) |
| Contacts | One person you speak to | Name, Email, Phone, Role, Company (link), Last contacted, Days since contact (formula) |
| Deals | One quote or job | Deal name, Company (link), Contact (link), Stage, Value, Source, Next follow-up, Close date, Owner, Notes, AI summary |
| Activities | One call, email or meeting | Summary, Date, Type, Deal (link), Contact (link), Who did it |
The rule is that a fact lives in one place. A client's phone number sits on the contact only. A deal's company is a link, and the website you see in the Deals table is a lookup field that shows the value from Companies without storing it again. Change a company's name once and every deal updates.
Linked records are Airtable's main advantage over a spreadsheet. A link field connects a row in one table to rows in another, and by default it works in both directions, so the company page shows its contacts and deals and the deal shows its company. Create the link on Deals, "Company", linking to Companies, and Airtable adds the reverse field on Companies for you.
Setting up the base in order
- Create the base and rename the first table to Companies. Delete the sample fields. The primary field is the company name.
- Add Contacts, Deals and Activities as new tables. Create them from scratch rather than importing, so you control the field types.
- Add the link fields: Contacts to Company, Deals to Company and Contact, Activities to Deal and Contact.
- Set field types carefully. Email uses the Email type, Phone the Phone type, Value a Currency field, Stage a Single select with your pipeline steps, and the dates use Date fields without a time unless you truly need one.
- Add lookups and rollups (described below).
- Import existing contacts from a CSV into the Contacts table last, and match the company column to the link field so rows connect to Companies automatically.
- Check for duplicates by grouping the Contacts grid by Email before you build any views.
Choose the stage names before you build the select field, because changing them later breaks filters. For the agency: New enquiry, Quote sent, Chasing, Negotiating, Won, Lost. Six stages is enough. Seven or eight stages invite deals to sit in the wrong one.
Fields that do the thinking for you
Three computed fields turn a list into a CRM.
Days since contact on Contacts is a formula that tells you who has gone quiet:
IF({Last contacted}, DATETIME_DIFF(TODAY(), {Last contacted}, 'days'), "")
Last contacted is a rollup on Contacts that takes the latest Date from the linked Activities, using the MAX function, so it updates itself as you log calls. Without it, you would type the date by hand, and nobody does.
Total won on Companies is a rollup of the Value field from linked Deals, filtered to the ones where Stage is Won, summed. It lets you sort clients by what they have actually bought, and a repeat buyer shows at the top of the list.
Two further additions are worth the minute they take. A Source single-select on Deals (website form, referral, repeat client, directory listing) shows you where the winnable deals come from after six months. And an Owner field, using Airtable's User field type, lets each person filter to their own work.
The views you will use every day
A view is a saved way of looking at the same table. Build four on Deals.
| View | Type | Setting | Used for |
|---|---|---|---|
| Pipeline | Kanban | Stacked by Stage, hide Won and Lost stacks | The weekly review: drag a deal along as it moves |
| Follow up today | Grid | Next follow-up is today or before, and Stage is not Won or Lost; sorted oldest first | The morning list; the source for the alert |
| My deals | Grid or interface page | Owner is the current user | Each person's own list |
| Won this quarter | Grid | Stage is Won and a close date in the last 90 days | Reporting without a separate tool |
Airtable documents its "Current user" filter for interface pages: a page filtered on a User field shows each signed-in person only the records they have been added to. If your grid view's filter does not offer that value, build My deals as an interface page filtered on Owner.
The Follow up today view is the most important. Its filter is "Next follow-up" is on or before today, and "Stage" is none of Won or Lost. Every open deal must have a next follow-up date, so add a rule for yourself: a deal never leaves the Chasing or Quote sent stage without a date set.
Add a fifth view, a Calendar view on the Next follow-up field, if you prefer to see chasers laid out by week. A calendar shows the clumps on days that are too heavy, and you can drag a date to move a chase.
A filled-in set of rows, so the structure is clear
This is a fragment of the agency's Deals table, with generic client names so you can see how the fields work together.
| Deal name | Company | Stage | Value | Next follow-up | Source |
|---|---|---|---|---|---|
| Supplier contract, DE to EN | A machine-parts wholesaler | Quote sent | $1,150 | 3 days after quote | Website form |
| Product catalogue, EN to FR and ES | A homeware manufacturer | Negotiating | $5,400 | Tomorrow | Referral |
| Annual report, EN to JA | A logistics firm | Chasing | $3,200 | Today | Directory listing |
Notice the Value is the quote, not what you hope to win. Add a probability only if you will really use it, because a pipeline total weighted by guessed percentages looks precise and is not.
The follow-up alert, built two ways
Airtable automations run a trigger, then one or more actions. Airtable's support documentation lists the triggers you need, including "When a record enters a view", "At a scheduled time" and "When a record is updated", and actions such as Find records, Send an email and Update record. Each time a trigger is invoked counts as an automation run, whether the action succeeds or fails, and run limits reset on the first day of the month.
Option A: one alert per deal. Trigger: When a record enters the view "Follow up today". Action: Send an email to you, with the deal name, company, value and a link to the record. Records that leave and re-enter a view trigger again, which is useful for a chaser that you pushed back a week. The cost is one automation run for each deal that enters the view. Because the view's filter moves with the calendar rather than with an edit, set one test deal's date to tomorrow and check the next morning that the email fired before you rely on this option.
Option B: one digest each morning. Trigger: At a scheduled time, every weekday at 08:00. Action 1: Find records in the view "Follow up today". Action 2: Send an email whose body lists the found records. This uses one run per day, 21 or 22 a month, however many deals are due.
Option B is the better default for a small business, for two reasons. It uses far fewer runs: on the Free plan's 100 runs a month, Option A could be exhausted by a busy fortnight. And one tidy list is easier to act on than a dozen separate emails. Use Option A only for a deal type that deserves an immediate nudge, such as a quote over $5,000.
Two plan limits matter. Automation runs per month are 100 on Free, 25,000 on Team and 100,000 on Business. And on the Free plan the Send email action can only email collaborators on the base, not other addresses, so it works for alerting yourself and your team but not for emailing clients. Run a test by setting a deal's follow-up date to today and watching whether the email arrives.
Subject: 7 follow-ups due today
Open the "Follow up today" view: [link to view]
1. Annual report, EN to JA - Chasing - $3,200 - due today
2. Product catalogue, EN to FR and ES - Negotiating - $5,400 - due yesterday
...
Using AI to summarise the notes on a deal
A deal's notes field usually becomes a long, messy trail of call notes. An AI field on Deals can summarise it in two lines, so the person picking up the deal knows where it stands. Airtable's AI credits cover this: Team includes 15,000 credits per paid user a month, pooled across the workspace, and Free gives 500 per editor. Airtable's own example puts a simple categorisation at about one credit, and a short summary should sit nearby, though you should test it.
Instruction for the "AI summary" field:
Read the Notes. In two sentences, say where this deal stands and what
the next action is. If the notes do not say who must act next, write
"Next step unclear". Do not guess prices or dates.
Notes: "Called Tuesday, wants the catalogue in French first, Spanish
later. Asked about discount if both. Said finance sign off needed.
Will revert after board meeting."
Illustrative output:
The client wants French first and Spanish later and has asked for a
combined discount. Next step: wait for their reply after the board
meeting, and chase if nothing arrives.
The summary is useful and has a small problem: it says "chase if nothing arrives" without a date. Add the line "Quote a date from the notes if one is stated; otherwise say none given" and it stops implying one. Do not let the summary overwrite the notes, and do not use it as the record of what the client agreed. It is a reading aid. For the credit maths on larger volumes, Airtable AI Credits: Estimate What Your AI Fields Will Cost a Month works through it, and Airtable AI Fields: Auto-Summarise and Tag Incoming Quote Requests shows the same technique on incoming enquiries.
Capturing enquiries without retyping them
The CRM is only as good as what goes into it. For a service business the best entry point is an Airtable form on the website, whose answers create a Contact and a Deal. Form submissions do not cost a paid seat, since Airtable does not charge for form submissions, share links or read-only collaborators. A second route is a forwarded email or a pasted message that you turn into a deal by hand.
A form creates records in one table, so send it to Deals with fields for name, email, company, service wanted and details, and add a small automation: when a form is submitted or a record is created, set Stage to New enquiry and Next follow-up to tomorrow. That single step means nothing arrives without a chase date.
Record limits: when the plan runs out
Airtable limits records per base, and every row in every table counts. The numbers from the pricing page are 1,000 on Free, 50,000 on Team, 125,000 on Business and 500,000 on Enterprise Scale. When you pass a limit you keep your data and your bases keep working, but you cannot add more records until you upgrade.
Here is the agency's growth over three years, with illustrative numbers.
| Table | Year 1 | Year 2 | Year 3 |
|---|---|---|---|
| Companies | 180 | 330 | 470 |
| Contacts | 260 | 480 | 700 |
| Deals | 720 | 1,440 | 2,160 |
| Activities (about 8 per deal) | 5,760 | 11,520 | 17,280 |
| Total | 6,920 | 13,770 | 20,610 |
On Free the base is full within the first few months, because the 1,000-record limit would be reached around 125 deals. On Team the limit of 50,000 lasts well beyond year three. So a firm that logs every call and email should plan for Team from the outset, at 4 editor seats x $20 = $80 a month on annual billing, rather than discovering the limit in the middle of a busy quarter.
If you do not need a call-by-call log, skip the Activities table and keep a single Notes field on Deals. The base then holds about 1,160 records after year one and 2,250 after two, still over the Free limit but far inside Team's 50,000. Airtable Pricing Plans: Is Free Enough for Bookings and Quotes? looks at the Free ceiling in detail.
Who sees what
Paid plans charge per seat for people with edit permission on at least one base, while read-only collaborators cost nothing. For a six-person agency, perhaps four people need to edit, and two (an accountant, a part-time manager) can be commenters or viewers. Airtable Permission Levels: Creator, Editor or Commenter for Staff? sets out who should have which level.
Clients should not be added to the base itself. If they need to see their own quotes and files, that is a job for a portal, and Airtable Client Portal: Portals Add-On, Softr or Glide? compares the options on cost.
A week-one plan with time estimates
An afternoon is enough to build, and a week to bed in.
- Day 1, about 3 hours: build the four tables, links, fields and the four views. Import contacts.
- Day 2, about 1 hour: add the morning digest automation and the AI summary field. Test each on three records.
- Days 3 to 5: enter every live quote. For each one, set a Next follow-up date.
- End of week 1, 30 minutes: review the Pipeline view with the team and delete any field nobody used.
- End of month 1: count how many deals were chased on their date. That number, not the number of fields, tells you whether it worked.
A mistake that gave a fake-looking pipeline
Picture a small installation firm that builds its base with one Deals table and a free-text Stage column. Over two months, staff type "quote sent", "quoted", "sent quote" and "QS" for the same stage. A Kanban view will not stack on a text field (it needs a single select, User or linked record field), so the team works from a grid grouped by Stage, and the grouping splits into four headings. The total under "quote sent" looks a quarter lower than reality, and a $9,000 quote sits under a heading nobody reviews. It surfaces only when the owner asks why nothing has been chased for three weeks.
The cure is boring and effective: use a single-select field for anything you will filter on, limit who may change field options, and review the stage list once a quarter. The same logic applies to Source and Owner.
Checking the CRM is working
After a month, answer four questions from the data and treat any "no" as a design fault.
- Does every open deal have a Next follow-up that is today or in the future?
- Did the morning email arrive on every working day, and was it acted on?
- Can you say how many quotes were sent, won and lost in the month from one view?
- Does the AI summary match what a colleague would say after reading the notes?
If the answer to the first is no, look at the Follow up today view for rows with an empty date, since those are the records the alert cannot see. A simple fix is a view that filters for open deals where Next follow-up is empty, and a rule that the view is emptied every Friday.
Questions before you move your contacts into Airtable
Can the Free plan run a small CRM?
Yes for a very small book. Free allows 1,000 records per base, 100 automation runs a month, and the Send email action reaches only collaborators on the base, not clients. That suits a solo owner with a few hundred contacts. Once activity logging pushes you towards 1,000 records, move to Team, which allows 50,000.
Do activity records count towards the record limit?
Airtable's limit is per base, and every row in every table of the base counts. A contact table of 400, a deals table of 150 and an activity log that adds 600 calls and emails a year would hit 1,150 in twelve months, over the Free limit. Plan your table count with that in mind.
Should clients get emails from Airtable directly?
For most small firms, no. Send the alert to yourself or your team, and write follow-up emails from your own mail account where replies land in your normal inbox. Airtable's email action can send to clients on paid plans, but a message from your own address looks and behaves better.
How do I stop duplicate contacts?
Add a primary field made of name and company, keep one email field per contact, and use a grid view that groups by email so duplicates stand together. Airtable's Dedupe extension, available on all paid plans, finds near-matches and lets you merge them. Check for duplicates after every import, before they spread across deals.
Is an AI summary of notes worth the credits?
Usually yes for a service business. Airtable publishes no figure for short summaries, but its typical cost for categorising one piece of feedback is 1 credit, so short notes should sit near the cheap end, and Team includes 15,000 per paid user a month. Test 20 notes and read the summaries first, because a confident-sounding wrong summary is worse than none.
Further reads
- Airtable Team vs Business Plan: Records, AI Credits and Admin Controls — Whether the extra records and admin of Business are worth it
- Airtable vs Notion as a Business Database: Which Handles AI Better? — Notion as the alternative home for a small CRM
- Airtable vs AppSheet for a Job Tracker: Cost, Offline Use and AI — A six-person trade firm's job tracker priced on Airtable and AppSheet, with offline behaviour, record limits and AI features compared.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Airtable pricing page, Airtable support articles on automations, linked records, rollups, Kanban views, interface filters, the Dedupe extension and AI billing, read in November 2026; the base design is an illustration, not an Airtable template.