All articles

Google Sheets to Attio: how to move from a spreadsheet CRM

·14 min read

Most teams run sales in a spreadsheet for longer than they should. The reasons are good. A Google Sheet is free, infinitely flexible, and everyone already knows how to use it.

The reasons it stops working are also good. Two reps editing the same row. Filters that nobody else can read. Three different "status" columns. A pipeline view that lives in someone's head. An automation idea that dies because there is nothing to automate against.

This post is the playbook for moving from Google Sheets or Excel into Attio. It is the move I run most often for solo founders and small teams, because it is the cleanest migration in CRM. There is no legacy tool fighting back, no marketing platform to disentangle, no third-party app graveyard.

For the broader case for Attio, see Why Attio is the CRM I recommend in 2026. This guide covers the move.

Why teams move from Sheets to Attio

The list is short and concrete:

  • Two people cannot edit the same lead at the same time without stepping on each other. Sheets handles concurrency badly once more than one person is in the file daily.
  • Filters and views are personal. What you see in your view is not what your teammate sees. Reports drift.
  • There are no real relationships. A company has many contacts and many deals. A spreadsheet collapses that into duplicate rows or a tab nobody opens.
  • There are no real automations. Conditional formatting and Apps Script can fake the easy 20%. The other 80% needs a CRM.
  • There is no audit trail. Who changed the stage from Negotiation to Closed Lost on October 14? Sheets does not know.
  • AI cannot work on it. Modern AI features (research, classification, drafting) need structured records and stable schemas. A Sheet is neither.

Attio fixes those without the heaviness of Salesforce or HubSpot. Free for up to 3 users. Custom objects from day one. Flat pricing after that.

When Google Sheets is still fine

Honest answer: you do not need a CRM if any of the following are true.

  • You are pre-revenue with fewer than 30 leads in the spreadsheet.
  • You have one founder doing all sales and zero handoffs.
  • You log fewer than 10 new leads a month.
  • The spreadsheet has 4 columns and you are not running reports off it.

For everyone else past that line, the spreadsheet is the bottleneck, even when it does not feel like one yet.

What you keep, what you change

A spreadsheet migration is mostly a translation. Most of what is in the file has a home in Attio. The shape changes.

Sheets conceptAttio equivalent
Tab "Companies"Companies object
Tab "Contacts" or "People"People object
Tab "Deals" or "Pipeline"Deals object
Column "Status" or "Stage"Status attribute on Deals
Column "Owner"Record owner
Column "Notes"Notes attached to record
Column "Last contact date"Activity timestamp
Conditional formattingViews with filters
Apps Script automationAttio Automations
Data validation dropdownSelect attribute
VLOOKUP across tabsLinked records

The piece that does not have a one-to-one map: free-form text columns where you stuffed a mix of company info, deal info, and personal notes into the same cell. Those need to be split during the cleanup pass.

Step 1: Decide the data model before you import

This is the step solo founders skip. It is also the step that decides whether the migration is clean or messy.

A spreadsheet that grew organically over a year has columns that made sense once. "First touch source." "Loom sent y/n." "Should I follow up." "Hot/warm/cold." Drop them all into Attio and the new tool looks like a fancier sheet.

Before any data moves, answer three questions on a piece of paper or a whiteboard:

  1. What objects do you actually need? For most solo founders and small teams: Companies, People, Deals. That is it. Skip Tickets, Tasks-as-objects, custom objects until you need them.
  2. What attributes matter on each object? For each, write the 5 to 10 attributes a view or a report will read in the next 30 days. Everything else is a deletion candidate.
  3. What relationships matter? A Person belongs to a Company. A Deal connects to a Company and one or more People. That is the spine. If there is more (parent companies, deal partners, referral sources), write it down explicitly.

The result almost always cuts the column count by half. That is the win, before a single record moves.

Step 2: Clean the spreadsheet

