Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.flexwash.com/llms.txt

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

Prepaid membership bases and loyalty programs are some of the stickiest parts of a car wash business, and they are also the parts customers notice fastest when a migration goes wrong. FlexWash imports both, per car wash, before your first day live, so existing members keep the time they paid for and every loyalty point follows them into the new system.

How It Works

This is a hands-on, support-led import. You produce the data per car wash, and a FlexWash onboarding specialist runs the importer for you after a joint validation pass.
1

Export one CSV per car wash

Pull active prepaid memberships and loyalty balances from your current POS into a separate CSV file for each car wash. Use the exact field names listed below as your headers.
2

Share the files with your onboarding specialist

Send the CSVs to the FlexWash team. We treat them as the source of truth for prepaid coverage and point balances at go-live.
3

We validate and map plans

Our support staff verifies every row, flags any data issues back to you, and maps each legacy plan name to a FlexWash membership package. This mapping is done once per organization and reused on every subsequent file.
4

We run the import

Once the file is clean and every plan is mapped, we run the importer. Customers, vehicles, prepaid memberships, and loyalty balances land in FlexWash. Supplying the optional customerInsertedAt, vehicleInsertedAt, and membershipInsertedAt columns preserves each record’s original start date.
Recurring card-on-file memberships move through a different path. See Member Token Migration for the processor-to-processor flow, and Interim Imports for the daily bridge that keeps members recognized while tokens migrate.

File Format

One CSV per car wash. The header row must contain the exact field names shown in the tables below. Empty cells are allowed for any optional field.

Required Fields

FieldDescription
customerMigrationIdThe customer’s unique ID in your existing POS. We use this to keep your historical records linked.
licensePlateVehicle license plate. Whitespace and a trailing two-character state suffix (e.g. ABC123-WA) are stripped, then the plate is uppercased and any letter O is converted to digit 0.
planNameThe membership plan name as it appears in your existing POS. Support maps this to a FlexWash package on the first import and remembers it on every file after.
billDateInMonthDay of the month for billing, as an integer from 1 to 31.

Optional Fields

FieldDescription
nameCustomer’s full name.
phoneNumberPhone number. Non-digit characters are removed and the trailing 10 digits are kept.
emailCustomer email address. Stored lowercased.
vehicleMigrationIdThe vehicle’s unique ID in your existing POS.
makeVehicle make.
modelVehicle model.
yearVehicle year.
rfidTagVehicle RFID tag. Normalized on import.
customerInsertedAtOriginal customer creation timestamp. Preserves the customer’s true start date in FlexWash.
vehicleInsertedAtOriginal vehicle creation timestamp.
membershipInsertedAtOriginal membership creation timestamp.
ccZipcodeBilling zip code on file.
promotionIdFlexWash promotion ID to attach to the subscription. Must already exist in your FlexWash organization.
loyaltyPointsBalanceCurrent loyalty point balance for the customer, as an integer.

Tips for a Clean File

  • If you use Excel export your file as a CSV, then check the data for accuracy before sending.
  • Keep customerMigrationId stable. If your ex-POS has a separate “customer number” that changes when a record is edited, use the immutable internal ID instead.
  • If a customer has more than one vehicle on the same prepaid membership, give us one row per vehicle and repeat the customer columns on each row. Flag these cases to your onboarding specialist so we group the rows under a single customer record.
  • Send one file per car wash even if a single customer appears at more than one location. We reconcile shared identities during the verification pass.