Skip to content

Importing from Spreadsheet

Upload a CSV or Excel file to add multiple donations, pledges, contacts, households, organizations, or tickets at once. This is the fastest way to import large amounts of data.

Before You Start

  1. Get the sample spreadsheet - Download our template to ensure correct formatting
  2. Prepare your data - Match your columns to our field names
  3. Check your limits - Maximum 15,000 rows per file

Step-by-Step Import

Step 1: Open the Import Dialog

  1. Create or open a batch
  2. Click Import from Spreadsheet at the bottom

Step 2: Upload Your File

  • Drag and drop your file, or click to browse
  • Supported formats: CSV (.csv) and Excel (.xlsx, .xls)

Step 3: Map Your Columns

If your column headers don't exactly match our field names, you'll see a mapping screen:

  1. For each field, select the matching column from your file
  2. Leave unmapped fields blank if not used
  3. Click Continue

Step 4: Review and Confirm

  • Check the preview of imported data
  • Look for any errors or warnings
  • Click Import to add the rows to your batch

WARNING

The import adds rows to your batch but doesn't process them yet. Review the data before clicking Process Batch.


How Records Are Matched & Collapsed

Batch imports look up and collapse records in two stages: once at upload (when you click Import from Spreadsheet) and once during Process Batch. Understanding this helps you read the warnings that appear in the review screen.

Stage 1 — Upload (system-level matching)

At upload, each row is checked against existing CauseVox data:

  • Donations, pledges, installments, tickets with a blank contact_id but a filled email: the import looks for an existing contact in your organization whose email (primary or secondary) matches. If found, the row is linked to that contact automatically.
  • Contact, organization, household rows with a filled email: the import looks for an existing record in your organization whose primary email matches. If found, the row is treated as an update to that record at process time instead of a new create.

These lookups happen once, at upload. They do not run again later.

Stage 2 — Process (within-batch collapse only)

When you click Process Batch, the system creates or updates records according to what the upload decided. It does not re-check the system for matching emails. This is intentional — it means:

  • If you upload a CSV, then add a matching contact through the CauseVox UI, then click Process, the CSV will create a new contact rather than linking to the one you just added. (The dedup suggestion system will flag them for merge after processing.)
  • Two people with the same email address in your existing data will be respected — the batch is not allowed to silently override which one a donation gets linked to between upload and process.

Within a single batch, rows that share an email and have no matching existing record collapse to a single new record:

  • Donations / pledges / installments / tickets: the first row with a given email creates the new contact. Rows 2..N in the same batch link to that contact. The name, address, and other contact fields from rows 2..N are not applied — only the donation/ticket fields matter.
  • Contacts / organizations / households: the first row creates the record. Rows 2..N update the same record in place — later rows' fields overwrite earlier ones.

You'll see a warning in the review screen for every row that shares an email with an earlier row:

"Linked to same email as row 3 (no existing contact found in this organization). Name, address, and other contact fields from this row will not be applied."

Using reference_id for deterministic matching

If you want row-level control over matching (not email-based), use reference_id. That field is checked at process time for every type, and a match always updates the existing record:

  • Donations, pledges, installments: reference_id is the primary matching key. Emails are only used for auto-populating contact_id when not provided.
  • Contacts, organizations, households: reference_id is checked first. If it matches, primary-email matching is skipped entirely.

This is the recommended approach when syncing with an external system — your system's IDs as reference_id means re-imports are idempotent.


Donation Field Reference

Your column headers should match these field names exactly (case-sensitive):

Required Fields

FieldDescriptionExample
display_namePublic name for the donationJohn Smith
amountDonation amount (numbers only)100.00
currency_code3-letter currency codeUSD
created_atDate of donation2024-01-15
campaign_idCampaign GUIDabc123-def456-...

Donor Information

FieldDescriptionExample
first_nameDonor's first nameJohn
last_nameDonor's last nameSmith
emailEmail addressjohn@example.com

Address Fields

