Courseiva
Knowledge + Practice
CertificationsVendorsCareer RoadmapsLabs & ToolsStudy GuidesGlossaryPractice Questions
C
Courseiva

Free IT certification practice questions with explained answers for CCNA, CompTIA, AWS, Azure, Google Cloud, and more.

Certification Practice Questions

CCNA practice questionsSecurity+ SY0-701 practice questionsAWS SAA-C03 practice questionsAZ-104 practice questionsAZ-900 practice questionsCLF-C02 practice questionsA+ Core 1 practice questionsGoogle Cloud ACE practice questionsCySA+ CS0-003 practice questionsNetwork+ N10-009 practice questions
View all certifications →

Product

CertificationsCertification PathsExam TopicsPractice TestsExam Dumps vs Practice TestsStudy HubComparisons

Company

AboutContactEditorial PolicyQuestion Writing PolicyTrust Center

Legal

Privacy PolicyTerms of Service

Courseiva is a free IT certification practice platform offering original exam-style practice questions, detailed explanations, topic-based practice, mock exams, readiness tracking, and study analytics for Cisco, CompTIA, Microsoft, AWS, and other technology certifications.

© 2026 Courseiva. Courseiva is operated by JTNetSolutions Ltd. All rights reserved.

Courseiva is an independent certification practice platform and is not affiliated with, endorsed by, or sponsored by Cisco, Microsoft, AWS, CompTIA, Google, ISC2, ISACA, or any other certification vendor. Vendor names and certification marks are used only to identify the exams learners are preparing for.

HomeCertificationsSNOW-CADExam Questions

ServiceNow · Free Practice Questions · Last reviewed May 2026

SNOW-CAD Exam Questions and Answers

54real exam-style questions organised by domain, each with the correct answer highlighted and a plain-English explanation of why it's right — and why the others are wrong.

60 exam questions
90 min time limit
Pass: 700/1000 / 1000
9 exam domains
OverviewDomain BlueprintStudy GuideAll QuestionsSample by Domain
1. Working with Data2. Platform Features and Integration3. Integrating and managing application data4. Automating application logic with business rules and scripts5. Application development using ServiceNow Studio6. Creating and customizing tables and data7. Designing interfaces and user experiences8. Core Application Development9. User Interface Development
1

Domain 1: Working with Data

All Working with Data questions
Q1
mediumFull explanation →

A company is building a ServiceNow application to manage employee onboarding. They need to store personal data like social security numbers (SSNs) and medical information. Which data classification scheme should they apply to these fields to ensure proper encryption and access controls?

A

Confidential

B

Internal

C

Highly Confidential

Correct, this is the highest classification for sensitive personal data.

D

Public

Why: Option C is correct because 'Highly Confidential' is the ServiceNow data classification level designed for sensitive personal data such as social security numbers and medical information. This classification enforces mandatory encryption at rest and in transit, strict role-based access controls, and audit logging, aligning with regulatory requirements like GDPR and HIPAA.
Q2
hardFull explanation →

An administrator notices that a scheduled job, 'Update Asset Status', fails every night with a 'Script timeout' error. The job updates a large number of records in the Asset table. Which approach should the administrator take to resolve the timeout issue?

A

Add a business rule to run asynchronously for each update

B

Increase the timeout value in the scheduled job configuration

C

Split the job into multiple smaller jobs running sequentially

D

Rewrite the job to use GlideAggregate with query and update in bulk

Bulk database operations reduce script execution time.

Why: Option D is correct because the script timeout error indicates that the scheduled job is taking too long to process individual record updates. Rewriting the job to use GlideAggregate with bulk update operations reduces the number of database round-trips and processes records in batches, which is the standard approach for handling large data sets in ServiceNow without hitting script timeout limits.
Q3
easyFull explanation →

A developer needs to create a new table in ServiceNow to track project milestones. The table should have a reference field to the Project table and a date field for the milestone date. Which data type should be used for the reference field?

A

GlideRecord

B

Integer

C

String

D

Reference

Reference field links to a record in another table.

Why: Option D is correct because in ServiceNow, a reference field is specifically designed to create a relationship between two tables by storing the sys_id of the referenced record. This allows the developer to link a project milestone record to a specific project record in the Project table, enabling dot-walking and data integrity through referential integrity constraints.
Q4
mediumFull explanation →

During development, a developer creates a new application module and adds a table 'x_abc_incident' with a reference field to the 'sys_user' table. The developer wants to ensure that when a user is deleted, all related incident records are also deleted. What database constraint should be configured on the reference field?

A

Cascade delete

Cascade delete removes child records when parent is deleted.

B

No action

C

Restrict delete

D

Set null on delete

Why: Option A is correct because a cascade delete constraint ensures that when a record in the parent table (sys_user) is deleted, all child records in the referencing table (x_abc_incident) that have a foreign key pointing to that parent are automatically deleted. In ServiceNow, this is configured on the reference field's 'Delete constraint' property by selecting 'Cascade delete', which enforces referential integrity at the database level.
Q5
hardFull explanation →

A company has a custom table 'u_training_course' with a reference field to 'sys_user' named 'u_instructor'. The requirement is that only users with the 'instructor' role can be selected in this field. Which approach should be used to enforce this?

A

Create a business rule on the table to check the role and reject invalid selections

B

Add a reference qualifier on the field to filter users with the 'instructor' role

Reference qualifiers restrict the list dynamically.

C

Use a client script to validate the selection before form submission

D

Configure an ACL on the reference field to restrict write access

