Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.servicebooked.ca/llms.txt

Use this file to discover all available pages before exploring further.

If you’re coming from a spreadsheet, another CRM, or a contact-management tool, you can import your customer list as a CSV in a single upload.

CSV format

We accept any CSV with at least one of these columns: email, phone, first_name. (We need something to identify each contact by.) Recognized columns (case-insensitive, with common aliases):
FieldAliases
first_namefirst, fname, given_name
last_namelast, lname, surname
business_namecompany, business, organization
emailemail_address, e-mail
phonephone_number, mobile, telephone
addressstreet, address_1, street_address
citytown, locality
provincestate, region
postal_codezip, zipcode, postal
notescomments, description
tagslabels (comma-separated within the cell)
statusstage
Anything we don’t recognize is ignored, not an error. Pull your CSV out of whatever tool you’re using and don’t worry about cleaning column names — we’ll handle it.

Run the import

1

Open Contacts

Navigate to Contacts in your dashboard.
2

Click 'Import'

Top-right of the page.
3

Upload your file

Drag-and-drop or browse. The first row should be column headers.
4

Review the preview

We parse the first 5 rows and show you what we’ll do with them. Check that names landed in the right column, phones look right, etc.
5

Confirm import

Click Import. We process up to ~10,000 rows per upload (most customer lists are well under that). Progress shows live.
6

Review the results

After import you see:
  • Imported — new contacts created
  • Updated — existing contacts merged on email/phone match
  • Skipped — rows that couldn’t be parsed (with row numbers + reasons)
Skipped rows are yours to fix and re-upload (only re-uploading the skipped rows; we won’t double-import the rest).

Deduplication during import

Imports respect the same dedupe rules as everything else: a row whose email or phone matches an existing contact updates that contact rather than creating a duplicate. So you can re-import the same CSV without creating doubles.

Tags during import

If your CSV has a tags column, we treat each cell as comma-separated. So tags: vip,repeat,commercial applies all three tags. New tags are auto-added to your org’s tag library.

Status during import

If your CSV has a status column, we apply it as long as it matches one of your configured statuses. If a row has a status we don’t recognize, we skip the status (the contact still imports, just without a status applied). To see your configured statuses, go to Settings → Pipeline → Stages.

Privacy

Imported data is only ever visible to your organization. We don’t share, sell, or analyze it for any purpose other than running ServiceBooked for you. If you delete an imported contact later, the row is removed (with a 30-day soft-delete window for recovery). After 30 days it’s permanently purged.

Common gotchas

  • Phone numbers in weird formats: we handle most variants ((613) 555-0100, 613-555-0100, 6135550100, +16135550100) but some international formats trip us. Skipped rows will tell you why.
  • Business-only contacts: if your spreadsheet has rows that are companies without a person attached, set first_name to the company name (e.g., “Acme HVAC Inc.”) and leave last_name blank. Better than skipping the row.
  • Custom fields: not currently supported on import. If you have data ServiceBooked doesn’t model (e.g., “warranty expiration date”), put it in the notes field for now.

Next

Tags

Organize contacts after import.

Statuses

What each pipeline stage means.