Prepare your service history

Useful data. Customer identities left out.

Need help creating anonymous IDs?

Follow the dedicated guide, download the private bridge template, and keep the same customer ID across every visit and future export.

Open data preparation help →

Start with a CSV export from your shop software. Keep one row per completed repair order and remove identifying information before uploading. The limit is 10 MB and 50,000 repair orders, with no cell longer than 256 characters.

The example contains made-up records. Replace them with your own de-identified history; do not upload the example as your shop's data.

Before you export

  1. Choose a consistent date range and note the locations included.
  2. Replace customer and repair-order identifiers with anonymous IDs. Use only letters, numbers, underscores, or hyphens, up to 64 characters.
  3. Combine repair-order line items into one total and one broad service category per order.
  4. Keep only the supported columns below. Check the entire file for identifiers and free-text notes.
  5. Save as UTF-8 CSV, complete your order's intake and authorization statement, then upload from My account.

Five required columns

Use these exact column names. Every row must contain a value for each required field.

ColumnWhat to includeExample
anonymous_customer_idA made-up, stable customer ID. Use the same ID for each visit; keep the identity lookup at your shop.anon_001
service_dateThe completed service date, in YYYY-MM-DD format. Future dates are not accepted.2025-07-15
transaction_or_ro_idA unique, de-identified repair-order ID. Combine line items so each repair order appears once.ro_001
transaction_amountThe total repair-order amount in USD, with at most two decimal places. Refunds may be negative.149.95
service_categoryA broad service label, such as Oil, Brakes, Tires, or Inspection. Never include customer notes.Oil

Optional columns

vehicle_year, vehicle_make, vehicle_model
General vehicle description only. No VIN, registration, license plate, or owner details.
odometer
A non-negative whole number. Use a consistent unit throughout the file.
location_id
A made-up location label, using letters, numbers, underscores, or hyphens.
contact_eligible, email_eligible, sms_eligible
Use true, false, 1, or 0. Flags describe your records; they are not proof of consent and do not trigger messages.
deferred_service_category
A broad category of work recorded as deferred. No technician or customer notes.

Leave these out

Do not include names, phone numbers, email addresses, street addresses, VINs, license plates, dates of birth, payment details, or free-text customer and technician notes. Renaming an identifying column does not make its contents anonymous.

Screening is a safeguard, not a guarantee

Every row is checked, but automated screening cannot recognize every name or identifier. You remain responsible for reviewing and de-identifying the export before upload.

What happens after upload

Accepted
Required fields, formats, and privacy screening passed. The file is stored privately and attached to your order. Acceptance does not certify anonymity or data accuracy.
Rejected
There is a file or data problem, such as an invalid date, missing field, duplicate repair order, or malformed amount. Read the error on your intake page, correct the source file, and upload again.
Quarantined
Unsupported columns or recognizable identifying information were detected. The file cannot enter analysis. Remove the information and upload a corrected copy.

The checks cover all rows, duplicate headers and repair orders, column counts, quotation, dates, amounts, ID formats, and contact flags. The intake page shows errors and any remaining cautions.

Private analysis and human review

Totals are calculated from the accepted file. When AI report writing is enabled, it receives aggregate counts, totals, date ranges, and fixed service categories. Raw customer rows and intake notes are excluded from its request. Customer report access stays locked until an administrator approves the saved report.

Once an accepted file is attached, it cannot be replaced through the upload form. Visit Contact if a correction is needed.