SNOW-CAD Practice Question: Automating application logic with business rules and scripts
A business rule on the Incident table should send an email notification when the state changes to 'Resolved'. Which two conditions should be checked in the business rule script? (Choose two.)
⚠ Common exam trap
The trap here is that candidates often pick only option B, forgetting that `changesTo()` can return true on insert if the field is set to that value, so the additional `current.operation() == 'update'` condition is necessary to restrict the rule to updates only, which is the intended behavior for a state transition notification.
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
✓
current.state.changesTo('Resolved')
The `changesTo()` method in GlideRecord checks if the specified field has changed to a specific value during the current transaction. This is the precise way to detect a state transition to 'Resolved'. Option C is also correct because it adds the `current.operation() == 'update'` condition, which ensures the business rule only fires on update operations, preventing false triggers on insert or delete. Together, these two conditions guarantee the email is sent only when an existing record's state is updated to 'Resolved'.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
current.state == 'Resolved'
Why it's wrong here
Incorrect; this is true on load even if already resolved, not just on change.
- ✓
current.state.changesTo('Resolved')
Why this is correct
Correct; this specifically checks if state changes to Resolved.
- ✓
current.state.changesTo('Resolved') && current.operation() == 'update'
Why this is correct
Correct; this combines the change check with an operation check to avoid triggers on insert.
- ✗
current.state.changes()
Why it's wrong here
Incorrect; this triggers on any state change, not just to Resolved.
- ✗
current.state.changesFrom() != 'Resolved'
Why it's wrong here
Incorrect; this checks if the previous state was not Resolved, but does not check the new state.
Visual reference
Go deeper
Related to this question
About these practice questions
Courseiva writes every SNOW-CAD question from scratch — 481 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. 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.