How to move from spreadsheets to a CRM

Move from spreadsheets to a CRM in one afternoon, for free: put everyone who replied into a five-stage pipeline, log every reply the same day, and review your deals every Sunday.

ByDinesh BypillaReviewed byMurali SidLast checked 16 min read

You send a lot of messages, people reply, and your sheet now has thousands of rows. A reply slips past, a follow-up is a week late, and a buyer who said "send me a quote" hears nothing. This guide shows how to move from spreadsheets to a CRM in one afternoon, for free, by moving your conversations first, so no reply is lost again.

Do these three things

About 2 to 3 hours today, then 20 minutes a day and 30 minutes on Sunday. Judge it after 1,400 messages: no reply left out of the CRM, and no task overdue.

Show the three actions in full
  1. Today: move every person who has replied into a free CRM, each as a deal with a stage and a next-step date. Then lock the reply columns in your sheet so you only ever update one place.
  2. Every day: add each new reply to the CRM the same day, and finish every follow-up task due today, up to 3 follow-ups per person.
  3. Every Sunday: count the deals in each stage of your sales pipeline, close the ones with no answer after 3 follow-ups, and write down where each won deal came from.

Get help doing these

ChatGPT or Claude reads this guide and works through it with you.

1. Check whether your sheet is ready for a CRM, and pick today to switch

Move to a CRM the day any one of four signs is true. If none is true, keep your sheet and check again after your next 1,400 messages. A sheet is fine for a lead list of a few thousand names. It breaks when you have many live conversations at once.

Open your sheet and count four things:

  1. A reply or a follow-up you missed in the last 14 days. Search your inbox for replies with no row update, and look for follow-ups past their date.
  2. More than 20 live conversations. A live conversation is anyone who replied and has not said a clear yes or no: replied, call booked, demo, samples or a proposal sent.
  3. A second person works the list. A co-founder, a contractor or a sales helper.
  4. You search your inbox to remember what someone said before you write back.

Count replies from every place you sell: email, LinkedIn messages, phone calls, trade shows and events. They all belong in one pipeline.

At 100 personal messages a day and about 3 replies per 100, you get about 3 new conversations a day. That is more than 20 live conversations within the first week. So if you are doing the outreach the other guides ask for, the answer is usually "today".

Pick the switch day and write it at the top of the sheet. Do not wait for a quiet week. It does not come, and every week you wait adds about 20 more conversations to move.

  • Tool: your sheet and your inbox.
  • Time: 10 minutes.
  • You will have: a yes or no, the number of live conversations, and a switch date.
  • It worked if: you can say how many live conversations you have, to within 2.
  • Common mistake: buying a CRM at 10 messages a day "to get organised". A CRM does not bring replies. Send the messages first; move when the signs say so.

See it done: Carvelian's four-sign check

Carvelian Packaging is a made-up maker of custom printed boxes for small food and drink brands. One founder sells through calls, samples and quotes.

Checked on a Wednesday, after 4 weeks of outreach

SignWhat the sheet showedTrue?
Missed a reply or follow-up in 14 days2 replies found in the inbox with no row update; one asked for a quoteYes
More than 20 live conversations31: 11 replied, 9 calls booked, 6 samples sent, 5 quotes sentYes
A second person works the listNoNo
Searching the inbox to rememberBefore every quoteYes

Why it works: Two signs are true, so waiting another week would only add more conversations to move.

2. Set up a free CRM with one simple pipeline

Make a free Attio workspace, turn on Deals, set five stages, and connect the inbox you sell from. Attio's Free plan allows up to 3 users and 50,000 records, with CSV import, email sync and tasks.

