Reviewing, Reconciling, and Rolling Back an Import
Summary
Section titled “Summary”After an import finishes, Torqueflow gives you three tools for making sense of what happened: the reconciliation report (what was created, updated, preserved, or flagged), the data quality report (which records had issues and why), and the rollback function (delete everything this import created and start over). This article walks through all three, plus how refresh mode re-imports work when you want to sync updated data from your source system without overwriting Torqueflow-native work, and how to import again after a rollback.
Prerequisites
Section titled “Prerequisites”- You’re the owner, or your role has the
settings.import.managecapability. - You have at least one completed import run on the organisation.
Understand initial mode vs refresh mode
Section titled “Understand initial mode vs refresh mode”Every import run has a mode stored on the ImportRun record:
| Mode | When it applies | What it does |
|---|---|---|
| Initial | First import from a source system, or the first import after every earlier import from it was rolled back. | Creates new records for every row. |
| Refresh | Later imports from the same source system while earlier imported records are still in Torqueflow. | Records Torqueflow has already imported are updated (source-owned fields only). Records it hasn’t seen before are created. Records you created in Torqueflow yourself aren’t overwritten. A customers and vehicles file can fill in blank fields on an existing customer with the same email address. |
Torqueflow picks the mode automatically when you upload files, based on whether it already holds records imported from that system. Records from an import that was rolled back don’t count. The mode shows as an Initial or Refresh badge against each run in Import History. You can’t change it.
Understand which fields a refresh updates
Section titled “Understand which fields a refresh updates”- Refresh mode only updates source-owned fields: the fields your old system actually holds. For a customer that’s title, name, email, phone, landline and address. For a vehicle it’s details such as make, model, VIN, year and tyre sizes, where your old system’s export includes them.
- Torqueflow-native fields (notes you added in Torqueflow, tags, custom fields, status changes made in Torqueflow) are preserved and never overwritten.
- Work orders are largely Torqueflow-native. Only the booking date, invoice date and mileage are source-owned.
- Financial records (sales invoices, sales payments, purchase invoices, purchase payments) are append-only. Refresh never updates or deletes existing financial records. It only adds new ones it hasn’t imported before.
What a refresh never changes
Section titled “What a refresh never changes”A refresh from Techman or MAM Autowork Online leaves these alone, whatever the file says:
- A customer’s credit hold, account customer flag, customer group, marketing consent and notification preferences. Neither system’s export carries them, so whatever you’ve set in Torqueflow stays. A first import still sets them from the file.
- A vehicle’s registration. If you’ve changed a plate in Torqueflow, a refresh doesn’t change it back.
- MOT expiry, engine size and fuel type on a vehicle Torqueflow has already checked with DVSA. The official record wins. A refresh only fills these in when they’re empty.
- From MAM Autowork Online: engine size, fuel type, body style, year, date first registered, BHP, tyre sizes, MOT date and next service date. Autowork’s export doesn’t carry them, so a refresh never touches them.
- From Techman: make and model. Corrections made in Torqueflow, or filled in from the official vehicle record, stay.
- Notification preferences on a customer you created in Torqueflow. When an import matches one of your own customers by email address, it fills in blank fields only.
When a phone number or email address changes in the old system, the refresh updates it on the customer’s contact list as well as the main record, so the two stay in step. A changed mobile number clears that customer’s WhatsApp verification and WhatsApp consent, because the new number hasn’t opted in.
Understand what happens when the two systems disagree
Section titled “Understand what happens when the two systems disagree”- When a source-owned field differs between the file and Torqueflow, the file wins and the field is updated. There’s no screen to review differences one by one, before or after the import.
- The Conflicts column in the reconciliation report always shows 0 at the moment. Differences are applied and counted under Updated.
- If you’ve corrected customer names, phone numbers, email addresses or addresses by hand since the first import, a refresh puts the old system’s value back. Fix the data in your old system first, or leave those files out.
- A blank cell in a Techman file clears that vehicle detail in Torqueflow on a refresh: year, body style, tyre sizes, BHP, engine size, date first registered, next service date, and MOT expiry on a vehicle that hasn’t been checked with DVSA yet. Check those columns before you refresh.
Read the reconciliation report
Section titled “Read the reconciliation report”After an import run completes:
- Go to Settings > Import Data and click the completed run from the Import History list.
- The Reconciliation Report shows a table with one row per entity type:
- Entity - Customer, Vehicle, Product, etc.
- Created - new records added (green badge). Records a refresh updated aren’t counted here.
- Updated - records a refresh changed (blue badge, hidden in initial mode).
- Unchanged - records already imported that had no changes (slate badge, hidden in initial mode).
- Skipped - records the user chose not to import.
- Flagged - records with warnings for review (amber badge).
- Failed - records that could not be imported (red badge).
- Conflicts - always 0 for now (see above).
- A totals row at the bottom summarises the whole run.
- If the run is mixed-mode (some jobs were initial, some were refresh), initial-mode jobs appear with their own counts and the refresh-mode columns are blank.
Read the data quality report
Section titled “Read the data quality report”- Click any individual job within the run to see its Data Quality Report.
- The report shows a quality score as a percentage - 100% means every record was clean, under 90% means there were many issues.
- The severity breakdown categorises issues as error, warning, or info.
- The issue type breakdown groups issues as:
- Parse errors (malformed dates, unreadable numbers).
- Validation failures (required field missing, invalid format).
- Duplicate suspects (flagged during dedup).
- Placeholder data (obvious test values).
- Format anomalies (strange characters, truncation).
- An expandable flagged records table lists each problem row with: row number, field, issue type, severity, original value, and a suggested fix.
- Click Download Quality Report to get a CSV with all the issues and suggested fixes - useful for cleaning source data before a refresh re-import.
Re-import just the failed records
Section titled “Re-import just the failed records”- Open the quality report CSV.
- Filter the source data down to the rows listed in the report.
- Fix the issues at source.
- Re-upload just those rows in a new import. Because refresh mode uses ImportMapping to match existing records, fixed duplicates will update cleanly rather than creating new copies.
Roll back an import
Section titled “Roll back an import”If an entire import was a mistake:
- Open the run from the Import History list.
- Click Rollback Import. The button only appears once the run has completed (with or without errors).
- A confirmation dialog shows exactly how many records will be deleted per entity type: customers, vehicles, work orders, products, suppliers, labour units, invoices, payments.
- Warning: if any imported records have been modified in Torqueflow after import (for example, a new payment was recorded against an imported invoice), the confirmation dialog shows a Data Loss Warning with the number of changed records.
- Type
ROLLBACKin the confirmation box, then click Rollback Import. - Rollback runs in the background. It deletes records in reverse dependency order:
- Payments
- Invoices
- Work orders
- Products, suppliers, labour units
- Vehicles
- Customers
- ImportMappings are marked as rolled back (not deleted - the audit trail is preserved).
- The run page shows Rollback in progress, then This import has been rolled back when it’s finished. The page updates on its own.
- If a source sent its data in more than one import run (MAM Autowork Online’s two files, for example), roll back each run separately.
Understand rollback limits
Section titled “Understand rollback limits”- Rollback only removes records created by this specific import run, identified via ImportMapping. Records created in other ways (manually, by other imports) are never touched.
- Append-only financial records (sales invoices, payments) are deletable via rollback only for the run that imported them. Later financial activity is not.
- If a record was merged (not created) during import, rollback cannot restore it to its pre-merge state - merges are destructive on the existing record. For this reason, it is always safer to run a fresh test import on a demo organisation first.
- Rollback is not a time machine. It does not undo Torqueflow-native changes made to source-owned fields after the import.
Import again after a rollback
Section titled “Import again after a rollback”- Upload the same files again at Settings > Import Data. There’s no re-import button on a rolled-back run.
- Because the earlier records were rolled back, the new run is an Initial import. Customers and vehicles are created fresh, and the rolled-back records don’t get in the way.
- For a source with more than one file, import them in the same order as before. For MAM Autowork Online, that’s the customer list first, then the customer and vehicle list once the first has finished.
- Check the counts match what you had before the rollback.
Re-importing after a rollback works for customers and vehicles. If the run you rolled back also imported work orders, job notes, products, suppliers, labour units, invoices or payments, re-importing those files can fail. Contact support before you re-import them.
Resume an interrupted import
Section titled “Resume an interrupted import”- If you navigate away mid-import and come back later, the run page reconnects to live updates and shows the current state - still importing, completed, failed, or rolled back.
- No progress is lost. Batches process independently, and the Run record tracks aggregated counts.
Review the audit trail
Section titled “Review the audit trail”- Every import run creates an audit log entry in Settings > Audit Log.
- Every rollback creates its own audit entry.
- This is the canonical source of truth for “who ran what import when” and is retained per your organisation’s retention policy.
Expected Outcome
Section titled “Expected Outcome”- You understand what was created, updated, preserved, skipped, and flagged in any completed import.
- You can identify and fix data quality issues before or after an import.
- You can safely roll back an import when needed, knowing exactly what will be removed and with an acknowledged warning if any imported records have been modified since.
- You can re-run a corrected import in refresh mode without losing notes, tags, credit holds, customer groups, plate changes, DVSA-checked vehicle details and other Torqueflow-only details you added between runs.
- You can roll back an import and import the same customers and vehicles again cleanly.
Troubleshooting
Section titled “Troubleshooting”Problem: Refresh mode was detected but I wanted to do a fresh initial import. Cause: Records from an earlier import from the same system are still in Torqueflow. Fix: Roll back the earlier import (or imports) first, then upload the files again. The new run is an Initial import.
Problem: Refresh import reported many unchanged records - expected updates. Cause: The source system does not mark fields as changed, or your source-owned field list does not include the fields you modified. Fix: Check the field policy for the entity type. If the field is not classified as source-owned, refresh will not update it. Contact support if you need the policy adjusted.
Problem: A refresh cleared a vehicle’s year, tyre sizes or engine size. Cause: The cell was blank in the Techman file. A blank cell on a field Techman carries clears the value in Torqueflow. Fix: Re-enter the value on the vehicle, or click Refresh DVLA Data on the vehicle for the details the official record holds. Fill the column in Techman before the next refresh.
Problem: A refresh changed back a name, phone number or address I’d corrected. Cause: Those fields belong to the old system on a refresh, so its value wins. Fix: Correct it again in Torqueflow, and correct it in the old system too before you refresh again.
Problem: Rollback failed mid-way. Cause: A referenced record in a later entity (for example, a payment) cannot be deleted cleanly because it has downstream dependencies. Fix: Check the error message on the run page. You may need to manually remove the conflicting downstream record first, then resume rollback.
Problem: Quality score is low but I cannot see any obvious issues. Cause: Soft warnings (format anomalies, placeholder data) count against the score but do not prevent import. Fix: Download the quality report CSV and filter by severity. Info-level issues are often safe to ignore.
Problem: Reconciliation report shows records in “flagged” that were not flagged during the preview. Cause: Some issues are only detected during import execution (for example, foreign key conflicts discovered when creating related records). Fix: Click through the flagged records to see the specific issues. Fix them at source and re-import.
Problem: “Rollback Import” button is missing. Cause: The run hasn’t completed (it may still be importing), or it has already been rolled back. Fix: Wait for the run to complete, or check the status badge. Only completed runs can be rolled back.
Problem: Rolled back an import but some records are still showing in Torqueflow. Cause: Those records were created manually or by a different import, not by the run you rolled back. Only records with a matching ImportMapping are removed. Fix: Delete the remaining records manually if appropriate, or run a new rollback against the correct import run.
- Re-running the same import run produces identical results - it is idempotent. ImportMapping is the single source of truth for “what has already been imported”.
- The reconciliation report gracefully handles runs that predate refresh-mode support (
updated_count,unchanged_countfields) by displaying them as initial-mode imports. - Append-only financial records are intentional - the tax and accounting audit trail must be immutable.
- Rollback preserves the ImportMapping records (marked as rolled back) so you can see in the audit log that this import existed and was reversed.
- For high-value migrations, always run a test import against a demo organisation first to validate field policies and catch issues before production.
Permissions
Section titled “Permissions”settings.import.manage: required to view reports, re-run, and roll back imports. The owner has it by default. Other built-in roles don’t.