Why: Option B is correct because a reference qualifier is the declarative way to filter the records available in a reference field on ServiceNow. By adding a condition like 'roles=instructor' to the reference qualifier of the 'u_instructor' field, only users with the 'instructor' role will appear in the lookup, enforcing the requirement at the database query level without custom scripting.
Q6
easyFull explanation →

A developer needs to import data from a CSV file into a custom table. Which ServiceNow module should be used for this task?

A

Scheduled Jobs

B

Update Sets

C

Import Sets

Import Sets allow loading data from files and mapping fields.

D

Data Source

Why: Import Sets are the correct ServiceNow module for importing data from a CSV file into a custom table. They provide a structured pipeline that maps CSV columns to table fields, with staging tables for validation before final insertion. This is the standard approach for one-time or recurring data imports in ServiceNow.

Want more Working with Data practice?

Practice this domain
2

Domain 2: Platform Features and Integration

All Platform Features and Integration questions
Q1
mediumFull explanation →

A company is integrating ServiceNow with an external system using REST API. The integration is failing with a 401 Unauthorized error. The integration user's credentials are correct and the user has the 'rest_service' role. What is the most likely cause of the failure?

A

The password for the integration user does not meet complexity requirements.

B

The integration user does not have the 'rest_api' role.

C

The OAuth token used for authentication has expired or is invalid.

401 Unauthorized indicates authentication failure; expired/invalid OAuth token is a common cause.

D

The integration is hitting a table ACL that denies read access.

Why: A 401 Unauthorized error indicates that the request lacks valid authentication credentials. Since the integration user's credentials are correct and the user has the 'rest_service' role, the most likely cause is that the OAuth token used for authentication has expired or is invalid. ServiceNow REST API integrations commonly use OAuth 2.0 tokens, which have a finite lifetime and must be refreshed or reissued upon expiration.
Q2
easyFull explanation →

An administrator wants to enable inbound email integration to automatically create incidents from emails sent to support@company.com. What is the first step in configuring this?

A

Enable the Email Integration plugin.

B

Configure an email account (mailbox) to receive emails.

The first step is to set up an email account (mailbox) to receive emails, then create inbound actions.

C

Create an inbound email action.

D

Create an ACL to allow email processing.

Why: The first step in configuring inbound email integration is to set up an email account (mailbox) that the instance can connect to and retrieve emails from. Without a configured mailbox, the instance has no source from which to pull incoming messages, making subsequent steps like creating inbound email actions or enabling plugins meaningless. This mailbox configuration defines the IMAP or POP3 server, credentials, and folder settings that the platform uses to poll for new emails.
Q3
hardFull explanation →

A ServiceNow instance is being integrated with an external HR system using a SOAP message. The SOAP call is failing intermittently. The developer notices that the XML payload contains special characters like '&' and '<'. What is the best practice to handle these characters in SOAP messages?

A

Wrap the payload in a CDATA section.

B

Encode the entire payload in Base64.

C

Use URL encoding for the payload.

D

Escape the characters using XML entities (e.g., &amp; for &).

Escaping special characters ensures well-formed XML and is the standard practice.

Why: SOAP messages are XML-based, and special characters like '&' and '<' must be escaped using XML entities (e.g., &amp; for &, &lt; for <) to maintain valid XML syntax. This ensures the XML parser correctly interprets the payload without breaking the message structure, which is the standard practice per the XML specification and SOAP protocol.
Q4
easyFull explanation →

A company wants to allow their customers to submit requests via email. The email should create a new record in the 'Request' table. Which component should be used to define the mapping of email fields to the ServiceNow table fields?

A

Inbound Email Action

Inbound email actions define conditions and scripts to map email fields to table fields.

B

Email Account

C

Inbound Email Script

D

Email Notification

Why: An Inbound Email Action is the correct component because it defines the mapping of email fields (e.g., subject, body, sender) to ServiceNow table fields (e.g., 'Short description', 'Description', 'Caller'). It uses a script or condition to parse the incoming email and create or update records in a specified table, such as the 'Request' table. This is the standard mechanism for turning an email into a ServiceNow record.
Q5
mediumFull explanation →

A developer is building a REST API endpoint in ServiceNow to return data from the 'incident' table. The API should only return incidents assigned to the caller. Which method should be used to filter the records based on the caller's user ID?

A

Use the 'sysparm_display_value' parameter.

B

Use the 'sysparm_query' parameter with an encoded query.

sysparm_query allows filtering using encoded queries.

C

Use the 'sysparm_limit' parameter to limit results.

D

Use the 'sysparm_fields' parameter to specify fields.

Why: Option B is correct because the 'sysparm_query' parameter allows you to pass an encoded query string to filter records in a REST API endpoint. By specifying a query like 'assigned_to=javascript:gs.getUserID()' or using the caller's sys_id directly, you can restrict the incident records returned to only those assigned to the caller. This is the standard method for applying dynamic filters in ServiceNow REST API calls.
Q6
hardFull explanation →

Which TWO of the following are valid methods to authenticate a REST API call to ServiceNow?

A

SAML assertion authentication.

B

LDAP authentication.

C

Basic Authentication with username and password.

Basic Authentication is supported.

D

API Key authentication.

E

OAuth 2.0 authentication.

OAuth 2.0 is supported for REST API.

Why: Option C is correct because ServiceNow supports Basic Authentication, where the REST API call includes an HTTP Authorization header with a Base64-encoded string of 'username:password'. This is a straightforward method for authenticating API requests, though it requires HTTPS to avoid exposing credentials in plaintext.

Want more Platform Features and Integration practice?

Practice this domain
3

Domain 3: Integrating and managing application data

All Integrating and managing application data questions
Q1
mediumFull explanation →