Which free CRM. Use Attio's Free plan. Use HubSpot's free CRM only if you already use HubSpot for your website forms. HubSpot's free plan holds up to 1,000 contacts, two users and one pipeline. At 100 messages a day, 1,000 contacts fill up in 10 days if every cold contact goes in. Either tool works with this guide, because you only move people who replied (step 3).

  1. 1

    Create the workspace

    Sign up at attio.com on the Free plan, with the email you sell from.

  2. 2

    Turn on Deals

    Click your workspace name at the top left, then Workspace settings, then Objects. Click Activate next to Deals.

  3. 3

    Set five stages

    Deals come with the stages Lead, In Progress, Won and Lost. In the Deals object settings, edit the Deal stage options to the five below. Rename; do not add more.

  4. 4

    Make the board

    Open Deals, click the name of the current view, then "+ Create new", then Kanban. Name it "Pipeline" and choose Deal stage.

  5. 5

    Connect your inbox

    Click your workspace name, then Account settings, then Email and calendar accounts, then Connect Account for Gmail or Outlook. Keep the default "Selective contact creation". It only makes a record for people you have emailed or met, not for every newsletter. Email bodies stay private unless you choose to share them.

  6. 6

    Block the noise

    In workspace settings, add newsletter and no-reply addresses to the record suppression list, so they never become records.

Your five stages, and when a deal moves
Replied: they answered and the problem is real for them.
Call booked: a date is in both calendars.
Proposal sent: your price or quote is with them, in writing.
Won: they said yes in writing, or paid.
Lost: they said no, or no answer after 3 follow-ups. Write the reason.

If you run a B2B company: add "Samples sent" between "Call booked" and "Proposal sent" if buyers test a sample before they order.

If you run a SaaS: your self-serve signups stay in your product and your email tool. Put only the people you talk to in the CRM: chats, team trials and larger deals. Rename "Proposal sent" to "Trial started", and help each one turn into a paying customer.

If you run a D2C store: your shoppers stay in Shopify's customer list. The CRM is for the people you sell to one by one: stockists and shop buyers, distributors, creators and journalists.

If you run an agency: keep "Proposal sent". When a deal is Won, start your client onboarding the same day.

  • Tool: Attio Free ($0). HubSpot's free CRM only if you already use HubSpot.
  • Time: 30 minutes.
  • You will have: an empty pipeline with five stages, and your inbox connected.
  • It worked if: you can drag a test deal across all five columns, and an email you send to yourself from another address shows on that person's record.
  • Common mistake: building 12 stages and 20 custom fields on day one. You will skip them when you are busy, and then nothing in the CRM is true. Start with five stages and add a field only when you need it twice in one week.

3. Clean the rows you will move before you import them

Move only the people who replied, plus your customers. Copy those rows to a new tab, give each person one row, and save two files: one of people and one of deals.

Leave the cold list where it is. People who have not replied stay in your lead list, with the follow-up dates that sheet already works out. Your "Do not contact" tab stays in the sheet too, and nobody on it goes into the CRM. The moment someone replies, they move to the CRM.

  1. 1

    Copy the live rows to a new tab

    Filter your Status column for Replied, Call booked and anything later, plus your customers. Copy those rows to a new tab called "To CRM".

  2. 2

    One person per row, one fact per cell

    Split any cell with two names or two emails into two rows. Put the company's website domain in its own column. It is how the CRM matches companies. If a row has no email, find the person's email before you import it.

  3. 3

    Remove duplicates and spaces

    Select the data, then click Data, Data cleanup, Remove duplicates, and tick the Email column. Then Data, Data cleanup, Trim whitespace.

  4. 4

    Give every row a stage, a next step and a date

    Change each old status to one of your five stage names. Write the next step in a few words and its date as YYYY-MM-DD. Write the deal value as a plain number, with no $ sign.

  5. 5

    Save two files

    Make a "People" tab and a "Deals" tab with the headers below. For each tab, click File, Download, Comma-separated values. It downloads only the tab you have open.

The two files
People.csv
First name, Last name, Email, Job title, Company domain, Source, NotesDeals.csv
Deal name, Deal owner, Deal stage, Deal value, Associated company, Associated people, Next step, Next dateDeal name: [Company] – [what they want], for example "[Company] – 5,000 boxes"
Deal owner: the email you log in to the CRM with
Associated company: their website domain
Associated people: their email

