Import People

The bulk importer is the easiest way to import a large number of contacts into your database quickly. You can also manually add contacts one at a time.

To start, open People and click Import, then New import. The Import button needs the Import People permission.

Importing From A File

We've made it easy to import your contacts into Solidarity Tech from a spreadsheet or different CRM. The first step is to convert your contact data into a CSV file.

Before You Start

Solidarity Tech pricing is based on the number of contacts and the plan tier. If your import brings your total contact count above the limit of your plan tier, you'll be warned before the import.

Formatting Your File

Ensure that your CSV file meets the following requirements:

  1. The first row of your CSV file must contain the column headers
  2. A new contact needs a phone number or an email address, unless you turn off Require Phone or Email
📘

Tip: You can also update existing records by including a "Solidarity Tech User ID" column or by using a custom property as a primary key. You set the key on the Details step, under Show Advanced Options. Both options let you update records even if phone/email has changed.


Mapping Fields

After uploading your data, you will need to assign each column in the CSV to a field in Solidarity Tech.

Before you can continue, every column must either be assigned to a matching field or skipped.

Per-Field Options

For each column you map, you'll see options depending on the field type:

Don't Overwrite - When checked, the import will only fill in blank fields and won't replace existing values. Useful when you want to add new data without overwriting what's already there.

Allow new options can appear for custom properties with dropdown/radio/checkbox options. When checked, if an imported value doesn't match any existing option, a new option will be automatically created. Matching ignores case, spaces, and punctuation.

Add to existing values - Appears for custom properties of type Multiple Checkboxes. When checked, imported values are merged with existing selections instead of replacing them. When unchecked, existing values are replaced entirely. Useful when you want to add new checkbox selections without clearing what's already set.


Standard Fields

The importer auto-detects common column names like "First Name", "Last Name", "Alternate Name", "Email", "Phone Number", "Zip Code", "Date of Birth", etc.

Date of Birth

Accepted formats include YYYY-MM-DD and MM/DD/YYYY. Age is computed automatically from the imported date.

Other Emails

Map a column to "Other Emails" to import secondary email addresses that are stored separately from the contact's primary email. Multiple emails can be included in a single cell, separated by semicolons (e.g., [email protected]; [email protected]). The import skips an address that is not valid. This field does not affect the primary email address or email permissions.

💡

Tip: You can map Other Emails to one column only. To import several addresses, put them in one cell.

Custom User Properties

Custom User Properties can be imported using either the option value or the label. For properties with multiple options (like checkboxes), separate values with commas:

"Former Driver, Community Supporter"

For single checkbox fields, these values are accepted:

  • True: true, yes, y, 1, -1, or x, in any letter case
  • False: false, no, n, or 0
  • Unchanged: leave blank

Tags

Import tags as a comma-separated list. New tags will be created automatically if they don't exist.


Chapter Assignment

On the Upload step, pick a chapter under Chapter Assignment. New people get that chapter, and existing people keep their primary chapter.

Per-Row Primary Chapter Override

Map a column to the "Primary Chapter" field to set each contact's primary chapter by name, one per row. Matching is case-insensitive and ignores surrounding whitespace. Blank cells fall back to the default chapter you select for the import. If a value does not match any chapter in your organization, the default chapter is used for that row and a warning is logged.

Secondary Chapters (Standard Plan or Higher)

If your organization has the Standard plan or higher, you can also import secondary chapter memberships. Map a column containing comma-separated chapter names (e.g., "LA, NYC") to the "Secondary Chapters" field.


Advanced Import: Donations

You can import donation history alongside contact data. When donation-related columns are detected, the importer will show donation mapping options.

FieldDescriptionRequired
Donation AmountThe donation amount (e.g., "50" or "$50.00")Yes
Donation DateWhen the donation was madeYes
Donation SourcePlatform or method (e.g., "ActBlue", "Cash")No
External Donation IDReceipt or transaction ID from external systemNo
Donation Processing FeeFee charged by payment processorNo
Donation NoteA note saved on the donation record and shown in the person's activity feedNo

If you map donation fields, the Details step requires a Donation Source name, such as EveryAction or ActBlue. A Donation Source column can override it for each row with a value.

⚠️

Note: The import skips a duplicate donation. For example, a duplicate has the same External Donation ID and date as an existing donation, or the same person and amount within one hour.


Advanced Import: Relationships

You can import relationships between people in your database. The field menu shows the Relationships fields only when a column header has relation or relationship followed by phone, mobile, cell, email, or type.

