Bulkification of an Apex trigger

In Salesforce development, bulkification is a critical concept that every developer should be familiar with. It is the process of designing Apex code to handle large volumes of data in a single execution. The goal of bulkification is to optimize the performance of your Apex code and avoid governor limits.

What are Governor Limits?

Salesforce imposes governor limits to prevent any single Apex transaction from monopolizing shared resources. These limits are designed to ensure that no single transaction uses too much CPU time, heap memory, database resources, or other system resources. The governor limits apply to all Apex code, including triggers, batch processes, and scheduled jobs.

Why is Bulkification Important?

Salesforce recommends bulkifying your Apex code for several reasons. First, it optimizes the performance of your code by reducing the number of transactions and database operations needed to process large volumes of data. Second, it avoids exceeding governor limits and causing errors or failures in your code.

Bulkifying Apex Code - An Example

Let's take a look at an example of bulkifying Apex code. In this example, we will build a trigger that updates related records when a contact is updated. However, instead of processing one record at a time, we will bulkify the trigger to process all records in a single transaction.

Step 1: Identify the Trigger

Identify the Trigger

Step 2: Collect the IDs of Related Records

Next, we need to collect the IDs of related records that need to be updated. We can do this by creating a set of IDs that we will populate with the related record IDs.

Collect the IDs

Step 3: Query the Related Records

Now that we have the IDs of the related records, we can query for them using a single SOQL query. This reduces the number of database operations needed to update the records.

SOQL query

Step 4: Update the Related Records

Finally, we can update the related records using a loop that updates each record in the list.

Related Records


In this blog post, we have learned about the importance of bulkifying Apex code in Salesforce. We have seen how to identify the trigger that needs to be bulkified, collect the IDs of related records, query the related records, and update the related records.