> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wegive.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Data Mapping Overview

> How WeGive objects map to Salesforce NPSP objects, and the conventions that govern every field mapping

This page is the index for the WeGive Salesforce NPSP field mapping reference. It lists every object pair the integration syncs, links to the field-by-field detail for each, and documents the conventions (amount units, dates, picklists, sync direction) that apply across all of them. The mappings and sync behavior on these pages are written from the integration's actual behavior rather than from the dashboard, so where a screen and a page disagree, the page is the reference.

This is reference material. To learn how to add or change a mapping in your own account, see [Add or edit a field mapping](#) in the Knowledge Base. *(Editor note: link to the V2 Pylon article once published.)*

## How mapping works

WeGive syncs in two directions. It **pulls** records from Salesforce (querying by last modified date) to create or update the matching WeGive record, and it **pushes** changes from WeGive by compiling a payload for the Salesforce object. Each object is synced as a pair: one WeGive model to one Salesforce object.

For a customer-facing explanation of how the sync runs (sync toggles, what Sync All does, and scheduled timing), see [How the Salesforce Sync Works](https://help.wegive.com/articles/6819841810-how-the-salesforce-sync-works) in the Knowledge Base.

Every field mapping has a direction and a type.

**Direction** describes which way the data flows:

* **Import from Salesforce** - data flows from Salesforce into WeGive only.
* **Export to Salesforce** - data flows from WeGive into Salesforce only.
* **Both Ways** - data syncs in both directions.

**Type** describes whether the mapping can be changed:

* **Configurable** - mapped through integration settings; you can repoint or remove it.
* **Hard-coded** - built into the integration logic to handle a business rule (email selection, name defaults, amount conversion) and cannot be changed.

When you add a custom mapping rule, you enter a **WeGive API name** (for example `ends_at` or `mailing_address.city`) on the WeGive side and the Salesforce field on the other. The per-object pages below list the valid WeGive API names for each object.

## Object index

### Donor management

| WeGive object | Salesforce object | Salesforce API name | Field detail |
| - | - | - | - |
| Individual donor | Contact | `Contact` | [Contact](./contact) |
| Company donor | Account (Organization record type) | `Account` | [Account](./account) |
| Household | Account (Household record type) | `Account` | [Account](./account) |

### Donation management

| WeGive object | Salesforce object | Salesforce API name | Field detail |
| - | - | - | - |
| Transaction | Opportunity | `Opportunity` | [Opportunity & Payment](./opportunity) |
| Transaction (payment) | NPSP Payment | `npe01__OppPayment__c` | [Opportunity & Payment](./opportunity) |
| Recurring plan | NPSP Recurring Donation | `npe03__Recurring_Donation__c` | [Recurring Donation](./recurring-donation) |

The NPSP Payment object is only written when the `uses_payments` setting is enabled. See [Configuration Options](../configuration-options) for what that setting does.

### Funds and gift detail (NPSP)

| WeGive object | Salesforce object | Salesforce API name | Field detail |
| - | - | - | - |
| Designation (Fund) | General Accounting Unit | `npsp__General_Accounting_Unit__c` | [GAU](./gau) |
| Fund allocation | Allocation | `npsp__Allocation__c` | [GAU & Allocation](./gau) |
| Soft credit (company) | Account Soft Credit | `npsp__Account_Soft_Credit__c` | [Soft Credit](./soft-credit) |
| Soft credit (individual) | Partial Soft Credit | `npsp__Partial_Soft_Credit__c` | [Soft Credit](./soft-credit) |

The GAU object API name can be overridden per org with the `fund_api_name` setting for orgs whose schema differs from NPSP defaults.

### WeGive managed package objects

These objects exist only after the WeGive managed package is installed. Their fields carry the `wegive__` namespace prefix.

| WeGive object | Salesforce object | Salesforce API name | Field detail |
| - | - | - | - |
| Pledge | Pledge | `wegive__Pledge__c` | [Pledge](./pledge) |
| Communication list | Communication List | `wegive__Communication_List__c` | [Communication List](./communication-list) |
| Communication preference | Communication Preference | `wegive__Communication_Preference__c` | [Communication List](./communication-list) |
| Campaign event | Event | `wegive__Event__c` | [Events](./event) |
| Event ticket | Event Ticket | `wegive__Event_Ticket__c` | [Events](./event) |
| Event registration | Event Registration | `wegive__Event_Registration__c` | [Events](./event) |
| Registration ticket (line item) | Event Registration Ticket | `wegive__Event_Registration_Ticket__c` | [Events](./event) |
| Campaign fundraiser | Fundraiser | `wegive__Fundraiser__c` | [Fundraiser](./fundraiser) |
| Payout | Payout | `wegive__Payout__c` | [Payout](./payout) |
| Tag | Tag | `wegive__Tag__c` | [Tags](./tag) |
| Tag assignment | Tag Donor | `wegive__Tag_Donor__c` | [Tags](./tag) |

The four event objects and the Tag object are push-only (WeGive to Salesforce); Tag Donor assignments sync in both directions. Every other object in this index syncs in both directions unless its detail page says otherwise.

A small number of orgs use non-namespaced or alternately named fields for the Pledge and Payout objects (legacy custom builds). Those overrides are configured per integration; contact WeGive to confirm an org's object names.

### Campaign

| WeGive object | Salesforce object | Salesforce API name | Field detail |
| - | - | - | - |
| Campaign | Campaign | `Campaign` | [Campaign](./campaign) |
| Campaign donor | Campaign Member | `CampaignMember` | [Campaign Member](./campaign-member) |

## Data handling conventions

These rules apply to every mapping. They are the most common source of "the value came across wrong" questions.

**Amounts.** WeGive stores money in cents; Salesforce stores dollars. The default mappings divide by 100 on push and multiply by 100 on pull. If you map the raw `amount` field directly to a Salesforce currency field you will get cents, which is almost always wrong. Use the computed `dollar_amount` value or rely on the default mapping.

**Dates.** WeGive stores `*_at` columns as UTC datetimes and `*_date` columns as dates. The integration formats dates as `YYYY-MM-DD` for Salesforce and adjusts close dates and campaign dates to the org timezone.

**Booleans.** Salesforce checkbox fields accept WeGive booleans directly; no conversion is needed.

**Picklists.** Salesforce picklist fields silently reject a value that is not in the allowed set, so a mapped value can disappear with no error. Align the values WeGive sends with the org's picklist. This is why donor State and Country are imported from Salesforce but not exported by default. Salesforce State and Country/Territory Picklists is an org-wide setting that applies to both Contact and Account. When it is enabled, state and country on both objects must be mapped through the code fields (for example `MailingStateCode`, `BillingStateCode`) using a one-directional export/import split rather than a single both-ways rule. See the [Contact](./contact) and [Account](./account) pages for the exact mappings.

**Frequency.** WeGive stores frequency as a string ("monthly", "bimonthly", "quarterly", "semiannual", and so on). For Recurring Donations, the integration translates these into NPSP's `Installment_Period__c` + `InstallmentFrequency__c` pair (NPSP has no native Quarterly/Semiannual/Bimonthly period, so those three cadences are encoded as a multiplier on Monthly or Weekly — see [Recurring Donation](./recurring-donation)). For Pledges, frequency is translated to NPSP-style installment strings instead ("1 Payment", "Monthly", and so on) — see [Pledge](./pledge).

## Coming soon

The following are planned but not yet synced:

* Impact stories (Posts)
* Impact cards (Impact Numbers)
* Tasks
* Notes
* Files

## Not currently integrated

These NPSP objects are not synced and are used only for internal Salesforce processes: NPSP Data Import Batch, Deliverable (Grant Deadline), Error, Trigger Handler, Engagement Plan and Engagement Plan Templates, Level, Recurring Donation Change Log, Affiliation (`npe5__Affiliation__c`), and Relationship (`npe4__Relationship__c`).

Two more items are commonly asked about:

* **Lead.** WeGive does not sync Salesforce Leads. Marketing contacts in WeGive are intended for people from systems outside Salesforce; see [Lead](./lead) for the reasoning.
* **NPSP Address (`npsp__Address__c`).** WeGive writes mailing and billing addresses to the standard address fields on Contact and Account, not to NPSP's Address object. NPSP's own address management then handles household address propagation.

The WeGive4SF package also installs objects for Journeys, Forms, and Form Submissions. Those objects are present for future use and are not currently populated by the integration.

## Related documentation

* [Setup Requirements](../setup-requirements) - editions, permissions, and the NPSP objects the integration depends on
* [Configuration Options](../configuration-options) - settings that change what syncs and how
* Per-object field detail: [Account](./account), [Contact](./contact), [Campaign](./campaign), [Opportunity & Payment](./opportunity), [Recurring Donation](./recurring-donation), [GAU & Allocation](./gau), [Soft Credit](./soft-credit), [Pledge](./pledge), [Payout](./payout), [Communication List](./communication-list), [Events](./event), [Fundraiser](./fundraiser), [Tags](./tag)
* To add or change a mapping in your account, see the Knowledge Base. *(Editor note: link the V2 Pylon "Add or edit a field mapping" article once published.)*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.