sObject に挿入、更新、削除などのイベントが生じる前後で処理をコーディングすることができる。

例えば、請求書の宛先データができたときに、明細データを作成するなどの機能を開発することができる。

trigger myAccountTrigger on Account (before insert, before update) {
  if (Trigger.isInsert) {

  }

  if (Trigger.isUpdate) {
    for(Account a: Trigger.new)
      if (a.name == 'bad') 
        a.name.addError('Bad name'); // prevent update
  }
}

Trigger.new 変数は、挿入、更新対象へアクセスでき、Trigger.old 変数は、更新または削除にアクセスできます。