Skip to content

Adding Contacts in Batch

This guide walks you through creating a batch of contacts, either by entering them manually or importing from a spreadsheet.

Creating a New Batch

  1. Go to Manage > Batches
  2. Click Create
  3. Give your batch a name (e.g., "Event Attendees" or "Board Members Import")
  4. Select the Contacts tab

Adding Contacts Manually

Click Add to open the contact form. Fill in the required fields and any optional information.

Required Fields

FieldDescription
Display NameThe contact's full name as it should appear
Created DateWhen the contact record should be dated

General Information

FieldDescription
Avatar ImageProfile picture URL
Reference IDUnique identifier for updates and matching
TitleName prefix (Mr., Mrs., Dr., etc.)
First NameContact's first name
Middle NameContact's middle name
Last NameContact's last name
SuffixName suffix (Jr., III, PhD, etc.)
Maiden NamePrevious surname
DeceasedMark if contact is deceased
Can ContactAllow general contact (email, phone, mail)
TagsAdd contact tags for organization
Custom FieldsAny custom fields configured for contacts

TIP

First Name and Last Name are optional but recommended. The Display Name is the primary identifier shown throughout the system.

Primary Email

FieldDescription
EmailPrimary email address
Can EmailAllow email communication

Primary Phone

FieldDescription
PhonePrimary phone number
Can CallAllow phone calls
Can TextAllow text messages

Primary Address

FieldDescription
Address Line 1Street address
Address Line 2Suite, apartment, etc.
CityCity name
StateState or province
ZIP CodePostal code
CountryCountry name
Can MailAllow postal mail

Contact Preferences

The contact form includes several "can contact" checkboxes that control communication preferences:

  • Can Contact - Global preference for any contact
  • Can Email - Allow email communication
  • Can Call - Allow phone calls
  • Can Text - Allow SMS/text messages
  • Can Mail - Allow postal mail

WARNING

These preferences are important for compliance with communication laws and donor preferences. Set them appropriately when importing contacts.

Editing and Removing Rows

  • Edit: Click anywhere on a row to open the form and make changes
  • Delete: Click the trash icon on the right side of a row

Importing from Spreadsheet

For large contact lists, importing from a spreadsheet is faster:

  1. Click Import from Spreadsheet at the bottom of the batch
  2. Select your CSV or Excel file
  3. Map your columns to the correct fields (if needed)
  4. Review the imported rows

See Importing from Spreadsheet for detailed instructions on the import process.

Supported CSV Columns

Below is the full list of columns supported when importing contacts from a CSV or Excel file.

Required

ColumnDescription
display_nameContact's full name as it should appear
created_atDate the contact record should be dated (e.g., 2024-01-15)

Name Fields

ColumnDescription
first_nameContact's first name
middle_nameContact's middle name
last_nameContact's last name
titleName prefix (Mr., Mrs., Dr., etc.)
suffixName suffix (Jr., III, PhD, etc.)
maiden_namePrevious surname

Contact Info

ColumnDescription
emailPrimary email address
phonePrimary phone number

Address

ColumnDescription
line1Street address line 1
line2Street address line 2
cityCity
stateState or province
zipcodePostal/zip code
countryCountry

Preferences

ColumnDescription
email_can_contactAllow email communication (0 = no, 1 = yes)
phone_can_callAllow phone calls (0 = no, 1 = yes)
phone_can_textAllow text messages (0 = no, 1 = yes)
address_can_contactAllow postal mail (0 = no, 1 = yes)
deceasedMark as deceased (0 = no, 1 = yes)
can_contactAllow general contact (0 = no, 1 = yes)

Other

ColumnDescription
reference_idExternal or unique identifier — if a contact with the same reference ID exists, core fields and primary contact methods (email, phone, address) will be updated. Tags are added if not already present, and custom values are replaced.
cv_contact_idAdvanced. The contact's ID in CauseVox, as it appears in a report export. A row carrying this updates that exact contact and nothing else. See Matching on the CauseVox Contact ID.

Custom Fields (numbered, via column mapping)

