Skip to main content
Version: 26.0.32

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, and enabled member fields, then validates each row before saving.

Screenshot To Add

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:

  1. At least one active Member Type.
  2. At least one active Membership Plan.
  3. Libraries created in Library Manager.
  4. Organization date format checked in Organization > Date Time.
  5. Optional profile images collected in a ZIP file if you want to import images.

If Member Types or Membership Plans are missing, the import popup asks you to create them before continuing.

Download The Template

  1. Open Member Manager > Members.
  2. Click Import Members.
  3. Click Download Template beside Import guide.

The template is generated from your active member types and fields.

RowPurpose
Row 1Supported column headers.
Row 2Required/optional guidance. This row is ignored during import.
Row 3Example 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, and Profile Image can point to the same image field.
  • Extra unsupported columns are ignored safely.
  • For custom/member-type fields, Libcodesk also matches the field label configured 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 FieldRecommended HeaderAlso Detected As
Member Type CodeMember Type Codemember_type_code, type code, member type
Membership Plan CodeMembership Plan Codemembership_plan_code, plan code, membership plan, plan
LibrariesLibrarieslibrary, library access
StatusStatusmember status
Temporary PasswordTemporary Passwordpassword, temp password
PhotoPhotoimage, profile image, profile photo, photo filename

Common member fields also have built-in aliases:

Member FieldRecommended HeaderAlso Detected As
Member IDMember IDmember_id, library card number, card number
NameNamefull name, member name
EmailEmaile-mail, mail
PhonePhonemobile, mobile number, contact number
Date of BirthDate of Birthdob, birth date
Profile ImageProfile Imagephoto, 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. For example, a field named Student ID should use a clear matching header such as Student ID.

Required Columns

The exact field list depends on your Member Types. These columns are important in most imports:

ColumnRequirement
Member Type CodeRequired. Matches the code of an active Member Type.
Membership Plan CodeRequired. Matches the code of an active Membership Plan.
Member IDRequired unless auto-generation is enabled and the spreadsheet cell is blank. Spreadsheet value is always respected when provided.
NameRequired.
EmailRequired unless email auto-generation is enabled and the spreadsheet cell is blank. Spreadsheet value is always respected when provided.
LibrariesOptional. Blank uses the selected plan's libraries.
StatusOptional. Blank becomes active.
Temporary PasswordRequired only when the selected Member Type has no default password.
PhotoOptional unless the Member Type makes profile image required.

Supported Files

  • CSV, XLSX, XLS, and ODS spreadsheets.
  • Optional ZIP archive for profile images.
  • Image files inside ZIP can be JPG, JPEG, PNG, or WEBP.

For multilingual names and addresses, Excel format is recommended because it handles Unicode and complex text more reliably.

Dates

Libcodesk reads the date columns across multiple rows and automatically detects the spreadsheet date format when the values make the format clear. For example, a file that contains both 13/05/2025 and 25/12/2025 can be understood as day/month/year even if some other rows are ambiguous.

If a date can be read in more than one valid way, such as 05/06/2025, and the surrounding rows do not make the format clear, Libcodesk asks you to confirm the spreadsheet date format once before building the preview.

Single-digit day or month values are accepted for the matching organization format. For example, if the organization format is d/m/Y, both 1/8/2001 and 01/08/2001 are valid.

After validation, Libcodesk keeps saved dates consistent for reports, renewals, and future searches. Avoid mixing different date formats inside one import file because that can make detection uncertain.

Member Type And Plan Matching

Use Member Type Code and Membership Plan Code in the spreadsheet. The importer can also recognize names in some places, but codes are safer because names may be similar.

If a code does not match an active record, that row is marked as an error before import.

Member ID And Email Auto-Generation

If the organization has auto-generation enabled:

  • Spreadsheet value wins when the cell has a value.
  • Auto-generation runs only when the cell is blank.
  • A blank Member ID is accepted during validation and the ID is assigned when that row is imported.
  • Generated Member ID and generated email must still be unique.