FieldDescriptionExample
line1Street address line 1123 Main St
line2Street address line 2Suite 100
cityCityNew York
stateState/provinceNY
zipcodeZIP/postal code10001
countryCountryUnited States

Association Fields

FieldDescriptionExample
contact_idLink to existing contact (GUID)abc123-...
crm_organization_idLink to existing CRM organization (GUID)abc123-...
donation_form_idAssociated donation form (GUID)abc123-...
site_idAssociated site page (GUID)abc123-...
project_idAssociated personal page (GUID)abc123-...
team_idAssociated team page (GUID)abc123-...
network_idAssociated network page (GUID)abc123-...

Other Fields

FieldDescriptionExample
reference_idUnique ID for matching/updatesDON-2024-001
commentDonor commentThank you!
anonymousHide name publicly (true/false)false
anonymous_typeHow to display if anonymousAnonymous

Using Reference ID for Updates

When a record with matching reference_id exists:

  • Updated: Core fields (amount, dates, donor info, etc.), revenue payment fields (status, method, channel, reference, notes), tags (additive), and custom field values (replaced)
  • Not updated: Revenue splits, revenue credits, and tribute soft credits are only created on initial import

Use reference IDs to safely re-import corrected data without creating duplicates.

Tribute Fields

FieldDescriptionExample
tribute_typeType of tributein_honor_of
tribute_honoree_nameName of honoreeJane Doe
tribute_contact_idHonoree's contact (GUID)abc123-...

Revenue Fields

FieldDescriptionExample
revenue_statusPayment status (pending, completed, voided, refunded, partial)completed
revenue_payment_methodHow it was paid (none, cash, check, bank_transfer, credit_card, gift_in_kind, other)check
revenue_payment_channelOnline or offlineoffline
revenue_payment_referenceCheck number, wire reference, receipt number1234
revenue_payment_metaAdditional payment notesReceived via mail
fund_idFund allocation (GUID)abc123-...
fund_amountAmount to allocate to the fund100.00

Revenue Splits (numbered, via column mapping)

FieldDescriptionExample
revenue_split_fund_id_1Fund ID for the first splitabc123-...
revenue_split_amount_1Amount for the first split150.00
revenue_split_fund_id_2Fund ID for the second splitdef456-...
revenue_split_amount_2Amount for the second split100.00

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

Revenue Credits (numbered, via column mapping)

FieldDescriptionExample
revenue_credit_contact_id_1Contact ID for the first creditabc123-...
revenue_credit_amount_1Credit amount250.00
revenue_credit_type_1soft or hardsoft
revenue_credit_category_1Category: tribute, matching, solicitor, household, or othersolicitor

Add more numbered sets (_2, _3, etc.) as needed.

Custom Fields (numbered, via column mapping)

FieldDescriptionExample
donation_custom_field_1Value for the first donation custom fieldvalue1
revenue_custom_field_1Value for the first revenue custom fieldvalue1

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

Tags (numbered, via column mapping)

FieldDescriptionExample
donation_tag_1Tag name for the donationTag A
revenue_tag_1Tag name for the revenue recordTag C

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


Pledge Field Reference

Required Fields

FieldDescriptionExample
display_namePublic nameJohn Smith
total_amountFull pledge amount1200.00
currency_code3-letter currency codeUSD
periodNumber of installments12
intervalFrequency (monthly/yearly)monthly
start_dateFirst payment date2024-01-15
created_atPledge creation date2024-01-10
campaign_idCampaign GUIDabc123-...

Donor Information

FieldDescriptionExample
first_nameDonor's first nameJohn
last_nameDonor's last nameSmith
emailEmail addressjohn@example.com

Address Fields

FieldDescriptionExample
line1Street address line 1123 Main St
line2Street address line 2Apt 4B
cityCitySpringfield
stateState/provinceIL
zipcodeZIP/postal code62701
countryCountryUnited States

Other Fields

