SNOW-CAD Practice Question: Automating application logic with business rules and scripts
A company has a business rule that should update the 'priority' field on the Incident table whenever the 'impact' field is changed to 'High'. However, the business rule is not firing. The business rule is set to run 'before' insert/update, with condition 'current.impact.changes()'. The 'impact' field is of type 'choice' with values 'Low', 'Medium', 'High'. Which of the following is the most likely cause?
⚠ Common exam trap
ServiceNow often tests the subtle difference between `changes()` and `changesTo()` in business rules, where candidates mistakenly assume `changes()` works on insert when it only detects changes from a prior value.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
The condition 'current.impact.changes()' returns false on insert because the previous value is null.
The condition `current.impact.changes()` checks if the field value has changed from a previous value. On an insert, the previous value is null, so the condition returns false even when the impact is set to 'High'. This prevents the business rule from firing on insert, which is a common pitfall when using `changes()` without also checking for the new value.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
The business rule is set to run 'after' instead of 'before'.
Why it's wrong here
Running 'after' or 'before' does not prevent the condition from being evaluated; it would still fire if condition is true.
- ✗
The script uses 'gs.addErrorMessage()' which stops execution.
Why it's wrong here
gs.addErrorMessage() does not stop execution; it only displays a message.
- ✗
The business rule is inactive.
Why it's wrong here
If inactive, it would not fire at all, but the question implies it's active but not firing under the condition.
- ✓
The condition 'current.impact.changes()' returns false on insert because the previous value is null.
Why this is correct
On insert, the previous value is null, so 'changes()' returns false. The condition should be modified to handle both insert and update.
Go deeper
Related to this question
About these practice questions
One of 481 original SNOW-CAD practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This SNOW-CAD practice question is part of Courseiva's free ServiceNow certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the SNOW-CAD exam.