Preventing Assignees from Approving Their Own Changes

Mohammed Kemal
Tera Guru

Preventing Assignees from Approving Their Own Changes (No Script Needed)

Here’s a simple way which i proved it works for me to prevent assignees from being added as approvers to their own change requests—using just a Business Rule, with no scripting required. This can be done in many way but in this method the BR has to be created in Approval (sysapproval_approver) table:

This technique is:

  • Easy to configure

  • You can limit the source table (e.g., only for Change Requests)

Steps:

  1. Create a Business Rule that runs on Insert and Update.

  2. Set the conditions so that it only applies to the source table you want (like change_request).

    •  

      MohammedKemal_0-1746723502374.png

       

  3. In the condition builder, ensure you check:

    • If the Assigned To is the same as the user creating the record.

    • If so, prevent them from being added as an approver in the Actions tab (see bellow)

  4. MohammedKemal_1-1746723591658.png

    Done!! 

That’s it—no need for code! Once set up, the rule will stop the assignee from becoming an approver on their own changes. 

3 REPLIES 3

Juhi Poddar
Kilo Patron

Hello @Mohammed Kemal 

Great use of a Business Rule to prevent self-approval without the need for any scripting.

 

Thank You

Juhi Poddar

ServiceNowServ
Tera Contributor

@Mohammed Kemal - thanks for sharing. Will the approver will be added into the approvers list or it just get rejected?

MattCD
Tera Contributor

A heads up to anyone implementing this, while it does work if you are using a Flow to generate the approvals, your flow will go into an error state with something like: 
CreateApprovalRecords: Approval record was not created correctly for user 'ef8034d147bb8214f2888e8b416d4312' under group '46dc2b5adb1d6300555a755a8c96194c'

 

A cleaner solution is to set the state to cancelled.
You can add a script to the business rule and set 2 values:

 
    current.state = 'cancelled';
    current.comments = 'approval canceled for change assignee';

This will result in:

  • The user's approval getting inserted as cancelled 
  • a message that makes it transparent explaining why the approval was nullified
  • A flow that does not go return an error state