FieldDescriptionExample
reference_idUnique ID for matching/updatesREF-001
commentDonor commentMonthly pledge
anonymousHide name publicly (0/1)0
anonymous_typeWhat to hide: name, amount, or bothname

Using Reference ID for Updates

When a pledge with matching reference_id exists:

  • Updated: Core fields (amount, dates, donor info, etc.), expected revenue payment fields, tags (additive), and custom field values (replaced)
  • Not updated: Expected revenue splits, expected revenue credits, and tribute soft credits are only created on initial import

Association Fields

FieldDescriptionExample
contact_idLink to existing contact (GUID)abc123-...
crm_organization_idLink to existing CRM organization (GUID)abc123-...
donation_form_idAssociated donation form (GUID)abc123-...
site_idAssociated site page (GUID)abc123-...
project_idAssociated personal page (GUID)abc123-...
team_idAssociated team page (GUID)abc123-...
network_idAssociated network page (GUID)abc123-...

Tribute Fields

FieldDescriptionExample
tribute_typeType of tribute: honor or memorymemory
tribute_honoree_nameName of honoreeRobert Johnson
tribute_contact_idHonoree's contact (GUID)abc123-...

Expected Revenue Fields

FieldDescriptionExample
expected_revenue_statusPayment status (pending, completed, partial, voided)pending
expected_revenue_payment_methodExpected payment method (none, cash, check, bank_transfer, credit_card, gift_in_kind, other)check
expected_revenue_payment_channelOnline or offlineoffline
expected_revenue_payment_referenceCheck number, wire reference, receipt number1234
expected_revenue_payment_metaAdditional payment notesPledged at gala
fund_idFund allocation (GUID)abc123-...
fund_amountAmount to allocate to the fund1200.00

Expected Revenue Splits (numbered, via column mapping)

FieldDescriptionExample
expected_revenue_split_fund_id_1Fund ID for the first splitabc123-...
expected_revenue_split_amount_1Amount for the first split500.00
expected_revenue_split_fund_id_2Fund ID for the second splitdef456-...
expected_revenue_split_amount_2Amount for the second split700.00

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

Expected Revenue Credits (numbered, via column mapping)

FieldDescriptionExample
expected_revenue_credit_contact_id_1Contact ID for the first creditabc123-...
expected_revenue_credit_amount_1Credit amount600.00
expected_revenue_credit_type_1soft or hardsoft
expected_revenue_credit_category_1Category: tribute, matching, solicitor, household, or othersolicitor

Add more numbered sets (_2, _3, etc.) as needed.

Custom Fields (numbered, via column mapping)

FieldDescriptionExample
pledge_custom_field_1Value for the first pledge custom fieldvalue1
expected_revenue_custom_field_1Value for the first expected revenue custom fieldvalue1

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

Tags (numbered, via column mapping)

FieldDescriptionExample
installment_profile_tag_1Tag name for the pledgeTag A
expected_revenue_tag_1Tag name for the expected revenue recordTag C

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


Installment Field Reference

Required Fields

FieldDescriptionExample
installment_profile_idPledge profile GUIDabc123-def456-...
amountPayment amount (numbers only)100.00
created_atDate of payment2024-01-15

Optional Fields

FieldDescriptionExample
invoice_idLink to scheduled invoice (GUID)abc123-...
reference_idUnique ID for matching/updatesPAY-2024-001

Using Reference ID for Updates

When an installment with matching reference_id exists:

  • Updated: Core fields (amount, date, etc.), revenue payment fields (status, method, channel, reference, notes), tags (additive), and custom field values (replaced)
  • Not updated: Revenue splits and revenue credits are only created on initial import

Revenue Fields

FieldDescriptionExample
revenue_statusPayment status (pending, completed, voided, refunded)completed
revenue_payment_methodPayment method (none, cash, check, bank_transfer, credit_card, gift_in_kind, other)check
revenue_payment_channelOnline or offlineoffline
revenue_payment_referenceCheck number, wire reference1234
revenue_payment_metaAdditional payment notesReceived via mail
fund_idFund allocation (GUID)abc123-...
fund_amountAmount to allocate to fund100.00