If Member ID auto-generation is disabled, every imported row must provide a Member ID.

This helps schools where students may not have real email addresses, while still allowing imported files to provide official IDs and emails when available.

Image Import

Profile images are optional unless the Member Type marks profile image as required.

  1. Put images in a ZIP file.
  2. Add the image filename in the spreadsheet Photo column.
  3. Upload the ZIP along with the spreadsheet.

Images can be inside nested folders. Libcodesk matches filenames case-insensitively. Missing optional images show warnings; required missing images block that row.

For very large photo collections, keep each image ZIP under about 2 GB when possible. This is a practical reliability recommendation, not a strict rule. Smaller ZIPs are easier to validate, retry, and review if a network, browser, device, or file problem occurs. If your member photos are larger than this, first import the member records, then use Batch Edit > Batch Image Update to upload photos in smaller ZIP batches.

Validate Before Importing

Click Validate after selecting the spreadsheet. The preview table shows:

  • Actual spreadsheet row number.
  • Status, placed near the row number for quick review.
  • Photo preview or image warning.
  • Member ID.
  • Name.
  • Email.
  • Member Type.
  • Membership Plan.
  • Libraries.
  • Status.

The preview table supports horizontal drag-scroll, so staff can hold and drag the table to inspect columns that are farther to the right. Pages with errors are marked in red, and a small red dot makes those pages easier to notice.

The preview summary separates total rows, valid rows, and rows needing attention. The table status stays compact:

Status ChipMeaning
OKThe row can be imported.
1 WarningThe row can usually import, but optional data needs attention.
2 ErrorsThe row must be fixed before it can import.

Click an error or warning chip to open the row fixing popup.

Handling Import Errors

The safest import flow is validate, fix, retry, then import. Do not rush directly into importing a large file.

How To Read The Preview

Preview StatusMeaningWhat To Do
OKThe row passed the current validation checks.Import can continue.
WarningThe row can usually be imported, but something optional needs attention.Review the warning. Missing optional images are common warnings.
ErrorThe row cannot be imported until fixed.Read the numbered error list, correct the spreadsheet, and validate again.

If a row has more than one issue, Libcodesk shows them as a numbered list so you can fix them one by one.

Fix Row Issues In The Popup

Click the issue chip, such as 2 Errors, to open Fix Row Issues.

The popup shows:

  • Actual spreadsheet row number.
  • Original spreadsheet value.
  • Current corrected value.
  • The exact issue.
  • A field-specific fix control.

Use Save inside the popup after changing a value. A fixed issue can be closed from the list so you can focus on the remaining issues. Closing the popup updates the preview table and the error page indicators.

Common fix controls include:

Issue TypeFix Control
Invalid Member Type CodeSearchable Member Type dropdown.
Invalid Membership Plan CodeSearchable Membership Plan dropdown.
Unknown LibraryLibrary multi-select.
Missing Member IDManual entry or generate next Member ID when auto-generation is enabled.
Missing EmailManual entry or generate local email when auto-generation is enabled.
Invalid DateDate picker/text input using the organization date format.
Invalid PhoneCountry-code phone input.
Invalid select valueDropdown or multi-select using allowed options.
Missing/invalid imageChoose 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.

For optional fields, the popup also supports targeted skipping:

ActionWhat It Does
Skip rowLeaves the current spreadsheet row out of the import.
Skip this dataClears the current optional field only for this row and validates the row again.
Skip this columnClears the current optional field for all preview rows and validates the preview again.

Required fields, such as Member Type Code, Membership Plan Code, and required member-type fields, cannot be skipped from the popup.

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

