Importing Members from CSV

Learn how to bulk import members using a CSV spreadsheet file, including custom field data

8 min read
Updated 16 days ago
For Committee
importcsvbulk importspreadsheetmigration

Importing Members from CSV

The CSV import feature allows you to add multiple members at once, perfect for migrating from another system or adding a batch of new members. You can import standard member data as well as any custom fields your club has configured.

Before You Start

Prepare your data in a spreadsheet application (Excel, Google Sheets, etc.) and export it as a CSV file.

Download the Template

The easiest way to get started is to download the CSV template:

  1. Navigate to Admin > Members
  2. Click Import CSV
  3. On the file upload step, click Download Template
  4. Open the template in your spreadsheet application
  5. Fill in your member data following the example rows
  6. Delete the example rows and save as CSV

The template includes all standard fields with example data to help you format your information correctly.

Tip: If your club has custom fields, add columns for them to your CSV using the custom field names as column headers (e.g., "BE Membership Number"). The import wizard will let you map these columns in step 2.

Required Fields

Your CSV must include columns for:

  • First Name - Member's first name
  • Last Name - Member's last name
  • Email - Valid email address (used for login)

Optional Standard Fields

You can also include:

  • Phone number
  • Gender (accepts: m, f, male, female)
  • Address details (line 1, line 2, city, postcode)
  • Membership status (pending, active, expiring, lapsed)
  • Membership name (must match an existing membership tier)

Custom Fields

If your club has custom fields configured under Admin > Settings > Custom Fields, you can include columns for these in your CSV. The import wizard will show all active custom fields as mapping targets alongside the standard fields.

Supported custom field types and expected CSV formats:

| Field Type | CSV Format | Example |

|-----------|-----------|---------|

| Text | Plain text | John's racket preference |

| Long Text | Plain text | Plays doubles and singles |

| Number | Numeric value | 12345 |

| Date | YYYY-MM-DD, DD/MM/YYYY, or DD-MM-YYYY | 2024-01-15 |

| Yes/No | yes, no, true, false, 1, 0, y, n | yes |

| Single Select | One of the defined option values or labels | Beginner |

| Multi Select | Comma-separated option values or labels | Monday, Wednesday, Friday |

| Email | Valid email address | alt@example.com |

| URL | Full URL with protocol | https://example.com |

| Phone | Phone number (6-15 digits) | 07700 900001 |

Note: For Select and Multi Select fields, values must match one of the options defined in the field's configuration. Matching is case-insensitive and works with both the option value and label.

The Import Wizard

The import process is guided by a 4-step wizard:

Step 1: Upload Your File

  1. Click the upload area or drag and drop your CSV file
  2. The system accepts .csv files up to 5MB
  3. Your file will be parsed and the wizard will advance automatically
Tips for successful uploads:
  • Save your spreadsheet as "CSV (Comma delimited)"
  • Ensure the first row contains column headers
  • Remove any empty rows at the end of your file

Step 2: Map Fields

This step connects your CSV columns to member profile fields:

  1. Each member field shows a dropdown of your CSV columns
  2. Select which column contains each piece of data
  3. Required fields are marked with an asterisk (*)
  4. The preview shows sample data from your file to help you verify mappings
Standard fields appear first (required fields at the top, then optional fields). Custom fields appear in a separate "Custom Fields" section below the standard fields. Each custom field shows its type (Text, Number, Date, etc.) as a badge to help you map the right data. Required custom fields are also marked with an asterisk. Mapping tips:
  • The system auto-detects common column names (e.g., "First Name", "Email")
  • Custom fields are auto-matched when your CSV column header matches the field name or slug
  • You can leave optional fields unmapped if your CSV doesn't include that data
  • Check the sample values preview to verify your mappings look correct

Step 3: Validation and Preview

After mapping, the system validates every row of your data:

Standard field validation:
  • Email format validation
  • Duplicate email detection (within the file and against existing members)
  • Required field presence (first name, last name, email)
  • Membership name lookup (must match an existing tier)
Custom field validation:
  • Required fields - Checks that required custom fields have values
  • Number fields - Verifies the value is numeric, checks min/max constraints
  • Date fields - Validates the format (YYYY-MM-DD, DD/MM/YYYY, or DD-MM-YYYY)
  • Yes/No fields - Accepts only yes/no/true/false/1/0/y/n
  • Select fields - Verifies the value matches a defined option (by value or label)
  • Multi Select fields - Each comma-separated value must match a defined option
  • Email fields - Validates email format
  • URL fields - Validates URL format (must include protocol)
  • Phone fields - Validates phone number format (6-15 digits)
  • Text fields - Checks min/max length constraints and regex patterns if configured
The preview shows:
  • Valid rows (green) - Ready to import
  • Invalid rows (red) - Have errors that need fixing
  • Duplicate rows (yellow) - Match existing members

Click the error count on any row to expand and see the specific validation errors, including the field name, the expected format, and the value that failed.

You can:
  • Select/deselect individual rows
  • Filter the view to show only valid, invalid, or duplicate rows
  • Fix issues in your source file and re-upload
  • Proceed with just the valid rows

Step 4: Import Results

After clicking "Import", you'll see:

  • Number of members successfully imported
  • Any errors encountered
  • Next steps (send invitations, return to member list)

Imported members will have their custom field values stored alongside their standard profile data.

Handling Duplicates

The system checks for duplicates using email addresses:

  • Exact match found - Row will be flagged as duplicate and skipped by default
  • Similar email found - Warning shown but row can still be imported

To update existing members, use individual profile editing rather than import.

Sending Invitations After Import

Imported members don't automatically receive login invitations. After importing:

  1. Go to the member list
  2. Filter by "Invite Status: Not Invited"
  3. Select members to invite
  4. Use the bulk action to send invitations

This gives you control over when new members receive their welcome email.

Common Import Issues

"Invalid email format"

The email address doesn't match standard format. Check for:

  • Extra spaces before or after the email
  • Missing @ symbol
  • Invalid characters

"Duplicate email found"

This email already exists in your club. The member won't be imported to avoid duplicates.

"Required field missing"

First name, last name, or email is empty for this row. Check your source file.

"[Field name] must be a valid date"

Date values must be in a recognised format: YYYY-MM-DD, DD/MM/YYYY, or DD-MM-YYYY. Random text or numbers will be rejected. Ensure consistency throughout your file.

"[Field name] must be a number"

A numeric custom field received a non-numeric value. Check the column contains only numbers.

"[Field name]: invalid option"

A select or multi-select custom field received a value that doesn't match any of the defined options. The error message lists the valid options. Check for typos or extra spaces.

"[Field name] must be Yes/No"

A Yes/No custom field received an unrecognised value. Use: yes, no, true, false, 1, 0, y, or n.

"Unknown membership"

The membership name in your CSV doesn't match any active membership tier. Check the exact name under Admin > Settings > Memberships.

Best Practices

  1. Start small - Test with 5-10 rows first to verify your mapping
  2. Clean your data first - Fix obvious issues in your spreadsheet before importing
  3. Keep your source file - Save the original in case you need to reference it
  4. Match custom field formats - Check the expected format for each custom field type before preparing your CSV
  5. Verify after import - Spot-check a few imported members to ensure data looks correct, including custom field values
  6. Use consistent values - For select fields, ensure all rows use the same spelling for option values

Was this article helpful?

Related Articles