Custom Fields (numbered, via column mapping)

FieldDescriptionExample
installment_custom_field_1Value for the first installment custom fieldvalue1
revenue_custom_field_1Value for the first revenue custom fieldvalue1

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

Revenue Splits (numbered, via column mapping)

FieldDescriptionExample
revenue_split_fund_id_1Fund ID for the first splitabc123-...
revenue_split_amount_1Amount for the first split60.00

Add more numbered pairs (_2, _3, etc.) as needed.

Revenue Credits (numbered, via column mapping)

FieldDescriptionExample
revenue_credit_contact_id_1Contact ID for the first creditabc123-...
revenue_credit_amount_1Credit amount100.00
revenue_credit_type_1soft or hardsoft
revenue_credit_category_1Category: tribute, matching, solicitor, household, or othersolicitor

Add more numbered sets (_2, _3, etc.) as needed.

Tags (numbered, via column mapping)

FieldDescriptionExample
revenue_tag_1Tag name for the revenue recordTag A

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


Contact Field Reference

Required Fields

FieldDescriptionExample
display_nameContact's display nameJohn Smith
created_atCreation date2024-01-15

General Information

FieldDescriptionExample
reference_idUnique ID for matching/updatesCON-2024-001

Using Reference ID for Updates

When a contact with matching reference_id (or primary email) exists:

  • Updated: Core fields (name, title, etc.), primary email, phone, and address (upserted), tags (additive), and custom field values (replaced)
  • Non-primary contact methods are not affected

| title | Name prefix | Mr. | | first_name | First name | John | | middle_name | Middle name | Robert | | last_name | Last name | Smith | | suffix | Name suffix | Jr. | | maiden_name | Maiden name | Jones | | deceased | Mark as deceased (true/false) | false | | can_contact | Allow general contact (true/false) | true |

Email Fields

FieldDescriptionExample
emailPrimary email addressjohn@example.com
email_can_contactAllow email contact (true/false)true

Association Fields

FieldDescriptionExample
crm_organization_idLink to a CRM organization (GUID or reference ID)abc123-...

CRM Organization ID

You can use either the internal GUID or the organization's reference_id to link a contact to a CRM organization. Reference IDs are automatically resolved during import.

Phone Fields

FieldDescriptionExample
phonePrimary phone number555-123-4567
phone_country_codeCountry code for phone numberUS
phone_can_callAllow phone calls (true/false)true
phone_can_textAllow text messages (true/false)true

Address Fields

FieldDescriptionExample
line1Street address line 1123 Main St
line2Street address line 2Suite 100
cityCityNew York
stateState/provinceNY
zipcodeZIP/postal code10001
countryCountryUnited States
address_can_contactAllow postal mail (true/false)true

Custom Fields (numbered, via column mapping)

FieldDescriptionExample
contact_custom_field_1Value for the first contact custom fieldvalue1

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

Tags (numbered, via column mapping)

FieldDescriptionExample
contact_tag_1Tag name for the contactTag A

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


Organization Field Reference

Required Fields

FieldDescriptionExample
nameOrganization nameAcme Foundation

Contact Info

FieldDescriptionExample
emailPrimary email addressinfo@acmefoundation.org
phonePrimary phone number555-100-2000

Address Fields

FieldDescriptionExample
line1Street address line 1100 Philanthropy Blvd
line2Street address line 2Suite 400
cityCityBoston
stateState/provinceMA
zipcodeZIP/postal code02101
countryCountryUnited States

Preferences

FieldDescriptionExample
email_can_contactAllow email contact (true/false)true
phone_can_callAllow phone calls (true/false)true
phone_can_textAllow text messages (true/false)true
address_can_contactAllow postal mail (true/false)true

Other

FieldDescriptionExample
reference_idUnique ID for matching/updatesORG-2024-001
crm_organization_type_idOrganization type ID (GUID)abc123-...