AI does the dull part. Paste the "To CRM" tab into ChatGPT or Claude with the template above, and ask it to split names, pull out domains, map each old status to one of your five stages, and write each next step in under 8 words. Then check every row yourself against your inbox. AI guesses stages from words like "maybe"; you know what was said. Keep the Source column. It is how you track which channel brought each deal, and in the UK and EU it is how you can tell people where you got their details.

  • Tool: Google Sheets (free), and ChatGPT or Claude to tidy the rows.
  • Time: 45 to 60 minutes for about 30 to 100 live conversations.
  • You will have: People.csv and Deals.csv.
  • It worked if: no row has a blank email, stage or next date, and the number of rows in Deals.csv equals your count of live conversations from step 1, plus any won deals.
  • Common mistake: importing all 3,000 cold rows "to have everything in one place". It fills a free plan, buries the 30 people who matter, and can put people who said no back in front of you.

See it done: One of Carvelian's rows, cleaned

In the old sheet

Dana + Leo (dana@, leo@) | 6-person granola brand | sent quote?? | call back maybe next wk

In Deals.csv

Granola brand (Dana) – 5,000 cereal boxes | Proposal sent | 3000 | granola-brand.example | dana@granola-brand.example | Call to agree the order | 2026-10-08

Leo goes in People.csv as a second person at the same company.

Why it works: Each cell now holds one fact the CRM can sort, and the next step has a date the CRM can remind them about.

4. Import your contacts and open deals, then check the numbers match

Import people first, then deals, starting with 10 rows as a test. Then count: the CRM should show exactly as many open deals as your file has rows.

  1. 1

    Test with 10 people

    Save the first 10 rows of People.csv as a test file. In Attio, open People, click Import / Export at the top right, then Import CSV. Choose the file and click Next. Map Email to Email addresses, so the CRM matches people by email and does not make copies. Click Continue. Check the 10 records look right, then import the rest.

  2. 2

    Import the deals

    Open Deals and import Deals.csv the same way. Every row needs a Deal name, Deal owner and Deal stage, or it will not import. Map Associated company to the company's Domains and Associated people to their Email addresses, so each deal links to the right records.

  3. 3

    Count and spot-check

    Open your Pipeline board. Count the deals in each column and compare with your file. Then open 5 deals at random and check the person, company, stage and value against your inbox.

  4. 4

    Give every open deal a task

    Open each deal that is not Won or Lost. Press t, write the next step, type @ and the deal name to tie it to the deal, and give it the date from your file, such as "call Thursday 10am".

Attio matches people by email and companies by domain. If you skip the email mapping, it warns you and makes new copies instead of updating. If that happens, delete the test records and import again with Email mapped.

  • Tool: Attio's Import CSV. Free.
  • Time: 30 minutes, plus about 1 minute a deal for its task.
  • You will have: every live conversation as a deal on the board, each with a task and a date.
  • It worked if: the count on the board matches your file in every column, all 5 spot checks are right, and Home shows a task for every open deal.
  • Common mistake: importing deals before people. The deals then have nobody to link to, and you fix it by hand.

5. Log every reply in the CRM the same day, and clear your tasks every day

From the switch day, the CRM is the only place a conversation lives. Every reply goes in the same day, and every task due today gets done today.

First, lock the old reply columns so you cannot update two places. In your sheet, click Data, then Protect sheets and ranges, then Add a sheet or range. Select the Status and notes columns, click Set permissions, and choose "Show a warning when editing this range". Add "In CRM" to your Status drop-down. When someone replies, mark their row "In CRM" and do nothing else to it in the sheet.

Then turn on the daily reminder: in Attio's notification settings, switch on the daily reminder of tasks due. It comes only on days you have something due. A tool that does not remind you is how deals are lost. One founder lost a deal in June 2026 after forgetting a follow-up for three weeks: "it never reminded me of anything" (Indie Hackers).

