Why an Opportunity in Salesforce did not sync to WeGive

Last updated: May 21, 2026

If you have Opportunities in Salesforce that you expect to see in WeGive but they are missing, the most common cause is one of a small number of data conditions on the Opportunity or its related records. This article gives Salesforce admins a checklist to work through on a specific Opportunity before escalating to WeGive support.

This article is written for orgs using Salesforce NPSP. Field names below use NPSP API names so you can search them on the Opportunity record.

How to use this checklist

Pick a single Opportunity that did not sync. Work through the checks in order. The first check that fails is almost always the reason. Once you find a pattern across multiple Opportunities, you can fix the underlying data issue in bulk.

Quick-pass requirements

At a glance, every Opportunity that syncs to WeGive meets all of these conditions:

Requirement

What WeGive needs to see

Owner on the Opportunity

A populated ContactId or AccountId

Related Payment

At least one npe01__OppPayment__c record with npe01__Paid__c = TRUE (if your org syncs by Payment)

Owner already in WeGive

The Contact or Account on the Opportunity has already synced to WeGive at least once

Contact has an email

Only required if your org has the Contacts with emails only sync setting enabled

Individual vs. organization flag

npe01__Is_Opp_From_Individual__c matches the owner type that exists in WeGive

Record Type access

The integration user has access to the Opportunity's Record Type

Each of these is explained in more detail below.

Checklist

1. Does the Opportunity have a Payment with Paid = TRUE?

Most WeGive orgs sync transactions from the Payment object, not directly from the Opportunity. Open the Opportunity and look at the related Payments list.

  • If there are no Payment records, the Opportunity will not sync. NPSP normally creates a Payment automatically when an Opportunity is moved to Closed Won, so a missing Payment usually means the Opportunity never made it to Closed Won, or a workflow blocked Payment creation.

  • If there is a Payment but npe01__Paid__c is FALSE, the Opportunity will not sync. Mark the Payment as paid and it will pick up on the next sync.

2. Is there a Contact or Account on the Opportunity?

Open the Opportunity and confirm at least one of these fields is populated:

  • ContactId (for individual donations, typically via the NPSP Primary Contact)

  • AccountId (for organization donations)

If both are blank, the Opportunity has no owner and WeGive cannot attach the transaction to anyone. This is one of the most common reasons a recent Opportunity does not appear.

3. Does that Contact (or Account) already exist in WeGive?

Even if the Opportunity has a Contact, that Contact must already be synced to WeGive for the Opportunity to attach. Search for the Contact in WeGive by name or email. If the Contact is not there:

  • Check whether the Contact has an email address in Salesforce. If your org has the Contacts with emails only setting enabled (most do), Contacts without an email never sync to WeGive, and any Opportunity attached to that Contact will be skipped.

  • Add an email to the Contact in Salesforce, wait for the next Contact sync, and the Opportunity will follow.

For organization gifts attached by AccountId, the Account must already be synced to WeGive. Accounts sync as supporters of company type.

4. Is the household linked correctly?

For Contacts on NPSP, the Contact's Household Account must also have synced to WeGive. If the Household is missing, the Contact sync can fail, which in turn prevents the Opportunity from syncing.

Open the Contact, look at the Account Name field, and confirm the Household Account exists. If the Account is brand new and has not had time to sync yet, give it a sync cycle and recheck.

5. Is the individual vs. organization flag correct?

Check npe01__Is_Opp_From_Individual__c on the Opportunity.

  • For donations from an individual, this should be TRUE and the Opportunity should have a ContactId.

  • For donations from a company, this should be FALSE and the Opportunity should have an AccountId.

If this flag does not match the owner type that exists in WeGive (for example, the Opportunity is flagged as individual but only the company Account is in WeGive), the Opportunity will not attach.

6. Is the Record Type one the integration can see?

The WeGive integration user in Salesforce needs field-level and Record Type access to the Opportunity. If your team added a new Opportunity Record Type and did not grant the integration user access, Opportunities of that Record Type will silently skip.

Open the Opportunity, note the Record Type, and confirm the WeGive integration user's profile or permission set has access to it.

7. Is the Opportunity inside the sync window?

WeGive's incremental sync looks at Opportunities by LastModifiedDate. If the Opportunity was created or last modified outside of the active sync window (for example, a backfill of very old records imported with a past LastModifiedDate), the regular sync will not pick it up. In that case, contact WeGive support to schedule a targeted backfill.

8. Has the Opportunity been manually added to the Ignored Integrations list?

WeGive has an Ignored Integrations list under Settings → Integrations that excludes specific records from sync. Records are added to this list manually (typically by WeGive support during prior troubleshooting), not automatically based on failure counts. If a record is on this list, it will not sync even after the underlying data is corrected.

If you have fixed the data on an Opportunity and it still does not appear after the next sync cycle, ask WeGive support to check whether the record is on the Ignored Integrations list for your org.

WeGive integration config checklist

If the Salesforce-side data on an Opportunity looks correct and the Opportunity still is not syncing, the cause may be on the WeGive side, in the Salesforce integration configuration. Org admins can review these settings under Settings → Integrations → Salesforce. If you do not have access, ask WeGive support to verify them.

