Import Members
Use Import Members when you need to add or update many members from a spreadsheet. The importer reads your active Member Types, Membership Plans, libraries, and enabled member fields, then validates each row before saving.
The import screen is available from Member Manager > Members > Import Members.
Add screenshots of the Import Members popup: upload area, sample template button, validation preview table, image ZIP upload, progress bar, and final import report.
Before You Start
Make sure these are ready:
- At least one active Member Type.
- At least one active Membership Plan.
- Libraries created in Library Manager.
- Organization date format checked in Organization > Date Time.
- Optional profile images collected in a ZIP file if you want to import images.
If Member Types or Membership Plans are missing, Libcodesk asks you to create them before continuing.
Download The Template
- Open Member Manager > Members.
- Click Import Members.
- Click Download sample template.
The template is generated from your active member types and fields.
| Row | Purpose |
|---|---|
| Row 1 | Supported column headers. |
| Row 2 | Required/optional guidance. This row is ignored during import. |
| Row 3 | Example data. Replace it with your real data. |
Column order does not matter. Libcodesk detects columns by header names and supported aliases.
How Column Headers Are Matched
The first row is the header row. Libcodesk reads each header, normalizes it, and matches it to a supported field.
- Column order does not matter.
- Header matching is not case-sensitive.
- Spaces and underscores are handled where supported.
- Supported aliases are detected automatically, so
Photo,Image, andProfile Imagecan point to the same image field. - Extra unsupported columns are ignored safely.
- For custom/member-type fields, Libcodesk also matches the field label and stable field key created in Member Types.
Supported Header Keywords
These fixed import headers are available in every member import. Enabled fields from your Member Types are added on top of this list.
| System Field | Recommended Header | Also Detected As |
|---|---|---|
| Member Type Code | Member Type Code | member_type_code, type code, member type |
| Membership Plan Code | Membership Plan Code | membership_plan_code, plan code, membership plan, plan |
| Libraries | Libraries | library, library access |
| Status | Status | member status |
| Temporary Password | Temporary Password | password, temp password |
| Photo | Photo | image, profile image, profile photo, photo filename |
Common member fields also have built-in aliases:
| Member Field | Recommended Header | Also Detected As |
|---|---|---|
| Member ID | Member ID | member_id, library card number, card number |
| Name | Name | full name, member name |
| e-mail, mail | ||
| Phone | Phone | mobile, mobile number, contact number |
| Date of Birth | Date of Birth | dob, birth date |
| Profile Image | Profile Image | photo, image, profile photo |
For fields such as Student ID, Class/Grade, Academic Session, RFID Tag, or any custom field, use the exact label shown in Member Types or its field key. For example, Student ID, student_id, and StudentID can be detected where that field is enabled.
Important Columns
| Column | Requirement |
|---|---|
| Member Type Code | Required. Matches the code of an active Member Type. |
| Membership Plan Code | Required. Matches the code of an active Membership Plan. |
| Member ID | Required unless auto-generation is enabled and the spreadsheet cell is blank. Spreadsheet value is always respected when provided. |
| Name | Required. |
| Required unless email auto-generation is enabled and the spreadsheet cell is blank. Spreadsheet value is always respected when provided. | |
| Libraries | Optional. Blank uses the selected plan's libraries. |
| Temporary Password | Required only when the selected Member Type has no default password. |
| Photo | Optional unless the Member Type makes profile image required. |
Validation Rules
- Dates must match the organization date format shown in the import popup.
- Valid dates are stored internally as
YYYY-MM-DD. - Member Type Code and Membership Plan Code must match active records.
- Required fields from the selected Member Type must be filled.
- Unique fields such as Member ID, Student ID, RFID Tag, or ID proof number must not duplicate existing data.
- Optional images can warn without blocking the row; required images block the row when missing.
Handling Import Errors
The safest import flow is validate, fix, retry, then import. Do not rush directly into importing a large file.
The preview table supports horizontal drag-scroll, so staff can hold and drag the table to inspect columns that are farther to the right. It shows the actual spreadsheet row number, keeps the status near the row number, and marks pages containing errors in red.
How To Read The Preview
| Preview Status | Meaning | What To Do |
|---|---|---|
| OK | The row passed the current validation checks. | Import can continue. |
| Warning | The row can usually be imported, but something optional needs attention. | Review the warning. Missing optional images are common warnings. |
| Error | The row cannot be imported until fixed. | Read the numbered error list, correct the spreadsheet, and validate again. |
Fix Row Issues In The Popup
Click a status chip such as 2 Errors to open Fix Row Issues.
The popup shows the spreadsheet row number, original value, corrected value, exact issue, and a field-specific fix control. Use Save after changing a value. When an issue is truly fixed, it can be closed from the issue list so you can focus on remaining issues.
Common fix controls include:
| Issue Type | Fix Control |
|---|---|
| Invalid Member Type Code | Searchable Member Type dropdown. |
| Invalid Membership Plan Code | Searchable Membership Plan dropdown. |
| Unknown Library | Library multi-select. |
| Missing Member ID | Manual entry or generate next Member ID when auto-generation is enabled. |
| Missing Email | Manual entry or generate local email when auto-generation is enabled. |
| Invalid Date | Date picker/text input using the organization date format. |
| Invalid Phone | Country-code phone input. |
| Invalid select value | Dropdown or multi-select using allowed options. |
| Missing/invalid image | Choose replacement image, capture from camera where available, select from ZIP, or ignore optional image. |
Use Fix similar rows when the same wrong value appears in many rows, such as one misspelled plan code or member type code. Libcodesk shows progress beside the fix so you can see how many similar rows were corrected.
Row 2 Handling
The generated template uses Row 2 for required/optional guidance. Some users keep that row; others delete it and start real data from Row 2. Libcodesk treats Row 2 carefully so guidance text is not accidentally imported as a member record.
Common Errors And Fixes
| Error | Why It Happens | Fix |
|---|---|---|
| Member Type Code not found | The spreadsheet code does not match an active Member Type. | Use the exact active Member Type code. |
| Membership Plan Code not found | The plan code is missing, inactive, or typed differently. | Use the exact active plan code. |
| Member ID is required | Member ID is blank and auto-generation is not enabled. | Fill Member ID or enable Member ID auto-generation. |
| Email is required | Email is blank and email auto-generation is not enabled. | Fill email or enable member email auto-generation. |
| Duplicate Member ID or Email | The value already exists or appears twice in the import file. | Keep each Member ID and email unique. |
| Invalid date format | Date does not match the organization date format. | Use the format shown in the import popup. |
| Invalid option | The value does not match allowed select options. | Use one of the options configured in Member Types. |
| Unmatched library | A library name does not exist. | Correct the name or leave Libraries blank to use plan libraries. |
| Image missing or invalid | The image is not in the ZIP, corrupted, or unsupported. | Add a valid JPG, JPEG, PNG, or WEBP file, or clear the Photo cell if optional. |
Smooth Import Workflow
- Download a fresh template after changing Member Types or Membership Plans.
- Test with 5-10 rows first.
- Click Validate and review rows needing attention.
- Fix simple row issues inside the preview popup when possible.
- Use Fix similar rows for repeated mapping mistakes.
- Import valid rows.
- Click Download report after completion when you want to save the report.
- If some rows fail after upload, correct only those rows and import again.
For thousands of members, use XLSX when possible, keep image filenames simple, avoid oversized photos, and keep the browser/app open until the final report is ready.
Import Modes
| Mode | What It Does |
|---|---|
| Create New Only | Adds rows that do not match an existing member. Existing rows fail with a clear message. |
| Update Existing Only | Updates rows that match an existing member. New rows fail with a clear message. |
| Create + Update | Updates matching rows and creates non-matching rows. |
For update matching, Libcodesk uses the safest available record match first, then visible Member ID, then Email inside the same organization.
After Import
During import, the progress area shows saved, failed, remaining, elapsed time, and rows per second. The progress stays visible beside the action area so staff can see that work is continuing.
Large Cloud setup imports first show upload progress, then switch to validation and saving progress. Libcodesk keeps the upload stage fast for large files and updates the saving stage in smaller steps so staff can see steady progress.
The main progress bar counts both upload and saving work, so a file that has finished uploading will still continue progressing until the member records are saved.
When import finishes, Libcodesk shows the final result and a Download report action. The report is not saved automatically; click the button when you want to keep it.
Do And Don'ts
- Use the generated template instead of building a file from memory.
- Keep Member Type Code and Membership Plan Code accurate.
- Validate with a small file before importing thousands of rows.
- Keep image filenames unique inside the ZIP.
- Don't mix date formats in one file.
- Don't rely on column position; use clear supported headers.
- Don't type country code inside the phone number when a dialing code column is used.
- Don't ignore backend row errors after final upload.
FAQ
Can I import members without profile images?
Yes. Images are optional unless your Member Type marks profile image as required.
Can the spreadsheet contain extra columns?
Yes. Unsupported columns are ignored safely. Recognized fields still validate and import normally.
How does update mode find an existing member?
It checks internal member id when present, then visible Member ID, then email within the same tenant.
What if a member has no real email address?
If email auto-generation is enabled and the email cell is blank, Libcodesk can generate a local-style login email. If the spreadsheet provides an email, that value is used.