Setting Up the WeGive Salesforce Integration
Last updated: May 14, 2026
This guide walks through everything you need to connect WeGive to Salesforce NPSP, from confirming your Salesforce edition to completing the first successful sync.
Note: Salesforce is transitioning from Connected Apps to External Client Apps (ECA). If your Salesforce org was created after Spring '26 or you are unable to create a new Connected App, follow the ECA instructions in this guide. If you already have a Connected App working, no changes are needed until we complete the full migration to ECA.
Before You Start
Required Salesforce Edition
The integration requires one of the following:
Enterprise Edition
Unlimited Edition
Developer Edition
Required Packages in Salesforce
Nonprofit Success Pack (NPSP) must be installed. The integration uses several NPSP objects including npe01__OppPayment__c, npe03__Recurring_Donation__c, and npsp__Allocation__c.
WeGive Managed Package must also be installed to support custom objects like Pledges, Payouts, Events, and Communication Lists.
Production / Developer Edition Orgs: https://login.salesforce.com/packaging/installPackage.apexp?p0=04tak000000PYcnAAG
Sandbox / Scratch Orgs: https://test.salesforce.com/packaging/installPackage.apexp?p0=04tak000000PYcnAAG
You must be logged in as a System Administrator to install the package. If you see an "Insufficient Privileges" error, either switch to a System Administrator profile or ask your Salesforce admin to complete the installation.
When prompted, select Install for All Users, then confirm and approve any third-party access prompts.
Required Salesforce User Permissions
The Salesforce user account used for the integration must have:
API Enabled
Modify All Data
Customize Application
View Setup and Configuration
View All Data
Field-Level Security
All fields involved in the integration must be visible and editable by the integration user, including custom fields and managed package fields. Even System Administrators may lack access to certain custom or managed package fields by default. See [How to Check and Update Salesforce Field-Level Permissions] if you encounter field-related sync errors.
Environment Matching
Both systems must be the same type. A WeGive sandbox connects to a Salesforce sandbox, and a WeGive production account connects to a Salesforce production org. You cannot mix environments.
Option A: Connected App Setup (Legacy)
Use this method if your Salesforce org still supports creating Connected Apps. Salesforce deprecated new Connected App creation as of Spring '26, so if you cannot create one, skip to Option B: External Client App (ECA) Setup.
Step A1: Create a Connected App in Salesforce
Log into Salesforce and go to Setup.
Search for App Manager in the navigation search bar and select it.
Click New Connected App.
Fill in the following fields:
Connected App field values:
Field | Value |
Connected App Name | WeGive |
API Name | WeGive |
Contact Email | support@wegive.com |
Enable OAuth Settings | Checked |
Callback URL | https://super.givelist.app |
Selected OAuth Scopes | Move all available scopes to Selected |
Require Secret for Web Server Flow | Checked |
Require Secret for Refresh Token Flow | Checked |
Click Save.
Important: Use https://super.givelist.app as the Callback URL for both Salesforce production and sandbox environments.
Step A2: Enable Username-Password Flow (Post-Summer 2023 Orgs Only)
If your Salesforce instance was created after Summer 2023, you must explicitly enable the OAuth username-password flow. The integration will not connect without this step.
Go to Setup and search for OAuth and OpenID Connect Settings.
Find the WeGive connected app.
Enable Allow OAuth Username-Password Flows.
Step A3: Get Your Consumer Key and Secret
In the App Manager, find the WeGive app and click View.
Scroll to the API (Enable OAuth Settings) section.
Click Manage Consumer Details.
Copy the Consumer Key (Client ID) and Consumer Secret (Client Secret). You'll paste these into WeGive in Step A6.
Step A4: Relax IP Restrictions
Return to the App Manager and click Manage on the WeGive app.
Click Edit Policies.
Under IP Relaxation, select Relax IP Restrictions.
Save.
Step A5: Add WeGive as a Remote Site
From the Salesforce home screen, go to Security > Remote Site Settings.
Click New Remote Site and fill in:
Remote site values for the legacy Connected App:
Field | Value |
Remote Site Name | wegive_api |
Remote Site URL | https://super.givelist.app |
Save.
Step A6: Enter Credentials in WeGive
In the WeGive dashboard, navigate to Integrations > Salesforce.
Open General Settings.
Paste in the Consumer Key (Client ID) and Consumer Secret (Client Secret) from Step A3.
Enter your Salesforce Username and Password.
Set the Instance URL:
Sandbox: https://test.salesforce.com/
Production: https://login.salesforce.com/
Click Test Connection.
If the test succeeds, click Sync Salesforce to enable the integration.
Option B: External Client App (ECA) Setup
Use this method if your Salesforce org does not allow creating Connected Apps (Spring '26 and later) or if you prefer to use the newer ECA standard. This is the recommended path going forward.
Step B1: Create an External Client App in Salesforce
Log into Salesforce and go to Setup.
Search for External Client App and select it.
Click New External Client App.
Fill in the following fields:
External Client App field values:
Field | Value |
Name | WeGive |
Enable OAuth Settings | Checked |
Callback URL | https://api.wegive.com/api/oauth/salesforce/callback |
OAuth Scopes | Manage user data via APIs (api), Perform requests at any time (refresh_token, offline_access) |
Under Flow Enablement:
Enable Authorization Code and Credentials Flow: Yes
All others: No
Under Security:
Require Secret for Web Server Flow: Yes
Require Secret for Refresh Token Flow: Yes
Click Save.
Important: Use https://api.wegive.com/api/oauth/salesforce/callback as the Callback URL for both Salesforce production and sandbox environments. The ECA may take up to 10 minutes to become active. If you get an OAUTH_APPROVAL_ERROR_GENERIC, wait and retry.
Step B2: Configure ECA Policies
Go to the ECA detail page and click Manage or Edit Policies.
Set IP Relaxation to Relax IP restrictions.
Save.
Step B3: Get Your Consumer Key and Secret
On the ECA detail page, locate the Consumer Key and Consumer Secret.
Copy both values. You'll paste these into WeGive in Step B5.
Step B4: Add WeGive as a Remote Site
From the Salesforce home screen, go to Security > Remote Site Settings.
Click New Remote Site and fill in:
Remote site values for the ECA setup:
Field | Value |
Remote Site Name | wegive_api |
Remote Site URL | https://api.wegive.com |
Save.
Step B5: Connect in WeGive
In the WeGive dashboard, navigate to Integrations > Salesforce.
Open General Settings.
Paste in the Consumer Key (Client ID) and Consumer Secret (Client Secret) from Step B3.
Click Connect with Salesforce to initiate the OAuth authorization flow.
You will be redirected to Salesforce to authorize the connection. Log in and approve access.
Once redirected back to WeGive, click Test Connection to verify.
If the test succeeds, click Sync Salesforce to enable the integration.
After Setup (Both Methods)
Step 7: Configure Required NPSP Trigger Handler Exclusions
Before going live, you must configure three NPSP trigger handlers to exclude the WeGive integration user. Skipping this step will cause sync errors and data conflicts.
See Required Exclusions for the full instructions.
Sync Settings and Flags
Once the integration is connected, the following settings are available in General Settings:
Available sync settings:
Setting | Description |
| Only sync Contacts that have an email address. Enabled by default. |
| Use NPSP Payment objects ( |
| Enable Pledge synchronization. Requires the |
| Enable fund allocation tracking (splits a donation across multiple GAUs). |
| Detect and archive households in WeGive when they are deleted in Salesforce (required for contact merges to sync correctly). |
| Use legacy field mappings, which excludes newer NPSP fields. Only enable this if directed by WeGive support. |
Stage Mappings
WeGive maps transaction statuses to Salesforce Opportunity Stage Names. The defaults are:
Default WeGive status to Salesforce stage mappings:
WeGive Status | Salesforce Stage |
Successful / Processing | Closed Won (or your configured |
Pending | Negotiation/Review (or your configured |
Refunded | Refunded (or your configured |
Failed | Closed Lost (or your configured |
These can be customized in integration settings to match your org's existing stage names.
Payment Method Names
You can define custom display names for payment methods that appear on Opportunity and Payment records in Salesforce:
Credit Card
Bank / ACH
PayPal
Testing Your Integration
After setup:
Create a test donation in your WeGive sandbox.
Wait approximately 5 minutes.
Check Salesforce for the new Contact, Opportunity, and Payment.
Review Integrations > Salesforce > Logs in WeGive for any errors.
If errors appear, the most common causes are field-level permission issues, missing trigger handler exclusions, or an incorrect Instance URL. See [Monitoring and Troubleshooting Your Salesforce Integration] for help reading the logs.