Skip to content

Importing Data

Smart Import lets you bring data into Campflow from any spreadsheet. Whether you’re migrating from another system, importing a list of new families, or loading payments in bulk, the import wizard walks you through the process step by step. It auto-detects your columns, cleans up formatting issues, matches against existing records, and lets you review everything before anything is saved.

When you open the Import page from the sidebar, you’ll first choose what type of data you’re importing:

  • Families & Campers — Import family information, camper details, enrollments, fees, payments, signatures, and custom fields all at once. The wizard figures out what’s in your file based on the columns you map.
  • Staff — Import staff members, staff types, emergency contacts, bunk assignments, and custom fields. See Importing Staff for details.
  • Expenses — Import expense transactions and categories from a spreadsheet.

The rest of this article covers the Families & Campers import. Expense imports work similarly but with a simpler set of fields.

  1. Go to the Import page from the sidebar.
  2. Choose Families & Campers.
  3. Drag your file onto the upload area, or click to browse for it.

Campflow accepts CSV, Excel (.xlsx, .xls), and LibreOffice (.ods) files up to 50MB. Files can contain up to 10,000 rows.

If your file has multiple sheets (like an Excel workbook), you’ll see them listed with row counts. Select which sheets to include — sheets with data are selected automatically.

Once the file is uploaded and processed, click Next to move to column mapping.

Campflow reads your column headers and automatically maps them to fields. You’ll see a table with each column from your spreadsheet, what Campflow thinks it matches to, and a few sample values so you can verify.

  • Auto-detected columns are shown with their best match pre-selected. Common headers like “Last Name,” “Phone,” “Address,” and “Email” are recognized automatically.
  • Unrecognized columns show as “Skip this column” — meaning they won’t be imported unless you manually assign them.
  • To change a mapping, click the dropdown for that column and search or browse the available fields.

Fields are organized into groups: Family Info, Camper Info, Enrollment, Medical & Emergency, Financial (fees and payments), Custom Fields, and Identifiers.

The wizard won’t let you proceed without enough information to identify records:

  • You need a way to identify which family each row belongs to. Any of these is sufficient:

    • Enrollment ID — Identifies the family, camper, and enrollment in one column.
    • Camper ID — Identifies the family and camper.
    • Family ID — Identifies the family directly.
    • Last Name plus at least one secondary identifier — email, phone, parent name, address, or camper first name. Last name alone is not enough because of ambiguity (“Cohen” could match multiple families), but pairing it with a phone number or parent name narrows it down.

    To get these IDs, start with an export from Campflow. Go to the Family Table or Camper Table, include the ID columns you need, and export. You can then add your new data to the exported spreadsheet and re-import it with the IDs already in place.

  • If importing fees, you’ll need a Fee Description and Fee Amount.

  • If importing payments, you’ll need at least a Payment Amount.

Below the column list, Campflow shows how reliably it can match your rows to existing families based on the columns you have mapped:

  • Strong match — An ID column is mapped, or last name is paired with an email address. Existing families will be matched reliably.
  • Good match — Last name is paired with a phone number. Minor formatting differences in phone numbers could cause some misses.
  • Fair or weak match — Last name is paired with a parent name, address, or camper first name. Matching works only when there is exactly one family with that combination. Common last names are likely to create duplicates.
  • Cannot match — No identifier columns are mapped, or last name is mapped alone without a secondary identifier. All rows will be created as new families.

If matching is weak or unavailable and you are importing into a camp that already has families, consider adding an ID column to your spreadsheet. Export your existing data from the Family Table to get the IDs, then add your new data to the same spreadsheet.

Each field can only be mapped to one column. If you accidentally map two columns to the same field, the wizard will tell you which field is duplicated.

Importing Campers with Custom Attendance Dates

Section titled “Importing Campers with Custom Attendance Dates”

If a camper is attending for dates that don’t match one of the standard terms (Full Season, First Half, Second Half, Six Week), you can import them with a custom term:

  1. Set the Term column to “Custom” — In your spreadsheet, enter “Custom” as the term value for any camper with non-standard dates.
  2. Add Start Date and End Date columns — Include columns for each camper’s specific attendance dates. During column mapping, these map to the enrollment start and end date fields. The wizard recognizes common header names like “Start Date” / “End Date”, “From” / “To”, or “Check In” / “Check Out”.
  3. Adjust pricing after import — Custom terms don’t auto-calculate pricing the way standard terms do. After the import, you’ll need to manually adjust fees for any campers with custom dates.

Campers with standard terms don’t need start and end date columns — those dates are determined by the term itself. The date columns are only needed when a camper’s attendance doesn’t fit a predefined term.

