Skip to content

Adding Donations in Batch ​

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

Creating a New Batch ​

  1. Go to Data > Batch Import
  2. Click Create and confirm — the batch is named with the date and time; rename it on the batch page if you like (e.g., "December Checks")
  3. Under What do you want to import?, choose Donations

TIP

Use descriptive batch names to make them easy to find later. You can edit the batch name anytime before processing.

Adding Donations Manually ​

Click Add to open the donation form. The form is organized into the following sections.

Required Fields ​

Every donation requires these 9 fields. Fields with defaults are pre-filled for you.

FieldDescriptionDefault
Display NameThe name to display for this donation (e.g., "John Smith")—
AmountThe donation amount—
CurrencyCurrency code (locked when a campaign is selected)Organization default
Created DateWhen the donation was made (UTC)Current date/time
CampaignWhich campaign to credit this donation to—
AnonymousWhether to hide donor information publiclyfalse
Anonymous TypeWhat to hide: name, amount, or bothname
Payment MethodHow the donation was paidnone
Revenue StatusPayment status of the revenue recordcompleted

Campaign & Context ​

Link the donation to a campaign and optionally to a donation form and/or fundraising page.

FieldDescription
CampaignWhich campaign to credit this donation to (required)
Donation FormWhich donation form to associate — also loads form-specific custom fields
SiteFundraising site association
ProjectFundraising project association
TeamFundraising team association
NetworkFundraising network association

Contact/Organization ​

There are two ways to link a donation to existing records in your CRM:

Contact/Organization selector — Use the dedicated selector at the top of this section to explicitly search for and link to an existing contact or CRM organization.

Auto-suggest while typing — As you type in the Display Name, First Name, Last Name, or Email fields, the form searches your existing contacts in real-time and shows suggestions. Selecting a suggestion links the donation to that contact and pre-fills their details (name, email, address).

Auto-linking by email

If you provide an email address but don't explicitly link a contact, the system will search for an existing contact with that email and link to them automatically. If no matching contact is found, a new contact is created from the donor details you provide. This prevents duplicate contacts from being created when a matching email already exists.

New contact creation — If no contact is linked (either manually or via email matching) when the batch is processed, a new contact is created from the donor details you provide (name, email, address). The exception is a gift from an organization: when a CRM organization is linked, no contact is created.

A person or an organization, not both

A donation comes from either a contact or a CRM organization. A row that links both is refused when the batch is processed. Link the donor, and add the other party as a soft credit — on the row, or afterwards in a Credits batch.

Donation Details ​

Core information about the donation.

FieldRequiredDescription
Display NameYesDonor display name — typing triggers contact search suggestions
Reference IDNoExternal or unique identifier. If a donation already exists with this reference ID, core fields, revenue payment fields, tags, and custom values will be updated; if more than one does, the row is refused. Revenue splits, revenue credits, revenue solicitors, and tribute soft credits are only set on initial import; add or correct credits on donations already imported with a Credits batch.
AmountYesDonation amount. Must be greater than 0. For a gift in kind, enter its fair-market value.
CurrencyYesCurrency code — locked when a campaign is selected (inherits campaign currency)
Created DateYesDate and time the donation was made (UTC). Defaults to now. Used for donor wall ordering.
Donation TagsNoTags for organizing the donation
Fund DesignationNoThe donor's fund choice (originating from the form or resource). When set, a fund amount is required (up to the donation amount) and a matching revenue split is auto-created on the revenue record.
TributeNoHonor or memorial designation — select "In honor of" or "In memory of", then optionally provide an honoree name and/or linked contact.
Custom FieldsNoCustom fields configured on the selected donation form. Only appear when a donation form is selected.

Fund Designation vs Revenue Splits

Fund Designation reflects the donor's fund choice (from the form or resource). When you set a fund designation, the system automatically creates a matching revenue split on the revenue record.

Revenue Splits (in the Revenue Details section below) are fund allocations on the revenue record that let you split across multiple funds. You can use both — the fund designation is a convenience for the common single-fund case.

Donor Details ​

Personal information attached to the donation record (not the contact record). These fields are also used to create a new contact if no existing contact is linked.

FieldDescription
First NameDonor's first name — typing triggers contact search suggestions
Last NameDonor's last name — typing triggers contact search suggestions
EmailDonor's email address — typing triggers contact search suggestions
AddressStreet (line 1 and line 2), city, state, zip code, country

Site Options ​

Controls how the donation appears on public fundraising sites.

FieldRequiredDescription
AnonymousYesHide the donor's information publicly. Default: false
Anonymous TypeYes (when anonymous)What to hide. Options: name (hide name), amount (hide amount), both (hide name and amount). Default: name
CommentNoDonor's public comment or note

Revenue Details ​

Each donation creates a revenue record. Configure payment details and fund allocations here.

Payment Information ​

