Imports/Migration
Sprint 15 Manual Test Runbook
Use this runbook to manually verify the local-only CRM and product import workflow before continuing beyond Sprint 15A. Do not use confidential production exports unless the files
Use this when auditing sprint scope, remediation history, or acceptance details.
Purpose
Use this runbook to manually verify the local-only CRM and product import workflow before continuing beyond Sprint 15A. Do not use confidential production exports unless the files remain in ignored local folders.
Export CRM and product sheets manually
- Open the CRM-Submicron source sheet in Google Drive.
- Export it manually as CSV or XLSX.
- Open the Product Development Branch source sheet.
- Export it manually as CSV or XLSX.
- Do not connect the app to Google Drive API or any live sync.
Place files locally
Put exported files in one of these ignored folders:
imports/local/private-imports/
Use local/private filenames such as:
crm-submicron.local.csvproduct-development-branch.private.xlsx
Confirm Git ignores real files
Run:
git check-ignore -v imports/local/crm-submicron.local.csv
git check-ignore -v private-imports/product-development-branch.private.xlsx
git status --short --untracked-files=allThe real CSV/XLSX files must not appear as tracked or untracked files.
Stage CRM export
- Start the app with
pnpm dev. - Open
http://localhost:3000/imports/real-data/crm. - Confirm the CRM import context block shows Company + Contact + Lead.
- Select the CRM export file.
- Leave the normal scope as composite CRM import unless testing advanced single-entity import.
- Set a manual header row only if automatic detection is wrong.
- Choose the CRM-Submicron source-of-truth record where available.
- Select Stage CRM Export.
If the Real Data Import route returns 404 after pulling or switching branches, restart pnpm dev and confirm the current branch includes the /imports/real-data routes before changing code.
For CRM CSV exports, export the active People, Companies, or Opportunities data tab only. If detected columns look like instructions or setup text, the wrong tab was exported; do not use Get Started, Dashboard, Settings, or other non-data tabs.
Validate CRM rows
Review the staged batch:
- rows detected
- header rows
- blank rows
- template rows
- repeated header rows
- skipped rows
- rows staged
- rejected rows
- detected header row
- detected columns
- first preview rows
The counts should reconcile.
Dry run CRM import
The staging batch is a dry-run batch. Confirm:
- production records created is 0
- production records updated is 0
- safe mode is Create or Skip Duplicate
- duplicate detection is skipped or clearly marked when there are no valid rows
- duplicate detection explains whether existing database records and staged-file rows were checked
- dry run says No valid rows available for import when valid rows is 0
- People operational fields such as Install Date, No Of Units, Serial Number, Batt Type, No of Batt, and Delivery Note reference number are shown only as note-only or ignored fields
- the mapped preview shows Company output, Contact output, Lead output, ignored/note-only fields, duplicate status, and validation status
Approve and execute CRM import
- Submit the generated mapping for approval.
- Submit the generated batch for approval.
- Approve both requests from
/imports/approvals. - Go to
/imports/executions/new. - Select the approved CRM batch.
- Execute with Create or Skip Duplicate.
Verify imported Companies, Contacts, and Leads
After execution:
- open the execution detail page
- open the verification report
- confirm created or linked Company records
- confirm created or linked Contact records
- confirm Lead records link to Company and Contact where source data allows
- confirm import record links point back to execution rows and source rows
- confirm rollback references exist for created records
Stage Product export
- Open
http://localhost:3000/imports/real-data/products. - Select the Product Development Branch export.
- Choose the target entity for the specific test: ProductCategory, Product, Supplier, or ProductAlias.
- Stage the dry run.
Validate Product rows
Confirm validation flags:
- missing product name
- missing cost price
- missing selling price
- selling price lower than cost price
- duplicate SKU
- duplicate brand/model
- duplicate normalized name
- ProductAlias match
- unknown category
- unknown supplier
Dry run Product import
Confirm the dry run creates no production records and uses safe modes only. Do not execute product import in Sprint 15A.
Verify Products, Categories, Suppliers, and Aliases
After product staging only, verify preview, validation, duplicate candidates, mapping suggestions, and approval state. Product execution is intentionally deferred until after Sprint 15A.
Negative tests for unsafe targets
Attempt to stage or execute blocked target entities and confirm they are rejected:
- Invoice, Payment, Receipt, Expense
- Quote, QuoteItem
- Audit, AuditLoadItem
- Project
- SupportTicket, InstalledSystem
- InventoryItem, StockMovement, StockReservation, WarrantyRecord
Duplicate protection tests
Use rows matching existing records by:
- company name, email, phone, website
- contact email, phone, name + company
- lead company/contact + requirement
- product SKU, brand/model, product name, ProductAlias
Confirm duplicate rows are skipped or linked, not auto-merged.
Update-empty-fields-only test
Run a controlled approved test batch in Update Empty Fields Only mode against a safe duplicate record. Confirm blank fields may be filled, populated fields are not overwritten, and conflicts are recorded for differing populated fields.
Source-of-truth verification
Confirm CRM-Submicron and Product Development Branch source-of-truth records move to Partially Migrated only after successful approved import execution and only when the prior status is Not Started or Mapped. Confirm source sheets are not automatically marked Retired.
Command Center verification
Open Command Center and confirm alerts/actions appear for:
- real import validation errors
- duplicate candidates needing review
- post-import verification pending
- source-of-truth migration review needed
Developer Details
- Source
- apps/docs/content/imports/sprint-15-manual-test-runbook.md
- Owner
- Module Owner
- Status
- Archived
- Module
- Imports/Migration
- Related route
- /imports