A company needs to integrate ServiceNow with an external HR system using REST API. The HR system requires OAuth 2.0 client credentials grant. Which ServiceNow application should be used to configure this integration?

A

REST API Explorer

B

Flow Designer

C

REST API Message

REST API Messages allow configuration of outbound REST calls, including OAuth authentication.

D

IntegrationHub

Why: Option C is correct because REST API Message is the dedicated ServiceNow application for defining and managing outbound REST integrations, including OAuth 2.0 client credentials grant. It allows you to configure the authentication profile, endpoint URL, HTTP method, and request/response handling in a structured, reusable way, making it the appropriate choice for integrating with an external HR system via REST API.
Q2
easyFull explanation →

A ServiceNow admin is troubleshooting a data import from an external database via JDBC. The import runs successfully but only loads partial data. Which is the most likely cause?

A

The scheduled import job was interrupted by another job

B

The transform map has a filter that excludes certain records

C

The field mapping is incorrect and some fields are not being populated

D

The JDBC driver has a default row limit that caps the number of records imported

ServiceNow JDBC imports have a default limit of 50,000 rows, which can be adjusted in the datasource configuration.

Why: JDBC drivers often impose a default row limit (e.g., 10,000 rows) to prevent memory overload during data retrieval. When importing from an external database via JDBC, this limit caps the number of records returned, causing only partial data to load even though the import job completes successfully. The admin must explicitly set the fetch size or disable the row limit in the JDBC URL or driver configuration to import all records.
Q3
hardFull explanation →

An organization uses ServiceNow Discovery to populate the CMDB. They notice that some CI relationships are missing after a discovery run. The discovery logs show no errors. What is the most likely cause?

A

The MID server credentials do not have permission to query relationship data

B

The CI Class Manager does not have the correct relationship types defined for the discovered CIs

The CI Class Manager defines which relationships are possible between CI classes. If a relationship type is missing, it won't be created.

C

The discovery probes are not configured to capture relationships

D

The CMDB is set to read-only mode

Why: Option B is correct because the CI Class Manager defines which relationship types are valid for each CI class. If the relationship types are not defined or incorrectly configured, Discovery will not create those relationships even if the probes run successfully and no errors are logged. The absence of errors indicates the discovery process completed normally, but the missing relationships are due to missing or incorrect relationship definitions in the CI Class Manager.
Q4
easyFull explanation →

A company is integrating ServiceNow with an external ticketing system using a custom REST API. The integration should push updates from ServiceNow to the external system when a change request is approved. Which ServiceNow feature is best suited for this?

A

REST API Explorer

B

Business Rule with outbound REST call

Business Rules can trigger on record updates and make outbound REST calls using the RESTMessageV2 API.

C

Access Control List (ACL)

D

Scheduled Job

Why: A Business Rule with an outbound REST call is the best fit because it triggers automatically on the 'approved' state change of a change request and can execute a synchronous or asynchronous REST API call to the external ticketing system. This allows real-time push of updates without manual intervention or polling, directly meeting the requirement to push updates upon approval.
Q5
mediumFull explanation →

Which TWO actions should a developer take when designing an inbound email integration in ServiceNow to ensure proper data mapping? (Choose two.)

A

Set up an ACL to allow the email user to write to the target table

B

Ensure the email includes an attachment with the data

C

Configure the inbound email action to trigger on the appropriate table

The inbound action must be associated with the table where records will be created or updated.

D

Create a connection to the external email server

E

Use the email parsing script to extract fields from the email body

Scripts can parse structured data (e.g., JSON) from the email body.

Why: Option C is correct because inbound email actions in ServiceNow are configured to trigger on a specific target table, which defines where the incoming email data will be mapped and stored. This ensures that the email processing logic is applied to the correct table, enabling proper data mapping and field extraction.
Q6
hardFull explanation →

A developer is creating a REST API integration that retrieves data from an external system and updates ServiceNow records. Which THREE considerations are critical for handling authentication securely? (Choose three.)

A

Enable credential monitoring in the Security Operations Center

B

Configure the external system to authenticate ServiceNow requests

C

Store credentials in the ServiceNow Credential Store instead of scripts

The Credential Store encrypts and manages secrets, reducing exposure.

D

Use OAuth2.0 with refresh tokens for long-lived access

Refresh tokens allow secure renewal without storing long-lived secrets.

E

Ensure the REST endpoint uses HTTPS

HTTPS encrypts data in transit, preventing interception.

Why: Storing credentials directly in scripts exposes them to unauthorized access and makes rotation difficult. The ServiceNow Credential Store securely encrypts and manages credentials, allowing scripts to reference them by alias without hardcoding sensitive data, which is a fundamental security best practice for REST API integrations.

Want more Integrating and managing application data practice?

Practice this domain
4

Domain 4: Automating application logic with business rules and scripts

All Automating application logic with business rules and scripts questions
Q1
mediumFull explanation →

A developer writes a business rule to run on 'before' update of the Incident table. The rule sets a short description only if it is empty. However, the short description is never set even when it's empty. What is the most likely cause?

A

The developer used gs.setValue() instead of current.setValue().

gs.setValue() is not a valid method; current.setValue() must be used to set field values in business rules.

B

The business rule runs after the database update.

C

The condition 'short_description IS EMPTY' is evaluated on the old value.

D

The business rule is set to run on insert only.

Why: The correct answer is A because in ServiceNow business rules, `gs.setValue()` is a GlideSystem method that does not exist for setting field values on the current record. The proper method is `current.setValue()`, which directly modifies the field on the current GlideRecord object. Using `gs.setValue()` would result in no change to the short description, even if the condition is met.
Q2
easyFull explanation →

