हिंदी संस्करण उपलब्ध नहीं — अंग्रेज़ी में देखेंHindi version not available yet — viewing the English page.
FEATURE · Employee Information

Onboard 50 teachers in minutes. Upload a CSV. Done.

Four CSV templates, one drag-drop upload, every row validated and imported in seconds. Profiles, addresses, bank details and qualifications — bulk-imported into Inkwelly with PAN, UAN, EPF, ESI and IFSC validation, photo auto-download, and per-row error reporting that never silently fails.

BG PICCOZONE

Why this exists — and why most ERPs handle it badly

Last week of March. The summer admission cycle is over and the principal of a CBSE day school in Indore is staring at a different problem: 18 new teachers joining on April 1st. Two PRTs for the new Class 1 sections, three TGTs for the expanding middle school, two PGTs for Class 11 Commerce, four sports and music coaches, two lab assistants, a counsellor, a librarian, three administrative office staff. Each comes with a CV, a B.Ed certificate, a CTET scorecard, a PAN card, an Aadhaar, an EPF passbook from their previous school, an IFSC for their salary account. The accountant needs every one of them in the system before the May 31 salary cycle — or the new joiners' first salary, TDS deduction, EPF contribution and ESI registration all break.

18 teachers. Each with 35 to 50 fields. Each Indian school ERP makes you open the joining form, type the title (SHRI / SMT / DR / PROF), name across English and Hindi, date of birth, government IDs (PAN, Aadhaar, UAN, EPF, ESI), bank details (IFSC, MICR, account number, account type), qualifications (10th, 12th, Graduation, Post-Graduation, B.Ed, M.Ed), CTET / state TET / NCTE registration, and a photograph. Click save. Move to the next teacher. Repeat 17 more times. Three full days of one office staff member just typing — and then two more days reconciling the bank details against the cancelled cheques.

We built Bulk Import Employees to compress this from days to minutes. Four CSV templates — Profile, Address, Bank Detail, Qualification — each downloadable from the import page. Fill them in Excel or Google Sheets the way the office already works. Drag-drop the CSV into Inkwelly. The system parses every row, validates against Indian payroll conventions (10-character PAN format, 12-digit Aadhaar, 11-character IFSC, 12-digit UAN), checks for duplicates against your existing staff list, downloads profile photos from URLs you supplied, and creates the employee profiles in the database — all in one batch. 18 teachers, 4 CSVs, under 5 minutes.

Inkwelly bulk import employees page with four tabs (Profiles, Addresses, Bank Details, Qualifications), a download template button, and a drag-drop CSV upload zone
The import page — four tabs, one CSV per tab, drag-drop or click to upload.

How it works — four CSVs, one upload page

Navigate to Employees → Import in your school. The page has four tabs along the top: Profiles, Addresses, Bank Details, Qualifications. Each tab has its own CSV template — because employee data has different cardinality (1 employee → 1 profile, but 1 employee → multiple addresses, multiple bank accounts, multiple qualifications across school, college and certifications).

Step 1 — Download the template. Each tab's 'Download template' button generates a CSV with the exact column headers Inkwelly expects. The template includes 5 to 8 example rows so the office can see the format expected — title values (SHRI / SMT / DR / PROF), gender values, address types (PERMANENT / CURRENT / CORRESPONDENCE), bank account types (SAVINGS / CURRENT), qualification types (SCHOOL_10TH / SCHOOL_12TH / GRADUATION / POST_GRADUATION / DIPLOMA / DOCTORATE). This is critical: Indian schools migrating from a previous ERP or Excel typically have inconsistent header names ('Teacher Name' in one column, 'Name of Staff' in another). The downloaded template fixes that — your office fills in the right columns from day one.

Step 2 — Fill the CSV in Excel or Google Sheets. Your office uses the tools they already know. Names, dates of birth in 15/03/1985 or 1985-03-15 format, gender as MALE / FEMALE / OTHER, blood group as A_POSITIVE / B_POSITIVE / AB_NEGATIVE (the standardised codes), Aadhaar in 12 digits, PAN in the 10-character AAAAA9999A format, UAN in 12 digits, EPF and ESI numbers as supplied by your previous payroll, mobile with country code, religion as one of the seven enumerated values, and a profilePhotoUrl column if your hiring process collected photos as URLs.