Every day, in this order:

  1. Add every new reply as a deal. Stage "Replied", a one-line note of what they said, and a task for the next step with a date. At about 3 replies per 100 messages, that is about 3 new deals a day.
  2. Log every call the same day. After each discovery call or demo, write the note below and move the stage. Ask your AI assistant to turn your call notes or transcript into those four lines, then check them.
  3. Clear every task due today. Open Home, which shows tasks due today, tomorrow and overdue. Send each follow-up on its date, up to 3 per person, with one new line each time. A deal still silent after 3 follow-ups goes to Lost on Sunday.
The note after every call
What they need: [the problem, in their words]
Who decides: [name and role; is it the person you spoke to?]
Next step: [what happens next, who does it]
Date: [when]

The first line gives you the buyer's own words for your next messages. The second stops you sending a proposal to someone who cannot say yes. Find the decision-maker before a deal reaches "Proposal sent".

Attio also has an official connector for Claude and ChatGPT, so an assistant can read and update your pipeline from a chat. It is useful, not needed. The routine above works with the CRM alone.

  • Tool: Attio tasks and the daily reminder. Free. If a buyer asks for "more information", send your sales deck and add a task to follow up in 3 days. If a buyer sends a tender or RFP, add its deadline as a task the day it arrives.

  • Time: about 20 minutes a day, on top of the outreach itself. Do it at the same time every day, before you send new messages.

  • You will have: every reply, call and next step in one place, with a reminder for each.

  • It worked if: after 1,400 messages (2 weeks at 100 a day), you find 0 replies in your inbox with no deal, and Home shows 0 overdue tasks.

  • Common mistake: writing notes in the CRM and also in the sheet, a notebook or your inbox "just this once". Two places means neither is true, and you are back to searching your inbox.

6. Review your pipeline every Sunday

Every Sunday, count your deals by stage, close the dead ones, and check every open deal has a next step this week. It takes 30 minutes and tells you where deals get stuck.

  1. Count each column and write the five numbers in one row of a sheet, one row per week.
  2. Close the dead deals. Move any deal with no answer after 3 follow-ups to Lost, and write the reason in one or two words: "no answer", "price", "timing", "not a fit". Put "timing" deals on your nurture emails. You can still write to them in 3 months. A closed deal is better than a "maybe" you check every day.
  3. Give every open deal a date this week. Sort or filter the board for deals with no task. Add one.
  4. Write the source of each won deal, from the Source field. Ask every new customer how they heard about you; that is self-reported attribution, and at this size it beats any tool. If a referral partner sent them, write the partner's name.
  5. Find the stuck column. If most deals sit in "Replied", offer two call times in your first answer. If they sit in "Proposal sent", fix the proposal or follow up sooner. If most Lost reasons say "price", check your price and how your pricing page explains it. If they say "not a fit", tighten your ideal customer profile before the next 700 messages.
The Sunday row
Week | Replied | Call booked | Proposal sent | Won | Lost | Lost reasons | Won from (source)

Once a month, take these four rows into your monthly marketing review, and use the won deals to work out your cost per customer. Every Won deal is also someone to ask for a testimonial and, later, a case study.

  • Tool: your Pipeline board in Attio, and one Google Sheet for the weekly row.
  • Time: 30 minutes every Sunday.
  • You will have: one row per week, no dead deals on the board, and a date on every open deal.
  • It worked if: every open deal has a task due in the next 7 days, and you can name where every won deal came from.
  • Common mistake: leaving silent deals open because closing them feels like giving up. The board then shows 60 deals when 15 are real, and you plan your week around the wrong number.

See it done: Carvelian's first Sunday review

Week 1 in the CRM

WeekRepliedCall bookedSamples sentProposal sentWonLostLost reasonsWon from
1141076143 no answer, 1 pricecold email

The decision: 14 deals sit in "Replied", more than any other column. So next week the founder offers two call times in the first reply, instead of asking "when suits you?".

Why it works: Closing the silent deals shows the real number, and the stuck column shows what to fix next week.

Your move from spreadsheet to CRM: today, then every day

0 of 13 done

Work through this list with an AI assistant

It drafts the work and keeps track of what is done.

Step 1 · Check whether your sheet is ready for a CRM

