function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion

Maximum No. of trigger on one object



Can anybody tell me that

How many trigger we can make on one object ? 


i think there is no limit on number of triggers


You might want to consider designing the triggers on your objects to where you have only one trigger per object, and your methods are kept in a separate library class.  This will help keep your logic more manageable and allow you to control the flow of execution on your triggers.  If you have several triggers on the same object there is no guarantee as to what order they will be executed.  


For example you might have one trigger on Opportunity that looks like this.


trigger OpportunityTrigger on Opportunity( before insert, before update, before delete, after insert, after update, after delete ) {


             if( Trigger.isBefore) {

                if( Trigger.isInsert )     OpportunityHandler.beforeInsert( Trigger.New );

                if( Trigger.isUpdate )  OpportunityHandler.beforeUpdate( Trigger.oldMap, Trigger.newMap );

                if( Trigger.isDelete )   OpportunityHandler.beforeDelete( Trigger.Old );

            } else {

               // same concept here for after triggers




Then, your trigger handler class would look like this.


public with sharing class OpportunityHandler {


            // Public Methods called by the trigger


            public static void beforeInsert( List<Opportunity> trigg ) {

                         doSomething( trigg );

                         doSomethingElse( trigg );



            public static void beforeUpdate( Map<Id, Opportunity> oldMap, Map<Id, Opportunity> newMap ) {

                        doSomethingBeforeUpdate( oldMap, newMap );

                        doSomethingElseBeforeUpdate( oldMap, newMap );



           // repeat for all trigger contexts //



           // Private Methods


          private static void doSomething( List<Opportunity> opps ) {

                       // do something here 



          // add the rest here



Hope that helps!


~ Clint