An hour of cleanup saves a day of fixes after import. Do this in a copy of the original, not the live sheet.

  • Split columns that hold mixed data. A "Notes" column with company background, contact role, and deal context needs three columns or a clear convention.
  • Standardize picklist values. "In progress", "in-progress", "InProgress" all need to become one. Same for industries, segments, deal stages.
  • Normalize dates and phone numbers. Pick one format and convert everything to it.
  • Dedupe people by email and companies by domain. A spreadsheet collected over a year almost always has duplicates from form fills, email forwards, and "I'll add them again later".
  • Drop rows that are not real. Dead leads from 2024 that nobody will ever follow up on. Test rows. The "DO NOT DELETE" row from your old intern.
  • Fill required fields. If you decided every Company needs a domain, fill every domain now. Attio will reject rows missing required attributes on import.

For teams with more than a thousand records, run a pivot table on each picklist column to see the variant spread. The number of distinct values is almost always 3 to 5x what it should be.

Step 3: Build the Attio workspace

Set up the structure in Attio before any import.

  1. Create the workspace. Free plan is fine for the first import. Upgrade later if you need automations or AI.
  2. Build the People object with the attributes you decided to keep. Match field types. Single-line text, email, phone, select, date, checkbox all map cleanly.
  3. Build the Companies object with the same exercise.
  4. Build the Deals object. Recreate your pipeline stages as a status attribute. Use the same names as the spreadsheet so reports stay readable.
  5. Add custom objects only if step 1 said you need them. Resist the urge to add "Investors", "Partners", "Referrals" as separate objects on day one. Most are People with a tag.
  6. Set up one view per object. "All Companies", "Open Deals", "People I am following up with this week". Three views is enough to start.

Do not build automations yet. Get the data in first.

Step 4: Export and import via CSV

Attio supports direct CSV import in the UI. The importer handles standard objects, custom objects, and all attribute types.

From Google Sheets:

  1. File → Download → Comma Separated Values (.csv) for each tab.
  2. From Excel: File → Save As → CSV UTF-8.
  3. Save each as a separate file: companies.csv, people.csv, deals.csv.

Inside Attio, for each object:

  1. Open the object under Records in the sidebar.
  2. Click the import option (Import / Export → Import CSV).
  3. Upload the file and map columns to Attio attributes.
  4. Pick the matching attribute for each column. Anything you do not need, leave unmapped.
  5. Use the original spreadsheet row ID or a unique key as an external identifier so you can reconcile later if needed.
  6. Run the import and spot-check 10 to 20 records.

Import in this order:

  1. Companies first.
  2. People next, linked to Companies by domain or by Company name.
  3. Deals last, linked to both Companies and People.

If you reverse the order, the relationship fields will not find their parent records.

For datasets larger than a few thousand records, or where multiple related custom objects need to land together, the Attio API handles bulk imports more cleanly than the UI. Most spreadsheet migrations stay well under that ceiling.

Step 5: Wire up the automations Sheets could not do

This is where the move pays back the time. Three automations cover most of what a spreadsheet team was faking with Apps Script and reminders.

Lead intake. 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, links them, and assigns an owner. Two minutes of work, replaces the "remember to add the company too" mental tax.

Stage-change alerts. When a Deal moves to a critical stage (Demo Booked, Proposal Sent, Closed Won), a Slack message goes to the right channel. Replaces the scattered manual updates teams paste into Slack at the end of the day.

Stale-deal flag. Any open Deal with no activity in 14 days surfaces in a "Needs follow-up" view. Replaces the sticky note on the monitor.

These take an hour total inside Attio's automation builder. They are the difference between a CRM that runs the team and a spreadsheet that the team has to remember to update.

Step 6: Add AI on top

This is the step nobody who came from Sheets expects, and it is the part that turns the migration into an upgrade rather than a tax.

Once data lives in structured records, AI features can run on it. Three to ship in week one:

  1. AI Research attribute on Companies. Question: "What does this company sell?" or "Most recent funding round." Runs a web search and writes back the answer. Fills in the columns you would have filled by hand on a Friday.
  2. AI Classify attribute on Deals. Pick from your ICP segments. Run it once on every open Deal. Now every view can filter by ICP fit, which the spreadsheet could not do because the segments were in your head.
  3. AI Prompt Completion attribute on People. "Draft a one-line opener for this person based on their company and role." Reads the linked Company. Writes a sentence. Replaces the 3-minute personalization step before every outbound email.

