Import contacts
Import many customers or partners from a spreadsheet instead of typing each record. Use the blank template so the column keys match.
Customers & trades → Import customers dialog
desktop
When to use this
Use this when you already have a contact list and want it in SiteHut in one pass.
Do not use it to add a single client. Use Add Customer or Add Partner instead. Do not use it for costing rates. That is Library.
Before you start
- You can write customers or partners in this workspace.
- You are on the matching tab: Customers for clients, Trades & suppliers for partners. Import is separate on each tab.
- Names you will reuse later are unique in this workspace.
Open Import
Customers & trades → Customers → Import, or Customers & trades → Trades & suppliers → Import. The dialog title is Import customers or Import partners.
Download blank template
Download blank template. Row 1 is field keys. Row 2 is a guide (cells start with [). Keep row 1. Replace or delete the guide row when you add real data.
Upload CSV file
Upload CSV file and choose your .csv. SiteHut skips the guide row automatically when the first cell starts with [.
Fix errors, then import
Valid rows show as N customers ready to import (or partners). Rows that fail local checks show as N rows need fixes. Start over to pick a different file.
Import N rows sends only the valid rows. If the server rejects the file, nothing is saved.
What done looks like
- A toast: Imported customers: X created, Y updated (or partners).
- New names appear on the tab you imported into.
- Re-importing the same name (or the same id) updates that record.
Common mistakes
- Importing partners from the Customers tab, or the other way around.
- Changing row 1 keys (for example
contact_emailtoEmail). - Two rows with the same name in one file. The import fails.
- Expecting an empty id plus a new spelling of an existing name to update that company. That creates a second record. Match name exactly, or paste the existing id.
Customer columns
| Key | Required | Notes |
|---|---|---|
id | No | Leave blank for new. Existing UUID updates that customer. |
name | Yes | Unique customer name in the workspace |
company | No | Company label |
contact_email | No | Primary customer email |
phone_number | No | Include country code, for example +442079460958 |
customer_type | No | residential or commercial (labels Residential / Commercial also work) |
tax_id | No | Tax ID / VAT number |
notes | No | Free text |
payment_terms_days | No | Whole number of days |
contact_name | No | Optional person at this customer |
contact_person_email | No | Person email (separate from contact_email) |
contact_person_phone | No | Person phone |
contact_role | No | For example Project Manager |
Partner columns
| Key | Required | Notes |
|---|---|---|
id | No | Leave blank for new. Existing UUID updates that partner. |
name | Yes | Unique partner name in the workspace |
category | Yes | professional, trade, or supplier (labels Professional Services, Trades, Suppliers also work) |
email | No | Partner / company email |
phone_number | No | Include country code |
notes | No | Free text |
specialty_names | No | Comma-separated trade tags |
contact_name | No | Optional person |
contact_person_email | No | Person email |
contact_person_phone | No | Person phone |
contact_role | No | For example Site manager |
After import
- Link imported customers when you create a job.
- Use imported partners on purchase orders, bills, and as doers on snags and RFIs.
Save one person from a picker
On a snag or RFI doer picker, type an unknown email and choose Save to Directory as partner…. On the project team picker the action is Save to Directory. Save as is Partner / subcontractor or Customer. That is for one person, not a spreadsheet.