Import your customers from Skimmer, Pool Brain, or a CSV

Move your whole book of business in one pass with the import wizard, including schedules, equipment, and service history.

Updated October 15, 2026

Browse all guides

If your customers live in Skimmer, Pool Brain, a spreadsheet, or another system that can export a CSV file, the import wizard moves them all at once: customer, pool, and schedule per row, plus optional equipment and last-service history.

Run the import

Open the importer from the Customers page (Import button) or Settings, Your Data.

Only two things are actually required: a name and an address. Everything else is optional. If your spreadsheet keeps the whole address in one cell ("123 Main St, Phoenix AZ 85018"), that is fine; the importer splits the street, city, state, and ZIP out of it for you. Anything it cannot read with confidence is left blank and flagged on that row rather than guessed at, and you can complete it later from the pool's page.

The wizard in motion: upload the CSV, the format is detected, columns map themselves for review
  1. Upload: drag in your CSV. Up to 5 MB and 5,000 rows per file.
  2. Format detection: Skimmer and Pool Brain exports are recognized automatically. Anything else is treated as a generic CSV and the wizard guesses the columns.
  3. Column mapping: check the guesses against the sample data shown under each column and fix any that landed wrong.
  4. Preview: every row is validated. Warnings will not stop the import; errors on a row skip just that row, never the whole file. You can also untick rows by hand.
  5. Duplicates: if a row matches an existing customer by name and address, pick what happens: skip it, merge the new fields in, or overwrite.

Rows import independently. One bad row never rolls back the rest, and the results screen lists exactly what was skipped and why.

We do not keep your file

PoolChecker holds a copy of the uploaded file only so the wizard can read it again when you confirm the preview. The copy is erased the moment the import starts. A preview you never confirm expires after 24 hours, and a daily cleanup erases its copy. Confirming an expired preview shows "This preview expired. Upload the file again." and imports nothing, so upload the file again to start over. Customers you already imported are not affected.

Columns worth including

Beyond name and address, the importer can map:

  • Service day and frequency: builds the pool's schedule so routing works immediately.
  • Phone and email: needed for texts, reports, and payment links later.
  • Equipment type, manufacturer, model, serial number: creates an equipment record on the pool.
  • Last service date: creates a completed visit so recency shows correctly from day one.

After the import: locate your pools

Imported pools start without map coordinates, and a pool without coordinates stays off routes and maps. The Pools page shows a banner when any pools need locating; tap Locate All and PoolChecker looks the addresses up in the background (about one per second, so a large book takes a few minutes). Addresses that cannot be matched are listed so you can correct them on the customer record and run it again.

Imported customers are marked as having text consent, on the basis that these are existing customer relationships. If any customer should not receive texts, turn consent off on their page.

Next: build your first route.