Salesforce

Giving Data Models (Beta)

Beta

Beta feature — admin setup required

Giving data model detection is a beta feature. It is opt-in from the Beta Features page (/beta). Only Salesforce admins who understand NPSP, Nonprofit Cloud, or Education Cloud should enable it. The underlying bridge fields are not yet shipped in the managed packages — they degrade gracefully when absent.

Forge can project giving (donation) data into several third-party or Salesforce-native data models used by nonprofits and educational institutions. Rather than forcing all donations through the bt_fundraising__ schema, Forge uses an adapter pattern: it detects which model is installed in your org and maps the bt_fundraising__Donation__c record to the appropriate objects and fields in that model.

How detection works

On connection (and periodically thereafter), Forge queries your org's installed sObjects to detect which packages are present. The detection result is cached per-tenant and re-evaluated when an admin reconnects the org or manually triggers a re-detect from the Admin page.

ModelDetection signalAdapter
NPSP (Nonprofit Success Pack)npe01__OppPayment__c installedNpspAdapter — maps giving to Opportunity + npsp__ fields
Nonprofit Cloud (NPC)GiftTransaction sObject availableNonprofitCloudAdapter — maps to GiftTransaction, GiftCommitment, GiftDesignation
Education Cloud / EDAhed__Program_Enrollment__c installedEducationAdapter — maps enrollment context to hed__ objects
Kindsight AscendAscend__Grant__c installedKindsightAscendAdapter — maps to Ascend__Grant__c / Ascend__Grant_Payment__c
None (default)No third-party giving model detectedNative bt_fundraising__Donation__c only

NPSP model

When NPSP is detected, Forge maps a donation to an Opportunity record and uses npsp__ fields for primary attribution and allocation. Recurring gifts map to npe03__Recurring_Donation__c. Payment instalments map to npe01__OppPayment__c.

Forge conceptNPSP objectKey fields
Donation (one-time)Opportunity (standard)Amount, StageName, CloseDate, npsp__Primary_Contact__c
Recurring giftnpe03__Recurring_Donation__cnpe03__Amount__c, npe03__Installment_Period__c, npe03__Next_Payment_Date__c, npe03__Contact__c
Payment instalmentnpe01__OppPayment__cnpe01__Payment_Amount__c, npe01__Paid__c, npe01__Payment_Date__c
Fund / designationnpsp__General_Accounting_Unit__cName
Allocation to fundnpsp__Allocation__cnpsp__Amount__c, npsp__General_Accounting_Unit__c, npsp__Opportunity__c

Nonprofit Cloud (NPC) model

Nonprofit Cloud (API v57+) uses standard objects without a managed namespace. Forge's NonprofitCloudAdapter maps to these objects when the GiftTransaction sObject is present.

Forge conceptNPC objectKey fields
Single giftGiftTransactionAmount, Status, CloseDate, AccountId, ContactId
Pledge / recurring commitmentGiftCommitmentAmount, Status, RecurrenceFrequency, NextPaymentDate, StartDate
Instalment scheduleGiftCommitmentScheduleGiftCommitmentId, Amount, Status, NextPaymentDate
Fund designationGiftDesignationAmount, GiftTransactionId
AllocationGiftTransactionDesignationAmount, GiftTransactionId, GiftDesignationId
Attribution sourceOutreachSourceCodeName

Education Cloud / EDA model

When EDA (hed__ namespace) is detected, Forge can surface enrollment context alongside event attendance. When Education Cloud (EDC, namespaceless standard objects available in API v59+) is detected, Forge uses Program and ProgramEnrollment objects instead.

PathObjectKey fields
EDAhed__Program_Enrollment__ched__Contact__c, hed__Program__c, hed__Status__c, hed__Start_Date__c
EDAhed__Course_Enrollment__ched__Contact__c, hed__Course_Offering__c, hed__Status__c, hed__Grade__c
EDC (API v59+)ProgramEnrollmentContactId, ProgramId, Status, StartDate, EndDate

Degraded mode and partial fields

Three bridge lookup fields connect bt_stripe__Transaction__c and conference360__Attendee__c to giving records in the third-party model. These fields are not yet in the managed packages and are detected dynamically at runtime. If they are absent, Forge degrades gracefully: it marks the projection as partial: true and continues without throwing an error.

Bridge fields are placeholders

The fields bt_stripe__Giving_Record__c (on Transaction__c) and conference360__Giving_Record__c / conference360__Transaction__c (on Attendee__c) have placeholder API names that will be confirmed when the package ships. Do not build Flows or Apex that depend on these field names until the package version that ships them is documented here.

Giving model admin settings

Admins can review which giving model Forge has detected, manually trigger re-detection, and configure mapping overrides from the Admin section under Giving Settings. Only users with the Blackthorn Events Admin permission set can access these settings.