Airtable to Attio: how to migrate from Airtable CRM in 2026
Airtable is the most flexible CRM nobody set out to build. A team starts with a base for contacts, adds a table for deals, links a few records, writes a formula or two, and within a week the base is the system of record for sales.
That same flexibility is the thing teams outgrow. Formula chains get hard to debug. Interfaces lag with 50,000 rows. The 500K row ceiling on a base turns into a real planning constraint, not a theoretical one. Lead scoring, segment routing, and AI enrichment all require duct tape from Zapier or Make. The base stops being a CRM and starts being a maintenance project.
When the question shifts from "can we make Airtable do this?" to "what is the CRM that already does this?", Attio is usually the answer. Same mental model — flexible objects, custom attributes, views — minus the parts of Airtable that were never built for CRM work.
This is the playbook for that move.
For the broader case for Attio, see Why Attio is the CRM I recommend in 2026. For a side-by-side on AI capabilities, see Attio AI features and credits in 2026.
Why teams move from Airtable to Attio
Six reasons cover almost every Airtable-to-Attio call.
- Native CRM concepts. Airtable does not know what a Person, Company, or Deal is. You build them. Attio ships with them, with the right attributes, the right relationships, and the right defaults. The first hour of an Attio workspace is the same hour you spent in Airtable in week one, only it is already done.
- Real email and calendar sync. Airtable bases do not see your inbox. Attio connects Gmail or Outlook and threads every email and meeting onto the right Person and Company automatically. The "where did we leave off?" view is built in.
- AI as a field, not as a sidebar. Airtable AI generates text in a cell. Attio's AI runs on every record as fields you can read, filter, sort, and report on. Research Agent, Classify, Summarize, Prompt Completion. The CRM becomes a place where every record gets researched and scored without anyone clicking a button.
- Workflows that branch. Airtable automations are linear: trigger, action, action. Attio's workflow builder runs branches, conditions, AI steps, and webhooks. Stage-change alerts that route to different Slack channels by ICP. Lead intake that researches the company, classifies the segment, and assigns the right owner. This is the part where Airtable forces you out to Make or n8n.
- Performance at scale. Airtable Enterprise tops out at 500,000 rows per base. Filters slow down well before that. Attio is built for relational CRM data and stays responsive at hundreds of thousands of records.
- API and platform depth. If you want to ship internal tools, sync with the product, or run Attio as the system of record for an internal app, you need an API and an MCP server. Attio has both. Airtable's API is fine for table-level reads and writes; it was not designed as a CRM platform.
If none of those six reasons apply, Airtable is fine and the migration is premature. The list below is the test.
When Airtable is still the right call
Stay in Airtable if all of these are true.
- The base is mostly project management, content ops, or inventory, not contacts and deals.
- Sales is one person tracking under 500 deals.
- You do not need email or calendar threading on records.
- Your team uses interfaces as a lightweight internal tool more than as a sales CRM.
- You have working Airtable + Make/Zapier glue that the team trusts.
Airtable was designed to be a flexible database. It is excellent at that. The migration argument starts when the workflow is unmistakably CRM-shaped.
What you keep, what you change
Airtable to Attio is mostly a translation. The shape changes more than the data.
| Airtable concept | Attio equivalent |
|---|---|
| Base | Workspace |
| Table | Object |
| Row / Record | Record |
| Field | Attribute |
| Linked record field | Record reference attribute |
| Lookup field | Reads through the record reference (no separate field) |
| Rollup field | Report or AI Attribute |
| Formula field | Attio formula attribute or AI Attribute |
| Single-select / Multi-select | Same |
| Attachment | File attribute |
| User field | Workspace member attribute |
| Created time / Last modified | System fields (built in) |
| View | View |
| Group by | View grouping |
| Interface | List view (or Attio app) |
| Automation | Attio Automation |
| Sync table | Native integration (HubSpot, Salesforce, Stripe, etc.) |
| Extensions | Apps + API |
| AI field | AI Attribute |
The pieces that do not have a one-to-one map: rollups, complex formulas, and Airtable's "Sync Table" feature. Most rollups become reports. Most formulas become either Attio's lighter formula attribute or, more often, an AI Attribute. Sync tables become native two-way integrations.
Step 1: Decide the data model before you import
This is the step Airtable users most often skip, because Airtable encouraged "just add a table". Attio rewards an hour of planning here more than any other migration step.
Before any data moves, answer four questions on a piece of paper or a whiteboard.
- What objects do you actually need? Companies, People, Deals are the spine. Then ask which Airtable tables are actually different objects (Investors, Properties, Cohorts, Loans, Partners, Candidates) and which are sub-tables that should collapse (a "Stages" lookup table is not its own object — it is a select attribute).
- What attributes matter on each object? Write the 5 to 15 attributes that a view, filter, or report will read in the next 30 days. Airtable users tend to have 40+ fields per table accreted over years. Half of them never get read. Most should not move.
- What relationships matter? A Person belongs to a Company. A Deal connects to a Company and one or more People. If you also have "Person introduced by Person", "Company part of Group", "Deal sourced through Partner", or "Property owned by Company", write those down explicitly. They become record references in Attio.
- Which formulas need to survive? Walk the formula fields. For each, decide: is this still a formula in Attio, an AI Attribute (anything that summarizes or classifies), or a report (anything that aggregates)? Most "deal age", "score", "next step" formulas in Airtable map to AI Attributes in Attio.
The exercise almost always cuts the field count by half and reframes one or two Airtable tables as their own object or as views, not as new tables.
Step 2: Export your Airtable data
Airtable supports CSV export per view. Export each table separately, using the "Grid view" with all fields visible.
For a clean export:
- Export Companies as a single CSV.
- Export People (or Contacts) as a single CSV.
- Export Deals (or whatever the pipeline table is called) as a single CSV.
- Export each non-CRM table that is becoming a custom object (Investors, Partners, Properties, Loans). Keep the table name in the filename.
- Export attachments separately. Airtable CSV exports include attachment URLs, not the files. The URLs expire. If attachments matter, download them in bulk first using the Airtable API or an extension like "Bulk attachment downloader", then re-upload to Attio after import.
- Export historical activity (notes, comments, log fields) as their own CSVs only if history matters. These are often skipped on first migration and brought across manually for the records that matter.
For larger workspaces (over 50,000 rows in a table), export in batches by created date so the files stay under Attio's import size ceiling.
Step 3: Clean the export
An hour of cleanup saves a day of fixes after import. Do this in a copy, not the export itself.
- Resolve linked-record IDs. Airtable CSV exports linked records as the record's primary field, comma-separated. Verify the primary field on the linked table is unique enough to use as a join key after import (usually company name or domain on Companies, email on People). If not, also export the linked record's ID column and remap.
- Standardize stage names. Airtable lets each "deals-shaped" table have its own stage labels. Pick one canonical pipeline and remap. Multiple parallel pipelines become a
pipelineselect attribute on Deals. - Resolve duplicate contacts. Airtable does not enforce uniqueness on email by default. Many bases have years of dupes. Match on email first, then on name plus company.
- Normalize phone, email, and dates. Pick one format per column and convert. Airtable accepts anything; Attio's typed attributes will reject ambiguity.
- Drop test rows and dead tables. The "Q3 2024 outbound test" table does not need to come.
- Split mixed-content fields. A "Notes" long-text field on a contact often holds a mix of role context, meeting notes, and reminders. Decide whether each becomes a Note record, an attribute, or gets dropped.
- Replace formula and rollup outputs with their values. During CSV export, formulas evaluate to text. Verify the values look right. If a formula is going to become an AI Attribute, drop the column — Attio will recompute on import.
- Tag rows with the original table. Add a column called
source_tableso you can rebuild the right list, status, or object after import.
Step 4: Build the Attio workspace
Set up the structure in Attio before any import.
- Create the workspace. Free plan is fine for the first import. Upgrade when you need automations or Pro AI.
- Build the Companies object with the attributes you decided to keep.
- Build the People object with the same exercise. Match field types: single-line text, email, phone, select, multi-select, date, checkbox, file.
- Build the Deals object. Recreate the canonical stages as a status attribute.
- Add custom objects for any Airtable table that was its own thing (Investors, Partners, Properties, Loans, Cohorts).
- Set up Lists for any Airtable views you want to recreate as curated, sharable subsets.
- Connect Gmail or Outlook so email activity attaches to the right people from import day forward.
- Connect calendar so meeting activity threads onto records too.
Do not build automations yet. Do not build AI Attributes yet. Get the data in first.
Step 5: Import the CSVs
Attio supports direct CSV import in the UI. Map columns to attributes during the import flow.
Import in this order:
- Companies first.
- People next, linked to Companies by domain or by Company name.
- Deals last, linked to both Companies and People. Use
source_tableto set the right pipeline or list membership. - Custom objects (Investors, Partners, Properties) after Deals.
- Notes, Tasks, and historical activity last, only for the records where history matters.
Reverse this order and the relationship fields will not find their parent records. This is the single biggest mistake on Airtable migrations because Airtable does not enforce import order — Attio does.
For each import, spot-check 10 to 20 records before moving to the next file. Watch for:
- Linked records that did not match (the join key was not unique).
- Multi-select values that came through as a single concatenated string (Airtable separates with commas; Attio expects semicolons or one per row depending on the import).
- Date fields parsed as text (re-map the column type during import).
- Owner columns with email addresses that need to map to Attio workspace members.
Catch these on the first file, not the fifth.
For datasets larger than 50,000 records or for parallel imports of related custom objects, the Attio API is faster and cleaner than the UI.
Step 6: Replace formulas with AI Attributes
This is the migration step that pays back the most over time, and the one Airtable users find the most surprising.
In Airtable, you write a formula like:
IF({Last Touch} < TODAY() - 14, "Stale", IF({Stage} = "Closed Won", "Won", "Active"))In Attio, the same logic moves up a layer. Status fields are explicit. Aging is a view filter. The formulas worth migrating are the ones that did real work — usually classification, summarization, or scoring.
Three replacements that cover most Airtable formula chains:
Classification formulas → AI Classify. Airtable formulas that look at industry, headcount, and product mix to label "ICP A / B / C" become a one-line AI Classify attribute on Company. It reads the record, picks from your segments, and writes back. Re-runs on demand or on a trigger.
Scoring formulas → AI Prompt Completion. Multi-condition scoring built from IF, SWITCH, and weighted sums becomes a single AI prompt: "Score this deal 1–10 based on stage, last activity, and ICP fit. Return just the number." Easier to debug, easier to change.
Summary formulas → AI Summarize. Concatenations of fields into a one-line description ("Acme — Series B SaaS, 200 employees, last touch 3 days ago") become an AI Summarize attribute that reads the linked records and the activity log.
The formulas that stay formulas: arithmetic on numeric fields, simple date math, and short concatenations Attio's formula attribute supports natively.
Step 7: Wire up the automations
Three automations cover most of what teams missed in Airtable + Make/Zapier glue.
Lead intake with research. A new Person added to Attio (from a form, an email forward, or a manual create) triggers a workflow that finds or creates the Company, runs the Research Agent on the Company, classifies the segment with an AI attribute, and assigns the right owner. In Airtable this was three Make scenarios chained with a webhook.
Stage-change routing by segment. When a Deal moves to Demo Booked or Proposal Sent, a Slack message goes to a different channel based on the ICP segment. Airtable's stage-change automations are linear; Attio's branch on attributes natively.
Stale-deal flag with AI summary. Any open Deal with no activity in 14 days surfaces in a "Needs follow-up" view with an AI-generated one-line risk note. Replaces the manual Monday-morning pipeline review.
These take an hour total inside Attio's automation builder. For the full breakdown of what each AI step costs in credits, see Attio AI features in 2026.
Airtable patterns and how they map
Five patterns I see on every Airtable migration. The fix is rarely to copy the pattern.
Pattern: a table per pipeline. "Inbound", "Outbound", "Partnerships", "Investors" each as their own table with their own stages. The fix: one Deals object with stage as an attribute and pipeline as a select. Parallel pipelines become view filters. Investor and partner work, if the process is genuinely different, becomes a custom object — not a Deals table.
Pattern: linked-record fields holding segments. "Industry", "Stage", "ICP" as their own one-row-per-option lookup tables. The fix: these are select attributes, not linked tables. The join was ceremony.
Pattern: rollups standing in for reports. A "Total deal value" rollup on Company that sums all linked Deals. The fix: that is a report, not an attribute. Reports in Attio update automatically and aggregate across any filter.
Pattern: interface as the team's CRM. The team works exclusively in an Airtable interface, not the underlying base. The fix: build the equivalent List views in Attio, with the same filters and grouping. Lists are saveable, sharable, and the default surface for non-admin users.
Pattern: Make or Zapier scenarios for everything CRM-shaped. Stage-change → Slack via Make. New row → Mailchimp via Zapier. Form fill → enrich via Clearbit → write back via Make. The fix: most of these collapse into a single Attio Automation with branches and AI steps, no external orchestrator.
Traps to avoid
- Migrating every Airtable field. A clean Attio workspace has half the attributes Airtable had fields. Prune hard.
- Putting non-deal pipelines on the Deals object. "Investor pipeline" is not a deal pipeline.
- Skipping the data model step. Airtable did not require one. Attio rewards one. An hour saves a week.
- Importing People before Companies. The link will not stick.
- Trusting attachment URLs. They expire. Download attachments out of Airtable before you cancel the workspace.
- Building automations during the import. Imports trigger automations. You will create yourself a mess.
- Cancelling Airtable too early. Keep the base read-only for 30 days as a frozen reference.
- Translating every formula 1:1. Most Airtable formulas in CRM bases are doing work that AI Attributes do better. Translate the intent, not the syntax.
How long does an Airtable to Attio migration take?
For a team of 2 to 5 with under 25,000 rows total and 1 to 3 pipelines:
- 1 to 2 hours for the data model exercise.
- 1 to 2 hours for the export, attachment download, and cleanup pass.
- 1 hour to set up the Attio workspace and objects.
- 30 to 60 minutes for the imports.
- 1 hour for the first three automations.
- 1 to 2 hours for the AI Attributes that replace the formula chains.
- 1 hour for views and lists that match the team's Airtable interfaces.
Realistic timeline: a full day end-to-end.
For larger teams approaching the 500K row ceiling, with 5+ tables becoming custom objects, integrations to wire (HubSpot Marketing, Stripe, ActiveCampaign, internal product DB), and complex formula chains to refactor as AI, plan a full week. Most of the week is not the import. It is rebuilding workflows and AI on top.
How much does it cost?
The migration itself is free. Attio does not charge to import.
Ongoing cost depends on team size and AI usage.
- Free plan: up to 3 users, all the core CRM, limited AI credits. Many small teams never leave this tier.
- Plus plan: $34 per user per month, more credits, full workflow features.
- Pro plan: $69 per user per month, full Call Intelligence and Research Agent.
Airtable Team is $20 per user per month. Business is $45. The headline price is rarely the deciding factor on this migration. The deciding factor is whether the data model and AI ceiling are blocking work — and whether you are still paying Make or Zapier for orchestration that Attio handles natively.
For the full pricing breakdown, see Attio pricing explained.
Frequently asked
Will my email and meeting history come over?
Airtable does not store email and meeting history natively (most teams glue it in via a Make scenario or a Gmail integration). The practical move: connect Gmail or Outlook directly to Attio so activity flows in from day one. Historical email is searchable in your inbox; you do not need to import it into the CRM.
What happens to my Airtable interfaces?
Build the equivalent Attio Lists. Same filters, same grouping, same role-based visibility. The team's "open the interface every morning" habit moves cleanly. Most interfaces translate to a single Attio List in 10 minutes.
Can I sync Airtable and Attio during the migration?
Tools like Whalesync, Stacksync, and Hightouch offer two-way Airtable–Attio sync. Useful if you need to run both for a few weeks while the team adopts Attio. Not a long-term answer — pick one system of record by week three or you will get drift.
Do I need the API?
No, for the typical Airtable migration. Direct CSV import handles everything. The API matters when you have over 50,000 records, multiple related custom objects, or you want to wire Attio into a product database.
What about the 500K row Airtable Enterprise ceiling?
That ceiling is one of the most common reasons teams migrate. Attio does not have a per-workspace row ceiling at the same scale. If you are already chunking exports across multiple bases to stay under the limit, the migration is overdue.
Will my team adopt it?
The real question on every migration. The honest answer: a CRM only sticks if the team uses it for the work they would have done in the old tool anyway. Two things that move the needle: (1) one or two automations that obviously save time in week one, (2) a single view they open every morning that replaces the old "open Airtable" habit. Build for those two before anything else.
Sources
- Airtable: Export view as CSV
- Airtable: API documentation
- Attio: Import data via CSV
- Attio: CSV import formatting guide
- Attio: Define your data model
- Attio: Automations
- Attio: AI features
- Attio: Pricing
- Attio: API documentation
Free audit of your Attio workspace
If you want a second pair of eyes on the data model before you cut over, or you want the Airtable to Attio migration handled for you, I run a free 48-hour audit. You add me to your workspace as an Attio expert, no extra seat and no billing. I send back a one-page written teardown ranked by impact, the three highest-leverage fixes with the exact setting change, and a 5-minute Loom walking through the top fix. No call, no pitch. 5 slots a week.
Need help with your Attio setup?
We migrate teams, build data models, wire automations, and train Claude agents inside your workspace. Discovery call is free.
Book a free discovery callReady when you are.
Two ways in. Pick the friction that fits.