SNOW-CSA Application Rules, ACL and Notifications Practice Question
A company has a custom table 'u_employee_data' with a before query business rule that sets 'u_department' to 'Engineering' when the current user is in the 'ITIL' role. After the business rule is activated, users in the 'ITIL' role report that when they query the table, they see only records with department 'Engineering'. However, the business rule is intended to set the default department for new records only. What is the most likely cause?
⚠ Common exam trap
Watch out — candidates often confuse 'before query' with 'before insert' because both involve setting field values, but 'before query' affects all retrieved records while 'before insert' only affects new record creation.
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 business rule is running on 'before query' instead of 'before insert'.
The business rule is configured to run on the 'before query' operation, which means it executes every time a query is made against the 'u_employee_data' table. This causes the condition to set the 'u_department' field to 'Engineering' for all records returned by the query, effectively filtering the result set to only those with that department. The intended behavior is to set the default department only when a new record is created, which requires the business rule to run on the 'before insert' operation instead.
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 should be set to 'async' to avoid affecting queries.
Why it's wrong here
Async would not change the behavior; the rule would still apply to queries.
- ✗
The business rule is set to run on the client side instead of server side.
Why it's wrong here
Business rules run server-side by default.
- ✓
The business rule is running on 'before query' instead of 'before insert'.
Why this is correct
Before query modifies the query for all retrievals, not just new records.
- ✗
The condition script uses 'gs.getUser().hasRole("ITIL")' incorrectly.
Why it's wrong here
This is a standard way to check role, so it's likely correct.
Go deeper
Related to this question
About these practice questions
Courseiva writes every SNOW-CSA question from scratch — 504 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-CSA 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-CSA exam.