Start your free 14-day trial — no credit card required. See Plans →
Back to BlogTechnology

How to Import a Customer List from a Spreadsheet or Another FSM

CrewField TeamSep 7, 20266 min read
Spreadsheet customer data open on a computer in a small business office

Your customer list is the backbone of scheduling, texting, quoting, and invoicing. Importing it wrong creates duplicate Smiths, blank phones, and techs driving to incomplete addresses. Importing it right is mostly preparation—not magic soft

Your customer list is the backbone of scheduling, texting, quoting, and invoicing. Importing it wrong creates duplicate Smiths, blank phones, and techs driving to incomplete addresses. Importing it right is mostly preparation—not magic software buttons.

This walkthrough shows how to import a customer list from Excel/Google Sheets or an export from another field service management (FSM) tool into a cleaner system—without pretending every migration is one-click perfect.

Before you import: decide what "customer" means

In home services, a "customer" may be:

  • A homeowner with one address
  • A landlord with many properties
  • A property manager contact plus a site address
  • A commercial account with multiple locations
  • An inactive seasonal account you still want on file

Decide whether your new system treats people and properties as one record or related records. That decision drives how you shape the spreadsheet.

Minimum fields worth importing

  • Full name or company name
  • Mobile phone (for SMS) and optional secondary phone
  • Email
  • Service street, city, state/province, postal code
  • Billing address if different
  • Status (active / inactive)
  • Notes (gate codes, pets, HOA—clean these up)
  • Tags / service type (pool, lawn, HVAC)
  • Optional: account number from the old system (great for troubleshooting)

Skip junk columns you will never use. They slow mapping and confuse staff later.

Step 1: Export from the old place

From a spreadsheet you already live in

  • Save a dated copy first (customers-2026-09-16-source.xlsx)
  • Work on a duplicate named customers-import-ready.csv
  • Keep the original untouched as your audit file

From another FSM (Jobber, Housecall Pro, Workiz, ServiceTitan, etc.)

  • Use the vendor's customer/client export (CSV when possible)
  • Export properties/locations separately if the platform splits them
  • Export a small sample first (50 rows) to test mapping
  • Note the export timestamp—you will need a delta plan for customers added after export

If exports are limited on your plan, even a carefully cleaned manual list of active accounts beats importing nothing.

Step 2: Clean the data (this is the real work)

Budget more time here than on the click labeled "Import."

Deduplicate

Common duplicates:

  • "Mike Jones" vs. "Michael Jones" same phone
  • Same address, slightly different names
  • Landlord listed twice with two emails

Create a working rule: match on phone or normalized address, then review collisions by eye. When unsure, keep the record with richer notes and merge details.

Normalize phones and addresses

  • One phone format (include country code if you operate across borders)
  • Split address into columns if your importer prefers that
  • Fix missing city/state where possible
  • Remove "see notes" as a street address

Fix emails and SMS reality

  • Remove obvious typos (@.com, spaces)
  • Blank out invalid emails rather than importing garbage
  • Ensure the mobile you will text is in the primary SMS field

Notes hygiene

Gate codes and dog warnings are gold—if readable. Replace internal slang with something any tech can understand. Strip ancient drama that should not live forever in the CRM.

Mark inactive deliberately

If someone has not booked in years, tag inactive rather than deleting (unless you have a retention policy that says otherwise). Inactive clutter is better than accidentally texting churned numbers—if you filter reminders to active only.

Step 3: Shape a CSV the importer expects

Typical clean header row:

first_name, last_name, company, phone, email, service_street, service_city, service_state, service_zip, billing_street, billing_city, billing_state, billing_zip, tags, status, notes, external_id

Tips:

  • UTF-8 CSV to avoid weird character issues
  • One customer per row (or one property per row—be consistent)
  • No merged Excel cells
  • No blank header columns
  • Dates in a single format if you include them

If your new platform provides a template CSV, use it. Map your columns to their names rather than inventing synonyms.

Step 4: Map fields carefully (test import first)

Always run a test import of 10–25 rows.

Verify:

  • Names display correctly
  • Phone is textable / callable as stored
  • Address shows on the job / map view as expected
  • Tags and status survived
  • Notes did not truncate badly
  • external_id (old system ID) is stored somewhere searchable

Only after the sample looks right should you import the full file.

Mapping gotchas

  • First/last vs. full name fields
  • Company vs. contact person on commercial accounts
  • Secondary phones overwritten or dropped
  • Country assumptions in postal validation
  • Tag delimiters (comma vs. pipe)

If something maps wrong, delete the test customers (or use a sandbox) before the full run—do not "fix it later" across 2,000 records.

Step 5: Import, then verify like a dispatcher

After the full import:

  1. Spot-check 20 random active customers
  2. Search for your top 10 accounts by name and phone
  3. Open a customer and create a test job (then delete / cancel) to ensure address flows
  4. Compare record counts: source active vs. imported active
  5. Review an exception list: rows that failed validation

Keep a import-exceptions.csv of failures and fix them in a second pass.

Step 6: Bring related data in the right order

Customers first. Then, as needed:

  1. Properties (if separate)
  2. Recurring service agreements / memberships
  3. Upcoming jobs
  4. Open invoices
  5. Equipment / pool assets / job history (phase two is fine)

Importing invoices before customers exist is how you get orphan money records. Sequence matters.

Step 7: Communicate the cutover to your team

A clean database still fails if people keep typing into the old sheet.

  • Announce the go-live date for "new customers entered only in the new system"
  • Show techs where notes and gate codes live now
  • Give office a 15-minute search drill (find by phone, address, name)
  • Freeze edits on the old spreadsheet except for emergency reference

Spreadsheet-only teams: special advice

If your "FSM" is Sheets + calendar:

  • Split "Contacts" from "Schedule" before import
  • Do not import calendar tabs as customers
  • Create tags from columns like Service Type / Route Day
  • Treat Route Day as a note or tag—not a fake phone field

The goal is a CRM that scheduling can trust, not a replica of every historical tab.

How CrewField handles imports

CrewField supports importing clients and fuller databases from spreadsheets and other field-service tools—useful whether you are leaving a major FSM or finally retiring a shared Excel file. After customers land, you can connect jobs, quotes, invoices, routes, and recurring agreements without retyping the whole book of business by hand.

If you are planning a move, review capabilities on features and the flat unlimited-team pricing so growth after import does not trigger per-seat surprises.

Import day checklist (print this)

  • Dated backup of source data saved
  • Deduped and normalized import-ready CSV
  • Template columns matched
  • 10–25 row test import verified
  • Full import completed
  • Record counts reconciled
  • Top accounts spot-checked
  • Exceptions fixed in second pass
  • Team trained on search + notes
  • Old list set to read-only

Bottom line

A successful customer import is a data-cleaning project with a short technical finish. Export carefully, dedupe and normalize, test-map a sample, then verify like someone who has to dispatch from the results tomorrow.

Do that, and your new system starts as an upgrade—not a digital junk drawer with a nicer login screen.

Ready to put this into practice?