NPSP GAU Allocations Deleted by Salesforce — ENTITY_IS_DELETED Error
Last updated: February 11, 2026
Overview
When using WeGive with Salesforce NPSP (Nonprofit Success Pack), GAU (General Accounting Unit) Allocations created by WeGive may be automatically deleted by NPSP's Default Allocation triggers. This causes ENTITY_IS_DELETED errors when WeGive later attempts to update those allocations.
This article explains the root cause and how to resolve it.
Symptoms
ENTITY_IS_DELETEDerrors appear in WeGive's Salesforce integration logs when syncing donations.The error occurs on update calls to GAU Allocation records — not on the initial insert.
The issue is most common when a donation is designated to the Default GAU (the GAU configured in NPSP Settings → Donations → GAU Allocations).
Donations designated to non-default GAUs may sync successfully.
Root Cause
NPSP has a feature called Default Allocations that automatically creates a GAU Allocation to the Default GAU whenever a new Opportunity is inserted. This is handled by NPSP trigger handlers that fire on Opportunity, Payment, and Allocation records.
When WeGive syncs a donation to Salesforce, the following sequence occurs:
WeGive inserts the Opportunity. NPSP's
ALLO_Allocations_TDTMtrigger fires and auto-creates a default GAU Allocation.WeGive inserts its own GAU Allocation to the same Default GAU.
NPSP detects the duplicate. Two allocations now exist for the same GAU on the same Opportunity. NPSP deletes the one it considers redundant — which is WeGive's allocation.
WeGive attempts to update the allocation using the ID it received at insert time. That record no longer exists →
ENTITY_IS_DELETED.
The Salesforce Composite API returns a success response for the initial insert before NPSP's cascading triggers run and delete the record. This means WeGive has no way of knowing the allocation was deleted until the next update attempt fails.
Why non-default GAUs are usually unaffected: When WeGive's allocation targets a different GAU than the default, NPSP sees that non-default allocations cover the full Opportunity amount and deletes its own default allocation instead — so WeGive's allocation survives.
Solution
Exclude the WeGive integration user from the NPSP trigger handlers that manage GAU Allocations. This prevents NPSP from running its allocation logic when WeGive creates records, while preserving normal NPSP behavior for all other users.
Step-by-Step Instructions
Identify the WeGive integration user's Salesforce username. This is the username of the connected Salesforce user that WeGive uses for the integration (e.g.,
wegive-integration@yourorg.org).Navigate to NPSP Trigger Handler settings:
In Salesforce, go to NPSP Settings → System Tools → Trigger Handler.
Add the WeGive username to the following trigger handlers' "Usernames to Exclude" field:
Trigger Handler
Object
Action
ALLO_Allocations_TDTMOpportunity
Add WeGive username
ALLO_Allocations_TDTMAllocation__c
Add WeGive username
ALLO_PaymentSync_TDTMAllocation__c
Add WeGive username
To edit each handler:
Find the handler in the list.
Click into the record.
In the Usernames to Exclude field, enter the WeGive integration user's full Salesforce username.
Save the record.
Repeat for all three handlers listed above.
Test the fix by syncing a donation from WeGive that is designated to the Default GAU. Confirm:
The Opportunity is created in Salesforce.
The GAU Allocation is created and persists (is not deleted).
A subsequent update to the allocation does not produce an
ENTITY_IS_DELETEDerror.
What This Fix Does (and Doesn't Do)
Does:
Prevents NPSP's allocation auto-creation and deduplication logic from firing when the WeGive integration user creates or modifies Opportunities and Allocations.
Eliminates
ENTITY_IS_DELETEDerrors on GAU Allocations synced by WeGive.
Does not:
Affect NPSP behavior for any other Salesforce user. Staff members who manually create Opportunities will still get automatic Default GAU Allocations as expected.
Disable any other NPSP functionality. Only the three specified trigger handlers are modified, and only for the WeGive user.
Verification Checklist
After applying the fix, verify the following scenarios:
Single designation to Default GAU — Allocation syncs and persists. No
ENTITY_IS_DELETEDerror on updates.Single designation to a non-default GAU — Allocation syncs and persists (was already working; confirm no regression).
Multi-designation split — All allocations sync and persist.
Manual Opportunity by staff user — NPSP still auto-creates a Default GAU Allocation (confirms the exclusion is scoped to WeGive only).
Technical Details
Relevant NPSP Trigger Handlers:
ALLO_Allocations_TDTMon Opportunity (AfterInsert, AfterUpdate) — Creates the default allocation when a new Opportunity is inserted.ALLO_Allocations_TDTMon Allocation__c — Manages deduplication and reconciliation of allocations.ALLO_PaymentSync_TDTMon Allocation__c — Syncs allocation amounts with Payment records.
Trigger Load Order: ALLO_Allocations_TDTM (load order 1) fires before ALLO_PaymentSync_TDTM (load order 4).
NPSP Default GAU Setting: Found at NPSP Settings → Donations → GAU Allocations. The Default GAU is the single org-wide GAU that NPSP assigns to auto-created allocations.
Applies To
WeGive organizations using Salesforce with NPSP (Nonprofit Success Pack) installed.
Organizations with NPSP's Default Allocations feature enabled (a Default GAU is configured).
Integration errors showing
ENTITY_IS_DELETEDonnpsp__Allocation__crecords.