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...

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

  1. Open the CRM-Submicron source sheet in Google Drive.
  2. Export it manually as CSV or XLSX.
  3. Open the Product Development Branch source sheet.
  4. Export it manually as CSV or XLSX.
  5. 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.csv
  • product-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=all

The real CSV/XLSX files must not appear as tracked or untracked files.

Stage CRM export

  1. Start the app with pnpm dev.
  2. Open http://localhost:3000/imports/real-data/crm.
  3. Confirm the CRM import context block shows Company + Contact + Lead.
  4. Select the CRM export file.
  5. Leave the normal scope as composite CRM import unless testing advanced single-entity import.
  6. Set a manual header row only if automatic detection is wrong.
  7. Choose the CRM-Submicron source-of-truth record where available.
  8. 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

  1. Submit the generated mapping for approval.
  2. Submit the generated batch for approval.
  3. Approve both requests from /imports/approvals.
  4. Go to /imports/executions/new.
  5. Select the approved CRM batch.
  6. 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

  1. Open http://localhost:3000/imports/real-data/products.
  2. Select the Product Development Branch export.
  3. Choose the target entity for the specific test: ProductCategory, Product, Supplier, or ProductAlias.
  4. 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