A company needs to automatically update the 'Assignment group' field on the Change Request table to 'Change Management' when the 'Category' field is set to 'Network'. Which type of business rule should be used?

A

Display business rule

B

Async business rule

C

After business rule

D

Before business rule

Before rules run before the database write and can set field values that will be saved.

Why: A Before business rule (Option D) is correct because it runs before the record is saved to the database, allowing you to set the 'Assignment group' field value based on the 'Category' field before the insert or update operation completes. This ensures the assignment group is correctly populated in the same database transaction, avoiding the need for a separate update.
Q3
hardFull explanation →

A developer creates a business rule on the Incident table that executes a GlideRecord query to update related records. The rule runs on 'after' update and queries the Problem table to set a field. However, the update is not being committed. What is the most likely reason?

A

The developer forgot to use gr.insert() instead of gr.update().

B

The GlideRecord query requires an explicit gr.updateMultiple() or gr.commit() to persist changes.

When updating multiple records, gr.updateMultiple() is needed to commit all changes at once.

C

After business rules cannot update other tables.

D

The query returns more than 100 records, causing a governor limit.

Why: In ServiceNow, when a GlideRecord query is used in an 'after' business rule to update records on another table, the changes are not automatically committed. The developer must explicitly call gr.updateMultiple() to persist updates to multiple records, or gr.update() for a single record. Option B correctly identifies this requirement, as the update is not being committed without an explicit method call.
Q4
mediumFull explanation →

A developer needs to create a business rule that runs only when the 'State' field of an Incident changes from 'New' to 'In Progress'. Which condition script should be used?

A

current.state.changes() && current.state.changesFrom('New')

This correctly checks that the state changed and the previous value was 'New'.

B

current.state == 'New' && current.state.changesTo('In Progress')

C

current.state.changes() && previous.state == 'New'

D

current.state.changesTo('In Progress')

Why: Option A is correct because it uses both `current.state.changes()` to verify the field has changed and `current.state.changesFrom('New')` to ensure the previous value was 'New'. This combination precisely captures the transition from 'New' to any other state, which when combined with the business rule's 'when to run' condition (set to 'In Progress' in the rule's filter or script), ensures the rule fires only when the state changes from 'New' to 'In Progress'.
Q5
hardFull explanation →

A company has a business rule on the Task table that runs on 'before' insert. The rule uses current.gotoField('short_description') and current.setValue('short_description', 'Default'). The rule is ordered to run at 500. However, a second business rule on the same table with order 100 also sets the short_description. What will be the final value of short_description?

A

'Default'

The rule with order 500 runs last and sets the value to 'Default'.

B

Both values will be concatenated

C

The value set by the rule at order 100

D

The field will be empty because gotoField() clears it

Why: Option A is correct because business rules execute in ascending order based on their 'order' field. The rule at order 100 runs first and sets the short_description. Then the rule at order 500 runs and overrides that value with 'Default' using current.setValue(). Since both are 'before' insert rules, the final value written to the database is the one set by the last-executed rule, which is order 500.
Q6
easyFull explanation →

Which TWO of the following are valid ways to trigger a business rule? (Choose two.)

A

Form load

B

Insert

Business rules can run on insert.

C

Timer event

D

Update

Business rules can run on update.

E

Inbound email receipt

Why: Business rules in ServiceNow can be triggered by database operations such as Insert and Update. These are the core 'when to run' conditions that fire the rule before or after a record is created or modified in the database. Options B and D are correct because they directly correspond to these fundamental database operations.

Want more Automating application logic with business rules and scripts practice?

Practice this domain
5

Domain 5: Application development using ServiceNow Studio

All Application development using ServiceNow Studio questions
Q1
mediumFull explanation →

A developer is creating a custom application in ServiceNow Studio and wants to ensure that the application can be easily installed in other instances without conflicts. Which approach should the developer follow?

A

Develop the application in global scope and manually copy components to target instances.

B

Use the 'Application' module in the navigator to create a new application without scope.

C

Create the application with a unique scope prefix in Studio and export as a scoped application.

Scoped applications provide isolation and easy distribution.

D

Create the application in the global scope and use update sets for distribution.

Why: Option C is correct because creating an application with a unique scope prefix in ServiceNow Studio ensures that all application artifacts (tables, scripts, UI elements) are isolated within that scope, preventing naming conflicts with other applications. Exporting as a scoped application allows the application to be installed in other instances via the ServiceNow Store or manual import, preserving its scope isolation and dependencies.
Q2
easyFull explanation →

A developer needs to add a new table to an existing scoped application in ServiceNow Studio. What is the correct sequence of steps?

A

Open Studio, select the application, click 'Create Application File', choose 'Table', and define the table.

This is the standard method to add a table to a scoped application in Studio.

B

Navigate to 'Tables' module, create a new table, and then assign it to the application.

C

Open Studio, select the application, navigate to 'System Definition' > 'Tables' and create the table.

D

Open Studio, go to 'Application Files', click 'New', select 'Table' and configure.

Why: Option A is correct because in ServiceNow Studio, the proper workflow to add a new table to an existing scoped application is to open Studio, select the application, click 'Create Application File', choose 'Table', and then define the table. This ensures the table is created within the application scope, maintaining proper application isolation and metadata association.
Q3
hardFull explanation →

A developer is troubleshooting a business rule in a scoped application that is not triggering. The rule is set to run 'before' query, with condition 'current.state == 1'. The table has read ACLs that restrict access. What is the most likely reason the business rule is not executing?

A

The condition 'current.state == 1' is incorrect syntax.

B

Another business rule with higher order is preventing execution.

C

The user does not have read access to the records, so the query does not execute the rule.