FieldDescription
Relationship TypeThe relationship (e.g., "Parent", "Spouse", "Influences")
Relation Phone NumberPhone number of the related person
Relation EmailEmail of the related person, used when no person matches the phone number

The related person must already exist in your database.


Advanced Import: Referrals

Track who referred each contact by mapping referral fields:

FieldDescription
Referrer Phone NumberPhone number of the person who referred this contact
Referrer EmailEmail of the referrer (if no phone)

The referrer must already exist in your database.


Advanced Import: Full Address

If your data has addresses in a single column (e.g., "123 Main St, Los Angeles, CA 90001"), map it to "Full Address". The importer will automatically geocode the location, and it parses an address that Solidarity Tech has not geocoded before into separate address components.


Details Step

On the final screen before starting the import, you'll configure these settings:

Default Preferred Language

If the preferred language field is not mapped, this language will be assigned to imported contacts with no preferred language.

Require Phone or Email

Enabled by default. It counts only the primary phone number and the primary email. Disable to import contacts without a phone number or email address.

Add Import Chapter as Secondary for Existing Contacts (Standard, Professional, and Enterprise plans)

When importing to a chapter and a contact already exists with a different primary chapter, enabling this also adds the import chapter as a secondary membership. Their primary chapter stays the same whether this setting is on or off.

The next four settings are under Show Advanced Options.

Update Existing Contacts

Enabled by default. When a matching phone or email is found, the existing contact is updated. Disable to skip records that already exist.

Use Custom Property as Primary Key

If you have a custom property mapped (such as a member ID, external system ID, or employee number), you can use it as the primary lookup key for matching contacts during import. When enabled, the import will search for existing contacts by that custom property value before checking phone number or email.

This is useful when:

  • You are importing data from another system that has its own unique identifier
  • People may have changed phone numbers or email addresses, but their external ID stays the same
  • You need to reliably update specific records without relying on contact info

How it works: The import lookup priority becomes:

  1. Custom property value (if enabled)
  2. Solidarity Tech User ID (if mapped)
  3. Phone number
  4. Email address

Only custom properties of type Single-line Text or Number are available for selection. The selected property must contain unique values for each contact. If multiple contacts share the same value, the import will overwrite data from one contact onto another, and this cannot be undone.

⚠️

Warning: Only use this for fields that are guaranteed to be unique per person, such as external system IDs or employee numbers.

This option only appears when at least one eligible custom property is included in your field mapping (step 2).

Allow Landline Phones

Enabled by default. Disable to exclude phone numbers that can't receive text messages.

Assign Tag To All

Add specific tags to all successfully imported contacts.

💡

Tip: To filter by this import later, use the "Included in Data Import" filter instead of adding a tag.


Permissions an Import Turns On

An import gives SMS Blast and SMS P2P permission to a new person whose number can get texts, unless the person opted out.


Preserving Opt-Outs During Import

If you're migrating from another CRM and have people who opted out of communications, you can preserve those preferences directly during import.

Option 1: Map Opt-Out Columns (Recommended)

If your CSV has columns indicating opt-out status (e.g., "SMS Opted Out", "Email Unsubscribed"), you can map them directly:

  1. Chapter Opt-Out - Revokes permissions for the chapter you're importing to
  2. Global Opt-Out - Revokes organization-wide permissions (master switch)

After selecting either opt-out option, choose which permission types to revoke:

  • ☐ SMS Blast
  • ☐ SMS P2P
  • ☐ Email
  • ☐ Call

If the column value is true, yes, 1, or y, the selected permissions will be set to OFF.

💡

Tip: Use Chapter Opt-Out if people only unsubscribed from a specific location/chapter. Use Global Opt-Out if they unsubscribed from your entire organization.

For more details on how permissions work, see Communication Permissions.

Option 2: Bulk Update After Import

Alternatively, you can opt people out after importing:

  1. Import everyone (with default opt-in status)
  2. Create a separate CSV of just the people who should be opted out (with their email or phone)
  3. Import that opt-out CSV
  4. Create a filter with Included in Data Import set to your opt-out import.
  5. Bulk Update → "Opt Out of Communications" → check Opt out of Calls, Opt out of Texts, or Opt out of Emails as needed.

This approach is useful if your opt-out data is in a separate file or requires complex logic.


After Import

No summary screen opens. The Imports page lists each import with the counts Created, Updated, Failed, and All.

Failed does not count rows that the import skipped because Update Existing Contacts is off.

If any rows failed, you can download an error CSV showing which rows had issues and why.


Did this page help you?