FieldRequiredDescription
Payment MethodYesHow the donation was paid. Default: none. See values below.
Revenue StatusYesPayment status. Default: completed. See values below.
Payment ChannelNoWhere the payment was received (online, in person, mail, phone, mobile app, other)
Payment ReferenceNoReference number — label changes contextually (e.g., "Check Number" for checks, "Wire/ACH Reference" for bank transfers, "Receipt Number" for cash). Only shown for manual payment methods.
Payment NotesNoAdditional payment details

Payment Method values (defaults shown — your organization may customize these). A batch only accepts your organization's own payment methods. An import accepts either the value or the label (for example check or Check, in any capitalization), and a row with any other payment method is refused at upload.

ValueLabel
noneNone
cashCash
checkCheck
credit_cardCredit Card
debit_cardDebit Card
paypalPayPal
cryptoCryptocurrency
bank_transferBank Transfer
gift_in_kindGift in Kind
otherOther

Revenue Status values:

ValueLabel
completedCompleted
pendingPending
failedFailed
refundedRefunded
partial_refundedPartial Refund
chargebackChargeback

Any other value refuses the row at upload.

TIP

For check donations, use check as the payment method — the Payment Reference field will change to "Check Number" automatically.

Revenue Splits ​

Split revenue across multiple funds. Each split has a fund and an amount. The form shows the allocated total vs the donation amount to help you balance.

FieldDescription
FundWhich fund to allocate to
AmountAmount to allocate to this fund

Click Add Split to add additional fund allocations. If a Fund Designation was set in Donation Details, its corresponding split is auto-created here.

Revenue Credits ​

Link additional contacts or organizations to a donation as soft or hard credits. Each credit has:

FieldDescription
Contact/OrganizationWho receives the credit — a contact or a CRM organization (one required)
AmountCredit amount
Typesoft (Soft Credit) or hard (Hard Credit). Default: soft
CategoryOptional: tribute, matching (Matching Gift), solicitor, household, or other

Click Add Credit to add revenue credits.

Revenue Solicitors ​

Solicitors track who secured the gift. Each solicitor has:

FieldDescription
Contact/OrganizationThe solicitor — a contact or a CRM organization (one required)
AmountAttributed amount (for reporting)

Click Add Solicitor to add revenue solicitors.

Revenue Tags & Custom Fields ​

FieldDescription
Revenue TagsTags for the revenue record (separate from donation tags)
Revenue Custom FieldsOrganization-level custom fields configured for revenue records

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 batches, 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.

Automatic contact linking during import

When importing from a spreadsheet, if you include an email column but no contact_id, the system automatically searches for an existing contact with that email and links them — similar to how online donations work. If no matching contact is found, a new contact is created from the donor details you provided (name, email, address).

This differs from manual entry, where you use the contact selector or auto-suggest to explicitly link a contact before processing.

Supported CSV Columns ​

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

Core (required) ​

ColumnDescription
display_nameDonor display name
amountDonation amount, greater than 0. A value that isn't a valid amount (like $1,200.00 or 0) is cleared and flagged on the review screen, and the batch can't be processed until you enter a correct amount.
currency_codeCurrency code (e.g., USD, CAD)
created_atDate and time the donation was made (e.g., 2024-01-15 14:30:00)
campaign_idCampaign ID to credit the donation to

Defaults (required, pre-filled if omitted) ​

ColumnDefaultDescription
anonymous0Whether to hide donor information publicly (0 = no, 1 = yes)
anonymous_typenameWhat to hide: name, amount, or both
revenue_payment_methodnoneOne of your organization's payment methods, by value or label (e.g., check, Cash, credit_card)
revenue_statuscompletedRevenue status: completed, pending, failed, refunded, partial_refunded, or chargeback

Revenue ​

ColumnDescription
revenue_payment_channelWhere the payment was received (e.g., online, offline)
revenue_payment_referenceReference number (check number, wire reference, etc.)
revenue_payment_metaAdditional payment notes

Donor ​

ColumnDescription
first_nameDonor's first name
last_nameDonor's last name
emailDonor's email address
line1Street address line 1
line2Street address line 2
cityCity
stateState or province
zipcodePostal/zip code
countryCountry

Associations ​

ColumnDescription
contact_idLink to an existing contact by ID
crm_organization_idThe organization that gave the gift, by its CauseVox ID or its reference ID. The organization must already exist or be in the same batch; if a row runs before that organization is saved, it fails — click Resume batch once the batch finishes. An organization gift gets no contact, so leave the person columns empty.
donation_form_idAssociate with a donation form
site_idAssociate with a fundraising site
project_idAssociate with a fundraising project
team_idAssociate with a fundraising team
network_idAssociate with a fundraising network

Other ​

ColumnDescription
commentDonor's public comment or note
reference_idExternal or unique identifier — if a donation already exists with this reference ID, core fields, revenue payment fields, tags, and custom values will be updated. If more than one donation already has it, the row is refused. Revenue splits, revenue credits, and tribute soft credits are only set on initial import; add or correct credits on donations already imported with a Credits batch.

Fund ​

ColumnDescription
fund_idFund designation ID — the donor's intended fund
fund_amountAmount to allocate to the primary fund

Tribute ​