Before query rules run only if the user can access the records.

D

The business rule is scoped and cannot access the table.

Why: Business rules that run 'before query' execute when a query is made against the table. If the user lacks read access due to ACL restrictions, the query itself is not permitted, so the business rule never triggers. This is because the platform's security layer evaluates ACLs before executing business rules, preventing the rule from running when the user cannot read the records.
Q4
easyFull explanation →

A developer wants to use ServiceNow Studio to create a client script that runs when a form loads and sets a field value based on the current user's department. Which type of client script should be used?

A

onLoad client script

onLoad runs when the form is opened.

B

onChange client script

C

onSubmit client script

D

onCellEdit client script

Why: An onLoad client script runs automatically when a form is opened, making it the correct choice for setting a field value based on the current user's department at the time the form loads. This script type executes in the browser after the form data is retrieved but before the user interacts with the form, allowing immediate field population.
Q5
mediumFull explanation →

A developer is building a custom application that requires a scheduled job to run every hour and check for overdue tasks. In ServiceNow Studio, what is the best way to implement this?

A

Set up a REST API endpoint that external cron jobs call every hour.

B

Create a Business Rule that runs on 'after' insert and update to check for overdue tasks.

C

Use Flow Designer to create a scheduled flow that runs every hour.

D

Create a Scheduled Job in Studio that runs every hour and executes a script to check overdue tasks.

Scheduled Jobs are designed for periodic execution.

Why: Option D is correct because ServiceNow Studio provides a native 'Scheduled Jobs' module that allows developers to create and manage recurring server-side scripts directly within the IDE. This approach leverages the platform's job scheduler, which runs on the node's clock and integrates with the glide system, ensuring reliable hourly execution without external dependencies or performance overhead from transactional triggers.
Q6
hardFull explanation →

A developer is creating a scoped application and needs to reference a global table (e.g., 'sys_user') from a business rule. Which TWO statements are true regarding cross-scope access?

A

Scoped applications can create records in global tables via GlideRecord without restrictions.

B

Scoped applications can call global script includes by default.

C

To write to a global table, the application must be granted the 'global' scope or have appropriate ACLs.

Writing requires explicit permission.

D

Scoped applications can update global tables without any additional configuration.

E

Scoped applications can read global tables using the 'global.' prefix.

Reading global tables is allowed by default.

Why: Option C is correct because scoped applications operate within an access control framework that restricts direct writes to global tables. To write to a global table like 'sys_user', the application must either be granted the 'global' scope (which removes scoping restrictions) or have appropriate ACLs that explicitly allow the write operation. Without these, a scoped application's GlideRecord write will fail due to cross-scope access controls enforced by the ServiceNow platform.

Want more Application development using ServiceNow Studio practice?

Practice this domain
6

Domain 6: Creating and customizing tables and data

All Creating and customizing tables and data questions
Q1
mediumFull explanation →

A developer is creating a custom table for tracking hardware assets. The table must have fields for asset tag, serial number, and purchase date. The developer wants to ensure that the asset tag is automatically generated using a prefix followed by an incrementing number. Which approach should the developer use?

A

Use a calculated value that dot-walks to a number table

B

Set the default value of the asset tag field to 'AST-' + sys_id

C

Create a business rule that calculates the asset tag using a script that increments a counter

A business rule can generate a unique, incrementing asset tag.

D

Configure a dictionary override on the asset tag field to auto-generate

Why: Option C is correct because ServiceNow does not have a built-in auto-increment field type, so a business rule must be used to generate a sequential asset tag. The script typically queries the table for the maximum existing number, increments it, and prepends the prefix (e.g., 'AST-0001'). This ensures uniqueness and proper sequencing without relying on sys_id, which is not sequential.
Q2
hardFull explanation →

An organization has a custom table 'u_incident_task' that extends 'task'. They need to allow users to create records in this table from the 'Incidents' module. The 'u_incident_task' table should appear as a related list on the incident form. However, the related list is not showing the 'New' button. What is the most likely cause?

A

There is no reference field on 'u_incident_task' pointing to the incident table

A reference field is needed to associate records and enable creation.

B

The table is in a different application scope

C

The table does not extend 'incident'

D

The user does not have the required role

Why: The 'New' button appears on a related list only when there is a reference field on the target table (u_incident_task) that points back to the source table (incident). Without this reference field, the platform cannot automatically populate the parent record's sys_id when creating a new child record, so it suppresses the 'New' button. This is a core requirement for related list creation in ServiceNow.
Q3
easyFull explanation →

A developer needs to create a new table to store custom survey responses. The table should have a field to store the survey name and a field to store the response text. The developer wants to ensure that the table is available in the 'Surveys' application module. Which property must be set on the table?

A

Application scope

B

Table name

C

Table label

D

Application module

This defines the module where the table appears.

Why: The Application module property determines which application module a table belongs to, making it visible and accessible within that module's scope. Setting this to 'Surveys' ensures the table appears in the Surveys application module, as required by the developer.
Q4
hardFull explanation →

A developer is working with a custom table 'u_project_task' that has a reference field 'u_project' pointing to the 'project' table. The developer wants to create a new field 'u_category' that lists values from a choice list, but the list should be filtered based on the value of 'u_project.u_type'. Which field type should be used?

A

Choice field with a dependent choice list

Dependent choice lists allow filtering based on a parent field.

B

Choice field with a static choice list

C

Calculated value using a script

D

Reference field to a table of categories

Why: Option A is correct because a choice field with a dependent choice list allows the list of values in 'u_category' to be dynamically filtered based on the value of another field, in this case 'u_project.u_type'. This is the standard ServiceNow approach for creating cascading or conditional choice lists without custom scripting.
Q5
mediumFull explanation →