Attio's AI runs on credits. The Free and Plus plans give you a small monthly allowance. Pro is where most teams land once these workflows pay back. For the full breakdown, see Attio AI features and credits in 2026.

Common spreadsheet patterns and how they map

Five patterns I run into on every spreadsheet migration. The fix is rarely to copy the pattern.

Pattern: one tab per quarter. Q1 leads, Q2 leads, Q3 leads. The fix: one Person record, with a "First contacted" date attribute. Filter the view by quarter. The CRM does not care which tab a lead lived in.

Pattern: a "Master" tab and a working tab. The fix: there is one source of truth in Attio. Views replace duplicate tabs.

Pattern: a column called "Notes" with a paragraph in each cell. The fix: notes become Note records attached to the Person or Company. Each note has its own timestamp and author. The "last note" is searchable across the whole CRM.

Pattern: color coding for priority. The fix: a select attribute called Priority, used in views and filters. Color coding can stay as a visual layer in views.

Pattern: a contacts tab and a separate emails tab. The fix: connect Attio to your email and calendar. Activity flows in automatically. The email tab disappears.

Traps to avoid

  • Migrating every column. A clean Attio workspace has fewer attributes than the spreadsheet had columns. Prune hard.
  • Building custom objects for things that are tags. "Newsletter subscriber" is a tag on People, not its own object.
  • Skipping the data model step. This is the single biggest cause of a painful migration. An hour saves a week.
  • Importing People before Companies. The link will not stick. Companies first.
  • Setting up automations before the data is in. Imports trigger automations. You will create yourself a mess.
  • Cancelling the spreadsheet too early. Keep it in Drive as a frozen reference for 30 days. Cheap insurance.
  • Trying to recreate VLOOKUP exactly. Linked records in Attio do the job better. Trust the new shape instead of forcing the old one.

How long does a Sheets to Attio migration take?

For a solo founder or a team of 2 to 5 with a spreadsheet under 5,000 rows, the realistic timeline is half a day to a day end-to-end:

  • 1 hour for the data model exercise.
  • 1 to 2 hours for the cleanup pass.
  • 30 minutes to set up the Attio workspace.
  • 30 minutes for the imports.
  • 1 hour for the first three automations.
  • 1 to 2 hours for the AI attributes and views.

For a team with multiple spreadsheets, more than 10,000 rows, or messy historical data, plan a week. Most of that week is the cleanup, not the import.

How much does it cost?

The migration itself is free. Attio does not charge to import.

Ongoing cost depends on team size and whether you need AI:

  • Free plan: up to 3 users, all the core CRM features, limited AI credits. Most solo founders never leave this tier.
  • Plus plan: $34 per user per month, more credits, more workflow features.
  • Pro plan: $69 per user per month, full Call Intelligence and Research Agent.

For a side-by-side with the alternatives, see Attio pricing explained.

Frequently asked

Can I keep using Google Sheets alongside Attio?

Yes. Many teams export an Attio view to a Sheet for an investor update or a board snapshot. The CRM stays the source of truth. The sheet is a snapshot.

What about historical activity? Will it show up?

Email and calendar activity will populate going forward, once you connect Gmail or Google Calendar to Attio. Historical activity that lived in spreadsheet cells (manual notes, dates) imports as Note records or attribute values, but cannot be reconstructed as a real timeline.

Do I need to learn the API?

No. Direct CSV import covers every spreadsheet migration I have seen. The API matters at very large scale or when wiring Attio to a custom system.

Can I undo the migration?

Records can be deleted in bulk. The original Sheet stays intact in Drive. Worst case, you keep both running for two weeks until the team is comfortable in Attio, then archive the Sheet.

Will my team adopt it?

This is the real question. The honest answer: a CRM only sticks if the team uses it for the work they would have done in the Sheet anyway. Two things that increase adoption: (1) one or two automations that save the team obvious time in week one, (2) a single view they open every morning that replaces their old "open the Sheet" habit. Build for those two before anything else.

Sources

Free audit of your Attio workspace

If you want a second pair of eyes on the data model before you import, or you want the 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.

Get your free Attio audit

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 call