Step 3 — Drag-drop the CSV. The upload zone accepts files up to 10MB (~25,000 rows for a typical profile import — enough for the largest multi-branch trust in India). Click or drag — the file appears in a green confirmation card with its name and size. Wrong format (xlsx, xls, anything non-CSV) is rejected before upload starts. Wrong size (over 10MB) is rejected with a clear error pointing to the offending file size.

Step 4 — Validate first, import second (optional but recommended). Toggle the Dry Run checkbox. The system runs every row through the same validation and duplicate-check pipeline as a real import — but doesn't write a single row to the database. The Results dialog opens with: total rows parsed, valid count, invalid count with per-row errors, and processing time. Fix the invalid rows in your CSV, re-upload with Dry Run still on, repeat until 0 invalid rows. Then untick Dry Run and click Start Import — the now-clean CSV imports for real, lands in the Employee Information module, and is immediately ready for payroll.

Step 5 — Photos download themselves. For Profile imports, a Download Photos checkbox is on by default. If your CSV includes a profilePhotoUrl column with HTTP/HTTPS URLs (max 5MB per photo), Inkwelly downloads each photo, uploads it to your school's media library, and links it to the employee's profile — automatically. The office never opens 50 photos and uploads them one at a time. Photos appear on the staff directory, on staff ID cards, on the daily attendance dashboard, on payslip headers — instantly.