A company has a custom table 'u_employee' with fields: 'first_name', 'last_name', 'department'. They want to create a unique index on the combination of 'last_name' and 'department' to prevent duplicate entries. Where should this index be defined?

A

In the table schema map

B

In the table's dictionary record via the Indexes related list

Indexes are added to the table's dictionary.

C

In the dictionary entry for each field

D

In the sys_dictionary table directly

Why: In ServiceNow, a unique index on a custom table is defined in the table's dictionary record via the Indexes related list. This is the correct location because ServiceNow uses the table's dictionary metadata to manage indexes, and the Indexes related list allows you to specify unique constraints directly on the table definition, ensuring the database enforces uniqueness on the combination of 'last_name' and 'department'.
Q6
hardFull explanation →

A developer needs to create a new table that will store confidential employee feedback. The table must have the following characteristics: (1) Only authorized HR users can read the records. (2) The table should use the 'task' model to leverage assignment and state fields. (3) The table should be accessible via web services for integration. Which TWO actions are required to meet these requirements?

A

Set the 'table' access policy to 'Internal'

B

Extend the 'incident' table instead of 'task'

C

Enable the 'Allow web service access' property on the table

D

Extend the 'task' table

Task provides assignment and state fields.

E

Create ACLs on the table to restrict read access to HR users

ACLs enforce record-level security.

Why: Option D is correct because extending the 'task' table allows the new table to inherit the assignment and state fields required by the 'task' model. This is the standard approach in ServiceNow for creating tables that leverage task-related functionality, such as assignments and workflow states.

Want more Creating and customizing tables and data practice?

Practice this domain
7

Domain 7: Designing interfaces and user experiences

All Designing interfaces and user experiences questions
Q1
mediumFull explanation →

A ServiceNow developer is designing a portal for end users to submit requests. The requirements state that users should be able to track the status of their requests and receive notifications when the status changes. Which combination of ServiceNow features best meets these requirements?

A

Service Portal and Access Controls (ACLs)

B

Service Portal and Catalog Client Scripts

C

Service Portal and Notifications

Service Portal provides the interface; Notifications send status updates.

D

Service Portal and UI Policies

Why: Service Portal provides the user interface for request submission and tracking, while Notifications (via the Notification and Event Management framework) automatically send email or in-app alerts when a record's status changes. This combination directly fulfills both the tracking and notification requirements without adding unnecessary complexity.
Q2
hardFull explanation →

A developer is troubleshooting a Service Portal widget that loads slowly. The widget uses a server script that queries a large table without any filters. Which design change would most improve performance?

A

Add client-side caching using $scope

B

Load the widget using ng-if instead of ng-show

C

Create a custom table with only required fields

D

Add a filter condition in the GlideRecord query

Filtering reduces the result set, improving query performance.

Why: Option D is correct because adding a filter condition to the GlideRecord query reduces the dataset retrieved from the database, minimizing network transfer and server-side processing time. Without filters, the query returns all rows from a large table, causing excessive load on the instance and slow widget rendering. Filtering at the database level is the most efficient way to improve performance in Service Portal widgets.
Q3
easyFull explanation →

A developer needs to create a field on the Incident form that shows a red background when the priority is 'Critical'. Which feature should be used?

A

UI Policy

UI Policies can change field attributes like style based on conditions.

B

Business Rule

C

Access Control (ACL)

D

Client Script

Why: UI Policy is the correct choice because it allows you to set a field's background color conditionally on the client side without a round trip to the server. In this case, you can create a UI Policy that triggers when the Priority field equals 'Critical' and use the 'Style' property to apply a red background to the Incident form field. This approach is efficient and directly meets the requirement for a visual indicator based on a field value.
Q4
mediumFull explanation →

A Service Portal widget displays a list of catalog items. Each catalog item should link to a record producer that opens in a modal dialog. Which approach should the developer use to open the modal?

A

Use $scope.$broadcast to trigger a modal event

B

Use spModal.open with the record producer sys_id

C

Use $uibModal.open to create a modal with a custom template

$uibModal is the Angular UI Bootstrap service for modals.

D

Use window.open to open the record producer URL

Why: Option C is correct because Service Portal widgets use AngularJS, and the standard way to open a modal with a custom template (such as a record producer form) is via `$uibModal.open`. This method allows the developer to specify a controller, template, and resolve data, giving full control over the modal's behavior and content. Record producers are typically rendered inside a custom template, not directly via a sys_id parameter.
Q5
hardFull explanation →

A developer is designing a custom application with a table that stores sensitive employee data. The requirement is that only managers can view records where they are the manager of the employee. Which two configurations are needed to implement this requirement?

A

Use a UI Policy to set fields to read-only or invisible for non-managers

UI Policies can set field attributes like visible or read-only based on conditions.

B

Create an ACL with a condition script that checks if the logged-in user is the manager of the record's employee

ACLs control read access based on conditions.

C

Create a new view that excludes sensitive fields

D

Create a Business Rule that deletes records if the user is not the manager

E

Use a Client Script to hide fields if the user is not the manager

Why: Option A is correct because UI Policies can be configured to set fields as read-only or invisible based on conditions, such as the user's role or relationship to the record. This allows non-managers to see the record but prevents them from viewing sensitive fields, aligning with the requirement to restrict visibility at the field level.
Q6
easyFull explanation →

Which three elements are required to create a Service Portal widget that displays data from a table?

A

A widget dependency

B

An HTML template

Defines the widget's user interface.

C

A server script (Server-side script)

Fetches data from the database.

D

A CSS stylesheet

E

A client controller (AngularJS)

