Setting Up the WeGive Salesforce Integration

Last updated: June 11, 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.

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 1: Create an External Client App in Salesforce

  1. Log into Salesforce and go to Setup.

  2. Search for External Client App and select it.

  3. Click New External Client App.

  4. 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)

  1. Under Flow Enablement:

    • Enable Authorization Code and Credentials Flow: Yes

    • All others: No

  2. Under Security:

    • Require Secret for Web Server Flow: Yes

    • Require Secret for Refresh Token Flow: Yes

  3. 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 2: Configure ECA Policies

  1. Go to the ECA detail page and click Manage or Edit Policies.

  2. Set IP Relaxation to Relax IP restrictions.

  3. Save.

Step 3: Get Your Consumer Key and Secret

  1. On the ECA detail page, locate the Consumer Key and Consumer Secret.

  2. Copy both values. You'll paste these into WeGive in Step B5.

Step 4: Add WeGive as a Remote Site

  1. From the Salesforce home screen, go to Security > Remote Site Settings.

  2. 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

  1. Save.

Step 5: Connect in WeGive

  1. In the WeGive dashboard, navigate to Integrations > Salesforce.

  2. Open General Settings.

  3. Paste in the Consumer Key (Client ID) and Consumer Secret (Client Secret) from Step B3.

  4. Click Connect with Salesforce to initiate the OAuth authorization flow.

  5. You will be redirected to Salesforce to authorize the connection. Log in and approve access.

  6. Once redirected back to WeGive, click Test Connection to verify.

  7. If the test succeeds, click Sync Salesforce to enable the integration.

After Setup (Both Methods)

Step 6: 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

contacts_with_emails_only

Only sync Contacts that have an email address. Enabled by default.

uses_payments

Use NPSP Payment objects (npe01__OppPayment__c) instead of Opportunities only. Required for the integration to work correctly.

push_pledges

Enable Pledge synchronization. Requires the wegive__Pledge__c custom object to be installed.

enable_fund_allocations

Enable fund allocation tracking (splits a donation across multiple GAUs).

sync_deleted_households

Detect and archive households in WeGive when they are deleted in Salesforce (required for contact merges to sync correctly).

is_legacy

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 stage_success value)

Pending

Negotiation/Review (or your configured stage_pending value)

Refunded

Refunded (or your configured stage_refunded value)

Failed

Closed Lost (or your configured stage_failed value)

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:

  1. Create a test donation in your WeGive sandbox.

  2. Wait approximately 5 minutes.

  3. Check Salesforce for the new Contact, Opportunity, and Payment.

  4. 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.