Sarah is moving an existing company onto Zetta HRM mid-year. Instead of importing each module separately and hoping the order is right, she downloads one workbook with a tab for every entity — departments, designations, employees, salary structures, leave types, holidays, loans, and opening balances — fills in what she has, and uploads it once.
The system validates the whole workbook, shows her a single cross-module preview, and configures nothing until she approves. Because she is joining part-way through the year, she also brings each employee's opening balances so the first payroll run continues cleanly instead of resetting year-to-date totals to zero.
Later, when she just needs to correct one module or add a batch of new hires, she uses the standard single-module import. And every month she exports reports for payroll reviews, finance, and auditors.
### Import & Start Working — the guided onboarding (one workbook)
### Single-module import (top-ups and corrections)
### Export
| Failure | What the user sees | What happens next |
|---|---|---|
| Workbook sheet has invalid format or a renamed/reordered header | Row- and sheet-level validation errors in the combined report | Fix the flagged cells (or re-download the template) and re-upload |
| Some rows are invalid but others are fine | "X created, Y failed" per module, with a downloadable error report | Valid rows still apply; fix the failed rows and re-apply |
| Apply stops part-way (e.g. a later module errors) | Session marked PARTIAL/FAILED; already-applied modules stay | Re-apply resumes from the first incomplete module — earlier modules are not re-created |
| Statutory provisioning hiccups during apply | Apply still completes; the statutory step is reported as failed | Re-apply — statutory setup re-runs idempotently and seeds the rows |
| A module references another that is not in the file yet (e.g. an employee's department) | Row-level "not found" error for that reference | Include the referenced rows, or import that module first |
| Single-module CSV has duplicate rows | Rows skipped or corrected per the module's unique key | De-duplicate and retry |
| Scenario | Behavior | Why |
|---|---|---|
| Nothing is applied before approval | Validate and preview only stage data; approval flips the gate | The guarantee: you see every change before it touches your workspace |
| Mid-year onboarding with opening balances | YTD seeds carry into the first payroll run; statutory caps continue, not reset | A joiner part-way through the tax year withholds correctly |
| Re-importing the same opening balances or existing loans | Re-import corrects in place rather than duplicating | Imports key on stable unique fields and are idempotent |
| Existing (already-disbursed) loans | Imported as active with paid installments already marked, so they are never re-deducted | Onboarded loans reflect real outstanding state, not a fresh schedule |
| Combined workbook vs single template | Both are offered on the Import Center; the workbook is the guided full setup, single templates are top-ups | One file for go-live, focused files for day-to-day corrections |
| Large export generation | Jobs move through PENDING → PROCESSING → COMPLETED/FAILED | Visibility for long-running background tasks |