Basics of Apex Trigger for beginners

June 25, 2018

The basic logic of trigger is too huge to cover, I have tried a bit to make everyone understand that how this Apex trigger, a “pain” works, I’ll go step by step process of writing apex triggers.


What is Apex Triggers ?

A Trigger is Apex code that executes before or after the following types of operations:

  • insert
  • update
  • delete
  • merge
  • upsert
  • undelete

Types of Apex Triggers

  • Before Triggers: Before triggers can be used to update or validate record values before they are saved to the database.
  • After Triggers: After triggers can be used to access field values that are set by the database (such as a record’s Id or last Updated field), and to affect changes in other records, such as logging into an audit table or firing asynchronous events with a queue.

Example : before insert, after insert, before update, after update, before delete, after delete

Syntax of Trigger


Things to keep in mind while writing apex trigger

  • Bulkify your Code : Use Looping through Trigger’s collections variables instead of process through particular indexing.
  • All triggers are bulk triggers by default, and can process multiple records at a time.
  • Bulk triggers can handle both single record updates and bulk operations like: Data import, Bulk API calls.
  • Bulkify your Code : Use Looping through Trigger’s collections variables instead of process through particular indexing.
  • Avoid SOQL Queries or DML statements inside FOR Loops: An individual Apex request gets a maximum of 100 SOQL queries before exceeding that governor limit.
  • Bulkify your Helper Methods: if a trigger uses some Apex methods written in a helper class, it’s important that those shared Apex methods are properly designed to handle bulk records. These methods should be written to be invoked with a set of records, especially if the method has a SOQL query or DML operation.

Use @future appropriately:

Here is a list of governor limits specific to the @future annotation:

  • No more than 10 method calls per Apex invocation.
  • No more than 200 method calls per Salesforce license per 24 hours.
  • The parameters specified must be primitive datatypes, arrays of primitive datatypes, or collections of primitive datatypes.
  • Methods with the future annotation cannot take sObjects or objects as arguments.
  • Methods with the future annotation cannot be used in Visualforce.


Use efficient collection variable of apex triggers



Try using sets and maps to handle bulk record processing.




  • Always use helper class in your trigger, and in helper class perform all your logic. like below



  • Don’t write more than one trigger on an object, try to add up all your new trigger in a single trigger using different-different helper classes to read more click Order of Execution

There is allot to take care of when writing apex triggers, but I found these to helpful.

Hope this helps

Happy coding.!!!