The settings most likely to cause an Opportunity to be filtered out or misrouted:

Setting

What happens if it is wrong or blank

Non Household Record Type Name

Identifies the Account Record Type used for organizations/companies. If blank or set to a value that does not match a real Account Record Type in your Salesforce org, company Account records may not sync as company supporters. Opportunities owned by a company Account can then fail to attach, lose donor attribution, or be skipped entirely. Default is "Organization".

Household Record Type Name

Identifies the Account Record Type used for households. If blank or incorrect, Household queries fail and Contact-to-Household relationships break, which cascades into Opportunity sync failures for any individual donor. Default is "Household Account".

Tax Deductible Record Type ID

Identifies which Opportunity Record Type represents tax-deductible donations. If blank, defaults to looking for the "Donation" Record Type. Mismatch usually does not block sync, but donations may be incorrectly marked as non-tax-deductible.

Service Revenue Record Type ID and Service Revenue Record Types

Identifies Opportunity Record Types that are non-tax-deductible service revenue. Mismatch usually does not block sync, but tax-deductible status will be wrong on imported donations.

Hidden Record Types

Array of Opportunity Record Type Developer Names that should be hidden from the donor portal. If set incorrectly, transactions may not block sync but will be hidden when they should be visible (or vice versa).

Pool Donors

Master toggle for syncing individual Contacts as supporters. If off, no individual donor records sync, and every Opportunity owned by a Contact will fail to attach.

Pool Households

Master toggle for syncing Household Accounts. If off, household relationships break, which can prevent Contact sync and therefore Opportunity sync.

Pool Companies

Master toggle for syncing organization/company Accounts. If off, every Opportunity owned by a company Account loses its donor attribution.

Pool Transactions

Master toggle for syncing Opportunities and Payments. If off, no donations sync at all.

Pool Campaigns

Toggle for syncing Campaign records. If off, campaign attribution is lost on donations. Does not by itself block Opportunity sync.

Pool Scheduled Donations

Toggle for syncing Recurring Donation records. If off, recurring plan data does not sync, which can leave related Opportunities orphaned.

Contacts With Emails Only

When enabled (the typical default), Contacts without an email never sync. Any Opportunity attached to an emailless Contact will be skipped.

Uses Payments

When enabled (typical for NPSP orgs), only Opportunities with a related Payment where npe01__Paid__c = TRUE sync. If your org uses NPSP Payments but this setting is off, payment-level fields and some custom field values may not sync correctly.

Enable Fund Allocations

When enabled, GAU Allocation records are pulled with each Opportunity. If off, multi-designation donations come over as single-designation, but the Opportunity itself still syncs.

Sync All Recurring Donations

Controls whether all recurring donations sync or only Active ones. Default behavior pulls only Active.

Stage Success / Pending / Failed / Refunded

Maps WeGive transaction statuses to Salesforce Opportunity Stage Names. Mismatch does not block sync, but transaction status will be wrong, which affects reporting.

Pull Frequency

How often (in minutes) WeGive pulls from Salesforce. Default is 15 minutes. If set unusually high, expect longer delays before new Opportunities appear.

Pull Contact Role Soft Credits

When enabled, pulls soft credits stored as Opportunity Contact Roles. Affects soft credit completeness, not Opportunity sync.

Common config-side patterns

Symptom

Most likely config cause

Most missing Opportunities belong to organization/company donors

Non Household Record Type Name is blank or mismatched, or Pool Companies is off.

Most missing Opportunities belong to individual donors with no household issues elsewhere

Pool Donors is off, or Contacts With Emails Only is on and the Contacts lack emails.

No Opportunities sync at all

Pool Transactions is off, or Uses Payments is misaligned with how your org actually uses NPSP Payments.

Donations sync but appear under the wrong supporter type

Record Type Name fields (Household / Non Household) are pointing at the wrong values.

Donations sync but tax-deductible flag is wrong

Tax Deductible Record Type ID or Service Revenue Record Types are misconfigured.

If you suspect a config-side cause but do not have access to change these settings, escalate to WeGive support with the specific setting you want verified and the symptom you are seeing.

What to send to WeGive support if you have checked everything

If you have walked through this checklist and the Opportunity still is not in WeGive, escalate with:

  • The Salesforce Opportunity 18-character ID

  • The related Contact's 18-character ID and email

  • The related Account's 18-character ID

  • The Payment record ID and whether npe01__Paid__c is TRUE

  • A note confirming you have already walked through this checklist

That gives WeGive support enough to look at the sync logs for that exact record without going back and forth on the basics.

Common patterns and what they usually mean

Once you have walked through a handful of missing Opportunities, you will often see a pattern. A quick guide to common patterns:

Pattern across missing Opportunities

Most likely cause

Most missing Opportunities have Contacts without an email

Contacts with emails only setting is filtering them out. Add emails or change the setting.

Missing Opportunities all share the same Record Type

Integration user is missing Record Type access.

Missing Opportunities all attached to Contacts created after a certain date

Contact sync is broken for newer Contacts (escalate).

Missing Opportunities all have no Payment record

Closed Won automation or Payment creation rule is not firing.

Missing Opportunities all backdated by a large amount

They fell outside the sync window and need a targeted backfill.