Loading
Salesforce now sends email only from verified domains. Read More
Help Agent Performance DegradationRead More
Nonprofit Success Pack (NPSP) Managed Package
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Apex Class Descriptions for NPSP

          Apex Class Descriptions for NPSP

          Below is a list of Apex classes managed by Table-Driven Trigger Management (TDTM) along with a description of each. Some classes appear multiple times because more than one Trigger Handler can reference the same class.

          Important
          Important Use these descriptions to help inform your decisions when using TDTM. In order to answer technical questions about how a class works, refer to our GitHub code repository.
          Object Class Name Description
          Account ACCT_Accounts_TDTM

          For inserted or updated Accounts, this class checks the Account Model selected in NPSP Settings and sets these system fields:

          • npe01__SYSTEM_AccountType__c
          • npe01__SYSTEMISINDIVIDUAL__c

          Based on NPSP Household Naming Settings, the class also updates Household Names on any Household Accounts in the transaction (if necessary).

          Account ACCT_AccountMerge_TDTM

          This class supports data management during the Account Merge process. When Accounts are merged, the class:

          • Updates the Account Name, and Formal and Informal Greeting fields
          • Recalculates Household Soft Credits
          • Recalculates Opportunity rollups
          • Deletes duplicate Addresses and propagates the Default Address to the appropriate Account and Contacts
          Account ACCT_CascadeDeleteLookups_TDTM When you delete an Account, this class deletes Recurring Donations, Allocations, and Relationships that are related to the Account through various lookup fields.
          Account ADDR_Account_TDTM When you update the values on Billing Address fields (Billing Street, Billing City, etc), this class creates related Address records for Accounts that have Address Management enabled (in NPSP Settings). This class is suppressed when inserting new Household Contacts, as ACCT_IndividualAccounts_TDTM creates the Address.
          Account AFFL_Affiliations_TDTM When you populate or update the Primary Contact field on an Organization Account, this class creates or updates Affiliation records. The class copies the Title from the related Primary Contact and sets the Affiliation Role field to the same value. The class also sets the Affiliation Status to Current.
          Account_Soft_Credit__c OPP_AccountSoftCredit_TDTM In orgs with Multiple Currencies enabled, this class syncs Account Soft Credit CurrencyIsoCode with its related Opportunity. This class also blocks manual CurrencyIsoCode changes made directly to the Account Soft Credit.
          Address__c ADDR_Addresses_TDTM When you insert or update an Address record, this class updates related Account and Contact records. Specifically, this class updates the Account Billing Address fields with the current Seasonal Address or Default, clears the Default Address on non-default Addresses, and updates the Contact addresses with the current Seasonal or Default (if there is no override). This class is suppressed when inserting new Household Contacts, as ACCT_IndividualAccounts_TDTM sets the Current Address value on the new Contact.
          Address__c ADDR_Validator_TDTM If automatic Address verification is enabled, this class sets each Address's Verification Status to Pending or Verification Required. This class then calls the verification service, sends the Address to the service, and updates the Address record using the returned values.
          Affiliation__c AFFL_Affiliations_TDTM This class handles changes to the Primary Affiliation field on related Contacts when you insert, update, delete, or undelete an Affiliation record.
          Allocation__c ALLO_Allocations_TDTM

          When you create or update a GAU Allocation record, this class prevents Allocations from exceeding the parent Amount, and calculates Amount for percentage-based Allocations.

          For Recurring Donation Allocations, the class updates any open Opportunity's Allocations. It also replaces any pre-existing Allocations from a related Campaign with the Recurring Donation Allocations.

          Allocation__c ALLO_PaymentSync_TDTM In orgs with Payment Allocations enabled, this class syncs changes between Opportunities and Payment Allocations.
          AutoNumber__c AN_AutoNumber_TDTM In orgs with Batch Number enabled, this class adds the batch number to an NPSP Data Import Batch record when the batch is created. See Configure Batch Numbers for Donations for information on enabling Batch Number.
          Campaign ALLO_Multicurrency_TDTM

          When you update the CurrencyIsoCode on a Campaign, this class updates the CurrencyIsoCode to the same value on all related child GAU Allocations.

          This class only applies to orgs using Multiple Currencies. Advanced Currency Management is not supported.

          Campaign CAM_CascadeDeleteLookups_TDTM When you delete a Campaign, the class deletes all related GAU Allocation records.
          CampaignMember REL_Relationships_Cm_TDTM When Relationships Autocreation is configured for the Campaign Member object, this class creates Relationship records per the configured values.
          Contact ACCT_IndividualAccounts_TDTM

          This class implements the appropriate Account Model: Household, One-to-One, or Individual Bucket. When you insert a Contact, this class is called and creates a related Household Account, One-to-One Account, or adds the Contact to the Individual bucket Account. If address information is provided on the Contact, this class creates a related Address record.

          This class also updates Household Account Name, Primary Contact, and recalculation of rollups.

          Contact ADDR_Contact_TDTM This class implements Address Management on Contacts in Household Accounts. When you insert a Contact with address information or update a Contact's address information, this class creates a new default Address record (unless Address Override is set).
          Contact AFFL_Affiliations_TDTM

          When you populate or update the Primary Affiliation field on a Contact, the class:

          • Creates a new primary Affiliation record
          • Copies the Title from the related Contact to the Role field on the Affiliation
          • Sets the Primary field on the Affiliation to true
          • Sets the Primary field to false for all existing primary Affiliations
          • Sets the Status, Start Date, and End Date fields
          Contact CON_CascadeDeleteLookups_TDTM When you delete a Contact, this class deletes all related Relationships.
          Contact CON_ContactMerge_TDTM

          This class supports data management during the Contact Merge process. When you merge Contacts, this class:

          • Updates the Account Name, Formal, and Informal Greeting fields
          • Reparents Opportunities to the Account of the merged Contact
          • Recalculates Household Soft Credits
          • Recalculates Opportunity rollups
          • Deletes duplicate Affiliations
          • Deletes duplicate Relationships
          Contact CON_DoNotContact_TDTM

          This class updates fields on the Contact when you check the Deceased or Do Not Contact checkboxes.

          When you update Deceased to true on a Contact, this class sets Do Not Contact to true and removes the Contact from the Household Name.

          When you update Do Not Contact to true, this class sets Do Not Call and Email Opt Out to true.

          Contact HH_Households_TDTM

          When you insert, update, or delete a Contact, this class:

          • Creates a Household record for a newly inserted Contact (unless excluded by Record Type)
          • Updates the Household name to reflect changes to related Contact records (respects naming exclusions)
          • Deletes the Household if there are no Contacts related to it

          This class is only relevant if you're using the One-to-One or Individual Account model and are using the custom Household object (npo02_Household__c).

          Contact REL_Relationships_Con_TDTM

          This class implements Relationships Autocreation. If you configured Contact fields in Relationships Autocreation, this class inserts a Relationship record based on the configuration settings.

          When you delete a Contact, this class deletes all related Relationship records.

          Additionally, if you change the Gender field on Contact, the class updates the Relationship Type per Relationship configuration in NPSP Settings.

          DataImport__c BDI_DataImportBatchStatus_TDTM

          When you process a batch that uses the NPSP Data Import Batches object, this class updates the Batch Status field based on the Status of all NPSP Data Import records connected to the batch.

          NPSP Data Import Batches are used by Gift Entry batches and NPSP Data Import records that are connected to an NPSP Data Import Batch record.

          DataImportBatch__c BDI_DataImportBatch_TDTM

          This class sets Batch Status on the NPSP Data Import Batch object to Open when a new NPSP Data Import Batch record is created.

          NPSP Data Import Batches are used by Gift Entry batches and NPSP Data Import records that are connected to an NPSP Data Import Batch record.

          Engagement_Plan__c EP_EngagementPlans_TDTM When you insert an Engagement Plan, this class inserts related Tasks per the Engagement Plan Template configuration. The class also validates that at least one lookup is populated when creating an Engagement Plan.
          Engagement_Plan_Task__c EP_EngagementPlanTaskValidation_TDTM This class validates inserted or updated Engagement Plan Tasks to prevent recursion on dependent Tasks. It also ensures that dependent and parent Tasks belong to the same template.
          Form_Template__c BGE_FormTemplate_TDTM In Gift Entry, this class prevents a user from deleting a template if it's used for a batch.
          General_Accounting_Unit__c GAU_TDTM This class supports integration with other Salesforce.org products.
          Household__c HH_HHObject_TDTM This class handles changes to the Household Name, Formal Greeting, and Informal Greeting when you update a Household record. The class is only important in orgs using the One-to-One or Individual Bucket account and the Household object.
          Level__c LVL_Level_TDTM This class validates Level records to ensure that Levels don't overlap or have the same name as other Levels in their hierarchy. The class also ensures that there is no invalid data on amount fields or the Level Field.
          Opportunity ALLO_Allocations_TDTM This class creates GAU Allocations on the Opportunity by copying from a related Campaign or Recurring Donation, and creates a default GAU (if enabled). This class also updates existing Allocations if you change the Opportunity Amount or Currency.
          Opportunity CRLP_Rollup_TDTM When Customizabel Rollups are enabled, this class implements hard credit rollups. When you insert, update, delete or undelete an Opportunity, the class determines if rollups to the parent Account, Contact and/or General Accounting Unit objects are necessary (based on your rollup settings) and performs the rollup.
          Opportunity HH_OppContactRoles_TDTM If Household Contact Roles are enabled in NPSP Settings, this class creates Opportunity Contact Roles for Household Members upon insert of an Opportunity. Upon update of an Opportunity's Household Account, this class updates Opportunity Contact Roles.
          Opportunity MTCH_Opportunity_TDTM When you update an Opportunity's Stage to a Closed/Won Stage, this class queries for Opportunities related through the Matching Gift field, where Matching Gift Status is not Received, and updates their value to Received.
          Opportunity OPP_CampaignMember_TDTM This class creates Campaign Members on a related Campaign based on the insert or update of an Opportunity record. The class uses Opportunity Contact Roles marked Primary to determine which Campaign Member to create. The Campaign Member Status is set using Primary Contact Campaign Member Status on the Opportunity or using the NPSP Settings for Campaign Member Responded Status (if Opportunity is Closed/Won) and Campaign Member Non Responded Status (if Opportunity is not Closed Won).
          Opportunity OPP_CascadeDeleteLookups_TDTM When you delete an Opportunity, this class deletes all related GAU Allocation records.
          Opportunity OPP_OpportunityContactRoles_TDTM

          On Opportunity insert, this class creates Opportunity Contact Role records. It also updates the Opportunity Name based on Opportunity Naming configuration in NPSP Settings. On Opportunity update, this class syncs changed Honoree fields, as well as Opportunity Contact Role/Primary Contact.

          Additionally, this class implements key aspects of automated soft credits. The class creates Opportunity Contact Roles based on related Relationships, Affiliations, and the Contact Role for Organizational Opps setting in NPSP Settings.

          Opportunity PMT_Payment_TDTM This class performs several operations related to Payments and Opportunities. If Automatic Payment Creation is enabled in NPSP Settings, this class inserts a Payment record upon insertion of an Opportunity record. Once all Payments are marked Paid, it updates the Opportunity's Stage to Closed/Won. When an Opportunity's Stage updates to Closed/Lost, any unpaid Payments are written off.
          Opportunity PSC_Opportunity_TDTM

          This class updates related Partial Soft Credits' Currency if an Opportunity's Currency changes.

          This class only applies to orgs using Multiple Currencies.

          Opportunity RD_RecurringDonations_Opp_TDTM This class handles updates to a Recurring Donation when related Opportunities are inserted or updated. This class updates these Recurring Donations fields: Next Payment Date, Last Payment Date, Paid Amount, and Number of Paid Installments.
          Opportunity RD2_RecurringDonationsOpp_TDTM This class implements automation for installment Opportunities related to Enhanced Recurring Donations, including Elevate and multi-currency support.
          Opportunity RLLP_OppRollup_TDTM This class implements Account and Contact donation rollups when you insert, update, or delete an Opportunity.
          OppPayment__c ALLO_Allocations_TDTM In orgs with Payment Allocations enabled, this class creates Allocations and copies data from the related Opportunity, Campaign or Recurring Donation and creates Allocations when Default Allocations are enabled. Also updates existing Allocations if the Payment amount or currency is changed.
          OppPayment__c CRLP_Rollup_TDTM When Customizable Rollups are enabled, this class implements hard credit rollups. When you insert, update, delete or undelete a Payment, the class determines if rollups to the parent Account, Contact and/or General Accounting Unit objects are necessary (based on your rollup settings) and performs the rollup.
          OppPayment__c PMT_CascadeDeleteLookups_TDTM When you delete a Payment, this class deletes all related GAU Allocation records.
          OppPayment__c PMT_Payment_TDTM

          This class performs validation that prevents a Payment from having both Paid and Written Off selected at the same time.

          The class also sets the Currency of the Payment to the Currency of the related Opportunity.

          Partial_Soft_Credit__c PSC_PartialSoftCredit_TDTM This class handles inserts or updates to Opportunity Contact Roles based on the insert or update of Partial Soft Credit records.
          Recurring_Donation__c ALLO_Multicurrency_TDTM

          When you update the CurrencyIsoCode on a Recurring Donation, this class updates the CurrencyIsoCode field on all related child GAU Allocations to the same value.

          This class only applies to orgs using Multiple Currencies. Advanced Currency Management is not supported.

          Recurring_Donation__c RD_CascadeDeleteLookups_TDTM When you attempt to delete a Recurring Donation, this class checks for any Closed/Won Opportunities and prevents deletion if found. Otherwise, the class deletes the Opportunities, the Recurring Donation Allocations, and its Opportunities' Allocations.
          Recurring_Donation__c RD_RecurringDonations_TDTM This class inserts, updates, or deletes Opportunities when you insert a Recurring Donation or when you change field data on the Recurring Donation.
          Recurring_Donation__c RD2_RecurringDonations_TDTM This class implements automation for Enhanced Recurring Donations including schedule modifications, validation, and various field updates.
          Relationship__c REL_Relationships_TDTM This class implements reciprocal relationship behavior on Relationship records when you insert, update, or delete Relationship records.
          Task EP_TaskDependency_TDTM This class updates Status, Due Date, and sends email for dependent Tasks related to an Engagement Plan when a Task's Status updates to Closed.
          Task EP_TaskRollup_TDTM This class updates the Total Tasks and Total Completed Tasks fields on Engagement Plan records when you insert or update the Status field of related Task records.
          User USER_InActiveUser_TDTM

          This class handles the deactivation of a System Administrator by performing the following tasks:

          1. Sets the Error Notification Recipients to 'All Sys Admins' when set to the deactivated System Administrator.
          2. Logs an Error record to the Error Log when the deactivated System Administrator is the owner of Scheduled Jobs.
          3. Sends an email to the org's System Administrators when the deactivated System Administrator is the owner of Scheduled Jobs.
          Note
          Note Special thanks to Lexa Koenig, Samuel De Rycke, Steven Hugo, David Habib, and Jess Lopez for their contributions to this document.
           
          Loading
          Salesforce Help | Article