Loading

Salesforce Apex Trigger Not Firing After Approval Process Completion — Checkbox Field Update Workaround

Дата публикации: May 1, 2026
Описание

An Apex trigger configured to fire on a Salesforce object (such as Case) does not automatically execute when a record is approved through an Approval Process, unless a field on the record is updated as part of the approval action.

This article explains why this occurs and describes how to use a custom checkbox field update within the Approval Process to indirectly trigger the Apex trigger logic.

Решение

When a record is approved through an Approval Process, the process completes without performing a standard DML save operation that would invoke Apex triggers. To cause a trigger to fire after approval, a field update action must be part of the approval step, which performs a DML update on the record and allows the trigger to execute.

Solution: Use a Checkbox Field to Trigger Apex Logic

Steps to Implement

  1. Create a custom checkbox field on the object (for example, a field named Is_Approved__c of type Checkbox).
  2. In the Approval Process, add a Field Update in the Final Approval Actions to set the Is_Approved__c field to True when the record is approved.
  3. In the Apex trigger, add an IF condition that checks whether the Is_Approved__c field has changed to True before executing the trigger logic. This ensures the trigger logic only fires as a result of the approval action, not on every record update.

 

Sample Code: 

trigger CreateRecord on Case (after insert) {

        for (Case c : Trigger.new) {
            if (Check_ Box__c = true) {
            // Define parameters to be used in calling Apex Class
            String objectType ='Case';  
            String objectId = c.id;
            String projectKey = 'SFDC'; 
            String issueType = '1';     
            // Calls the actual callout to create another record.
            SFDCSampleWebserviceCalloutCreate.createRecord(PARAM1, PARAM2, PARAM3);
        }
    }


Disclaimer: The approach described in this article is a sample pattern and is not an officially supported Salesforce solution. If the implementation breaks in a future release, Salesforce Support cannot provide a working solution for custom Apex code. Such requests are out of scope for Salesforce Support.

 

Номер статьи базы знаний

000383878

 
Загрузка
Salesforce Help | Article