Add custom field values using numbered columns:

ColumnDescription
contact_custom_field_1Value for the first contact custom field
contact_custom_field_2Value for the second contact custom field

Add more numbered columns (_3, _4, etc.) as needed.

Tags (numbered, via column mapping)

Apply tags using numbered columns:

ColumnDescription
contact_tag_1Tag name to apply to the contact
contact_tag_2Second tag for the contact

Add more numbered columns (_3, _4, etc.) as needed.

TIP

Custom fields and tags use numbered suffixes (_1, _2, etc.) and require the column mapping step during import. When you upload your file, map each numbered column to the correct field.

How Contacts Are Matched

When you upload the spreadsheet, each row is checked against your existing contacts. The import works down this list and stops at the first match:

  1. cv_contact_id matches a contact in your organization → that contact is updated.
  2. reference_id matches an existing contact → that contact is updated.
  3. email matches an existing contact's primary email → that contact is updated.
  4. Nothing matches → a new contact is created.

Most files only ever use reference_id or email. cv_contact_id is the advanced option — see below.

Only the columns actually in your file are applied. A column you leave out, or a cell you leave blank, keeps whatever the existing contact already has.

If two or more rows in the same batch share a primary email (and none of them match an existing contact), the review screen shows a warning like:

"Shares primary email with row 3 (no existing contact in this organization). This row will be merged into that contact; fields here may overwrite earlier values."

The rows are collapsed into a single new contact when you process the batch. Later rows' fields overwrite earlier ones, so if demographics differ between rows, use reference_id to keep them separate.

TIP

Matching happens at upload time. If you add a contact through the UI after uploading but before clicking Process Batch, the batch will not link to it — use the dedup suggestions afterward to merge. See Importing from Spreadsheet for the full matching flow.

Matching on the CauseVox Contact ID

reference_id is the right column for most work — it holds your identifier, usually from the system you're migrating from. But some contacts have no reference ID and no email to match on: anyone created by a donation form, for instance. There is nothing on those rows for an import to recognise, so re-importing them creates duplicates.

For those, use cv_contact_id — the contact's ID in CauseVox:

  1. Build a report on Contacts and include the ID column.
  2. Export it, edit the fields you want to change, keep the ID column as-is.
  3. Import the file with that column mapped to CauseVox Contact ID.

Each row updates exactly the contact that ID belongs to, regardless of name or email. This makes an export → edit → re-import round trip safe.

A few things to know:

  • It takes precedence over reference_id and email. If a row has all three and they point at different contacts, the CauseVox Contact ID wins.

  • It only accepts IDs from your own organization. An ID from anywhere else is treated as invalid.

  • If the ID is invalid, it's cleared and the row is flagged before you process, so nothing is written using a bad value:

    "Invalid CauseVox Contact ID — "notarealcontactid" was cleared"

    Open the row, correct the ID, and the warning resolves. Leaving it means the row falls back to reference_id or email, and creates a new contact if neither matches.

  • Leave the column blank for rows that should create new contacts. A blank cell is ignored.

TIP

cv_contact_id is for updating contacts that already exist in CauseVox. If you're migrating from another system, reference_id is still the column you want — put your old system's IDs there so future re-imports match.

Processing the Batch

When you're ready to finalize:

  1. Review all contact information
  2. Click Process Batch
  3. Confirm the action

Important

Batch processing cannot be undone. Once processed, each contact becomes a permanent record. Double-check your data before processing.

After Processing

Once processed:

  • Contacts appear in CRM > Contacts
  • Communication preferences are set as specified
  • Tags are applied to contacts
  • Custom field values are saved

Tips and Best Practices

  1. Include reference IDs - Essential for updating contacts via future imports
  2. Set communication preferences - Respect donor privacy by setting preferences correctly
  3. Use tags - Help organize contacts for future segmentation
  4. Check for duplicates - Review for contacts that may already exist in your system
  5. Validate email addresses - Ensure email formats are correct before importing
  6. Test first - Import a small sample before the full file

Unified Fundraising + CRM