Data Models & Integration
Detailed documentation of our Salesforce NPSP data models and integration patterns
Data Models & Integration
Our Salesforce NPSP integration is built on a comprehensive data model that maps our donor experience platform to Salesforce objects. This document outlines the key objects and their relationships.
Core Objects
Donors & Households
-
Contact (Donor)
- Maps to our
Donor
model - Handles individual donor information
- Supports both individual and organizational donors
- Includes merge functionality for duplicate contacts
- Maps to our
-
Account (Household)
- Maps to our
Household
model - Manages household and organizational relationships
- Supports the NPSP Household Account Model
- Handles both individual and company accounts
- Maps to our
Donations & Transactions
-
Opportunity
- Maps to our
Transaction
model - Represents individual donations
- Includes payment information
- Supports allocation to multiple funds
- Maps to our
-
npe01__OppPayment__c
- Stores payment details for transactions
- Maps payment methods and statuses
- Handles payment processing information
-
npe03__Recurring_Donation__c
- Maps to our
ScheduledDonation
model - Manages recurring gift schedules
- Tracks payment frequency and status
- Maps to our
-
npe4__Pledge__c
- Maps to our
Pledge
model - Handles pledge commitments
- Tracks pledge status and fulfillment
- Maps to our
Campaigns & Engagement
-
Campaign
- Maps to our
Campaign
model - Manages fundraising campaigns
- Tracks campaign members and donors
- Supports campaign events and fundraisers
- Maps to our
-
CampaignMember
- Maps to our
CampaignDonor
model - Tracks donor participation in campaigns
- Manages campaign engagement
- Maps to our
-
npe01__OppPayment__c
- Handles soft credits
- Tracks influence and attribution
- Supports both account and partial soft credits
Additional Features
-
Communication Lists
- Maps to our
CommunicationList
model - Manages donor communication preferences
- Tracks communication list memberships
- Maps to our
-
Campaign Events
- Supports event management
- Handles event registrations
- Manages event tickets
- Tracks fundraiser campaigns
Field Mappings
Our integration supports extensive field mapping through the SalesforceIntegration
model, which provides field options for:
- Contact fields
- Account fields
- Opportunity fields
- Campaign fields
- Payment fields
- Recurring Donation fields
- Pledge fields
- GAU (General Accounting Unit) fields
- Campaign Event fields
- Communication List fields
- Soft Credit fields
Integration Patterns
Data Synchronization
Our integration implements several key synchronization patterns:
-
Pull Operations
pullDonors()
: Synchronizes donor datapullCampaigns()
: Updates campaign informationpullTransactions()
: Retrieves donation datapullSoftCredits()
: Syncs soft credit informationpullScheduledDonations()
: Updates recurring giftspullPledges()
: Syncs pledge information
-
Push Operations
pushDonor()
: Updates donor informationpushTransaction()
: Creates/updates donationspushCampaign()
: Manages campaign datapushSoftCredit()
: Updates soft creditspushPledge()
: Manages pledge data
-
Special Operations
- Merge handling for contacts and accounts
- Deletion tracking for various objects
- Fund allocation management
- Campaign member synchronization
Best Practices
When working with our Salesforce integration:
-
Data Synchronization
- Use the provided pull/push methods for data operations
- Respect the synchronization patterns
- Handle merge operations through the dedicated methods
-
Field Mapping
- Use the field options attributes for mapping
- Follow the established field naming conventions
- Maintain mapping consistency across objects
-
Error Handling
- Monitor integration logs
- Handle API rate limits appropriately
- Implement proper error recovery
-
Performance
- Use batch operations when possible
- Implement proper indexing
- Monitor API call limits
API Integration
Our integration uses a custom HTTP client for Salesforce API communication:
- OAuth 2.0 authentication
- Token management and refresh
- Rate limiting handling
- Batch operation support
Monitoring & Logging
The integration includes comprehensive logging through:
- Integration logs
- API call tracking
- Error monitoring
- Performance metrics