Manages client-side logic and data binding.

Why: An HTML template is required because it defines the structure and layout of the widget's user interface. In Service Portal, the HTML template uses AngularJS directives to bind data from the server script and client controller, enabling dynamic rendering of table records.

Want more Designing interfaces and user experiences practice?

Practice this domain
8

Domain 8: Core Application Development

All Core Application Development questions
Q1
mediumFull explanation →

A company has a custom table 'u_asset' with a reference field 'u_location' pointing to 'cmn_location'. When a user changes the location on an asset record, the system must automatically update the location on all related 'u_asset_software' records. Which approach should the developer use?

A

Create a Client Script that runs on load to update related records.

B

Create an ACL to automatically propagate changes.

C

Create a Business Rule that runs on update of the 'u_asset' table and updates related records.

Business Rules run server-side and can update related records.

D

Create a UI Policy that sets the location field on related records.

Why: Option C is correct because a Business Rule that runs on the 'update' operation of the 'u_asset' table can directly query and update all related 'u_asset_software' records using GlideRecord. This server-side logic ensures the location change is propagated reliably, regardless of how the asset record is updated (UI, web service, import set, etc.), and it executes within the same database transaction for data consistency.
Q2
hardFull explanation →

A developer needs to create a new application scope. Which of the following is a best practice when defining the scope?

A

Set the scope to 'Protected' to prevent other applications from modifying its records.

Protected scope prevents unauthorized modifications.

B

Use the global scope to avoid access restrictions.

C

Use a scope name that is already in use to leverage existing configurations.

D

Create the scope and later change the name if needed.

Why: Setting the scope to 'Protected' is a best practice because it prevents other applications from modifying the application's records while still allowing the application to access records from other scopes. This balances security and interoperability, ensuring that the application's data integrity is maintained without unnecessarily restricting cross-scope access.
Q3
easyFull explanation →

A developer wants to send an email notification when a new incident is created. Which component should be configured to trigger the notification?

A

Use Flow Designer to create a flow that sends an email.

B

Write a Business Rule that calls the email utility.

C

Create a Notification record with the condition 'New' and 'Action: record inserted'.

Notifications are the standard way to send emails on record events.

D

Create an ACL with email action.

Why: Option C is correct because in ServiceNow, the native Notification mechanism is specifically designed to send emails based on conditions like 'New' and 'Action: record inserted'. When a new incident is created, the system evaluates the notification's condition; if it matches, the notification triggers automatically without requiring custom scripting or flow design. This is the standard, out-of-box approach for email alerts on record creation.
Q4
hardFull explanation →

An application has a custom table 'u_project' with a field 'u_status' (choice list: Not Started, In Progress, Completed). The developer wants to prevent any update to the record if the status is 'Completed'. Which approach should be used?

A

Create a Database View that filters out Completed records.

B

Create a Client Script that sets the field to read-only when status is Completed.

C

Create a Business Rule with condition 'current.u_status.changesTo("Completed")' and set 'current.setAbortAction(true)' in the script.

Business Rules can abort actions before they occur.

D

Create a UI Policy to disable the entire form when status is Completed.

Why: Option C is correct because a Business Rule with the condition `current.u_status.changesTo('Completed')` triggers only when the status field transitions to 'Completed', and `current.setAbortAction(true)` aborts the database update operation at the server level, ensuring that no update can persist regardless of client-side behavior. This approach enforces the restriction server-side, which is essential for data integrity because client-side scripts can be bypassed.
Q5
easyFull explanation →

A developer is creating a catalog item that requires a user to upload a file. Which variable type should be used?

A

Attachment

Attachment variable type allows file uploads.

B

Multi Line Text

C

Single Line Text

D

Checkbox

Why: The Attachment variable type is specifically designed for file uploads in ServiceNow catalog items. It provides a built-in file picker and stores the uploaded file as an attachment on the requested record, enabling users to submit documents directly through the catalog form.
Q6
mediumFull explanation →

A company has a custom table 'u_incident_task' that extends 'task'. The developer wants to add a field 'u_approval' that is a reference to 'sysapproval_approver'. Which method is the correct way to create this field?

A

Create a 'List' field type and set the table to sysapproval_approver.

B

Create a 'Reference' field and set the reference table to 'sysapproval_approver'.

This creates a proper reference to the sysapproval_approver table.

C

Create a 'Reference' field and set the table to 'task' and the reference field to 'sysapproval_approver'.

D

Create a 'Choice' field and populate it with sysapproval_approver values.

Why: Option B is correct because a Reference field is designed to create a link from one table to another, storing the sys_id of the target record. Since 'u_approval' needs to point to a specific record in the 'sysapproval_approver' table, a Reference field with the reference table set to 'sysapproval_approver' is the appropriate method. This ensures referential integrity and allows the platform to resolve display values and enforce relationships.

Want more Core Application Development practice?

Practice this domain
9

Domain 9: User Interface Development

All User Interface Development questions
Q1
mediumFull explanation →

A developer is asked to add a custom button to the Service Portal form for the 'incident' table. The button should trigger a client script that displays a confirmation dialog before submitting the form. Which approach should the developer use?

A

Create a UI Policy on the incident table with a client script that shows the button conditionally.

UI Policy can conditionally display UI elements and run client scripts.

B

Create an Access Control Rule (ACL) on the incident table and attach a client script.

C

Create a Business Rule on the incident table that injects a button via server-side code.

D

Create a UI Action on the incident table with a client script and set the 'Show insert' condition.