ErrorWhy It HappensFix
Member Type Code not foundThe spreadsheet code does not match an active Member Type.Check Member Manager > Member Types and use the exact code.
Membership Plan Code not foundThe plan code is missing, inactive, or typed differently.Check Membership Plans and use the exact active plan code.
Member ID is requiredMember ID is blank and auto-generation is not enabled.Fill Member ID or enable Member ID auto-generation.
Email is requiredEmail is blank and email auto-generation is not enabled.Fill email or enable member email auto-generation.
Invalid emailThe email format is not valid.Use a valid email format or a configured local-style generated email.
Duplicate Member ID or EmailThe value already exists or appears twice in the import file.Keep each Member ID and email unique.
Invalid date formatDate does not match the organization date format.Use the format shown in the import popup, such as 25/12/2025; single-digit day/month values like 1/8/2001 are also accepted when the format is d/m/Y.
Invalid optionThe value does not match the allowed options for a select field.Use one of the options configured in Member Types.
Unmatched libraryA library name does not exist.Correct the name or leave Libraries blank to use plan libraries.
Image missingThe Photo column names a file that is not in the ZIP.Add the image to the ZIP or clear the Photo cell if image is optional.
Image invalidThe file is corrupted or unsupported.Replace it with JPG, JPEG, PNG, or WEBP.

Smooth Import Workflow

  1. Download a fresh template after changing Member Types or Membership Plans.
  2. Test with 5-10 rows first.
  3. Click Validate and review rows needing attention.
  4. Fix simple row issues inside the preview popup when possible.
  5. Use Fix similar rows for repeated mapping mistakes.
  6. Import valid rows.
  7. Click Download report after completion when you want to save the report.
  8. If some rows fail after upload, use the report to correct only those rows and import again.

Large Imports

For thousands of members:

  • Use XLSX when possible.
  • Keep image ZIP filenames simple and unique.
  • If you have more than about 30,000 members, split the spreadsheet into multiple import batches where practical. This reduces the chance of browser, network, device, or file-size interruptions and makes reports easier to review.
  • Import in manageable batches if the file is very large.
  • Keep each image ZIP under about 2 GB when possible. If your images are larger than that, import the members first, then update profile images later with Batch Edit > Batch Image Update in smaller ZIP batches.
  • Avoid huge image files; use clear profile photos and let Libcodesk optimize them.
  • Keep the browser/app open until the progress and report are complete.
  • In Cloud setup, large new-member imports upload in larger progress steps for speed, then save in smaller visible steps so the screen keeps updating.
  • Update Existing Only and Create + Update still perform stricter matching checks because they must protect existing member records.

Import Modes

ModeWhat It Does
Create New OnlyAdds rows that do not match an existing member. Existing member rows fail with a clear message.
Update Existing OnlyUpdates rows that match an existing member. New rows fail with a clear message.
Create + UpdateUpdates 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, rejected, remaining, elapsed time, rows per second, current phase, and ETA where available. 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. Saved, rejected, remaining, elapsed time, rows per second, and ETA are updated from the active import so the counters stay consistent.

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.

While an import is active, Libcodesk shows the current phase, such as uploading, validating, saving, or updating visible row results. Keep the browser/app open until the final report appears.

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.

In Cloud setup, unfinished import uploads are temporary. When an import finishes or is cancelled, Libcodesk keeps the final result/report available and clears temporary upload data automatically. If an upload is abandoned, old temporary data is also cleaned automatically. Profile images are saved only for members that are successfully created or updated.

Do And Don'ts

Do
  • 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
  • Don't type country codes inside phone number cells when a dialing code column exists.
  • Don't mix date formats in one file.
  • Don't rely on column position; use clear supported headers.
  • Don't ignore warnings when profile image is required by your Member Type.

FAQ

Can I import members without profile images?

Yes. Images are optional unless your Member Type marks profile image as required.

What happens if the spreadsheet has extra columns?

Unsupported columns are ignored. Valid recognized columns still import normally.

Can I update existing members using import?

Yes. Use Update Existing Only or Create + Update. Matching uses the safest available record match first, then Member ID, then email within the same organization.

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.

Why did a valid preview row fail during upload?

Libcodesk performs final safety checks before saving. Common causes are a duplicate created after validation, an invalid date format, a changed Member Type, or a unique value already used by another member.