Appearance
Adding Pledges in Batch
This guide walks you through creating a batch of pledges, either by entering them manually or importing from a spreadsheet.
Creating a New Batch
- Go to Data > Batch Import
- Click Create and confirm — the batch is named with the date and time; rename it on the batch page if you like (e.g., "Annual Appeal Pledges")
- Under What do you want to import?, choose Pledges
TIP
Use descriptive batch names to make them easy to find later. You can edit the batch name anytime before processing.
Adding Pledges Manually
Click Add to open the pledge form. Fill in the required fields and any optional information.
Required Fields
| Field | Description |
|---|---|
| Kind | Pledge, Grant, or Invoice (defaults to Pledge). All three are scheduled and paid the same way; the kind is how the promise is labelled and filtered. |
| Display Name | The donor's display name |
| Total Amount | The full pledge amount (e.g., $1,200 for a $100/month pledge). Must be greater than 0. |
| Currency | Locks to the campaign's currency once a campaign is chosen |
| Period | Number of installments (e.g., 12 for monthly over a year). A whole number greater than 0. |
| Interval | Payment frequency: monthly or yearly |
| Start Date | When the first installment is due |
| Created Date | When the pledge was made |
| Campaign | Which campaign to credit |
TIP
The system calculates the installment amount automatically: Total Amount ÷ Period = Installment Amount. For example, a $1,200 pledge with 12 monthly installments = $100/month.
Contact/Organization
There are two ways to link a pledge 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 pledge 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 pledge from an organization: when a CRM organization is linked, no contact is created.
A person or an organization, not both
A pledge 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.
Optional Fields
| Field | Description |
|---|---|
| Reference ID | A unique identifier for this pledge (useful for updates) |
| First/Last Name | Individual name fields |
| Donor's email address | |
| Address | Street, city, state, zip, country |
| Comment | Notes about the pledge |
| Anonymous | Hide the donor's name publicly |
| Donation Form | Which form to associate (if any) |
| Site/Project/Team/Network | Fundraising page associations |
| Tribute | Honor or memorial designation |
| Pledge Tags | Add tags for organization |
| Custom Fields | Any custom fields configured for the donation form |
Expected Revenue Details
Each pledge creates an expected revenue record. You can optionally set payment details:
| Field | Description |
|---|---|
| Payment Method | Expected payment method (none, cash, check, credit card, debit card, PayPal, cryptocurrency, bank transfer, gift in kind, other — defaults shown; your organization may customize these) |
| Status | Expected status (pending, completed, partial, voided) |
| Payment Channel | Online or offline |
| Payment Reference | Check number, wire reference, receipt number, etc. |
| Payment Notes | Additional payment details |
| Fund | Which fund to allocate expected revenue to |
| Fund Amount | Amount to allocate to the fund (defaults to full pledge amount) |
| Expected Revenue Tags | Tags for the expected revenue record |
| Expected Revenue Custom Fields | Any custom fields configured for expected revenue |
TIP
For pledges paid by check, use "check" as the payment method and enter the check number in the Payment Reference field when payments are received.
Expected Revenue Credits
Link additional contacts or organizations to a pledge as soft or hard credits. Each credit has:
| Field | Description |
|---|---|
| Contact/Organization | Who receives the credit — a contact or a CRM organization (one required) |
| Amount | Credit amount |
| Type | soft (Soft Credit) or hard (Hard Credit). Default: soft |
| Category | Optional: tribute, matching (Matching Gift), solicitor, household, or other |
Click Add Credit to add expected revenue credits.
Expected Revenue Solicitors
Solicitors track who secured the pledge. Each solicitor has:
| Field | Description |
|---|---|
| Contact/Organization | The solicitor — a contact or a CRM organization (one required) |
| Amount | Attributed amount (for reporting) |
Click Add Solicitor to add expected revenue solicitors.
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:
- Click Import from Spreadsheet at the bottom of the batch
- Select your CSV or Excel file
- Map your columns to the correct fields (if needed)
- 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 pledges 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 pledges from a CSV or Excel file.
Core (required)
| Column | Description |
|---|---|
display_name | Donor display name |
total_amount | Full pledge amount, greater than 0 (e.g., 1200.00 for a $100/month × 12 pledge). A value that can't be read is cleared and flagged, and the batch can't be processed until you fix it. |
currency_code | Currency code (e.g., USD, CAD). Imported as given, even if it differs from the campaign's currency. |
period | Number of installments, a whole number greater than 0 (e.g., 12). Invalid values are cleared and flagged the same way. |
interval | Payment frequency: monthly or yearly. Any other value is imported as monthly without a warning. |
start_date | When the first installment is due (e.g., 2024-01-15) |
created_at | Date and time the pledge was made (e.g., 2024-01-10 10:30:00) |
campaign_id | Campaign ID to credit the pledge to |
Defaults (required, pre-filled if omitted)
| Column | Default | Description |
|---|---|---|
anonymous | 0 | Whether to hide donor information publicly (0 = no, 1 = yes) |
anonymous_type | name | What to hide: name, amount, or both |
kind | pledge | pledge, grant, or invoice (capitalization doesn't matter). A row with any other value is refused at upload with an error naming the value, and never reaches the batch. |
Donor
| Column | Description |
|---|---|
first_name | Donor's first name |
last_name | Donor's last name |
email | Donor's email address |
line1 | Street address line 1 |
line2 | Street address line 2 |
city | City |
state | State or province |
zipcode | Postal/zip code |
country | Country |
Associations
| Column | Description |
|---|---|
contact_id | Link to an existing contact by ID |
crm_organization_id | The organization that made the pledge, 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 pledge gets no contact, so leave contact_id empty. |
donation_form_id | Associate with a donation form |
site_id | Associate with a fundraising site |
project_id | Associate with a fundraising project |
team_id | Associate with a fundraising team |
network_id | Associate with a fundraising network |
Other
| Column | Description |
|---|---|
comment | Donor's public comment or note |
reference_id | External or unique identifier — if a pledge already exists with this reference ID, core and expected revenue payment fields will be updated. If more than one pledge already has it, the row is refused. Expected revenue splits, credits, solicitors, and tribute soft credits are only set on initial import. |
Expected Revenue
| Column | Description |
|---|---|
expected_revenue_payment_method | One of your organization's payment methods, by value or label (e.g., check, Cash, bank_transfer). Any other value refuses the row at upload. |
expected_revenue_status | Expected revenue status (e.g., pending, completed) |
expected_revenue_payment_channel | Where the payment was received (e.g., online, offline) |
expected_revenue_payment_reference | Reference number (check number, wire reference, etc.) |
expected_revenue_payment_meta | Additional payment notes |
Fund
| Column | Description |
|---|---|
fund_id | Fund designation ID — the donor's intended fund |
fund_amount | Amount to allocate to the primary fund |
Tribute
| Column | Description |
|---|---|
tribute_type | honor (In Honor Of) or memory (In Memory Of). Any other value refuses the row at upload. |
tribute_honoree_name | Name of the person being honored or memorialized. When no tribute_contact_id is given, one contact is created for the honoree. |
tribute_contact_id | Link the tribute to an existing contact by ID instead of creating one from the name |
Expected Revenue Splits (numbered, via column mapping)
Split expected revenue across multiple funds using numbered column pairs:
| Column | Description |
|---|---|
expected_revenue_split_fund_id_1 | Fund ID for the first split |
expected_revenue_split_amount_1 | Amount for the first split |
expected_revenue_split_fund_id_2 | Fund ID for the second split |
expected_revenue_split_amount_2 | Amount for the second split |
Add more numbered pairs (_3, _4, etc.) as needed.
Expected Revenue Credits (numbered, via column mapping)
Assign soft or hard credits to additional contacts using numbered column sets:
| Column | Description |
|---|---|
expected_revenue_credit_contact_id_1 | Contact ID for the first credit |
expected_revenue_credit_crm_organization_id_1 | CRM organization ID for the first credit (a credit needs a contact or an organization) |
expected_revenue_credit_amount_1 | Credit amount |
expected_revenue_credit_type_1 | soft or hard. Blank means soft |
expected_revenue_credit_category_1 | Optional: tribute, matching, solicitor, household, or other |
Add more numbered sets (_2, _3, etc.) as needed.
Expected Revenue Solicitors (numbered, via column mapping)
Record who secured each pledge using numbered column sets:
| Column | Description |
|---|---|
expected_revenue_solicitor_contact_id_1 | Contact ID for the first solicitor |
expected_revenue_solicitor_crm_organization_id_1 | CRM organization ID for the first solicitor (a solicitor needs a contact or an organization) |
expected_revenue_solicitor_amount_1 | Attributed amount |
Add more numbered sets (_2, _3, etc.) as needed.
Custom Fields (numbered, via column mapping)
Add custom field values using numbered columns:
| Column | Description |
|---|---|
pledge_custom_field_1 | Value for the first pledge custom field |
pledge_custom_field_2 | Value for the second pledge custom field |
expected_revenue_custom_field_1 | Value for the first expected revenue custom field |
expected_revenue_custom_field_2 | Value for the second expected revenue custom field |
Add more numbered columns (_3, _4, etc.) as needed.
Tags (numbered, via column mapping)
Apply tags using numbered columns:
| Column | Description |
|---|---|
installment_profile_tag_1 | Tag name to apply to the pledge |
installment_profile_tag_2 | Second tag for the pledge |
expected_revenue_tag_1 | Tag name to apply to the expected revenue record |
Add more numbered columns (_2, _3, etc.) as needed.
TIP
Expected 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 pledge: 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.
When a row has no contact_id, no email and no organization, it's matched on the donor's name, ignoring capitalization: first the first and last name (when the row has them), then, if that finds no contact, the display name. An anonymous pledge's display name is never used; an anonymous pledge with no first or last name gets its own contact. A placeholder name (any word of it is "Anonymous" or "Anon", in any capitalization) is never matched either: the row is flagged "Name looks anonymous" and gets its own contact. One matching contact links the pledge. Two or more flag the row, and processing refuses it until you set its contact_id. When no contact has that name, one new contact is created and shared by every row in the batch with the same name.
When a pledge row has no contact_id but has an email:
- Email matches an existing contact → the pledge 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.
TIP
Email lookup happens 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. Use contact_id explicitly to force a specific link, or use reference_id on the pledge for idempotent re-imports. See Importing from Spreadsheet for details.
Reviewing Your Batch
Before processing, review your data:
- Check that amounts are correct
- Verify period and interval combinations
- Confirm start dates
- Look for any error indicators
Processing the Batch
When you're ready to finalize:
- Click Process Batch
- Confirm the action
- Wait for processing to complete
Important
Batch processing cannot be undone. Once processed, each pledge becomes a permanent record. Double-check your data before processing.
After Processing
Once processed:
- Pledges appear in Manage > Pledges
- Expected revenue records are created automatically
- Installment schedules are generated
- Contacts are created/linked as specified
- Stats and reports are updated
Tips and Best Practices
- Start small - Test with a few records before importing thousands
- Use reference IDs - Makes it easy to update records later
- Review before processing - Check for duplicates and errors
- Verify schedules - Double-check period and interval combinations
- Set correct start dates - This determines when installments are due
- Keep your spreadsheet - Useful for troubleshooting or re-imports