Auto-default reference data
Every new tenant lands with departments, designations, leave types, banks, cities, expense categories already seeded.
Zaffre HRM auto-provisions every new tenant with the common reference data they need on day one: 7 departments, 45+ designations, 8 standard leave types (Annual / Casual / Sick / Maternity / Paternity / Bereavement / Hajj / Unpaid), 10 expense categories with sensible receipt thresholds, 10 asset types with depreciation methods, 15 regional banks, 16 countries + 26 cities, 5 grades, 11 document types, 5 cost centres, plus loan / arrear / exemption / deduction / allowance / reimbursement-category baselines.
The seeder is idempotent — re-running it never duplicates data. So we keep adding to it; existing tenants get backfilled with whatever is new, and new tenants start at the current default set.
This eliminates the most painful first hour of every new HRM rollout: a POC opening every dropdown and discovering it's empty.
How it works
- 1
Create company
Super-admin creates the company + owner-user.
- 2
Seeder runs
Immediately after, the CompanyDefaultsSeeder service runs idempotently against the new tenant.
- 3
Tenant lands ready
Within the same response, the new tenant has 100+ reference rows already populated — every dropdown shows real values.
- 4
Backfill any time
A `pnpm cli seed-company-defaults` command lets us backfill new defaults across every existing tenant safely.
Frequently asked questions
- Do I need to set up departments, designations and leave types manually?
- No. Zaffre HRM auto-seeds every new tenant with 100+ reference rows: 7 departments, 45+ designations, 8 leave types, 10 expense categories, 10 asset types, 15 banks, 16 countries, 26 cities, and more. You can edit any of them and add your own.
- Can I add a default we don't ship?
- Yes — every reference type has a Create button. New entries you add belong only to your tenant.
- Is the seeder safe to run again?
- Yes — the seeder is idempotent. Re-running it never duplicates data. We use this property to backfill new defaults across existing tenants whenever we add to the seed set.