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
  • Account (Household)

    • Maps to our Household model
    • Manages household and organizational relationships
    • Supports the NPSP Household Account Model
    • Handles both individual and company accounts

Donations & Transactions

  • Opportunity

    • Maps to our Transaction model
    • Represents individual donations
    • Includes payment information
    • Supports allocation to multiple funds
  • 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
  • npe4__Pledge__c

    • Maps to our Pledge model
    • Handles pledge commitments
    • Tracks pledge status and fulfillment

Campaigns & Engagement

  • Campaign

    • Maps to our Campaign model
    • Manages fundraising campaigns
    • Tracks campaign members and donors
    • Supports campaign events and fundraisers
  • CampaignMember

    • Maps to our CampaignDonor model
    • Tracks donor participation in campaigns
    • Manages campaign engagement
  • 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
  • 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:

  1. Pull Operations

    • pullDonors(): Synchronizes donor data
    • pullCampaigns(): Updates campaign information
    • pullTransactions(): Retrieves donation data
    • pullSoftCredits(): Syncs soft credit information
    • pullScheduledDonations(): Updates recurring gifts
    • pullPledges(): Syncs pledge information
  2. Push Operations

    • pushDonor(): Updates donor information
    • pushTransaction(): Creates/updates donations
    • pushCampaign(): Manages campaign data
    • pushSoftCredit(): Updates soft credits
    • pushPledge(): Manages pledge data
  3. 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:

  1. Data Synchronization

    • Use the provided pull/push methods for data operations
    • Respect the synchronization patterns
    • Handle merge operations through the dedicated methods
  2. Field Mapping

    • Use the field options attributes for mapping
    • Follow the established field naming conventions
    • Maintain mapping consistency across objects
  3. Error Handling

    • Monitor integration logs
    • Handle API rate limits appropriately
    • Implement proper error recovery
  4. 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