Custom Fields (numbered, via column mapping)

FieldDescriptionExample
organization_custom_field_1Value for the first organization custom fieldvalue1

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

Tags (numbered, via column mapping)

FieldDescriptionExample
organization_tag_1Tag name for the organizationTag A

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


Household Field Reference

Required Fields

FieldDescriptionExample
nameHousehold nameThe Smith Family

Contact Info

FieldDescriptionExample
emailPrimary email addresssmithfamily@example.com
phonePrimary phone number555-200-3000

Address Fields

FieldDescriptionExample
line1Street address line 142 Oak Lane
line2Street address line 2Unit B
cityCityPortland
stateState/provinceOR
zipcodeZIP/postal code97201
countryCountryUnited States

Preferences

FieldDescriptionExample
email_can_contactAllow email contact (true/false)true
phone_can_callAllow phone calls (true/false)true
phone_can_textAllow text messages (true/false)true
address_can_contactAllow postal mail (true/false)true

Other

FieldDescriptionExample
reference_idUnique ID for matching/updatesHSH-2024-001

Using Reference ID for Updates

When a household with matching reference_id (or primary email) exists:

  • Updated: Core fields (name, etc.), primary email, phone, and address (upserted), tags (additive), and custom field values (replaced)
  • Non-primary contact methods are not affected

Use reference IDs to safely re-import corrected data without creating duplicates.

Custom Fields (numbered, via column mapping)

FieldDescriptionExample
household_custom_field_1Value for the first household custom fieldvalue1

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

Tags (numbered, via column mapping)

FieldDescriptionExample
household_tag_1Tag name for the householdTag A

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


Ticket Field Reference

Required Fields

FieldDescriptionExample
first_nameTicket holder's first nameJane
emailTicket holder's email addressjane@example.com
campaign_idCampaign ID (GUID)abc123
ticketing_form_idTicketing form ID (GUID)def456
tier_idTicket tier ID (GUID)ghi789

Optional Fields

FieldDescriptionExample
last_nameTicket holder's last nameSmith
statusTicket status (defaults to "unredeemed")unredeemed
created_atCreated date (defaults to current date)2024-06-15
site_idSite ID (GUID)jkl012

Custom Fields (numbered, via column mapping)

FieldDescriptionExample
ticket_custom_field_1Value for the first ticket custom fieldvalue1

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

Tags (numbered, via column mapping)

FieldDescriptionExample
ticket_tag_1Tag name for the ticketVIP

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


Formatting Tips

Dates

Use ISO format for best results:

  • Recommended: 2024-01-15 (YYYY-MM-DD)
  • Also accepted: 01/15/2024, January 15, 2024

Currency Codes

Use standard 3-letter ISO codes:

  • USD - US Dollar
  • CAD - Canadian Dollar
  • EUR - Euro
  • GBP - British Pound

Boolean Fields

For true/false fields like anonymous:

  • True: true, yes, 1
  • False: false, no, 0

GUIDs

To get GUIDs for campaigns, contacts, etc.:

  1. Go to the record in CauseVox
  2. Copy the ID from the URL or details panel

Common Errors

"Invalid Campaign ID"

The campaign_id doesn't match any campaign. Check:

  • The GUID is correct
  • The campaign exists and is accessible

"Amount is required"

The amount field is empty or contains non-numeric characters. Ensure:

  • The field has a value for every row
  • No currency symbols ($, €) in the amount

"Invalid date format"

The date couldn't be parsed. Try using YYYY-MM-DD format.

"Maximum rows exceeded"

Your file has more than 15,000 rows. Split it into smaller files.


Best Practices

  1. Test first - Import a small sample before the full file
  2. Use the template - Start with our sample spreadsheet
  3. Check encoding - Save CSV as UTF-8 for special characters
  4. Trim whitespace - Remove leading/trailing spaces from data
  5. Validate GUIDs - Double-check all ID references
  6. Keep backups - Save your original file before importing

Unified Fundraising + CRM