1.
Core Scripting Knowledge (Mandatory)
These are the bread and butter of ServiceNow development — you can’t skip them:
✅ Client Scripts — Control form behavior (onLoad, onChange, onSubmit)
✅ Business Rules — Server-side logic (before, after, async, display)
✅ Script Includes — Reusable server-side functions
✅ GlideRecord API — Fetch, update, create, and delete records in code
✅ GlideSystem API — Logging, messages, and utilities (gs.addInfoMessage, gs.log)
✅ GlideForm API — Control form fields (g_form.setValue, g_form.setDisplay)
2. Service Catalog Development (High Priority)
Most companies rely heavily on the Service Catalog to handle requests. You should master:
✅ Catalog Items — Build user-friendly forms
✅ Catalog Client Scripts — Add dynamic behavior to catalog forms
✅ Catalog UI Policies — Show/hide/mandatory fields based on user inputs
✅ Record Producers — Create records from catalog items (e.g., creating Job Applications)
✅ Order Guides — Bundle multiple requests in one
3. Workflow and Automation (Non-Negotiable)
You’ll be automating processes, so mastering these is critical:
✅ Flow Designer — Modern low-code automation builder
✅ Workflows (Graphical Workflow) — Legacy but still widely used for approvals and
tasks
✅ Scheduled Jobs — Automate repetitive tasks (e.g., daily data cleanup)
✅ Event Management — Trigger actions based on system events (gs.eventQueue)
4. Integrations (High Demand)
Integrations are a huge part of ServiceNow — you must know the basics:
✅ REST API (Outbound) — Call external APIs from ServiceNow
✅ REST API (Inbound) — Accept data into ServiceNow via API
✅ Scripted REST APIs — Build custom REST API endpoints in ServiceNow
✅ Import Sets & Transform Maps — Bring data into ServiceNow from external sources
5. ITSM Knowledge (Crucial for Real Projects)
Even as a developer, understanding the ITSM process is key — otherwise, you’ll build the
wrong thing. Focus on:
✅ Incident, Change, Problem, Request Management tables
✅ Configuration Management Database (CMDB) — Track IT assets and relationships
✅ Task SLAs — Service Level Agreements (response and resolution time tracking)
✅ Email Notifications — Customize outbound emails and handle inbound actions
👉 Why?
Most real-world projects are ITSM-based — knowing the process helps you build smarter
solutions.
6. Debugging & Performance (Mandatory for Complex Issues)
You must know how to troubleshoot and optimize:
✅ Browser console + Network logs — Debug client-side issues
✅ Background Scripts — Run server-side scripts directly for data fixes
✅ Script Debugger — Step through Business Rules and Script Includes
✅ Performance Best Practices — Avoid slow GlideRecord queries and memory issues
7. Update Sets & Deployment (Important for Project Delivery)
✅ Create, move, and merge Update Sets
✅ Track changes for production deployment
✅ Handle conflicts in update sets
=========================================
=========================================
=========================================
=========================================
1. Types of Client Scripts (Mandatory)
These control how forms behave on the user’s side:
✅ onLoad — Runs when the form loads (e.g., pre-filling fields, hiding sections).
✅ onChange — Runs when a specific field’s value changes (e.g., make "Reason" mandatory
if "Leave Type" is "Sick Leave").
✅ onSubmit — Runs when the form is submitted (e.g., prevent submission if data is missing
or incorrect).
✅ onCellEdit — Runs when a cell in a list is edited (less common but good to know).
👉 Why?
These cover all the user actions you’ll ever need to handle on forms.
2. Key APIs (Non-Negotiable)
You must understand these APIs for Client Scripts:
✅ g_form API — Controls form fields
g_form.getValue('field_name') — Get a field’s value
g_form.setValue('field_name', 'value') — Set a field’s value
g_form.setDisplay('field_name', false) — Hide/show a field
g_form.setMandatory('field_name', true) — Make a field mandatory
g_form.clearValue('field_name') — Clear a field’s value
✅ g_user API — Get user info
g_user.userName — Get current user’s username
g_user.hasRole('admin') — Check if the user has a role
✅ g_scratchpad API — Pass data from server-side (Business Rule on display) to client-side
script
Useful when you need data the client script can’t fetch on its own.
3. Event Handling (Important)
✅ Control field behavior based on other fields — e.g., if "Job Title" is "Manager", show
"Department Head" field.
✅ Validate input — Ensure "Email" contains @ or "Phone Number" has 10 digits.
✅ Trigger actions — Show messages or auto-fill fields when users make changes.
5. Error Handling and Messaging (User-Friendly)
✅ g_form.addErrorMessage('Your error message') — Show error messages
✅ g_form.addInfoMessage('This is an info message') — Show informational
messages
✅ return false; — Prevent form submission when needed (onSubmit scripts)