What each of the four CSV tabs covers

  • Profiles tab — 30+ fields per employee: employeeId (your school's internal ID, unique per organisation), joiningNumber (school-specific joining number, unique per school), title (SHRI / SMT / DR / PROF), firstName, middleName, lastName, dateOfBirth, gender, bloodGroup, religion, nationality, motherTongue, casteCategory, maritalStatus, spouseName, panNumber (10 chars, AAAAA9999A format), aadhaarNumber (12 digits), uanNumber (12-digit EPFO UAN), pfNumber (Provident Fund), esiNumber (Employee State Insurance), email, mobile, alternateMobile, profilePhotoUrl, isActive. Required: employeeId, joiningNumber, firstName, dateOfBirth, gender. Everything else is optional but strongly encouraged for payroll and statutory compliance.
  • Addresses tab — 9 fields per address row: employeeId (links the address to a staff member), addressType (PERMANENT / CURRENT / CORRESPONDENCE / OFFICE), addressLine1, addressLine2, city, state, country, postalCode, landmark. Multiple address rows per employee are supported — a teacher can have a permanent address in their home village and a current address near the school in the city.
  • Bank Details tab — 9 fields per bank row: employeeId (links to the staff member), accountHolderName, bankName, branchName, accountNumber, ifscCode (11 characters — 4 alphabets + 0 + 6 alphanumeric, e.g. SBIN0001234), accountType (SAVINGS / CURRENT), micrCode (9-digit MICR), upiId (optional UPI handle for quick disbursement), isPrimary. Multiple bank accounts per employee supported — some senior staff maintain salary in one account and reimbursements in another.
  • Qualifications tab — academic qualifications per row: employeeId, qualificationType (SCHOOL_10TH / SCHOOL_12TH / GRADUATION / POST_GRADUATION / DOCTORATE / DIPLOMA / B_ED / M_ED), institutionName, university (for college qualifications), board (CBSE / ICSE / State Board for school qualifications), degreeName, majorSubject, specialization, yearOfPassing, percentage, grade (CGPA, Division), totalMarks, marksObtained. Multiple qualification rows per employee — one row each for 10th, 12th, Graduation, Post-Graduation, B.Ed.
  • Required headers per tab. Profiles need employeeId, joiningNumber, firstName, dateOfBirth, gender. Addresses need employeeId, addressType, addressLine1, city, state, country, postalCode. Bank Details need employeeId, accountHolderName, bankName, accountNumber, ifscCode, accountType. Qualifications need employeeId, qualificationType, institutionName, degreeName, yearOfPassing. Missing required headers stop the import before any row is processed — with a clear list of missing columns shown in the Results dialog.
  • Header order doesn't matter. Inkwelly matches CSV columns by header name, not position. You can rearrange columns however your office prefers — extra columns are ignored, missing optional columns are treated as empty.
  • Empty cells are skipped — never overwrite with blanks. If a row has an empty panNumber cell, that field stays empty on the employee profile. The system never silently writes blanks over existing data — critical when you're re-importing a corrected CSV after fixing a few rows.

Walkthrough — five screens, end to end

BG PICCOZONE
1. Pick the right tab — Profiles, Addresses, Bank Details or Qualifications — and click 'Download template'.
BG PICCOZONE
2. Fill the CSV in Excel or Google Sheets with your school's actual teacher and staff data.
BG PICCOZONE
3. Drag-drop the CSV — file appears in a green confirmation card with its name and size.
BG PICCOZONE
4. Toggle Dry Run, click 'Validate Data' — every row is checked without anything being written.
BG PICCOZONE
5. Results dialog — total rows, success count, failure count, processing time, downloadable error report.

Dry Run — validate without writing anything

The single most expensive mistake in a staff bulk import is committing data that fails validation halfway through. You upload, 12 rows succeed, row 13 has a PAN with an invalid format, and now your database has 12 employees you didn't fully verify and 6 teachers that never made it. Worse: the 12 partial profiles already pulled in user accounts, leave allocations and a placeholder salary structure that now points at half-finished records.

Dry Run prevents this. Toggle the Dry Run checkbox on every tab, click Validate Data, and Inkwelly runs the entire import pipeline — CSV parsing, header validation, per-row field validation, duplicate detection — without persisting a single row. The Results dialog shows: 18 rows parsed, 16 valid, 2 invalid with specific errors per row ('PAN must match AAAAA9999A format', 'Aadhaar must be 12 digits', 'IFSC must be 11 characters', 'employeeId already exists for another staff member'). Fix the rows in your CSV, re-validate, get to 0 invalid, then untick Dry Run and run for real. The actual import becomes a formality — you already know it will succeed.

Inkwelly Dry Run validation results showing 16 valid rows and 2 invalid rows with row-level error messages like 'PAN must match AAAAA9999A format' and 'IFSC must be 11 characters'
Inkwelly validation messages showing PAN, Aadhaar, UAN and IFSC normalisation against Indian payroll regulator formats

PAN, Aadhaar, UAN, IFSC — every Indian identifier validated, not just stored

The import doesn't dump rows into the database. It validates every Indian regulator-issued identifier against its real format rule.

PAN must match the 10-character format AAAAA9999A (5 alphabets, 4 digits, 1 alphabet). Spaces and dashes are stripped before checking. Aadhaar must be exactly 12 digits — the validator strips spaces, dashes and dots, so 1234 5678 9012 and 1234-5678-9012 both pass and store as 123456789012. UAN must be 12 digits — EPFO's Universal Account Number format. IFSC must be 11 characters in AAAA0XXXXXX format (4 bank-code alphabets, the literal 0, 6 alphanumeric). MICR must be 9 digits. Mobile must contain at least 10 digits — country code, dashes, parentheses and spaces are allowed and stripped (+91 98765 43210, (+91)-98765-43210, 9876543210 all pass). Email must match a basic email pattern (lower-cased on save).

Duplicates are checked against your existing staff list and across the entire system — employeeId is unique per organisation, joiningNumber is unique per school, aadhaarNumber and panNumber are unique system-wide (regulatory requirement). If a row collides on any of these, it's rejected with a clear duplicate error showing which field clashed. Existing staff are never silently overwritten.

Indian date formats — both DD/MM/YYYY and YYYY-MM-DD work

Date of birth from a teacher's CV is in 15/03/1985 (Indian convention). Their PAN card prints it as 15/03/1985. Their last school's relieving letter has it as 15-03-1985. The state government education portal exports as 1985-03-15 (ISO format). The qualification certificate from the university has the year of passing as 2007 standalone.

Inkwelly's bulk import accepts both DD/MM/YYYY and YYYY-MM-DD out of the box for every date field — date of birth, joining date, qualification year of passing, certification issue date, certification expiry date. The validator parses each format, normalises to ISO internally, and stores it in the database — you don't have to transform dates before upload. US-style MM/DD/YYYY is intentionally rejected to prevent ambiguous parsing. Your office never has to think about which format their previous Excel was using — both Indian conventions just work.

Multiple Indian date formats parsed correctly into a single normalised database value across joining date, date of birth and certification dates
Profile photo URLs from a teacher hiring portal being downloaded automatically and attached to staff profiles in the media library

Photo auto-download — from your hiring portal to the staff directory

Most Indian school hiring workflows collect teacher photos as URLs — the candidate uploads a photo to a Google Form, the school's hiring CRM stores a Drive URL, the previous school's TC export has a photo link. Most school ERPs ignore this and force the office to download each photo and re-upload it manually.

Inkwelly handles photos automatically. Add a profilePhotoUrl column to your Profile CSV with the public photo URL per row. Tick Download Photos (on by default). When the import runs, Inkwelly downloads each photo (max 5MB), uploads it to your school's media library with a sensible filename (employee-photos/<employeeId>-<name>.jpg), and attaches the resulting media ID to the staff member's profile photo field. 50 hires, 50 photos, zero clicks — they appear on the staff directory, on attendance dashboards, on payroll's payslip header, on staff ID cards, instantly. URLs that fail (404, broken image, oversized) are logged in per-row results — you can fix them and re-import only those rows.

Per-row results — partial success is the default, not the exception

The nightmare of bulk operations in most school ERPs: one teacher's PAN format is wrong and the entire import rolls back. You fix that row, hit submit, find another error on row 9, fix it, submit again. What was 1 batch becomes 5 batches over 2 days — and your accountant is still waiting to run the May payroll.

Inkwelly doesn't work that way. Each row is processed atomically — success or failure independently. The Results dialog shows: 16 staff imported successfully, 2 rows failed with specific errors ('PAN must match AAAAA9999A format' on row 7, 'employeeId already exists for another staff member' on row 13). The 16 successful imports are saved — their User accounts are created, their leave allocations applied, their default salary structure mapped (if configured). The 2 failures stay in your CSV for fixing — re-upload only the corrected rows or fix and re-upload the whole file (duplicates are skipped, so re-running is safe). A downloadable Error Report CSV lists every failed row with its original data and the specific validation messages — paste it into your office's working sheet, fix in place, re-upload. The audit log captures every successful import with the user, timestamp, IP address, and source ('Bulk Import Employees').

Bulk import results dialog showing 16 successful staff imports, 2 failed rows with specific per-row error messages, and a downloadable error report CSV button
April mein 18 naye teachers join hue — do PRT, teen TGT, do PGT Class 11 ke liye, baaki support staff. Pehle har teacher ka form bharne mein 25 minute lagte the — saath mein bank details aur qualifications alag se. Ab CSV se 4 minute mein sab ho gaya. May ki salary on time chali, EPF aur ESI bhi pehle hi register ho gaye — koi bhi naya teacher first salary mein piche nahi raha.
Anita Kapoor · Principal · Sunrise Public School, Indore, MP

Five real office routines this turns into a 5-minute task

Five routine school office operations that traditionally take days, compressed into a single CSV upload:

1. April joining cycle (the big one) — 18 new teachers and support staff joining on April 1st for the new academic session. Without bulk import: 25 minutes per joining form (profile + address + bank + qualifications) = 7.5 hours of typing, plus reconciliation against cancelled cheques and CTET scorecards = 12 office-hours total. With Inkwelly bulk import: download 4 templates, paste your hiring spreadsheet into each, drag-drop, dry-run, fix 2 invalid rows, run for real. Under 30 minutes total. The May 31 first-salary cycle ships clean.

2. Mid-year transfer-in joinings — 3 teachers transferring from a sister-school in the trust mid-session. Their previous-school records have all the data the office needs (employeeId mapping, joining number, PAN, Aadhaar, UAN already registered with EPFO, IFSC unchanged). Office assistant pastes 3 rows into Profile, 3 into Address, 3 into Bank Detail, 3 into Qualifications. 10 minutes for 3 mid-year joinings, including payroll setup carry-over.

3. Multi-branch trust onboarding — your trust opens a new school branch with 35 staff transferring from the existing schools. Export staff from the old school's Inkwelly tenant (CSV), generate new joining numbers for the new school, import into the new tenant. UAN and PAN remain unchanged (they're regulator-issued, follow the staff member). Half a day for an entire branch staff onboarding — vs. the typical 2-3 weeks of manual data entry.

