Draft — in editorial review, not yet published. Content has not been approved by a human reviewer.
Lesson 29 / 50 · Version 2.2.0
Airtable as a Business Database
- Level
- Beginner
- Duration
- 15 min learn + 15 min apply
- Prerequisites:
- None
Why it matters: Airtable bridges spreadsheets and databases. Used well, linked records give you clean relationships; used poorly, it becomes one giant sheet with copied data.
By the end you can:
- Model data as tables, records, and fields
- Link records and build task views
- Plan for API pagination and limits
- Avoid treating a view as a security boundary
Learn (15 min)
1. Structure the data (5 min)
A base holds tables; a table holds records; each record has fields. One record type per table (Companies, Contacts, Projects). Choose a clear primary field, and store one idea per field.
2. Links and views (5 min)
A linked record field connects tables (one company → many contacts). Views filter, sort, group, or hide fields over the same records, for example "Active projects" or "New requests to review." Prefer views over duplicate tables.
| Table | Primary field | Key links |
|---|---|---|
| Companies | Company name | → Contacts, Projects |
| Contacts | Full name | → Company |
| Projects | Project name | → Company, Owner |
3. Scale, API, and access (5 min)
Decide who can edit which bases and which fields are sensitive. The Web API returns records in pages (up to 100 per request); continue with the returned offset until it's absent. Per-base rate limits apply (on the order of a few requests per second), so batch writes and back off on 429. Use stable record IDs for sync. A filtered or hidden-field view does not necessarily enforce access control.
GET https://api.airtable.com/v0/{baseId}/{tableName}?pageSize=100&offset=<token>
Authorization: Bearer <personal access token with minimum scopes>
Apply (15 min)
Worked example (3 min). Client ops base: Companies (name, industry), Contacts (name, email, company link), Projects (name, company link, status, due date). Views: "Active projects" (status ≠ Done, sorted by due date), "Needs owner." Intake form creates Projects. Risk check before sharing externally: hidden fields in shared views and who can open the base.
Lab (7 min): Model it.
- List three tables and their primary fields.
- Define the linked-record fields.
- Create two views on paper with filters.
- Write the API loop that fetches all Projects, including rate-limit handling.
Deliverable: A schema sketch and a pseudo-code loop. You're done when: No fact is stored in two places.
Check yourself (5 min)
- Parts of a base?
- What does a linked-record field do?
- Do filtered views create copies?
- Scenario: You share a view with a client that hides "Internal notes." Is that safe? Why?
- Why must API code paginate?
Reference
Common mistakes
| Symptom | Likely cause | Fix |
|---|---|---|
| Duplicated data | Everything in one table | Separate tables + links |
| Sync misses rows | Ignored offset | Paginate |
| Data exposed | View used as security | Use proper permissions/sharing controls |
Cheat sheet: Model entities → define fields → link → task-specific views → check sharing and API limits.
Key terms: base, table, record, field, linked record, view, offset.
Interview prompts: How would you migrate a spreadsheet to Airtable?
Go deeper: Airtable basics · Structuring bases · Linking records · Web API · API limits
Next: Lesson 30 — project delivery with Jira.