CRM · Children CSV import

Bulk import of customers’ children (dependants) keyed on the parent’s id or email, carrying name, surname, birth date, gender, relationship and notes.

AreaCRM
Routescrm.users.import-children
Centre modulescrm · playcenter
Staff levelsroot · admin
Modelschild · load
UI labeluser.relationship
Coverage2 use cases · 1 happy · 3 failure

How it works

A narrower variant of the customer import: modelName is child, the match options are only id and email (no VAT number), and the template is baseChildrenCSV. Reached from the customer list via the navigateToImportChildren action, and gated by canImportChildren in nf-import.

Use cases

Why someone opens this (2)

  • Loading existing play-centre registrations when a centre adopts the module.
  • Keeping dependants in sync with an external kids-club system.

Path map

flowchart LR
    F(["Children CSV import"]):::feat
    F --> H1["Children loaded against existing parents"]:::ok
    F -.-> X1["Parent not found"]:::bad
    F -.-> X2["Missing birth date format"]:::bad
    F -.-> X3["Duplicate column mapping"]:::bad
    classDef feat fill:#157068,stroke:#157068,color:#ffffff,font-weight:bold
    classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e
    classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13

Happy paths

Children loaded against existing parents

  1. Operator opens the children import from the customer list.
  2. Uploads a CSV whose rows carry the parent’s email plus the child’s details.
  3. Columns map, match key set to email, date format chosen for bdate.
  4. Import runs and the children appear under each customer.

Failure paths

QA checklist

Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.

  • ✅ Children loaded against existing parents
  • ⛔ Parent not found
  • ⛔ Missing birth date format
  • ⛔ Duplicate column mapping

Implementation


Generated from doc/feature-inventory.json · id crm-children-import · commit 276788ca6