4. UAN, PAN, ESI backfill (statutory compliance) — your office collects PAN cards and UANs from 60 existing teachers as part of an EPFO compliance audit. Without bulk import: open every employee profile, paste UAN, save — 60 separate operations across 4 hours. With bulk import: a profile-tab CSV with employeeId + uanNumber + panNumber columns, dry-run, run. 8 minutes for 60 ID backfills — ready for the next ECR (Electronic Challan-cum-Return) filing in EPFO Member Portal.

5. CTET / state TET certification backfill (NCTE / RTE compliance) — the District Education Officer asks for proof of CTET / state TET qualification for every PRT and TGT teacher under RTE Act 2009. Office assistant collects 28 CTET scorecards over 2 weeks, fills a qualifications-tab CSV with employeeId + qualificationType=CTET + institutionName=NCTE + yearOfPassing + percentage. 15 minutes for the entire CTET cohort backfill — generated as a clean RTE compliance report the same afternoon.

Common bulk import scenarios — every Indian school runs these every year

  • April joining cycle (March–April) — onboard 10–60 new teachers and staff in one batch from your hiring spreadsheet, ready for the first salary cycle.
  • Mid-year transfer-in joinings (any month) — onboard staff transferring in from sister schools or other employers using their previous-school export.
  • Sister-school migration (multi-branch trusts) — move staff records from one Inkwelly tenant to another via export → CSV → import; UAN and PAN stay unchanged.
  • Migration from competitor ERPs — Fedena, Entab, SchoolMint, campus-style ERPs, or custom HR systems all export to CSV. Import lands them in Inkwelly with photos, bank details and qualifications intact.
  • Migration from Excel-only schools — most Tier-2 / Tier-3 schools still maintain staff records in Excel. Bulk import is the bridge — your office's existing Excel becomes a fully-validated employee database in one upload.
  • UAN / PAN / Aadhaar backfill (EPFO and statutory compliance) — backfill regulator-issued identifiers across existing staff once the office collects them.
  • CTET / state TET / B.Ed certification backfill (RTE / NCTE compliance) — add teaching qualification records for every PRT and TGT teacher to satisfy NCTE-issued teacher qualification rules and RTE compliance audits.
  • Bank detail bulk update (after IFSC merger) — when banks merge or rename branches (frequent in Indian PSU banks), the IFSC changes for hundreds of teachers; CSV with corrected IFSC fixes the whole school in one shot.
  • Multi-address data ingestion — staff who maintain a permanent address in their home village and a current address near the school in the city.
  • Multi-bank-account data ingestion — senior staff who keep salary in one account and reimbursements / loan EMI in another.
  • Multi-qualification data ingestion — a teacher's 10th, 12th, B.Sc, M.Sc, B.Ed, M.Ed, and CTET certification — each as a separate qualification row.
  • Bulk photo refresh — the new academic year's staff photos uploaded to a hosting service and bulk-attached via CSV with employeeId + profilePhotoUrl.
  • Designation / department restructure — part of a school re-org, department assignments get re-imported when the structure changes.