This step only appears if the wizard detects data that needs attention. It might not show at all if your data is clean. Issues the wizard can detect and help you fix:

If a column mapped to “First Name” contains what looks like full names (e.g., “Moshe Cohen” instead of just “Moshe”), the wizard offers to split them into separate first and last name fields automatically.

If your address column contains full addresses like “123 Main St, Brooklyn, NY 11201” but city, state, and ZIP aren’t mapped separately, the wizard offers to split the address into its parts.

If the same school or city is spelled differently across rows (e.g., “Yeshiva Torah Academy” and “Torah Academy”), the wizard groups similar values and offers to standardize them. You can apply the suggestion or skip it.

For fields that expect specific values — like approval status, grade, term, or custom dropdown fields — the wizard shows any values it doesn’t recognize and lets you map them to the correct option.

  • Approval status — If a value doesn’t match any of your configured statuses, you can assign it to an existing status or clear it.
  • Grades — If a grade name doesn’t match (e.g., “3rd grade” vs. “Grade 3”), the wizard tries to fuzzy-match it and suggests a correction for your confirmation.
  • Term — Values like “Full” or “First Half” that don’t match the expected format can be resolved here.
  • Custom dropdown fields — Any custom select fields with values not matching the configured options are flagged for resolution.

If you did not map a column for grade, term, or approval status, the wizard offers a default value picker. If you choose a value, it will be applied to every camper in the import — both new and existing. For existing campers, this replaces their current value. If you do not want to change anyone’s grade, term, or status, click Skip to leave the field as-is.

The review step shows you exactly what will happen when you import. You will see a preview of the first 100 rows with match results:

  • Existing families — Families that match existing records in Campflow. These will be updated with the data from your spreadsheet.
  • New families — Families that could not be matched to any existing record. These will be created as new families with new campers.

If the review shows a mix of matched and unmatched families, Campflow displays a warning. This usually means your file does not have strong enough identifiers to match every family. For example, if you mapped last name and camper first name but two families share those values, one may match and the other may not.

If the unmatched families are supposed to be existing families, go back to Map Columns and add a stronger identifier (email, phone number, or Family ID). If you do not want to create new families, uncheck the Create these families checkbox to skip them.

For each row, you can choose what to do:

  • Update family (matched rows) — Merge the imported data into the existing record.
  • Create (new rows) — Create a new family and camper.
  • Skip — Do not import this row.

Use the Create these families and Update these families checkboxes at the top to toggle all new or all matched rows at once.

If the preview shows data errors (like a required field missing on a new record), those rows are automatically skipped. You can edit cell values directly in the preview table to fix issues.

At the top of the review step, you’ll see a summary of what the wizard cleaned automatically:

  • Phone numbers formatted
  • Names cleaned up (capitalization, extra spaces)
  • Dates standardized
  • Emails normalized
  • Currency values cleaned

This is informational — the cleaning has already been applied. It just tells you what was adjusted.

When you’re satisfied with the preview, click Start Import. The wizard processes the data:

  • For smaller files (under 200 rows), the import runs immediately and you’ll see a progress bar.
  • For larger files, the import runs in the background using queued jobs. You can close the page and come back — the progress will be waiting.

When the import finishes, you’ll see a summary showing how many families were created, how many were updated, and how many campers were added.

If fees were included in the import, Campflow will automatically calculate the fee totals for the affected families after the import completes.

At any point during the wizard, you can go back to previous steps using the Back button. Going back clears any decisions you made in later steps, so you’ll need to redo the review if you change your mapping.

If you need to start completely fresh with a different file, go back to Step 1 and remove the uploaded file.

  • The wizard is designed to handle messy real-world data. There is no need to clean your spreadsheet perfectly before uploading — Campflow handles phone formatting, name capitalization, date formats, and more.
  • You can import into an existing camp with existing data. The wizard matches against your current records and gives you control over what gets updated.
  • The import respects the current season. Enrollments, fees, and payments are created under the season you have selected.
  • Custom fields you’ve configured for families, campers, or enrollments can be imported — they appear in the field mapping dropdown under their respective groups.
  • If the import includes siblings (multiple campers in the same family), the wizard automatically groups them into the same family, so you won’t end up with duplicate family records.
  • If something looks off after an import or data isn’t showing up as expected, try reloading the page.
  • You can re-import a corrected file at any time. Campflow matches rows to existing families using Enrollment ID, Camper ID, Family ID, or last name combined with email, phone number, parent names, address, or camper name. Matched families can be updated, skipped, or overwritten — you choose for each one in the review step. Only non-empty cells in your file will update existing data, so blank cells won’t erase information that’s already there.