---
schema_version: "1"
id: e9941362330430849f793dc4a6d404de4419d6a4a9bef6bdd953729a7d1307bd
title: Disable Trigger Handlers for EDA
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/sfdo/264-0-0/eda_disable_trigger_handlers.md
canonical_url: https://help.salesforce.com/s/articleView?id=sfdo.eda_disable_trigger_handlers.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 95a984bbcd3cee7f9afc134024a9ff1a88bb66e484d672cea716ded09c468547
description: To successfully run custom code, a large data import, or an external integration, you sometimes need to disable TDTM Trigger Handlers.
products:
  - Education
release: "264"
---
# Disable Trigger Handlers for EDA

To successfully run custom code, a large data import, or an external integration, you sometimes need to disable TDTM Trigger Handlers.

- **[Disable Trigger Handlers](https://help.salesforce.com/s/articleView?id=sfdo.eda_disable_trigger_handlers.htm&release=264.0.0&type=5)**  
    Review examples of when you can disable trigger handlers.
- **[Disable Trigger Handlers for All Users](https://help.salesforce.com/s/articleView?id=sfdo.eda_disable_trigger_handlers.htm&release=264.0.0&type=5)**  
    You typically disable a Trigger Handler for all users if you have a custom process or custom code that replace functionality. You may also disable a Trigger Handler for all users if you have a use case that requires that the standard behavior of an Apex class not occur for all users.
- **[Disable Trigger Handlers for Specific Users](https://help.salesforce.com/s/articleView?id=sfdo.eda_disable_trigger_handlers.htm&release=264.0.0&type=5)**  
    In cases where you have a custom integration with another system, or need to perform periodic imports of data where you don't need certain Trigger Handlers to run, you can disable a Trigger Handler for specific users.
- **[Disable Trigger Handlers with Field Criteria](https://help.salesforce.com/s/articleView?id=sfdo.eda_disable_trigger_handlers.htm&release=264.0.0&type=5)**  
    You can disable a Trigger Handler based on the value of a field found on the object that the Trigger Handler is associated with, or a field value on a related record.
- **[Disable Trigger Handlers with Apex](https://help.salesforce.com/s/articleView?id=sfdo.eda_disable_trigger_handlers.htm&release=264.0.0&type=5)**  
    Sometimes it's necessary to temporarily disable Trigger Handlers only during the execution of Apex code. NPSP offers two ways to achieve this depending on whether you want to disable specific Trigger Handlers or all Trigger Handlers at once.
- **[Disable Trigger Handlers](https://help.salesforce.com/s/articleView?id=sfdo.eda_disable_trigger_handlers.htm&release=264.0.0&type=5)**  
    Review examples of when you can disable trigger handlers.
- **[Disable Trigger Handlers for All Users](https://help.salesforce.com/s/articleView?id=sfdo.eda_disable_trigger_handlers.htm&release=264.0.0&type=5)**  
    You typically disable a Trigger Handler for all users if you have a custom process or custom code that replace functionality. You may also disable a Trigger Handler for all users if you have a use case that requires that the standard behavior of an Apex class not occur for all users.
- **[Disable Trigger Handlers for Specific Users](https://help.salesforce.com/s/articleView?id=sfdo.eda_disable_trigger_handlers.htm&release=264.0.0&type=5)**  
    In cases where you have a custom integration with another system, or need to perform periodic imports of data where you don't need certain Trigger Handlers to run, you can disable a Trigger Handler for specific users.
- **[Disable Trigger Handlers with Field Criteria](https://help.salesforce.com/s/articleView?id=sfdo.eda_disable_trigger_handlers.htm&release=264.0.0&type=5)**  
    You can disable a Trigger Handler based on the value of a field found on the object that the Trigger Handler is associated with, or a field value on a related record.
- **[Disable Trigger Handlers with Apex](https://help.salesforce.com/s/articleView?id=sfdo.eda_disable_trigger_handlers.htm&release=264.0.0&type=5)**  
    Sometimes it's necessary to temporarily disable Trigger Handlers only during the execution of Apex code. NPSP offers two ways to achieve this depending on whether you want to disable specific Trigger Handlers or all Trigger Handlers at once.

## Disable Trigger Handlers

Review examples of when you can disable trigger handlers.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_note.png)

Note If you need a refresher on the fundamentals of TDTM, read [Table-Driven Trigger Management Overview](https://help.salesforce.com/s/articleview?id=sfdo.eda_tdtm_overview.htm).

- Temporarily disable certain Apex classes when inserting a large volume of records with data that is already structured in its final format.
- Disable Address-related Apex code when inserting or updating Contacts through a scheduled ETL job that always runs as a specific User.
- Prevent the Primary Account lookups from changing on a Contact when that Contact meets certain criteria (such as Deceased=True).

It's helpful to know what each of the Apex classes do, so that you know which Trigger Handlers to disable. Visit [EDA Codebase Documentation](https://help.salesforce.com/s/articleview?id=sfdo.eda_apex_class_descriptions.htm) for a description of the Apex classes managed by TDTM (designated by `_TDTM` extension in the name.) Note that there are some classes that are not managed by TDTM, such as utility and settings classes.

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_important.png)

Important Be careful when changing Trigger Handler records. They're designed to work in conjunction, and changing or disabling them can lead to undesirable results. Always test in a Sandbox environment before changing Trigger Handlers in production!

## Disable Trigger Handlers for All Users

You typically disable a Trigger Handler for all users if you have a custom process or custom code that replace functionality. You may also disable a Trigger Handler for all users if you have a use case that requires that the standard behavior of an Apex class not occur for all users.

To disable a Trigger Handler:

1. Click the **Trigger Handler** tab. If you don't see it, find it in the App Launcher .
2. Click ![Down arrow icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/resources-product/images/show_more_actions_icon.png)in the row for the Trigger Handler you want to disable, and select **Edit**.
3. Deselect the **Active** checkbox.
4. For all NPSP EDA\-packaged Trigger Handlers, select the **User Managed** checkbox.
    
    ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_important.png)
    
    Important You must select User Managed to prevent the Trigger Handler from being reactivated during the next package update.
    
    ![Trigger Handler edit screen with Active unchecked and User Managed checked](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/resources-product/images/trigger_handler_deactivate.png)
5. Click **Save**.

To re-activate a Trigger Handler:

1. Select the **Active** checkbox.
2. Deselect **User Managed**.
3. Click **Save**.

For more information on editing Trigger Handlers, see [Edit a Trigger Handler](https://help.salesforce.com/s/articleview?id=sfdo.eda_manage_trigger_handlers.htm).

## Disable Trigger Handlers for Specific Users

In cases where you have a custom integration with another system, or need to perform periodic imports of data where you don't need certain Trigger Handlers to run, you can disable a Trigger Handler for specific users.

For example, let's say you have an external data source that already supplies an Account for Contacts. During the integration, you wouldn't want to run the code that creates Accounts (the ACCT\_IndividualAccounts\_TDTM class.) To stop that code from executing when the import runs, you would exclude the integration user from the Trigger Handler record for the ACCT\_IndividualAccounts\_TDTM class.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_note.png)

Note As a best practice, dedicate a user account, called an API User, for your integrations. That way, if an actual user leaves your organization, you'll always have an active user with the correct permissions available for your integration. Read [Create a Secure Salesforce API User](https://help.salesforce.com/articleview?id=000176281&type=1) in Salesforce Help for more information.

To disable Trigger Handlers for specific users:

1. Click the **Trigger Handler** tab. If you don't see it, find it in the App Launcher.
2. Click ![down arrow icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/resources-product/images/show_more_actions_icon.png)in the row for the Trigger Handler you want to disable, and select **Edit**.
3. Enter one or more usernames, separating each with a semicolon, in the **Usernames to Exclude** field. For example, integration@user.org;tester@user.org
    
    ![Trigger Handler edit page with Usernames to Exclude field populated.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/resources-product/images/tdtm-npsp-usernames-to-exclude.png)
4. Click **Save**.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_note.png)

Note If you don't see the Usernames to Exclude field, you may need to add it to your page layout and assure it's visible through field-level security. For information about updating your page layout, see [Display a New Custom Object After a Product Release](https://help.salesforce.com/s/articleview?id=sfdo.eda_display_cust_obj_post_rel.htm).

## Disable Trigger Handlers with Field Criteria

You can disable a Trigger Handler based on the value of a field found on the object that the Trigger Handler is associated with, or a field value on a related record.

The EDA Trigger Handler object contains two fields, Filter Field and Filter Value. Together, they allow you to disable a Trigger Handler when the value of a given field is present on a record.

For example, let's say that if a Contact's Title = Board President, you don't want the standard email and phone fields to update when the custom email and phone fields such as Home Phone, Work Phone, University Email, change. You plan to manage the standard email and phone fields manually in this example.

![Filter Field and Filter Value populated](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/resources-product/images/tdtm-eda-filter-field-example.png)

Find the Trigger Handler that controls this aspect of the platform automation. The Class field often provides a clue, but you can also read the [EDA Codebase Documentation](https://help.salesforce.com/s/articleview?id=sfdo.eda_apex_class_descriptions.htm) for more details. In our example, the Trigger Handler we want is `CON_Preferred_TDTM`.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_note.png)

Note As a best practice, check the **User Managed** checkbox if you are modifying an EDA Trigger Handler record.

When working with Filter Field and Filter Value:

- You can use only one field and one value for Filter Field & Filter Value.
- Use the API Name for Filter Field (such as `FirstName`, `MailingCity`, `Citizenship__c`).
- If you use an EDA packaged custom field, do not include the namespace prefix. For example use `Citizenship__c` not `hed__Citizenship__c`.
- If you use a third-party packaged custom field, DO include the namespace prefix.
- For Filter Value, the match is an exact character match. There aren't options for conditionals such as contains, starts with, and so on. However, the text is not case sensitive. New York City and new york city are evaluated the same way.
- For checkbox fields, use True or False in the Filter Value field.
- Fields on related records can be used in Filter Field. For example, on a Contact Trigger Handler, you can use `Account.BillingCity`.
- Leave Filter Value blank if you want to filter on a blank (null) value.
- Compound fields such as Address and Geolocation are not supported.

## Disable Trigger Handlers with Apex

Sometimes it's necessary to temporarily disable Trigger Handlers only during the execution of Apex code. NPSP offers two ways to achieve this depending on whether you want to disable specific Trigger Handlers or all Trigger Handlers at once.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_note.png)

Note This section is intended for developers and advanced admins who are familiar with Apex. The bottom line is that you can temporarily disable a Trigger Handler with code instead of editing the Trigger Handler records manually. You can't use SandboxPostCopy Interface to disable trigger handlers because the code runs before Salesforce creates the trigger handlers in the sandbox. If the options for disablement discussed earlier in this article don't address your use case, know that you can manage Trigger Handlers with code, too.

Sometimes it's necessary to temporarily disable specific Trigger Handlers only during the execution of Apex code. For example, you should do so at the start of unit tests when there’s a custom object in your org with the same API name as one released by EDA (such as Application\_\_c) and a TDTM Trigger Handler for that object. To achieve this, EDA uses the `TDTM_Global_API` class and its `tdtmToken` method that mirrors the fields on the Trigger Handler object. As such, you can disable Trigger Handlers directly in your code and only for the execution context of the current user.

The `tdtmToken` method has the following behaviors:

- Changes made to `tdtmToken` values persist throughout the execution context for the current User.
- Changes made to `tdtmToken` do not impact other Users working in the org at the same time.
- Changes made to `tdtmToken` are not committed to the database by EDA.

See the [EDA Codebase Documentation](https://help.salesforce.com/s/articleview?id=sfdo.eda_apex_class_descriptions.htm) for more information on the `TDTM_Global_API` class.

**Code example**:

```java

for (hed.TDTM_Global_API.TdtmToken tdtmToken : hed.TDTM_Global_API.getTdtmConfig()) {       
    // disable for a specific trigger handler class
        if (tdtmToken.className == 'Application_TDTM') {
            tdtmToken.active = false;
        }
    // disable for an entire object
         else if (tdtmToken.targetObject == 'Contact') {
            tdtmToken.active = false;
        }        
    // disable all EDA-provided trigger handlers
         else if (tdtmToken.ownedByNamespace == 'hed') {
            tdtmToken.active = false;
        }
        
    }
```

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_note.png)

Note Order of execution is important here. Let's say you create your own Apex trigger on the Contact object that disables all the Trigger Handlers on Contact. There is no guarantee that your trigger will run before or after TDTM does. Dealing with this scenario will vary depending on your specific use case. Consider execution order carefully in your code design.

## Disable Trigger Handlers

Review examples of when you can disable trigger handlers.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_note.png)

Note If you need a refresher on the fundamentals of TDTM, read [Table-Driven Trigger Management Overview](https://help.salesforce.com/s/articleview?id=sfdo.eda_tdtm_overview.htm).

- Temporarily disable certain Apex classes when inserting a large volume of records with data that is already structured in its final format.
- Disable Address-related Apex code when inserting or updating Contacts through a scheduled ETL job that always runs as a specific User.
- Prevent the Primary Account lookups from changing on a Contact when that Contact meets certain criteria (such as Deceased=True).

It's helpful to know what each of the Apex classes do, so that you know which Trigger Handlers to disable. Visit [EDA Codebase Documentation](https://help.salesforce.com/s/articleview?id=sfdo.eda_apex_class_descriptions.htm) for a description of the Apex classes managed by TDTM (designated by `_TDTM` extension in the name.) Note that there are some classes that are not managed by TDTM, such as utility and settings classes.

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_important.png)

Important Be careful when changing Trigger Handler records. They're designed to work in conjunction, and changing or disabling them can lead to undesirable results. Always test in a Sandbox environment before changing Trigger Handlers in production!

## Disable Trigger Handlers for All Users

You typically disable a Trigger Handler for all users if you have a custom process or custom code that replace functionality. You may also disable a Trigger Handler for all users if you have a use case that requires that the standard behavior of an Apex class not occur for all users.

To disable a Trigger Handler:

1. Click the **Trigger Handler** tab. If you don't see it, find it in the App Launcher .
2. Click ![Down arrow icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/resources-product/images/show_more_actions_icon.png)in the row for the Trigger Handler you want to disable, and select **Edit**.
3. Deselect the **Active** checkbox.
4. For all NPSP EDA\-packaged Trigger Handlers, select the **User Managed** checkbox.
    
    ![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_important.png)
    
    Important You must select User Managed to prevent the Trigger Handler from being reactivated during the next package update.
    
    ![Trigger Handler edit screen with Active unchecked and User Managed checked](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/resources-product/images/trigger_handler_deactivate.png)
5. Click **Save**.

To re-activate a Trigger Handler:

1. Select the **Active** checkbox.
2. Deselect **User Managed**.
3. Click **Save**.

For more information on editing Trigger Handlers, see [Edit a Trigger Handler](https://help.salesforce.com/s/articleview?id=sfdo.eda_manage_trigger_handlers.htm).

## Disable Trigger Handlers for Specific Users

In cases where you have a custom integration with another system, or need to perform periodic imports of data where you don't need certain Trigger Handlers to run, you can disable a Trigger Handler for specific users.

For example, let's say you have an external data source that already supplies an Account for Contacts. During the integration, you wouldn't want to run the code that creates Accounts (the ACCT\_IndividualAccounts\_TDTM class.) To stop that code from executing when the import runs, you would exclude the integration user from the Trigger Handler record for the ACCT\_IndividualAccounts\_TDTM class.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_note.png)

Note As a best practice, dedicate a user account, called an API User, for your integrations. That way, if an actual user leaves your organization, you'll always have an active user with the correct permissions available for your integration. Read [Create a Secure Salesforce API User](https://help.salesforce.com/articleview?id=000176281&type=1) in Salesforce Help for more information.

To disable Trigger Handlers for specific users:

1. Click the **Trigger Handler** tab. If you don't see it, find it in the App Launcher.
2. Click ![down arrow icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/resources-product/images/show_more_actions_icon.png)in the row for the Trigger Handler you want to disable, and select **Edit**.
3. Enter one or more usernames, separating each with a semicolon, in the **Usernames to Exclude** field. For example, integration@user.org;tester@user.org
    
    ![Trigger Handler edit page with Usernames to Exclude field populated.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/resources-product/images/tdtm-npsp-usernames-to-exclude.png)
4. Click **Save**.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_note.png)

Note If you don't see the Usernames to Exclude field, you may need to add it to your page layout and assure it's visible through field-level security. For information about updating your page layout, see [Display a New Custom Object After a Product Release](https://help.salesforce.com/s/articleview?id=sfdo.eda_display_cust_obj_post_rel.htm).

## Disable Trigger Handlers with Field Criteria

You can disable a Trigger Handler based on the value of a field found on the object that the Trigger Handler is associated with, or a field value on a related record.

The EDA Trigger Handler object contains two fields, Filter Field and Filter Value. Together, they allow you to disable a Trigger Handler when the value of a given field is present on a record.

For example, let's say that if a Contact's Title = Board President, you don't want the standard email and phone fields to update when the custom email and phone fields such as Home Phone, Work Phone, University Email, change. You plan to manage the standard email and phone fields manually in this example.

![Filter Field and Filter Value populated](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/resources-product/images/tdtm-eda-filter-field-example.png)

Find the Trigger Handler that controls this aspect of the platform automation. The Class field often provides a clue, but you can also read the [EDA Codebase Documentation](https://help.salesforce.com/s/articleview?id=sfdo.eda_apex_class_descriptions.htm) for more details. In our example, the Trigger Handler we want is `CON_Preferred_TDTM`.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_note.png)

Note As a best practice, check the **User Managed** checkbox if you are modifying an EDA Trigger Handler record.

When working with Filter Field and Filter Value:

- You can use only one field and one value for Filter Field & Filter Value.
- Use the API Name for Filter Field (such as `FirstName`, `MailingCity`, `Citizenship__c`).
- If you use an EDA packaged custom field, do not include the namespace prefix. For example use `Citizenship__c` not `hed__Citizenship__c`.
- If you use a third-party packaged custom field, DO include the namespace prefix.
- For Filter Value, the match is an exact character match. There aren't options for conditionals such as contains, starts with, and so on. However, the text is not case sensitive. New York City and new york city are evaluated the same way.
- For checkbox fields, use True or False in the Filter Value field.
- Fields on related records can be used in Filter Field. For example, on a Contact Trigger Handler, you can use `Account.BillingCity`.
- Leave Filter Value blank if you want to filter on a blank (null) value.
- Compound fields such as Address and Geolocation are not supported.

## Disable Trigger Handlers with Apex

Sometimes it's necessary to temporarily disable Trigger Handlers only during the execution of Apex code. NPSP offers two ways to achieve this depending on whether you want to disable specific Trigger Handlers or all Trigger Handlers at once.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_note.png)

Note This section is intended for developers and advanced admins who are familiar with Apex. The bottom line is that you can temporarily disable a Trigger Handler with code instead of editing the Trigger Handler records manually. You can't use SandboxPostCopy Interface to disable trigger handlers because the code runs before Salesforce creates the trigger handlers in the sandbox. If the options for disablement discussed earlier in this article don't address your use case, know that you can manage Trigger Handlers with code, too.

Sometimes it's necessary to temporarily disable specific Trigger Handlers only during the execution of Apex code. For example, you should do so at the start of unit tests when there’s a custom object in your org with the same API name as one released by EDA (such as Application\_\_c) and a TDTM Trigger Handler for that object. To achieve this, EDA uses the `TDTM_Global_API` class and its `tdtmToken` method that mirrors the fields on the Trigger Handler object. As such, you can disable Trigger Handlers directly in your code and only for the execution context of the current user.

The `tdtmToken` method has the following behaviors:

- Changes made to `tdtmToken` values persist throughout the execution context for the current User.
- Changes made to `tdtmToken` do not impact other Users working in the org at the same time.
- Changes made to `tdtmToken` are not committed to the database by EDA.

See the [EDA Codebase Documentation](https://help.salesforce.com/s/articleview?id=sfdo.eda_apex_class_descriptions.htm) for more information on the `TDTM_Global_API` class.

**Code example**:

```java

for (hed.TDTM_Global_API.TdtmToken tdtmToken : hed.TDTM_Global_API.getTdtmConfig()) {       
    // disable for a specific trigger handler class
        if (tdtmToken.className == 'Application_TDTM') {
            tdtmToken.active = false;
        }
    // disable for an entire object
         else if (tdtmToken.targetObject == 'Contact') {
            tdtmToken.active = false;
        }        
    // disable all EDA-provided trigger handlers
         else if (tdtmToken.ownedByNamespace == 'hed') {
            tdtmToken.active = false;
        }
        
    }
```

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-education_data_architecture-264-0-0-production-enus/6bcf23e4-1d0f-4cd5-8405-b8e231f03ed0/images/icon_note.png)

Note Order of execution is important here. Let's say you create your own Apex trigger on the Contact object that disables all the Trigger Handlers on Contact. There is no guarantee that your trigger will run before or after TDTM does. Dealing with this scenario will vary depending on your specific use case. Consider execution order carefully in your code design.