Object & Field Mapping Reference
Last updated: May 18, 2026
This article documents the default field mappings between WeGive and Salesforce NPSP. All mappings listed here are active by default when the integration is enabled. Custom mappings can be added or modified in Integrations → Salesforce → Mapping Rules.
For instructions on adding custom fields, see [Add New Fields to Salesforce Mapping Rules].
Contacts (Individual Donors)
WeGive syncs individual supporters to Salesforce Contacts. The integration matches on email — see [How New Supporters Sync to Salesforce NPSP] for full matching logic.
WeGive Field | Salesforce Field | Direction | Notes |
first_name | FirstName | Both | Defaults to "FNU" if blank |
last_name | LastName | Both | Defaults to "LNU" if blank |
email_1 | Both | Primary email | |
mobile_phone | Phone | Both | |
mailing_address.address_1 | MailingStreet | Both | Combined with address_2 |
mailing_address.city | MailingCity | Both | |
mailing_address.zip | MailingPostalCode | Both | |
billing_address.address_1 | OtherStreet | Both | Combined with address_2 |
billing_address.city | OtherCity | Both | |
billing_address.zip | OtherPostalCode | Both |
State and country fields are not mapped by default due to Salesforce picklist conflicts. If your org has State and Country Picklists enabled, configure these separately. See [Configuring Salesforce State and Country Picklist Mappings in WeGive].
Accounts (Households and Companies)
Salesforce Accounts map to two different objects in WeGive depending on their record type:
Household Accounts → WeGive Households
Organization Accounts → WeGive Company donors
WeGive Field | Salesforce Field | Direction | Notes |
name | Name | Both | |
record_type | RecordTypeId | Export only (create only) | |
phone | Phone | Both | |
fax | Fax | Both | |
billing_address.address_1 | BillingStreet | Both | |
billing_address.city | BillingCity | Both | |
billing_address.zip | BillingPostalCode | Both |
The RecordTypeId field is marked create-only, meaning WeGive sets it when creating a new Account but does not overwrite it on subsequent updates.
Campaigns
WeGive Campaigns sync bidirectionally with Salesforce Campaigns.
WeGive Field | Salesforce Field | Direction | Notes |
name | Name | Both | |
salesforce_parent_id | ParentId | Export only | Only sent from WeGive to Salesforce |
start_date | StartDate | Both | |
end_date | EndDate | Both |
Donations (Opportunities + Payments)
WeGive syncs donations at the Payment level, not the Opportunity level. Each donation creates both an Opportunity and a Payment record (npe01__OppPayment__c) in Salesforce. The integration will not work unless NPSP Payments are enabled.
Opportunity Fields
WeGive Field | Salesforce Field | Direction | Notes |
amount | Amount | Both | Base donation amount — does not include covered fees |
name | Name | Export | Auto-generated |
close_date | CloseDate | Both | |
stage | StageName | Both | Mapped via stage settings |
campaign.salesforce_id | CampaignId | Both | |
donor.salesforce_id | Primary_Contact__c | Both | |
npe01__Do_Not_Automatically_Create_Payment__c | — | Export | Always set to true — WeGive creates its own Payment |
Payment Fields (npe01__OppPayment__c)
WeGive Field | Salesforce Field | Direction | Notes |
amount | npe01__Payment_Amount__c | Both | Base donation amount |
fee_covered_amount | npsp__Donor_Cover_Amount__c | Export | $0.00 if donor did not cover fees |
calculated_fees | npsp__Total_Transaction_Fees__c | Export | Total processing fees, regardless of coverage |
payment_method | npe01__Payment_Method__c | Export | Mapped via payment method name settings |
gateway_payment_id | npsp__Gateway_Payment_ID__c | Export | |
batch_number | npsp__Batch_Number__c | Export | |
paid_date | npe01__Payment_Date__c | Both | |
status | npe01__Paid__c | Both |
For a detailed explanation of how fees appear across objects, see [How Donation Fees Appear in Salesforce NPSP].
GAU Allocations (Fund Designations)
When a donation is designated to a fund (Designation), WeGive creates a GAU Allocation in Salesforce.
WeGive Field | Salesforce Field | Direction | Notes |
fund.salesforce_id | npsp__General_Accounting_Unit__c | Both | |
amount | npsp__Amount__c | Both | |
opportunity.salesforce_id | npsp__Opportunity__c | Both |
If multi-designation (fund allocations) is enabled in your org, a separate Allocation record is created for each designation row on a donation. WeGive is the source of truth — it replaces the entire Allocations array on each sync rather than merging changes.
Important: To prevent NPSP from deleting WeGive's allocation records, you must configure the required trigger handler exclusions before going live. See [Required Exclusions] and [NPSP GAU Allocations Deleted — ENTITY_IS_DELETED Error].
General Accounting Units (Designations)
WeGive Designations sync to Salesforce GAUs (npsp__General_Accounting_Unit__c).
WeGive Field | Salesforce Field | Direction | Notes |
name | Name | Both | |
salesforce_id | Id | Both | WeGive stores this to link allocations |
Recurring Plans (Recurring Donations)
WeGive Recurring Plans sync to Salesforce Recurring Donations (npe03__Recurring_Donation__c).
WeGive Field | Salesforce Field | Direction | Notes |
amount | npe03__Amount__c | Both | |
frequency | npe03__Installment_Period__c | Both | See supported frequencies below |
next_donation_date | npe03__Next_Payment_Date__c | Both | |
status | npe03__Status__c | Both | Only "Active" recurring donations are pulled from Salesforce |
fund.salesforce_id | (via Allocation) | Export | |
campaign.salesforce_id | npe03__Recurring_Donation_Campaign__c | Both | |
donor.salesforce_id | npe03__Contact__c | Both | |
donor.salesforce_account_id | npe03__Organization__c | Both | For company-linked recurring donations |
Supported frequencies: Monthly, Biweekly, Quarterly, Yearly, Daily, First and 15th.
Not supported: Weekly, Semi-annually. Recurring donations with these frequencies will not sync.
Pledges (Custom Object)
Pledge sync requires the wegive__Pledge__c custom object to be installed and the push_pledges flag to be enabled.
WeGive Field | Salesforce Field | Direction | Notes |
amount | wegive__Amount__c | Both | |
donor.salesforce_id | wegive__Contact__c | Both | |
donor.salesforce_account_id | wegive__Account__c | Both | |
campaign.salesforce_id | wegive__Campaign__c | Both | |
fund.salesforce_id | wegive__GAU_Allocation__c | Both | |
start_date | wegive__Date_Established__c | Both | |
end_date | wegive__End_Date__c | Both | |
installment_frequency | wegive__Installment_Period__c | Both |
Soft Credits
WeGive syncs to both Account Soft Credits and Partial Soft Credits.
Type | Salesforce Object |
Account-level | npsp__Account_Soft_Credit__c |
Individual-level | npsp__Partial_Soft_Credit__c |
Sync Order
WeGive syncs objects in a specific order to ensure relational integrity:
Households
Individual donors (Contacts)
Companies (Organization Accounts)
Campaigns
Designations (GAUs)
Pledges
Transactions (Opportunities + Payments + Allocations)
Recurring Plans
Soft Credits
The donor record must sync before the transaction, because the Opportunity requires a Contact or Account to attach to.
Customizing Mappings
Default mappings can be overridden or extended through the Mapping Rules interface in Integrations → Salesforce. Options for each rule include:
Direction: Export (WeGive → Salesforce), Import (Salesforce → WeGive), or Both
Create Only: Field is populated only when creating a new record, not on updates
Literal Value: A fixed, hardcoded value is always sent regardless of WeGive data
For step-by-step instructions, see [Add New Fields to Salesforce Mapping Rules].