See bulk CSV import on your school's staff list, live in 30 minutes

Bring an Excel sheet or CSV from your office — your hiring sheet, your previous ERP's staff export, even a messy one. We'll set up your school during the demo, run a real bulk import on your real staff list, and show you exactly how many minutes the April joining cycle will take next year.

Open Employee Information moduleSee Employee Payroll moduleSee pricing

Limits, safety, and the small print

File size: 10MB max per CSV. This is sufficient for ~25,000 employee profile rows in a single upload — far more than any Indian school employs. If your import is genuinely larger (large multi-branch trust migration), split into two CSVs and run sequentially. Both runs are independent atomic batches with their own results.

Photo size: 5MB max per file. The photo download service validates content-type as image and rejects oversized files with a clear per-row error. Photos that fail download don't block the row — the staff profile is still created, just without a photo. Re-import the failing rows after fixing the URL or the photo size.

Required headers per tab. Profiles need employeeId, joiningNumber, firstName, dateOfBirth, gender. Addresses need employeeId, addressType, addressLine1, city, state, country, postalCode. Bank Details need employeeId, accountHolderName, bankName, accountNumber, ifscCode, accountType. Qualifications need employeeId, qualificationType, institutionName, degreeName, yearOfPassing. Missing required headers stops the import with a clear list of missing columns shown in the Results dialog. Optional columns can be added in any order — Inkwelly matches by header name.