Step 2 · Set up a free CRM with one simple pipeline

Step 3 · Clean the rows you will move

Step 4 · Import your contacts and open deals

Step 5 · Log every reply the same day, and clear your tasks

Step 6 · Review your pipeline every Sunday

Frequently asked questions

Can I just keep using Google Sheets as a CRM?

Yes, while you have fewer than about 20 live conversations and nobody else works the list. A sheet holds a lead list of thousands of names well. What it cannot do is remind you. Once a reply or follow-up slips, move the conversations to a CRM and keep the cold list in the sheet.

What is the best free CRM for a small business?

For one founder sending a lot of messages, Attio's Free plan: up to 3 users and 50,000 records, with CSV import, email sync and task reminders. HubSpot's free CRM is good if you already use HubSpot for website forms, but it holds 1,000 contacts and two users, so put only people who replied in it.

Should I import my whole lead list into the CRM?

No. Import the people who replied and your customers. The cold list stays in your sheet with its follow-up dates until someone answers. That keeps a free plan inside its limits and keeps your board down to the 20 to 100 people who matter. Never import your "Do not contact" list into the pipeline.

How long does it take to move from a spreadsheet to a CRM?

For one founder with up to about 100 live conversations: 2 to 3 hours. That is 10 minutes to decide, 30 to set up, about an hour to clean the rows and 30 to import and check. Team guides say 2 to 4 weeks because they train people. The habit takes longer: give it 2 weeks of logging every reply the same day.

When should I pay for a CRM?

When the free plan stops you doing a step in this guide: more than 3 people need access, you pass the record limit, or you need more than one pipeline, for example one for distributors and one for direct buyers. Until then, put the money into more outreach. Attio's Plus plan is $35 per user a month, paid yearly.

Sources

  1. 1.Attio pricing: Free and Plus plans — Attio, checked 5 October 2026
  2. 2.HubSpot Product and Services Catalog: free account limits — HubSpot, checked 5 October 2026
  3. 3.HubSpot CRM pricing — HubSpot, checked 5 October 2026
  4. 4.Manage standard objects — Attio Help Center, checked 5 October 2026
  5. 5.Deals — Attio Docs, checked 5 October 2026
  6. 6.Create and manage kanban views — Attio Help Center, checked 5 October 2026
  7. 7.Sync your email and calendar — Attio Help Center, checked 5 October 2026
  8. 8.Import data into Attio via CSV — Attio Help Center, checked 5 October 2026
  9. 9.CSV import formatting guide — Attio Help Center, checked 5 October 2026
  10. 10.Tasks — Attio Help Center, checked 5 October 2026
  11. 11.Work anywhere with Attio — Attio, April 2026
  12. 12.Split text, remove duplicates, or trim whitespace — Google Docs Editors Help, checked 5 October 2026
  13. 13.Protect, hide, and edit sheets — Google Docs Editors Help, checked 5 October 2026
  14. 14.Download a file — Google Docs Editors Help, checked 5 October 2026
  15. 15.Moving from spreadsheets to a CRM: what to expect — GrowCRM, 4 June 2026
  16. 16.Spreadsheet vs CRM: when should your startup upgrade — Authencio, 20 August 2026
  17. 17.Built a dead-simple pipeline tracker after losing a deal because I forgot to follow up — Indie Hackers, 17 June 2026

Next article to read

How to run a monthly marketing reviewComing soonOnce every deal is logged, look at the numbers once a month and decide what to change.

Guides that link here

Cite this page

Dinesh Bypilla (2026). How to move from spreadsheets to a CRM. Scout7 Academy. https://scout7.ai/academy/sales/how-to-move-from-spreadsheets-to-a-crm

Written by Dinesh Bypilla, Agentic systems engineer at Scout7. Reviewed by Murali Sid. Last checked 5 October 2026.

Quote any part of this guide with a link back to this page. © 2026 Scout7.

Markdown version of this page: https://scout7.ai/academy/sales/how-to-move-from-spreadsheets-to-a-crm.md