Salesforce
Giving Data Models (Beta)
BetaBeta 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.
| Model | Detection signal | Adapter |
|---|---|---|
| NPSP (Nonprofit Success Pack) | npe01__OppPayment__c installed | NpspAdapter — maps giving to Opportunity + npsp__ fields |
| Nonprofit Cloud (NPC) | GiftTransaction sObject available | NonprofitCloudAdapter — maps to GiftTransaction, GiftCommitment, GiftDesignation |
| Education Cloud / EDA | hed__Program_Enrollment__c installed | EducationAdapter — maps enrollment context to hed__ objects |
| Kindsight Ascend | Ascend__Grant__c installed | KindsightAscendAdapter — maps to Ascend__Grant__c / Ascend__Grant_Payment__c |
| None (default) | No third-party giving model detected | Native 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 concept | NPSP object | Key fields |
|---|---|---|
| Donation (one-time) | Opportunity (standard) | Amount, StageName, CloseDate, npsp__Primary_Contact__c |
| Recurring gift | npe03__Recurring_Donation__c | npe03__Amount__c, npe03__Installment_Period__c, npe03__Next_Payment_Date__c, npe03__Contact__c |
| Payment instalment | npe01__OppPayment__c | npe01__Payment_Amount__c, npe01__Paid__c, npe01__Payment_Date__c |
| Fund / designation | npsp__General_Accounting_Unit__c | Name |
| Allocation to fund | npsp__Allocation__c | npsp__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 concept | NPC object | Key fields |
|---|---|---|
| Single gift | GiftTransaction | Amount, Status, CloseDate, AccountId, ContactId |
| Pledge / recurring commitment | GiftCommitment | Amount, Status, RecurrenceFrequency, NextPaymentDate, StartDate |
| Instalment schedule | GiftCommitmentSchedule | GiftCommitmentId, Amount, Status, NextPaymentDate |
| Fund designation | GiftDesignation | Amount, GiftTransactionId |
| Allocation | GiftTransactionDesignation | Amount, GiftTransactionId, GiftDesignationId |
| Attribution source | OutreachSourceCode | Name |
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.
| Path | Object | Key fields |
|---|---|---|
| EDA | hed__Program_Enrollment__c | hed__Contact__c, hed__Program__c, hed__Status__c, hed__Start_Date__c |
| EDA | hed__Course_Enrollment__c | hed__Contact__c, hed__Course_Offering__c, hed__Status__c, hed__Grade__c |
| EDC (API v59+) | ProgramEnrollment | ContactId, 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.