ColumnDescription
tribute_typehonor (In Honor Of) or memory (In Memory Of). Any other value refuses the row at upload.
tribute_honoree_nameName of the person being honored or memorialized. When no tribute_contact_id is given, one contact is created for the honoree.
tribute_contact_idLink the tribute to an existing contact by ID instead of creating one from the name

Revenue Splits (numbered, via column mapping) ​

Split revenue across multiple funds using numbered column pairs:

ColumnDescription
revenue_split_fund_id_1Fund ID for the first split
revenue_split_amount_1Amount for the first split
revenue_split_fund_id_2Fund ID for the second split
revenue_split_amount_2Amount for the second split

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

Revenue Credits (numbered, via column mapping) ​

Assign soft or hard credits to additional contacts using numbered column sets:

ColumnDescription
revenue_credit_contact_id_1Contact ID for the first credit
revenue_credit_crm_organization_id_1CRM organization ID for the first credit (a credit needs a contact or an organization)
revenue_credit_amount_1Credit amount
revenue_credit_type_1soft or hard. Blank means soft
revenue_credit_category_1Optional: tribute, matching, solicitor, household, or other

Add more numbered sets (_2, _3, etc.) as needed. A type or category outside these lists is refused when you upload (capitals don't matter).

To add credits to donations that are already in CauseVox, use a Credits batch.

Revenue Solicitors (numbered, via column mapping) ​

Record who secured each donation using numbered column sets:

ColumnDescription
revenue_solicitor_contact_id_1Contact ID for the first solicitor
revenue_solicitor_crm_organization_id_1CRM organization ID for the first solicitor (a solicitor needs a contact or an organization)
revenue_solicitor_amount_1Attributed amount

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

Custom Fields (numbered, via column mapping) ​

Add custom field values using numbered columns:

ColumnDescription
donation_custom_field_1Value for the first donation custom field
donation_custom_field_2Value for the second donation custom field
revenue_custom_field_1Value for the first revenue custom field
revenue_custom_field_2Value for the second revenue custom field

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

Tags (numbered, via column mapping) ​

Apply tags using numbered columns:

ColumnDescription
donation_tag_1Tag name to apply to the donation
donation_tag_2Second tag for the donation
revenue_tag_1Tag name to apply to the revenue record

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

TIP

Revenue splits, credits, solicitors, 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 Linked ​

A row with a crm_organization_id is an organization gift: no contact is linked or created, even if the row has an email. A row that has both a crm_organization_id and a contact_id is flagged on the review screen and refused at processing. Keep one, and add the other as a soft credit — on the row, or afterwards in a Credits batch.

When a donation row has no contact_id but has an email:

  • Email matches an existing contact → the donation is linked to that contact.
  • Email doesn't match any existing contact → a new contact is created using the row's name, address, and email.
  • Multiple rows in the same batch share the same unmatched email → rows 2..N are flagged with a warning on the review screen, and all of them link to the single new contact created by the first row. Later rows' name/address fields are discarded.

When a row has no contact_id, no email, and no organization, it's matched on the donor's name, ignoring capitalization. The first and last name are tried first, when the row has them. If they find no contact (or the row has none), the display name is tried. The display name of an anonymous gift (anonymous = 1) is never used, because it's a public label; an anonymous gift with no first or last name gets its own contact. A placeholder name — any word of it is "Anonymous" or "Anon", in any capitalization, like "Anonymous Anonymous" or "Anonymous Donor" — is never matched either: each such row is flagged "Name looks anonymous" and gets its own contact, so gifts from different unknown donors are never merged into one.

Anonymous gifts

To hide a donor publicly, keep their real name in the row and set anonymous to 1 — don't write "Anonymous" as the display name. The flag hides the name (or amount) on your public pages, and the donor is still linked to the right contact.

  • One existing contact has that name → the donation is linked to that contact.
  • Two or more contacts have that name → the row is flagged and refused at processing until you set its contact_id.
  • No contact has that name → a new contact is created. Rows in the same batch with the same name are flagged, and all of them link to that one new contact.

TIP

Email and name lookup happen at upload time. If you add a contact through the UI after uploading but before processing, the batch will create a new contact instead of linking to the one you just added. Use contact_id explicitly to force a specific link, or use reference_id on the donation to keep re-imports idempotent. See Importing from Spreadsheet for details.

Reviewing Your Batch ​

Before processing, review your data:

  • Check that amounts are correct
  • Verify campaign assignments
  • Confirm contact information
  • Look for any error indicators

Processing the Batch ​

When you're ready to finalize:

  1. Click Process Batch
  2. Confirm the action
  3. Wait for processing to complete

Important

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

After Processing ​

Once processed:

  • Donations appear in Manage > Donations
  • Revenue records are created automatically
  • Contacts are created/linked as specified
  • Stats and reports are updated

Tips and Best Practices ​

  1. Start small - Test with a few records before importing thousands
  2. Use reference IDs - Makes it easy to update records later
  3. Review before processing - Check for duplicates and errors
  4. Keep your spreadsheet - Useful for troubleshooting or re-imports
  5. Process in batches - Split large imports into manageable chunks

Unified Fundraising + CRM