Per-row atomicity. Each row is processed as its own database transaction. Validation failures on one row never block other rows. The 16-of-18 success outcome is the norm — partial-success rows preserve every successfully-applied field; failed rows stay editable in your CSV.

Duplicate detection. employeeId is unique per organisation, joiningNumber is unique per school, aadhaarNumber and panNumber are unique system-wide (regulatory uniqueness). If a CSV row matches any existing staff member on these fields, the row is rejected with a duplicate error pointing to the colliding field. Existing staff are never silently overwritten — to update existing staff, use the Bulk Update flow in Employee Information, not Bulk Import.

Auto-User creation. Every successfully-imported employee profile automatically creates the matching User and UserProfile rows in the same database transaction — the staff member's login works on day one. Default role assignments (TEACHER, ADMIN_STAFF, PRINCIPAL) can be applied per row from the Profile CSV's defaultRole column.

Audit log. Every successful import row writes to the school's audit log with the user, timestamp, IP address, and source ('Bulk Import Employees'). The audit log is exportable from the school admin panel. If a wrong CSV is uploaded by mistake, the audit log shows exactly which rows landed and you can soft-delete them (90-day restore window in Employee Information).

Multi-tenant isolation. Every CSV upload is scoped strictly to your school. Multi-branch trusts run bulk imports per-school independently — no cross-tenant access, no risk of importing into the wrong school's records. The school's session context is auto-attached to every imported row.

Role-based access. Bulk import is gated to school admin, principal and HR roles by default. Class teachers and other staff don't see the import tab in their navigation. Configure per-role permissions from your school's IAM settings.

No Excel format. Inkwelly only accepts CSV (.csv). Excel .xlsx and .xls files are rejected at upload — convert to CSV first (Excel: File → Save As → CSV UTF-8). This is intentional — CSV is plain-text, deterministic, and preserves Indian regional script (Devanagari, Tamil, Telugu, Kannada) when saved as UTF-8 BOM, while Excel format introduces silent encoding bugs that corrupt non-Latin names — a critical issue for state-board paperwork that requires staff names in both English and the regional script.

किस मॉड्यूल का हिस्सा

1 module

अक्सर पूछे गए सवाल

11 सवाल
What CSV format does Inkwelly require for staff import?

