Import Order and Field Reference

Recommended Contacts → Properties → Quotes → Invoices order, required fields, and dedup rules for Settings → Import.

5 min read

Use this reference with the import wizard at Settings → Import. Import one entity type per run. Link-dependent rows work best when you import in order.

Recommended import order

  1. Contacts — email is the identity and link key for later rows.
  2. Properties — optional Contact Email links to an existing contact; address fields dedupe properties.
  3. Quotes — optional customer email and home address fields link to contacts and properties.
  4. Invoices — same linking pattern as quotes; import last.

There are no numbered tabs that force this order — pick the entity on the Import data screen each time.

Contacts

FieldRequiredNotes
EmailYesCanonical identity and dedup key. Rows without email are skipped as invalid.
First NameNoDefaults empty if missing. A single Name column often auto-maps here.
Last NameNo
PhoneNo
NotesNo

Dedup: Matching email updates the existing contact (name, phone, notes). Duplicate emails later in the same file are skipped. New emails create contacts.

Properties

FieldRequiredNotes
AddressYesStreet line (e.g. 123 Main St).
CityYes
StateYes
ZIPYes
Property TypeNo
Square FootageNoNumber.
Year BuiltNoNumber.
NotesNo
Contact EmailNoLinks to an existing contact by email — import contacts first.

Dedup: Same address + city + state + ZIP skips as duplicate (no update).

Quotes

FieldRequiredNotes
TitleYes
Line Items (JSON)YesJSON array — see format below.
DescriptionNo
Customer EmailNoMatches an existing contact.
Home Address / Home City / Home State / Home ZIPNoMatches an existing property.
StatusNodraft, sent, viewed, accepted, declined, expired (defaults draft).
Tax RateNoNumber (e.g. 8.25).
DiscountNoDollar amount.
NotesNo
Valid UntilNoDate.

Line items JSON format

Each object needs description, quantity, and unit_price:

[{"description": "Install water heater", "quantity": 1, "unit_price": 450}, {"description": "50-gal water heater", "quantity": 1, "unit_price": 800}]

Invoices

Same fields as quotes, with these differences:

  • Status options: draft, sent, viewed, paid, overdue, void (defaults draft).
  • Due Date replaces Valid Until.

Line items use the same JSON format.

Column mapping

After upload, the Map step matches spreadsheet headers to QuoteBolt fields. Common names auto-map; use the dropdowns to fix anything else. Preview validates required fields and JSON before Import N rows.

What happens next

  1. Importing data from CSV files
  2. Managing contacts
  3. Send your first quote