Triggers Fundamentals

Share

Trigger Events & Context Variables

What Is a Trigger?

A Trigger is Apex code that runs automatically when a record is inserted, updated, deleted, or restored.

Simple Explanation

A trigger is like a motion sensor—when data changes, the trigger reacts.


Trigger Events (When Triggers Fire)

Common trigger events:

  • before insert

  • before update

  • after insert

  • after update

  • before delete

  • after delete

  • after undelete

Real-Life Example

When a new employee joins, HR automatically creates an ID card.
? New record inserted → trigger runs.


Basic Trigger Syntax

trigger AccountTrigger on Account (before insert, after update) {
    // logic here
}

Trigger Context Variables

Context variables tell you what is happening inside the trigger.

Variable Meaning
Trigger.new New version of records
Trigger.old Old version of records
Trigger.isInsert Insert event
Trigger.isUpdate Update event
Trigger.isBefore Before trigger
Trigger.isAfter After trigger

Example Using Context Variables

trigger AccountTrigger on Account (before insert) {
    for (Account acc : Trigger.new) {
        acc.Name = acc.Name.toUpperCase();
    }
}

Gist (Quick Revision)

Triggers run automatically on data changes, and context variables tell you what changed and when.


Before Triggers vs After Triggers

Before Triggers

What Are Before Triggers?

Before triggers run before the record is saved to the database.

When to Use Them

  • Modify field values

  • Validate data

  • Set default values


Real-Life Example

Correct a name spelling before saving it.

Code Example

trigger BeforeAccountTrigger on Account (before insert) {
    for (Account acc : Trigger.new) {
        acc.Rating = 'Warm';
    }
}

After Triggers

What Are After Triggers?

After triggers run after the record is saved.

When to Use Them

  • Create related records

  • Update other objects

  • Perform actions needing record ID


Real-Life Example

After an Order is placed, create an Invoice.

Code Example

trigger AfterAccountTrigger on Account (after insert) {
    List<Contact> contacts = new List<Contact>();
    for (Account acc : Trigger.new) {
        contacts.add(new Contact(
            LastName = 'Primary',
            AccountId = acc.Id
        ));
    }
    insert contacts;
}

Key Differences (Easy to Remember)

Before Trigger After Trigger
Modify same record Work with related records
No DML needed DML often required
Faster & efficient Requires record ID

Gist (Quick Revision)

  • Before triggers → change the same record

  • After triggers → act on related data

  • January 6, 2026