Plain CSV — `.csv` file with comma-separated values, UTF-8 encoded (UTF-8 BOM is recommended if your CSV contains Devanagari, Tamil, Telugu, Kannada or any non-Latin script for staff names). Excel `.xlsx` and `.xls` files are not accepted — Excel introduces silent encoding bugs that corrupt non-English names. Use Excel: File → Save As → CSV UTF-8 to convert. Header row is required and column names must match the downloaded template (header order doesn't matter — Inkwelly matches by name).

How big can the staff CSV be?

10MB max per file, which fits roughly 25,000 employee profile rows. For larger migrations (multi-branch trust onboarding 5,000+ staff), split into multiple CSVs and run them sequentially — each run is its own atomic batch with its own per-row results. The 10MB limit is on the CSV file itself; downloaded photos are capped separately at 5MB per photo.

Does the import validate Indian payroll identifiers like PAN, UAN, and IFSC?

Yes — every Indian regulator-issued identifier is validated against its real format. PAN must match the 10-character `AAAAA9999A` format (Income Tax Department). Aadhaar must be exactly 12 digits (UIDAI). UAN must be 12 digits (EPFO Universal Account Number). IFSC must be 11 characters in `AAAA0XXXXXX` format (RBI). MICR must be 9 digits. Mobile must contain at least 10 digits. Email must match a basic email pattern. Spaces, dashes, parentheses are stripped before validation, so `1234 5678 9012` and `1234-5678-9012` Aadhaar both pass.

Can I dry-run the staff import before actually creating records?

Yes — the Dry Run checkbox is on every tab. Tick it, click 'Validate Data', and Inkwelly runs the full pipeline (parsing, header check, per-row validation, duplicate detection across organisation and system-wide PAN/Aadhaar uniqueness) without writing a single row. The Results dialog shows valid count, invalid count with specific per-row errors, and processing time. Fix the invalid rows in your CSV, re-validate, and once you're at 0 invalid, untick Dry Run and run for real.

What happens when one staff row fails — does the entire import roll back?

No. Each row is processed atomically — success and failure are independent. If 16 of 18 rows are valid and 2 have errors, the 16 are saved (with their User accounts, default leave allocations and salary structure mapping applied) and the 2 are reported with specific error messages per row. A downloadable Error Report CSV lists every failed row with its original data and the validation messages — fix them in your office's working sheet and re-upload only the corrected rows. No all-or-nothing rollback, no churn.

Can the system download staff photos from URLs in the CSV?

Yes — for Profile imports. Add a `profilePhotoUrl` column with public HTTP/HTTPS URLs (max 5MB per photo). The 'Download Photos' checkbox is on by default. Inkwelly downloads each photo, uploads it to your school's media library with a sensible filename, and attaches it to the staff member's profile in the same import run. URLs that fail (404, broken image, oversized) are logged in per-row results — fix and re-import only those rows. Photos appear on the staff directory, attendance dashboard, payslip header, and staff ID cards immediately.

What if a PAN, Aadhaar or employeeId already exists in our database?

The row is rejected with a duplicate error pointing to the colliding field. `employeeId` is unique per organisation; `joiningNumber` is unique per school; `aadhaarNumber` and `panNumber` are unique system-wide (regulatory requirement — a person should never have two PANs in any organisation). Existing staff are never silently overwritten by a bulk import. To update existing staff, use the Bulk Update flow in [Employee Information](/modules/employee-information), not Bulk Import.

Can I import addresses, bank details and qualifications in the same upload as profiles?

They're separate tabs — Profiles, Addresses, Bank Details, Qualifications — because employee data has different cardinality. One employee → one profile, but one employee → multiple addresses (permanent + current + correspondence + office), multiple bank accounts (salary + reimbursements), multiple qualifications (10th + 12th + Graduation + Post-Graduation + B.Ed + CTET). Run the imports in order: Profiles first (which creates the staff records), then Addresses, Bank Details and Qualifications (which link to existing staff by `employeeId`). All four can be done in a single 15-minute session.

Is staff data sent to a third-party service during import?

No. CSV parsing runs entirely on Inkwelly's servers in the Mumbai region — your staff's PAN, Aadhaar, UAN, EPF, ESI and bank details never leave India. CSV files are parsed in memory and discarded after the import (we keep only the structured database records, never the raw file). Photo downloads are validated as image content-type and capped at 5MB. Compliant with the DPDP Act 2023, aligned with EPFO and ESIC data-handling guidelines.

Will the imported staff appear in Payroll automatically?

Yes. Every successfully-imported employee profile is immediately visible in [Employee Payroll](/modules/employee-payroll), [Employee Attendance](/modules/employees-attendance) and the Employee Information directory. The User account is auto-created in the same database transaction so the staff member's login works on day one. To run the next payroll cycle for the new joiners, just open Payroll → Salary Structure and assign their pay structure (or apply your school's default structure to all new joiners with one bulk action) — their PAN, UAN, EPF and ESI are already on their profile from the import.

Can I bulk-update staff with this import?

No — Bulk Import is for creating new staff records only. Re-uploading the same CSV is safe (duplicates are skipped) but won't update existing staff. To update existing staff in bulk — e.g., correcting IFSC after a bank merger, adding CTET certification across 28 teachers, updating mobile numbers — use the Bulk Update flow in [Employee Information](/modules/employee-information), which is designed for editing and shows you the previous values before saving.

आपको ये भी पसंद आ सकता है

2 लेख

Inkwelly आपके स्कूल पर — खुद देखें

30 मिनट का डेमो। आपके मौजूदा ERP को आपके साथ खोलकर, कॉल पर ही आपका डेटा Inkwelly में लोड करते हैं। कॉल ख़त्म होते-होते एक तय तारीख़ का गो-लाइव प्लान आपके हाथ में।

Bulk Import Employees from CSV · Inkwelly