Why: Option A is correct because UI Policies in Service Portal allow you to define client-side conditions and scripts that can dynamically show or hide UI elements like buttons. By creating a UI Policy on the incident table with a client script, you can conditionally display a custom button that triggers a confirmation dialog before form submission, leveraging the client-side execution context without server round-trips.
Q2
hardFull explanation →

A Service Portal widget is failing to update a reference field on a form after a user selects a value from a reference picker. The developer reviews the widget's client controller and sees the following code snippet: $scope.c.data.selectedItem = value; The server script expects 'selectedItem' to be a sys_id string, but it is receiving an object. What is the most likely cause?

A

The server script expects the parameter in a different scope variable, like $scope.c.data.item.

B

The $scope.c.data assignment is incorrect; it should be $scope.data.

C

The client controller is not allowed to set $scope.c variables.

D

The reference field returns an object with 'value' and 'display' properties; the code should extract the sys_id.

Reference fields return an object; the sys_id is typically in value or sys_id property.

Why: Option D is correct because when a reference picker returns a value in Service Portal, it typically provides an object containing both the display value and the sys_id (e.g., {value: 'sys_id', display: 'name'}). The client controller code assigns this entire object to $scope.c.data.selectedItem, but the server script expects a plain sys_id string. The developer must extract the sys_id property (e.g., value.sys_id or value.value) before assigning it to the scope variable.
Q3
easyFull explanation →

When configuring a Service Portal page, a developer wants to ensure that a specific widget appears only to users with the 'itil' role. Which approach should be used?

A

Pass a role check from the server script to the client controller via widget options.

B

Write an Access Control Rule (ACL) on the widget's table to restrict access.

C

Set the 'Roles' property on the widget instance within the page designer.

The Roles property restricts widget visibility to specified roles.

D

Create a UI Policy on the portal table that hides the widget based on user roles.

Why: Option C is correct because the 'Roles' property on a widget instance within the Service Portal page designer directly controls which roles can view that specific widget. This is the intended declarative approach for role-based visibility at the widget instance level, without requiring custom scripting or ACLs.
Q4
mediumFull explanation →

A developer is designing a custom form in the standard UI (UI16) and needs to add a message that displays only when the 'state' field is 'Closed'. Which feature should be used to achieve this without custom scripting?

A

Create a UI Policy that adds a message when the condition state=Closed is true.

UI Policies can conditionally display messages without scripting.

B

Create a form section and set its condition via the 'Conditional' property.

C

Write a Client Script that shows a message when state changes to Closed.

D

Use a UI Macro with a condition that checks the state field.

Why: UI Policies are the correct declarative feature in UI16 to show a message based on a field value without custom scripting. They run on the client side and can display informational, warning, or error messages when a specified condition (like state=Closed) is met, making option A the appropriate choice.
Q5
hardFull explanation →

A Service Portal widget is not updating data on the page after the user clicks a button that calls a server-side function. The client controller uses $scope.server.get() to call the server. The server script updates a global variable in glideRecord and returns it. However, the widget view does not reflect the change. What is the most likely issue?

A

The widget template is not bound to the correct scope variable.

B

The client controller should use $scope.server.update() instead of $scope.server.get().

C

The client controller is not handling the promise returned by $scope.server.get(); the scope update should be inside the success callback.

The async call returns a promise; scope must be updated after resolution.

D

The server script is not allowed to modify data from a widget server script.

Why: Option C is correct because `$scope.server.get()` returns a promise, and the scope variables must be updated inside the `.then()` success callback to ensure the changes are applied after the asynchronous server response is received. Without handling the promise, the client controller executes the next line immediately, and the scope update happens before the server data is available, so the widget view never reflects the change.
Q6
mediumFull explanation →

Which TWO of the following are valid ways to customize the Service Portal login page?

A

Create a new widget instance on the 'loginpage' widget slot.

B

Override the 'Login' page in the portal record by creating a new page and setting it as the login page.

You can create a custom page and set it as the login page.

C

Add a widget option to the login widget to inject custom CSS.

D

Use CSS variables in the portal's theme (SCSS) to style the login page elements.

The portal theme can override CSS variables affecting the login page.

E

Set the 'login.css' property in sys_properties to a custom stylesheet URL.

Why: Option B is correct because the Service Portal login page can be customized by overriding the 'Login' page in the portal record. This is done by creating a new page (e.g., a copy of the default login page) and setting it as the login page in the portal's configuration, which allows full control over the layout and widgets used. Option D is correct because CSS variables defined in the portal's theme (SCSS) can be used to style login page elements, as the theme's SCSS is compiled and applied globally to all portal pages, including the login page.

Want more User Interface Development practice?

Practice this domain

Frequently asked questions

How many questions are on the SNOW-CAD exam?

The SNOW-CAD exam has 60 questions and must be completed in 90 minutes. The passing score is 700/1000.

What types of questions appear on the SNOW-CAD exam?

Scenario-based questions covering exam objectives with detailed answer explanations.

How are SNOW-CAD questions organised by domain?

The exam covers 9 domains: Working with Data, Platform Features and Integration, Integrating and managing application data, Automating application logic with business rules and scripts, Application development using ServiceNow Studio, Creating and customizing tables and data, Designing interfaces and user experiences, Core Application Development, User Interface Development. Questions are weighted by domain — higher-weight domains appear more on your actual exam.

Are these the actual SNOW-CAD exam questions?

No. These are original exam-style practice questions written against the official ServiceNow SNOW-CAD exam objectives. They are not copied from the real exam. Courseiva focuses on genuine understanding, not memorisation of braindumps.

Ready to practice all 60 SNOW-CAD questions?

Courseiva tracks your accuracy per domain and routes you toward weak areas automatically. Free, no account required.

Browse all SNOW-CAD questionsTake a timed practice test