HR Leave · Australia

ITSM — IT Service Management (Zero → Pro)

ServiceNow Australia · Custom app · Arabic + English readable · scripts copy/paste ready

App typeCustom
Scopex_786686_hr_leave
sys_idc84db0e8839f0b509f02b0d6feaad3c9
Replace{BASE} = your instance
Instance URLs Incident Problem Change SOW

ITSM — IT Service Management (Zero → Pro)

اقرأ أولاً: ../MASTER_ALL_IN_ONE_SUMMARY.md · ../html/MASTER_ALL_IN_ONE_SUMMARY.html
الدليل الشامل: ../MASTER_ALL_IN_ONE.md · ../html/MASTER_ALL_IN_ONE.html
ممارسة الشاشات: ../html/MASTER_PRACTICE_GUIDE_ALL_TOPICS.html
Australia · Scope x_786686_hr_leave

Australia Instance — نسخة أستراليا

Setting Value
Region / Datacenter ServiceNow Australia
Release train Zurich (Sep 2026 EA) · next EA: Brazil
URL base {BASE} — replace with your instance (e.g. https://devXXXX.service-now.com)
Scope note HR Leave app: x_786686_hr_leave
Guided Setup {BASE}/now/guided-setup

Direct Navigation URLs — روابط التنقل المباشرة

Page / Tool Navigation Path Direct URL Purpose
Incidents All > Incident > All {BASE}/incident_list.do Incident queue
Create Incident All > Incident > Create New {BASE}/incident.do?sys_id=-1 New record
Problems All > Problem > All {BASE}/problem_list.do Problem management
Changes All > Change > All {BASE}/change_request_list.do Change requests
Service Catalog All > Service Catalog > Maintain Items {BASE}/sc_cat_item_list.do Catalog items
SLA Definitions All > Service Level Management > SLA Definitions {BASE}/contract_sla_list.do SLA config
Assignment Rules All > System Policy > Assignment {BASE}/sysrule_assignment_list.do Auto-assignment
Service Operations Workspace Now Experience > SOW {BASE}/now/sow/home Agent workspace
Employee Center Employee Center {BASE}/esc Employee self-service
Flow Designer All > Process Automation > Flow Designer {BASE}/now/flow-designer Approvals & automation
Guided Setup ITSM All > Guided Setup {BASE}/now/guided-setup Initial configuration

Platform target: ServiceNow Australia (Sep 2026) · next EA: Brazil
URLs: ../../SERVICENOW_DIRECT_URLS_CATALOG.md · 1-week: ../../SERVICENOW_ONE_WEEK_STUDY_DEPLOY_AUSTRALIA.md
HR Leave: Scope x_786686_hr_leave

CIS-ITSM Professional Implementer Guide
الأسلوب: عربية + إنجليزية تكمّلان بعضهما — بدون ترجمة حرفية لأسماء الشاشات.


ملخص ووصف بالعربية (Arabic Summary)

البند الشرح
ما هو ITSM؟ إدارة خدمات تقنية المعلومات للموظفين — حوادث، مشاكل، تغييرات، كتالوج، SLA، معرفة
لماذا مهم؟ أساس معظم تطبيقات ServiceNow في المؤسسات — مكتب الخدمة والبوابة الذاتية
من يستخدمه؟ موظف (طلب/بلاغ)، وكيل IT، مدير تغيير، مدير كتالوج
ماذا يغطي الملف؟ §1–12 تقني · §13 خيارات · §14–15 تنفيذ · §16 صفحات + مختبر PDI

ملخص في سطر: من بلاغ الحادث وطلب الكتالوج حتى SLA والتغيير والمعرفة — دورة ITIL على المنصة.

وصف مختصر: يشرح Incident، Problem، Change، Service Catalog، Knowledge، SOW، Employee Center، قواعد الإسناد، Flow للموافقات، وربط CMDB. مناسب CIS-ITSM والتنفيذ من الصفر.


1) Overview & Business Value

ITSM manages the full lifecycle of IT services for employees. — هو الموديول الأساسي الذي تبدأ منه معظم تطبيقات ServiceNow.

Core processes (ITIL 4 aligned):
- Incident Management — استعادة الخدمة بسرعة بعد عطل.
- Problem Management — معالجة السبب الجذري لمنع التكرار.
- Change Management — تغيير الخدمات بأمان ومخاطر محسوبة.
- Request Management — تلبية الطلبات عبر الكتالوج.
- Service Level Management (SLA) — قياس الالتزام بالأوقات.
- Knowledge Management — توثيق الحلول ونشر المعرفة.


2) Architecture & Data Model

Table hierarchy (المهم للامتحان):

task (base table)
├─ incident
├─ problem
├─ change_request
│ └─ (types: normal / standard / emergency)
├─ sc_request (Request)
│ └─ sc_req_item (RITM)
│ └─ sc_task (Catalog Task)
└─ sla / task_sla (SLA tracking)

Key tables:

Table الغرض
incident الحوادث
problem المشكلات
change_request طلبات التغيير
change_task مهام التغيير
sc_req_item عناصر الطلب (RITM)
kb_knowledge مقالات المعرفة
cmdb_ci عناصر التهيئة (مرتبطة بكل العمليات)
task_sla تتبّع الـ SLA

كل جداول العمليات ترث من task، لذلك تتشارك الحقول الأساسية (number, state, assigned_to, priority).


3) Plugins & Activation — كيف تفتح وتفعّل

Most ITSM is active by default, but these add features:

Plugin / App Name
Incident Management core (active by default)
Change Management com.snc.change_management
Problem Management com.snc.problem
ITSM Best Practice — Incident com.snc.incident_management.best_practice
Continual Improvement Management com.sn_cim
Vendor Manager Workspace from Store
ITSM Now Assist (GenAI) from Store (subscription)

How to activate:

  1. Navigate: All > System Definition > Plugins — Open direct
  2. Search the plugin name.
  3. Right-click → Activate/Repair.
  4. For Store apps:
    Navigate: All > System Applications > All Available Applications > All — Open direct
    Then Install. — بعد التفعيل افتح Guided Setup لإكمال الإعداد. Navigate: All > Guided Setup > ITSM — Open direct

4) Guided Setup & All Options — كل الخيارات

ITSM Guided Setup sections:

Important configuration options (افتحها كلها وجرّبها):

Option Navigate
Priority Lookup (Impact×Urgency) All > Incident > Data Lookup … / dl_matcher · Open direct
Assignment Rules All > System Policy > Assignment · Open direct
Inbound Email Actions All > System Policy > Email > Inbound Actions · Open direct
SLA Definitions All > Service Level Management > SLA > SLA Definitions · Open direct
Change Models / Types All > Change > Administration · Open direct
State flows / State models All > … > State Model · Open direct
Assignment lookup rules Assignment Lookup Rules

5) End-to-End Process Cycle

Incident lifecycle

New → In Progress → On Hold → Resolved → Closed

Major Incident هو حادث حرج يُصعّد ويُدار بفريق خاص.

Problem lifecycle

New → Assess → Root Cause Analysis → Fix in Progress → Resolved → Closed

Change lifecycle (Normal)

New → Assess → Authorize (CAB) → Scheduled → Implement → Review → Closed

Standard Change = معتمد مسبقًا من كتالوج التغيير (لا يحتاج CAB).
Emergency Change = طارئ، موافقة سريعة.

Request lifecycle

Catalog Item → REQ (sc_request) → RITM (sc_req_item) → Catalog Tasks (sc_task) → Closed

6) Development — التطوير

Business Rule example (auto-set priority note)

(function executeRule(current, previous) {
 // before insert/update on incident
 if (current.impact == 1 && current.urgency == 1) {
 current.work_notes = 'Critical P1 — auto-flagged.';
 }
})(current, previous);

Assignment via Script (Assignment Rule alternative)

// route network incidents to Network team
if (current.category == 'network') {
 current.assignment_group.setDisplayValue('Network');
}

Client Script (onChange of category)

function onChange(control, oldValue, newValue, isLoading) {
 if (isLoading || newValue === '') return;
 if (newValue === 'hardware') {
 g_form.setMandatory('cmdb_ci', true);
 }
}

Development topics to master:
- Flow Designer for approvals (Change CAB approval flow).
- SLA Definitions + conditions (start/stop/pause).
- Notifications + events.
- UI Policies vs Data Policies.
- Service Catalog items + variables + variable sets.
- Knowledge workflows (publish/retire).

SLA Definition (concept)

SLA يبدأ بشرط (Start)، يتوقف بشرط (Stop)، وقد يتوقف مؤقتًا (Pause) عند On Hold.


7) Administration — الإدارة

Key admin areas:

Area Navigate
Roles All > User Administration > Roles (itil, itil_admin, sn_change_write…) · Open direct
Groups All > User Administration > Groups · Open direct
Assignment Rules All > System Policy > Assignment · Open direct
SLA All > Service Level Management · Open direct
Data Lookup (priority) dl_u_priority style tables
Inbound Email All > System Mailboxes · Open direct
Update Sets All > System Update Sets > Local Update Sets · Open direct

Roles to know:
- itil — agent (يعمل على الحوادث/المشكلات).
- itil_admin — مدير ITIL.
- sn_change_write / change_manager — التغيير.
- knowledge / knowledge_admin — المعرفة.


8) Hands-on Labs — تدريب عملي

Lab 1 — Create & resolve an Incident:
1. Navigate: All > Incident > Create New. — Open direct
2. Set Caller, Short description, Impact=2, Urgency=2.
3. Watch Priority auto-calculate (Moderate).
4. Assign to a group, move to In Progress, then Resolved with resolution code.

Lab 2 — Build a Catalog Item + Request flow:
1. Navigate: All > Service Catalog > Catalog Definitions > Maintain Items. — Open direct
2. Create item “Laptop Request” with variables.
3. Order it from Service Portal → observe REQ/RITM/sc_task.

Lab 3 — Normal Change with CAB approval:
1. Create a Normal change.
2. Build/inspect the approval flow.
3. Move through Assess → Authorize → Scheduled → Implement → Closed.

Lab 4 — SLA:
1. Create SLA Definition on incident (Priority 1, 4h resolution).
2. Open a P1 incident, watch the task_sla timer.

Lab 5 — Knowledge:
1. Create a KB article, submit, publish.
2. Link it from an incident (resolution).


9) Best Practices & Common Mistakes

Best practices:
- Use Flow Designer, not legacy Workflow, for new approvals.
- Keep priority via Impact×Urgency matrix (don’t hardcode).
- Use Assignment Rules / Data Lookup instead of long scripts.
- Always relate the CI (cmdb_ci) for reporting and impact.

Common mistakes:
- خلط Standard و Normal change.
- نسيان شرط Stop في الـ SLA فيبقى يعمل.
- كتابة منطق إسناد في Business Rule بدل Assignment Rule.
- تعديل جداول OOTB بدل الإضافة عبر scope.


10) CIS-ITSM Exam Focus

High-yield topics:
- Task table hierarchy & inheritance.
- Incident vs Problem vs Change differences.
- Change types: Normal / Standard / Emergency + when each.
- Request model: REQ → RITM → sc_task.
- SLA: start/stop/pause conditions, retroactive start.
- Priority = Impact × Urgency (matrix/data lookup).
- Notifications: event-driven vs record-driven.
- Roles: itil, itil_admin, approver_user.
- Knowledge lifecycle and KCS basics.

Exam tip: — ركّز على أي جدول وأي حالة وأي دور — أسئلة CIS كثيرًا ما تختبر التسلسل والوراثة.


11) Portals, Workspaces, Role Hierarchy & Feature Catalog

ملاحظة عن الروابط:
URLs الـ Workspaces قد تختلف قليلًا حسب الإصدار والـ App Config.
إن لم يعمل رابط، افتح: All > Now Experience Framework > UI Builder وتحقّق من الـ path. — Open direct

11.1 Service Portals (end-user)

Portal URL لمن
Service Portal (default) /sp كل المستخدمين
Employee Center /esc الموظفون (self-service)
Employee Center Pro /esc (Pro features) الموظفون
Knowledge Portal /kb الجميع
Service Catalog /sp?id=sc_home الجميع

11.2 Workspaces (agents/managers)

Workspace URL لمن
Service Operations Workspace (SOW) /now/sow/home agents (incident/problem/change/CMDB موحّد)
Agent Workspace (classic configurable) /now/cwf/agent agents
Change Management Workspace /now/sow (Change view) change managers
CMDB Workspace /now/cmdb/… CMDB/CI managers
Admin / Platform (classic UI) /nav_to.do admins/developers

SOW هو الأحدث ويجمع Incident/Problem/Change/Request مع CMDB والـ AI في مكان واحد.

11.3 Role Hierarchy (تسلسل الأدوار)

admin
└─ itil_admin
 └─ itil (agent — incident/problem/change/request)
 ├─ sn_change_write / change_manager
 ├─ problem_admin / problem_manager / problem_coordinator
 ├─ knowledge_admin → knowledge_manager → knowledge
 ├─ sn_incident_write
 └─ approver_user (approvals only)
sn_request_read / catalog roles
ess (Employee Self Service — لا يملك itil)

itil يرث صلاحيات العمل على المهام؛ ess للموظف العادي بلا أدوار تشغيلية.

11.4 Full Business Cycle (موحّد ITSM)

Employee (/esc or /sp)
 → Catalog request OR Incident report
 Request → REQ → RITM → sc_task → fulfilled
 Incident → triage (priority = impact×urgency)
 → Agent (SOW) works the task
 ↳ if recurring → Problem (root cause)
 ↳ if change needed → Change (Normal/Std/Emergency → CAB)
 → SLA timers run (task_sla)
 → Resolve → document in Knowledge (KCS)
 → Close → CSAT survey → report/dashboards

11.5 Feature Catalog (كل ما يمكن تنفيذه)

Process features:
- Incident, Major Incident Management.
- Problem (RCA, Known Error, Workarounds).
- Change (Normal/Standard/Emergency, CAB, Change Calendar, Risk Assessment).
- Request (Catalog Items, Order Guides, Record Producers, Variable Sets).
- Service Level Management (SLA/OLA, definitions, schedules).
- Knowledge Management (KCS, versioning, approval publish/retire).
- Continual Improvement Management (CIM).
- Walk-up Experience.
- Vendor Manager Workspace.
- Incident Communications / Notifications.

Platform features used:
- Flow Designer (approvals/automation).
- Assignment Rules / Data Lookup.
- Service Catalog + Variable Sets.
- Surveys & Assessments (CSAT).
- Performance Analytics + Dashboards.
- Now Assist (GenAI: summarization, resolution).
- Virtual Agent (deflection).
- Predictive Intelligence (categorization/assignment).


12) End-to-End Implementation (Post-Activation)

اقرأ هذا بعد تفعيل البلجن.
هذا هو ترتيب التنفيذ الكامل خطوة بخطوة مع كل القوائم والصفحات والجداول.

12.1 Application Menus map (كل القوائم)

All > Incident
 ├─ Create New / Open / Open - Unassigned / Resolved / Closed / All
 ├─ Overview / Assigned to me / Critical Incidents Map
 └─ Major Incidents
All > Problem
 ├─ Create New / Open / Known Errors / All
 └─ Problem Tasks
All > Change
 ├─ Create New / Open / My Approvals / Schedule (Change Calendar)
 ├─ Normal / Standard / Emergency / Change Tasks
 └─ Administration (Models, States, Risk, CAB Definition)
All > Service Catalog
 ├─ Catalogs / Categories / Catalog Items (Maintain Items)
 ├─ Order Guides / Record Producers / Variable Sets
 └─ Catalog Policies / Catalog UI Policies
All > Knowledge
 ├─ Articles / Create New / My Knowledge / Knowledge Bases
 └─ Knowledge Categories / Homepage
All > Service Level Management
 ├─ SLA Definitions / SLA / OLA / Workflow
 └─ Active SLAs (task_sla)
All > Reports / Dashboards / Performance Analytics

12.2 Core tables to know (Tables & Lists)

Open list via Table
incident.list incidents
problem.list problems
change_request.list changes
change_task.list change tasks
sc_req_item.list RITMs
sc_task.list catalog tasks
task_sla.list SLA timers
kb_knowledge.list KB articles
cmdb_ci.list CIs

أي جدول تفتحه بكتابة اسمه التقني متبوعًا بـ .list في شريط التنقّل.

12.3 End-to-end build order (بعد التفعيل)

  1. Foundation data:
    - Users/Groups/Roles.
    All > User Administration > Users / Groups / Roles — Open direct
    - Locations, Companies, Departments.
  2. CMDB baseline:
    - تأكد من وجود CIs (انظر CMDB.md).
  3. Assignment:
    - Assignment Rules أو Data Lookup للإسناد التلقائي.
    All > System Policy > Assignment — Open direct
  4. Priority:
    - Priority Lookup Rules (Impact × Urgency).
    All > Incident > … > Priority Lookup Rules / dl_matcher. — Open direct
  5. SLA:
    - SLA Definitions + schedules + conditions.
    All > Service Level Management > SLA Definitions. — Open direct
  6. Notifications + Events:
    - All > System Notification > Email > Notifications. — Open direct
  7. Service Catalog:
    - Catalog → Categories → Items → Variables → Record Producers.
  8. Knowledge:
    - Knowledge Base → Categories → Article templates → publish workflow.
  9. Change governance:
    - Change Models, Risk Assessment, CAB Definition, Change Calendar.
  10. Flows:
    - Flow Designer approvals (Change, Request).
    All > Process Automation > Flow Designer. — Open direct
  11. UI/UX:
    - Service Portal /sp, Employee Center /esc.
    - Service Operations Workspace /now/sow/home.
  12. Reporting:
    - Reports, Dashboards, PA indicators.
  13. Test + Deploy:
    - ATF tests, Update Set, move to test→prod.

12.4 All configuration pages (الصفحات الإدارية)

Config Navigate
Incident properties All > Incident > Administration > … / sys_properties · Open direct
Problem properties All > Problem > Administration · Open direct
Change properties / models All > Change > Administration · Open direct
Catalog properties All > Service Catalog > Catalog Administration · Open direct
Knowledge properties All > Knowledge > Administration > Properties · Open direct
SLA properties All > Service Level Management > Administration · Open direct
Assignment rules All > System Policy > Assignment · Open direct
Inbound email actions All > System Policy > Email > Inbound Actions · Open direct

Study path note: — للدراسة من الصفر اتبع الملف: STUDY_ROADMAP.md


13) Options & Instance Notes — بدائل وميزات قد لا تظهر

Resource Content
All modules MODULE_OPTIONS_AND_INSTANCE_NOTES.md
Full scenarios + plugins + roles + customizations MODULE_IMPLEMENTATION_PLAYBOOK.md → ITSM
Platform hub ../00_TUTORIAL_OPTIONS_REFERENCE.md

Quick activation: Plugins → Store → Guided Setup → Classic *.list


14) Implementation Scenarios, Options, Best Practices & Customizations

Master detail: MODULE_IMPLEMENTATION_PLAYBOOK.md → ITSM

14.1 Implementation scenarios

ID Scenario Includes
S1 Incident + Catalog Help desk + self-service requests
S2 Full ITIL + Problem, Change, SLA, Knowledge
S3 Enterprise + SOW, Major Incident, PA, integrations

S2 build order: Users/Roles → CMDB → Assignment → Priority matrix → SLA → Catalog → Change models/CAB → Flows → /esc + SOW → UAT → Update Set.

14.2 Options matrix (consultant choices)

Area Best practice (A) Alternative (B)
Approvals Flow Designer Legacy Workflow
Assignment Assignment Rules BR (avoid)
Priority Impact × Urgency Manual
Agent UI Service Operations Workspace Classic lists
End user Employee Center Service Portal

14.3 Plugins — activation checklist

# Plugin Search / ID Scenario
1 Incident core All
2 Change com.snc.change_management S2+
3 Problem com.snc.problem S2+
4 ITSM BP Store Optional
5 Now Assist Store Optional

Navigate: Plugins → Guided Setup > ITSM

14.4 Roles, groups & security

Role Group example Customize
itil Service Desk L1 Table/field ACLs
change_manager CAB Change approval
knowledge KB team KB write
Scoped x_* App team Extension tables only

Develop: ACL scripts, user_criteria, domain separation (enterprise).

14.5 Common customizations (what to build)

Type Examples
Scoped app Custom fields, catalog items
Flow CAB, catalog fulfillment, major incident
BR / events P1 notify (prefer OOTB)
Integration Inbound email, REST, IntegrationHub
Portal SP widgets, EC topics
Reporting SLA breach, backlog PA

14.6 Best practice decisions

14.7 Go-live checklist


15) Zero-to-Hero End-to-End Implementation (Scratch → Go-Live)

Framework: MODULE_ZERO_TO_HERO_CONSULTING.md

من ورشة اكتشاف حتى Service Desk + Catalog + Change يعمل على Production.

15.1 Business goals

Goal العربي
Restore service fast استعادة الخدمة بسرعة (Incident)
Self-service الموظف يطلب من الكتالوج بدون مكالمة
Controlled change تغييرات آمنة مع موافقات
SLA accountability قياس الالتزام بالوقت
Knowledge reuse حلول متكررة في KB

15.2 Phase 0 — Discover (Week 1)

15.3 Phase 1 — Activate (Week 2)

Step Action
1 PDI/sub-prod
2 Plugins: Change, Problem (if S2)
3 Guided Setup > ITSM
4 Update Set ITSM Wave 1

15.4 Phase 2 — Foundation (Week 2–3)

Users, groups, roles (itil, change_manager), companies, locations, CMDB sample CIs (CMDB.md).

15.5 Phase 3 — Core processes (Week 3–8)

Week Build
3–4 Assignment Rules, Priority matrix, Incident lifecycle
4–5 SLA Definitions + task_sla test
5–6 Catalog categories, items, Record Producers, flows
6–7 Change models, CAB Flow, Standard vs Normal
7–8 Problem/Known Error (if licensed), KB workflow

15.6 Phase 4 — Channels (Week 8–10)

Employee Center /esc, Service Operations Workspace, email inbound actions.

15.7 Phase 5 — UAT (Week 10–11)

Scenario Expected
P1 incident SLA starts, notify manager
Catalog laptop REQ→RITM→fulfill
Normal change CAB approve→implement
KB link Resolve with article

15.8 Phase 6 — Go-live (Week 12)

Hypercare, war room, daily backlog review.

15.9 Phase 7 — Operate

PA: MTTR, SLA breach %, catalog adoption, change success rate.

15.10 Master checklist


16) Full E2E Practice · Pages · Requirements · Options (AR + EN)

Extended reference: MODULE_FULL_E2E_PRACTICE.md · Consulting framework: MODULE_ZERO_TO_HERO_CONSULTING.md

هذا القسم يكمّل §15 بـ متطلبات الأعمال، كل الصفحات، كل الخيارات، دورة الاستشارة الكاملة، ومختبر PDI خطوة بخطوة.


16.1 Business goals & success criteria

Goal (EN) الهدف (AR) KPI
Restore service fast استعادة الخدمة بسرعة MTTR, P1 resolution time
Self-service adoption اعتماد الخدمة الذاتية % incidents via portal vs phone
SLA compliance الالتزام بـ SLA % tasks meeting SLA
Controlled change تغيير مُحكَم Change success rate, emergency %
Knowledge reuse إعادة استخدام المعرفة KB linked to resolve %

Why the client buys ITSM (consultant pitch):
One platform for employees to request services, agents to resolve, and managers to see SLA and change risk. — منصة واحدة للموظف (طلب/بلاغ)، للفريق (حل وتصعيد)، وللإدارة (SLA ومخاطر التغيير).


16.2 Functional & non-functional requirements

ID Requirement (EN) المتطلب (AR) Must/Should
FR-01 Log incident with category, CI, caller تسجيل حادث مع تصنيف وCI ومتصل Must
FR-02 Auto priority from Impact × Urgency أولوية تلقائية من الأثر×الاستعجال Must
FR-03 Assignment to group/agent by rules إسناد تلقائي حسب القواعد Must
FR-04 SLA start/pause/complete on task SLA يبدأ/يتوقف/ينتهي مع المهمة Must
FR-05 Catalog order → REQ/RITM/tasks طلب كتالوج → REQ/RITM/مهام Must
FR-06 Change types Normal/Standard/Emergency أنواع تغيير مع موافقات Should
FR-07 Problem → Known Error → KB مشكلة → خطأ معروف → معرفة Should
FR-08 Email-to-incident / inbound actions بريد → حادث Should
NFR-01 Role-based access (itil vs ess) صلاحيات حسب الدور Must
NFR-02 Audit on state changes تدقيق تغيير الحالات Must
NFR-03 Mobile-friendly portal بوابة متجاوبة Should

16.3 Full consultation cycle & deliverables

Phase Workshop / activity (EN) النشاط (AR) Deliverable
0 Executive kickoff افتتاح مع الراعي Charter, scope, timeline
1 Service desk as-is walkthrough جولة على مكتب الخدمة الحالي As-is process map, pain points
2 To-be ITIL alignment محاذاة ITIL المستهدفة To-be swimlanes, RACI
3 Requirements prioritization أولوية المتطلبات Backlog (MoSCoW), wireframes
4 Config sprint سprints إعداد Assignment rules, SLA, catalog doc
5 Integration design تصميم التكامل Email, LDAP/SSO, CMDB feed spec
6 UAT with real agents UAT مع وكلاء حقيقيين Signed test pack
7 Cutover + hypercare تشغيل + دعم مكثف Runbook, training deck
8 Continual improvement تحسين مستمر PA dashboards, CSI backlog

Consultation questions (bilingual):


16.4 All implementation options (A / B / C)

Decision area Option A (recommended) Option B Option C When to pick
Agent UI Service Operations Workspace (SOW) Classic Agent Workspace Mixed A if licensed; B for legacy teams
End-user channel Employee Center /esc Service Portal /sp Email-only intake A for modern HR/IT; B if SP mature
Approvals Flow Designer Workflow (legacy) Email approval Always prefer A for new builds
Priority Data Lookup / Priority matrix Manual only Custom script A for consistency
SLA engine SLA Definitions + schedules Manual tracking External tool A native
Change approval CAB Flow + Change Workspace Email CAB No formal change A for regulated orgs
Knowledge KCS publish workflow Direct publish No KB phase 1 A if repeat incidents high
CMDB link Mandatory CI on certain categories Optional CI No CMDB A if impact analysis needed

Instance note: menus differ if plugins missing — see MODULE_OPTIONS_AND_INSTANCE_NOTES.md → ITSM.


16.5 All pages, menus & workspaces (Navigate)

Area Navigate path Table / object Primary role
Incidents — all All > Incident > All · Open direct incident itil
Incidents — create All > Incident > Create New · Open direct incident itil, ess (via portal)
Major incidents All > Incident > Major Incidents · Open direct incident major_incident_manager
Problems All > Problem > All · Open direct problem problem_manager
Known errors All > Problem > Known Errors · Open direct problem problem_manager
Changes — all All > Change > All · Open direct change_request change_manager
Change calendar All > Change > Schedule · Open direct change_request change_manager
Change models All > Change > Administration > Models · Open direct chg_model admin
Catalog items All > Service Catalog > Maintain Items · Open direct sc_cat_item catalog_admin
Categories All > Service Catalog > Categories · Open direct sc_category catalog_admin
Order guides All > Service Catalog > Order Guides · Open direct sc_cat_item (guide) catalog_admin
Record producers All > Service Catalog > Record Producers · Open direct sc_cat_item catalog_admin
Variable sets All > Service Catalog > Variable Sets · Open direct item_option_new_set catalog_admin
SLA definitions All > Service Level Management > SLA Definitions · Open direct contract_sla admin
Active SLAs All > Service Level Management > SLA · Open direct task_sla admin
Assignment rules All > System Policy > Rules > Assignment · Open direct sysrule_assignment admin
Inbound actions All > System Policy > Actions > Inbound Actions · Open direct sysevent_in_email_action admin
Knowledge bases All > Knowledge > Knowledge Bases · Open direct kb_knowledge_base knowledge_admin
Articles All > Knowledge > Articles · Open direct kb_knowledge knowledge
Flow Designer All > Process Automation > Flow Designer · Open direct flows admin/dev
Service Portal config All > Service Portal > Portals · Open direct sp_portal admin
Employee Center All > Employee Center > Configuration · Open direct EC config admin
SOW /now/sow/home workspace itil
Service Portal /sp portal end user
Employee Center /esc portal end user
Lists (direct) incident.list, change_request.list, … — all

16.6 Full PDI practice lab (end-to-end — do not skip steps)

Lab goal: Incident + SLA + Catalog + Change + KB + security check.
Time: ~3–4 hours · Roles needed: admin, itil, ess (impersonation)

Step Action (EN) الإجراء (AR) Verify
1 Create group Service Desk L1, add your user مجموعة مكتب خدمة Group exists
2 Assign itil to agent user دور itil للوكيل Agent sees Incident menu
3 Option A: Assignment Rule — category Software → group قاعدة إسناد New incident routes
4 Set Impact=1, Urgency=1 on test incident أثر واستعجال Priority = 1
5 Create SLA Definition P1 response 4h on incident تعريف SLA task_sla record created
6 Move incident to In Progress → On Hold → Resume حالات SLA Pause/resume works
7 Create catalog category + item (simple variable) عنصر كتالوج Item visible on /sp
8 Impersonate end user — order item طلب من البوابة REQ + RITM created
9 Fulfill RITM as agent تنفيذ RITM Request closed
10 Create Normal Change, attach to CI if CMDB exists تغيير Normal Approval requested
11 Option A: Approve via Flow notification موافقة Flow State → Scheduled
12 Publish KB article, link on resolve مقال معرفة Article on incident
13 Impersonate ess — confirm no Change menu أمان ess Access denied
14 Open SOW — same incident visible SOW Unified view
15 Export Update Set ITSM Lab 16 Update Set Ready for interview demo

UAT scripts (sign-off):

# Scenario Pass criteria
U1 P1 incident SLA breach warning, assignment correct
U2 Catalog laptop request End-to-end REQ closed
U3 Normal change rejected Stays in assess, no implement
U4 KB deflection User finds article in portal search

Incident lifecycle pages:
 Create → incident.do · Work → SOW or incident form · SLA → task_sla.list
 Resolve → Close codes · Major → Major Incident workspace

Request lifecycle:
Order → /sp?id=sc_cat_item · REQ → sc_request.list · RITM → sc_req_item.list
Tasks → sc_task.list · Flow → Flow Designer execution

Change lifecycle:
Model → chg_model · Request → change_request · Tasks → change_task
Calendar → change_request (Schedule) · CAB → Flow approval task


16.8 Sign-off checklist (consulting)


§17 — Power User Playbook (ITSM)

Day-in-the-life recipes, role workflows, and 20 production-grade scripts.
ملف عملي مكثّف لكل دور — موظف، وكيل، مدير حادث/تغيير/مشكلة، مؤلف معرفة.


17.1 Personas — what each role does in a day

Persona Primary table(s) Day-1 menus Main outcome
Employee (End-user, ess) incident, sc_request, sysapproval_approver /esc Employee Center Open request/incident, approve, check status
Service Desk Agent — Tier 1 (itil) incident, kb_knowledge, sc_task SOW /now/sow/home Triage, fix < 15 min, deflect to KB
Tier 2 Specialist (itil + group) incident, problem, task_ci Incident form, Problem Diagnose, link Problem, escalate
Major Incident Manager (major_incident_manager) incident (MI flag), change_request Major Incident Workspace Declare MI, comms, post-mortem
Change Manager (change_manager / change_coordinator) change_request, change_task, change_conflict Change Workspace, CAB calendar Approve / schedule / freeze windows
Problem Manager (problem_manager) problem, kb_knowledge Problem list, Known Errors RCA, Known Error → KB
Knowledge Author (knowledge) kb_knowledge Knowledge Workspace Author, retire, KCS publish
Process Owner (itil_admin) All ITSM tables Performance Analytics KPIs, CSI backlog, governance

لكل دور قائمة طاولة عمل خاصة. الدور الأكثر استعمالاً هو itil لوكلاء المكتب، وess لكل الموظفين تلقائيًا.

⚠️ لا تعطِ دور admin لوكلاء الإنتاج — استخدم أدوار ITSM المحددة.


17.2 End-user (Employee) — day in the life

Step-by-step on /esc (Employee Center):

# Action (EN) الإجراء (AR) Where
1 Open https://.service-now.com/esc افتح بوابة الموظف Browser
2 Search “laptop” in unified search bar بحث “laptop” EC search
3 Click Order a Laptop (catalog item) اختيار طلب لابتوب Catalog
4 Fill model, justification, attach manager email if required تعبئة النموذج وإرفاق التبرير Item form
5 Submit → REQ created, RITM created, tasks generated الإرسال — يولد REQ + RITM + مهام Confirmation page
6 Track in “My Requests” tile متابعة من بلاطة طلباتي EC home
7 Report broken laptop via Get Help → Report an issue بلاغ عطل من Get Help EC
8 Set short_description, category Hardware, urgency 2 وصف، فئة، استعجال New incident
9 Attach screenshot (drag-drop on the form) إرفاق صورة شاشة Attachments
10 Browse KB: “How to reset Windows password” — read & close intent تصفّح KB قبل التذكرة KB tile
11 Approve an order: open approval, comment, Approve or Reject اعتماد طلب — تعليق ثم قرار My Approvals
12 Add comment to ongoing incident from EC → “Need update” تعليق على حادث جاري Incident detail

Approval inbox (mobile/desktop):

/esc → My Approvals → click record → Comment → Approve | Reject
On mobile: Now Mobile app → Approvals tab → swipe right (approve) / left (reject)

⚠️ Employee never sees Change / Problem unless granted; that’s ess security working.


17.3 Tier 1 Agent recipes — first 15 minutes of an incident

Recipe A — Triage incoming incident (SOW)

Navigate: /now/sow/home → Lists → My Group's Work → New incident
1) Read short_description + caller VIP flag
2) Set Category (or accept Predictive Intelligence suggestion)
3) Confirm CI via "Find CI by short description" (§17.10.14)
4) Set Impact + Urgency → Priority computed via matrix
5) Reassign to right group if not your queue
6) Add work note: "Initial triage complete"

Recipe B — Use Now Assist Summarize Incident

// Pre-req: Now Assist for ITSM licensed + enabled
// On the incident form, click the "Summarize" button in the UI
// It calls the Generative AI controller and returns a single-paragraph synopsis
// To trigger programmatically (e.g. from a Flow):
var gr = new GlideRecord('incident');
gr.get('<sys_id>');
var summary = new sn_nowassist.NowAssistInline().summarize(gr);
gs.info('Summary: ' + summary);

Recipe C — Search KB and link the article

1) On the incident, side panel → Knowledge → "Suggest articles"
2) Predictive Intelligence ranks top 3 by short_description
3) Click "Attach" on the relevant article
4) The kb_use record is logged → analytics later
5) Add work note: "Sent KB0010234 to user; awaiting confirmation"

Recipe D — Resolve & set close code

State → Resolved
Close code → "Solved (Permanently)" | "Solved (Workaround)" | "User Education" | "Not reproducible"
Resolution notes → mandatory; auto-populated from Now Assist if licensed
Save → SLA stops, survey triggers (§17.10.19)

Recipe E — Escalate to Tier 2

Assignment group → <Tier 2 group>
State → In Progress (do NOT mark Pending)
Work note (private) → reason for escalation, what you tried, links to KB
Notify Assignee → checkbox

⚠️ Never use “On Hold” to dump on another team — that pauses SLA and hides the work.


17.4 Tier 2 Specialist recipes

Recipe A — Pick up & investigate

1) Filter incident list: Assignment Group is <my group> AND State != Resolved
2) Open oldest by priority, then by Opened
3) Run diagnostics referencing CI relationships (CMDB.md §17.3)
4) If pattern across multiple incidents → create Problem (Recipe B)

Recipe B — Create related Problem from one or many incidents

// Script Action on incident — "Create Problem from this incident"
(function createProblemFromIncidents(currentIncident) {
 var prb = new GlideRecord('problem');
 prb.initialize();
 prb.short_description = 'Pattern: ' + currentIncident.short_description;
 prb.description = 'Created from ' + currentIncident.number + '\n' + currentIncident.description;
 prb.cmdb_ci = currentIncident.cmdb_ci;
 prb.priority = currentIncident.priority;
 prb.assignment_group = currentIncident.assignment_group;
 prb.assigned_to = gs.getUserID();
 var prbId = prb.insert();

// Link the incident
currentIncident.problem_id = prbId;
currentIncident.update();

gs.addInfoMessage(‘Created Problem ’ + prb.number);
return prbId;
})(current);

Recipe C — Link multiple related incidents to one Problem

// Background script — link last 5 password-reset incidents to a Problem
var problemId = '<problem_sys_id>';
var inc = new GlideRecord('incident');
inc.addQuery('short_description', 'CONTAINS', 'password reset');
inc.addQuery('state', '!=', 6); // not resolved
inc.orderByDesc('opened_at');
inc.setLimit(5);
inc.query();
while (inc.next()) {
 inc.problem_id = problemId;
 inc.update();
}
gs.info('Linked ' + inc.getRowCount() + ' incidents');

Recipe D — RCA template (paste into Problem description)

1. Symptoms : ...
2. Affected CIs : ...
3. First detected : <timestamp> by <source>
4. Investigation :
 - Hypothesis 1 — Result
 - Hypothesis 2 — Result
5. Root cause : ...
6. Workaround : ...
7. Permanent fix : <change_request number, if any>
8. Prevention : KB article, monitor, automation

نموذج RCA لا يتغيّر بين الحالات — استخدمه دائمًا لتضمن جودة موحدة.


17.5 Major Incident Manager — playbook

Declare a Major Incident:

1) On incident → Priority = 1 (Critical) → fill business impact
2) Click "Promote to Major Incident" (form button)
3) Choose MI Type (Candidate / Confirmed)
4) Notifications fire to MI distribution list (sys_user_group "Major Incident Comms")
5) MI Workspace opens → war-room timeline

During the war-room:

- Pin the MI tab → /now/major_incident/<sys_id>
- Run "Communications" workflow → Sends to status page + Teams + email
- Capture timeline entries every 15 min (auto-prompt)
- Link related incidents (mass-link via §17.10.3)
- Assign comms lead, technical lead, exec liaison

Status page comms snippet (post to public page via REST):

var r = new sn_ws.RESTMessageV2();
r.setEndpoint('https://api.statuspage.io/v1/pages/<pageId>/incidents');
r.setHttpMethod('POST');
r.setRequestHeader('Authorization', 'OAuth ' + gs.getProperty('statuspage.token'));
r.setRequestHeader('Content-Type', 'application/json');
r.setRequestBody(JSON.stringify({
 incident: {
 name: current.short_description.toString(),
 status: 'investigating',
 impact_override: 'critical',
 body: 'We are investigating an issue affecting ' + current.cmdb_ci.name
 }
}));
var resp = r.execute();
gs.info('Status page: ' + resp.getStatusCode());

Post-mortem (after MI close):

Within 5 business days:
1) Use Problem template (§17.4 Recipe D)
2) Hold blameless retro — record attendees in problem.work_notes
3) Action items become change_request OR problem_task
4) Publish KB article (Known Error) — link from problem.kb_knowledge

⚠️ Major Incident does NOT skip Change for the fix — emergency change still needs CAB chair approval.


17.6 Change Manager — full week loop

Monday — CAB calendar review:

Navigate: All > Change > Schedule
View: Week
Filter: State IN (Assess, Authorize, Scheduled) AND Type IN (Normal, Emergency)
Action: Open each → check Risk + Conflict

Tuesday — risk assessment script (auto-rate risk on insert):

// Business Rule: before insert on change_request — set risk score
(function riskScore() {
 var score = 0;
 if (current.type == 'emergency') score += 30;
 if (current.cmdb_ci && current.cmdb_ci.business_criticality == '1') score += 20;
 if (gs.daysBetween(current.start_date, current.end_date) > 1) score += 10;
 var hasBackout = current.backout_plan && current.backout_plan.length > 50;
 if (!hasBackout) score += 25;
 var hasTestPlan = current.test_plan && current.test_plan.length > 50;
 if (!hasTestPlan) score += 15;

current.risk = score >= 70 ? ‘high’ : (score >= 40 ? ‘moderate’ : ‘low’);
current.risk_value = score;
})();

Wednesday — conflict detection (via change_conflict):

// Script Action — find conflicts before CAB
(function findChangeConflict(chg) {
 var conf = new GlideRecord('change_request');
 conf.addQuery('cmdb_ci', chg.cmdb_ci);
 conf.addQuery('sys_id', '!=', chg.sys_id);
 conf.addQuery('start_date', '<=', chg.end_date);
 conf.addQuery('end_date', '>=', chg.start_date);
 conf.addQuery('state', 'IN', '-2,-3,-4'); // Assess, Authorize, Scheduled
 conf.query();
 var conflicts = [];
 while (conf.next()) {
 conflicts.push(conf.number + ' on ' + conf.cmdb_ci.name);
 // Create change_conflict record
 var c = new GlideRecord('change_conflict');
 c.initialize();
 c.change = chg.sys_id;
 c.conflicting_change = conf.sys_id;
 c.reason = 'Overlapping window on same CI';
 c.insert();
 }
 if (conflicts.length) {
 chg.work_notes = 'CONFLICTS DETECTED: ' + conflicts.join(', ');
 chg.update();
 }
})(current);

Thursday — freeze window enforcement:

// Business Rule before_insert/update on change_request
(function blockInFreeze() {
 var freeze = new GlideRecord('change_freeze_window');
 freeze.addActiveQuery();
 freeze.addQuery('start_date', '<=', current.start_date);
 freeze.addQuery('end_date', '>=', current.start_date);
 freeze.query();
 if (freeze.next() && current.type != 'emergency') {
 gs.addErrorMessage('Change blocked: inside freeze window "' + freeze.name + '". Only emergency changes allowed.');
 current.setAbortAction(true);
 }
})();

Friday — post-implementation review (PIR):

After end_date passes:
1) Change → "Review" state
2) Fill close_code (Successful / Successful with issues / Unsuccessful)
3) Capture actual_start / actual_end
4) Link any incident created within 48h of change (regression detection)
5) Sign-off via approver → state Closed

أتمتة CAB توفر ساعات أسبوعية لمدير التغيير — لا تترك أي شيء يدوي.


17.7 Knowledge Author recipes

# Recipe Steps
K1 Create article from incident Open incident → Side panel → “Create KB” → fills short/long desc from incident
K2 Request review KB article → State → “Review” → assigns to KB owner via Flow
K3 Retire article State → “Retired” → keeps history; users no longer see in search
K4 Analytics on article hits All > Knowledge > Analytics → views/votes/feedback per article · Open direct
K5 Publish from template New → Choose template (How-to / FAQ / Troubleshoot) → fill blocks

KB workflow (Flow Designer) auto-archive after 365 days no use:

// Scheduled job — Monthly KB hygiene
var kb = new GlideRecord('kb_knowledge');
kb.addQuery('workflow_state', 'published');
kb.addQuery('sys_view_count', '<', 5);
kb.addQuery('sys_updated_on', '<', gs.daysAgo(365));
kb.query();
while (kb.next()) {
 kb.workflow_state = 'retired';
 kb.retired = gs.nowDateTime();
 kb.work_notes = 'Auto-retired: 365 days inactive, <5 views';
 kb.update();
}
gs.info('Retired ' + kb.getRowCount() + ' stale KB articles');

⚠️ Retire, don’t delete — articles may be cited from old incidents.


17.8 Process Owner (Continual Service Improvement)

Activity Cadence Tool
KPI review (MTTR, FCR, SLA%) Weekly Performance Analytics dashboard
Top categories analysis Monthly Reports → group by category
Survey feedback review Monthly Survey results table
Process audit Quarterly GRC if licensed, else manual
Roadmap refresh Bi-annual CSI register (KB or custom table)

دور Process Owner هو ضامن استمرار التحسين بعد Go-Live — بدونه يموت ITSM ببطء.


17.9 Quick-fire navigation cheatsheet

incident.list → all incidents (URL)
incident.do?sys_id=-1 → new incident form
sn_si_incident.list → security incidents (SecOps)
problem.list → problem records
change_request.list → all changes
change_request_calendar.do → CAB calendar
sc_req_item.list → request items (RITM)
kb_knowledge.list → all KB articles
contract_sla.list → SLA definitions
task_sla.list → live SLAs on tasks
/now/sow/home → Service Operations Workspace
/now/major_incident → Major Incident Workspace
/esc → Employee Center
/sp → Service Portal
/now/cwf/agent → Configurable Workspace agent home

17.10 Top 20 ITSM scripts — copy/paste ready

All scripts assume scope global unless stated. Adjust group/category sys_ids before running.
⚠️ Always test in dev first. Add try/catch where you’ll schedule daily.

1) Auto-assign by CI assignment group

// Business Rule — before insert/update on incident
// When: current.cmdb_ci changes
(function autoAssignByCI() {
 if (!current.cmdb_ci) return;
 var ci = new GlideRecord('cmdb_ci');
 if (ci.get(current.cmdb_ci) && !ci.support_group.nil()) {
 if (current.assignment_group.nil()) {
 current.assignment_group = ci.support_group;
 current.work_notes = 'Auto-assigned via CI support group: ' + ci.support_group.getDisplayValue();
 }
 }
})();

2) Auto-close resolved incident after 5 days

// Scheduled Job — daily 02:00
var gr = new GlideRecord('incident');
gr.addQuery('state', 6); // Resolved
gr.addQuery('resolved_at', '<', gs.daysAgo(5));
gr.query();
while (gr.next()) {
 gr.state = 7; // Closed
 gr.close_code = gr.close_code || 'Solved (Permanently)';
 gr.work_notes = 'Auto-closed after 5 days in Resolved.';
 gr.update();
}
gs.info('Auto-closed ' + gr.getRowCount() + ' incidents');

3) Major Incident detector — 5+ related incidents in 30 min

// Scheduled Job — every 5 min
var ga = new GlideAggregate('incident');
ga.addQuery('opened_at', '>', gs.minutesAgo(30));
ga.addQuery('state', '!=', 7);
ga.addAggregate('COUNT', 'cmdb_ci');
ga.groupBy('cmdb_ci');
ga.addHaving('COUNT', '>=', 5);
ga.query();
while (ga.next()) {
 var ciId = ga.cmdb_ci.toString();
 if (!ciId) continue;
 var alreadyMI = new GlideRecord('incident');
 alreadyMI.addQuery('cmdb_ci', ciId);
 alreadyMI.addQuery('major_incident_state', '!=', '');
 alreadyMI.addQuery('opened_at', '>', gs.hoursAgo(2));
 alreadyMI.query();
 if (alreadyMI.hasNext()) continue;

var seed = new GlideRecord(‘incident’);
seed.addQuery(‘cmdb_ci’, ciId);
seed.orderBy(‘opened_at’);
seed.setLimit(1);
seed.query();
if (seed.next()) {
seed.major_incident_state = ‘proposed’;
seed.update();
gs.eventQueue(‘major.incident.candidate’, seed, ga.getAggregate(‘COUNT’, ‘cmdb_ci’), ciId);
}
}

4) Reopen blocker if user replies via email

// Inbound Action — on incoming email matching incident
(function reopenIfUserReplied(email, current) {
 if (current.state == 6 || current.state == 7) {
 if (gs.daysBetween(current.resolved_at, gs.nowDateTime()) < 7) {
 current.state = 2; // In Progress
 current.reopen_count = (parseInt(current.reopen_count) || 0) + 1;
 current.comments = 'Reopened via email reply:\n\n' + email.body_text;
 current.work_notes = 'Auto-reopened: user replied within 7 days of resolution.';
 current.update();
 } else {
 // Too old — create new incident, link
 var clone = new GlideRecord('incident');
 clone.initialize();
 clone.short_description = '[Re-open requested] ' + current.short_description;
 clone.description = email.body_text;
 clone.parent_incident = current.sys_id;
 clone.caller_id = current.caller_id;
 clone.insert();
 }
 }
})(email, current);

5) CAB auto-bypass for Standard changes

// Business Rule — before insert on change_request
(function autoApproveStandard() {
 if (current.type == 'standard') {
 current.state = -1; // Implement (skip Assess + Authorize)
 current.approval = 'approved';
 current.work_notes = 'Auto-approved: Standard change from pre-approved template ' +
 current.std_change_producer_version.getDisplayValue();
 }
})();

6) CI relationship traverser — blast radius

// Script Include or Background script — find downstream CIs
function findBlastRadius(rootCiSysId, maxDepth) {
 var visited = {};
 var queue = [{id: rootCiSysId, depth: 0}];
 var result = [];
 while (queue.length) {
 var node = queue.shift();
 if (visited[node.id] || node.depth > (maxDepth || 5)) continue;
 visited[node.id] = true;
 result.push(node.id);
 var rel = new GlideRecord('cmdb_rel_ci');
 rel.addQuery('parent', node.id);
 rel.query();
 while (rel.next()) {
 queue.push({id: rel.child.toString(), depth: node.depth + 1});
 }
 }
 return result;
}
// Usage:
var blast = findBlastRadius('<ci_sys_id>', 4);
gs.info('Blast radius: ' + blast.length + ' downstream CIs');

7) SLA pause when assigned to vendor

// Business Rule — after update on incident
(function pauseSlaForVendor() {
 if (current.assignment_group.getDisplayValue().toString().indexOf('Vendor') < 0) return;
 var sla = new GlideRecord('task_sla');
 sla.addQuery('task', current.sys_id);
 sla.addQuery('active', true);
 sla.addQuery('stage', '!=', 'paused');
 sla.query();
 while (sla.next()) {
 sla.stage = 'paused';
 sla.update();
 }
 current.work_notes = 'SLA paused (vendor handling).';
})();

8) KB article suggestion via AI Search

// On incident form — UI Action "Suggest KB"
var aisRoute = '/api/sn_ais/search';
var payload = {
 indexes: ['kb_knowledge'],
 query: g_form.getValue('short_description'),
 size: 3
};
var ga = new GlideAjax('AISearchAjax');
ga.addParam('sysparm_name', 'search');
ga.addParam('sysparm_payload', JSON.stringify(payload));
ga.getXMLAnswer(function(answer) {
 var hits = JSON.parse(answer);
 var html = hits.map(function(h) { return '<li><a href="kb_view.do?sys_id=' + h.id + '">' + h.title + '</a></li>'; }).join('');
 g_form.showFieldMsg('short_description', '<ul>' + html + '</ul>', 'info', true);
});

9) Bulk update stale incidents (>30d)

// Background script — close stale "Pending" incidents
var stale = new GlideRecord('incident');
stale.addQuery('state', 3); // On Hold / Pending
stale.addQuery('sys_updated_on', '<', gs.daysAgo(30));
stale.query();
while (stale.next()) {
 stale.state = 6;
 stale.close_code = 'Closed/Resolved by Caller';
 stale.close_notes = 'Auto-closed: no activity 30 days. Reopen if needed.';
 stale.update();
}
gs.info('Stale closed: ' + stale.getRowCount());

10) Change conflict detector — see §17.6 Wednesday script.

11) Outage announcement creator

// Script Action — when CI marked operational_status = "Non Operational"
(function createOutage(ci) {
 var out = new GlideRecord('cmdb_ci_outage');
 out.initialize();
 out.cmdb_ci = ci.sys_id;
 out.type = 'outage';
 out.begin = gs.nowDateTime();
 out.short_description = 'Outage on ' + ci.name;
 out.message = 'Service ' + ci.name + ' is currently impacted. Engineering is engaged.';
 var outId = out.insert();

// Public announcement
var ann = new GlideRecord(‘announcement’);
ann.initialize();
ann.title = ‘Service degraded: ’ + ci.name;
ann.message = out.message;
ann.style = ‘critical’;
ann.active = true;
ann.insert();
return outId;
})(current);

12) Top contributor leaderboard (weekly)

// Scheduled Job — weekly Mon 08:00
var ga = new GlideAggregate('incident');
ga.addQuery('resolved_at', '>=', gs.daysAgo(7));
ga.addAggregate('COUNT');
ga.groupBy('resolved_by');
ga.orderByAggregate('COUNT', 'desc');
ga.setLimit(5);
ga.query();
var board = [];
while (ga.next()) {
 board.push({
 agent: ga.resolved_by.getDisplayValue(),
 resolved: ga.getAggregate('COUNT')
 });
}
gs.eventQueue('itsm.leaderboard.weekly', null, JSON.stringify(board), '');

13) Trigger Now Assist resolution notes

// UI Action on incident — "Generate resolution notes"
(function {
 if (!current.work_notes) {
 gs.addErrorMessage('Add work notes first — model needs context.');
 return;
 }
 var na = new sn_nowassist.NowAssistInline();
 var notes = na.generateResolutionNotes(current);
 current.close_notes = notes;
 current.update();
 gs.addInfoMessage('Resolution notes generated.');
})();

14) Auto-link CMDB CI by short description

// Business Rule — before insert on incident
(function linkCiBySD() {
 if (!current.cmdb_ci.nil()) return;
 var sd = (current.short_description || '').toString().toLowerCase();
 var ci = new GlideRecord('cmdb_ci');
 ci.addQuery('operational_status', '1');
 ci.addEncodedQuery('nameLIKE' + sd.split(' ')[0]);
 ci.setLimit(1);
 ci.query();
 if (ci.next()) {
 current.cmdb_ci = ci.sys_id;
 current.work_notes = 'CI auto-linked via short_description: ' + ci.name;
 }
})();

15) Detect duplicate incident by similarity

// Business Rule — after insert on incident
(function flagDuplicates() {
 var dup = new GlideRecord('incident');
 dup.addQuery('caller_id', current.caller_id);
 dup.addQuery('cmdb_ci', current.cmdb_ci);
 dup.addQuery('opened_at', '>', gs.hoursAgo(2));
 dup.addQuery('sys_id', '!=', current.sys_id);
 dup.addQuery('state', '!=', 7);
 dup.query();
 if (dup.next()) {
 current.parent_incident = dup.sys_id;
 current.work_notes = 'Possible duplicate of ' + dup.number;
 current.update();
 }
})();

16) Auto-tag VIPs

// Business Rule — before insert on incident
(function tagVip() {
 var u = new GlideRecord('sys_user');
 if (u.get(current.caller_id) && (u.vip == true || u.vip == 'true')) {
 current.priority = 1;
 current.impact = 1;
 current.urgency = 1;
 current.assignment_group = gs.getProperty('itsm.vip.group');
 current.work_notes = 'VIP caller — priority elevated, routed to VIP queue.';
 }
})();

17) Mass-notify users on outage CI

// Script Action — outage_create event
(function notifyAffectedUsers(ci) {
 // Find users with incidents on this CI in past 7d
 var inc = new GlideRecord('incident');
 inc.addQuery('cmdb_ci', ci.sys_id);
 inc.addQuery('opened_at', '>', gs.daysAgo(7));
 inc.query();
 var users = {};
 while (inc.next()) users[inc.caller_id.toString()] = true;

Object.keys(users).forEach(function(userId) {
gs.eventQueue(‘outage.notify.user’, null, userId, ci.sys_id);
});
})(current);

18) P1 escalation timer

// Scheduled Job — every 5 minutes
var p1 = new GlideRecord('incident');
p1.addQuery('priority', 1);
p1.addQuery('state', 'IN', '1,2'); // New, In Progress
p1.addQuery('opened_at', '<', gs.minutesAgo(30));
p1.addQuery('escalation', 0);
p1.query();
while (p1.next()) {
 p1.escalation = 1;
 p1.work_notes = 'Auto-escalated: P1 unresolved 30 minutes.';
 p1.update();
 gs.eventQueue('itsm.p1.escalate', p1, p1.assignment_group.toString(), '');
}

19) Survey trigger on close

// Business Rule — after update on incident, state changed to 7
(function triggerSurvey() {
 if (current.state != 7 || previous.state == 7) return;
 if (current.contact_type == 'self-service' || current.opened_by == current.caller_id) {
 gs.eventQueue('asmt.send.survey', current, 'incident_satisfaction', current.caller_id.toString());
 }
})();

20) Major incident dashboard refresher

// Scheduled Job — every 10 minutes
var ind = new GlideRecord('pa_indicators');
ind.addQuery('name', 'CONTAINS', 'Major Incident');
ind.query();
while (ind.next()) {
 var dc = new sn_pa.PADataCollector();
 dc.collectIndicator(ind.sys_id.toString());
}
gs.info('Refreshed ' + ind.getRowCount() + ' MI indicators');

17.11 Power-user keyboard shortcuts

Key Action
j then t Jump to “Tasks”
Ctrl+i Toggle Form view info
Alt+s Save record
Alt+m Insert and stay
g + g Open Global search
Ctrl+Shift+J Open JS background scripts

اختصارات Forms مفيدة جدًا للوكلاء — اطبعها وعلقها بجانب الشاشة.


§18 — From-Scratch Implementation (Day 0 → Day 30)

A 30-day pragmatic ITSM rollout. Each day is independently sign-off-able.
خطة بناء ITSM من الصفر في 30 يومًا — كل يوم له مخرجات وتسليم.


18.1 Day 0 — Prep (the week before)

ITIL maturity self-assessment (score each 1–5):

Process Score Notes
Incident management __ Defined? Measured? Automated?
Problem management __ RCA culture? KE in KB?
Change management __ CAB? Standard pre-approved?
Service catalog __ Items? Approvals? Fulfilment?
Knowledge management __ KCS adopted? Author training?
CMDB __ (See CMDB.md)

Stakeholder map (RACI):

Role Person R A C I
Exec sponsor __ A I
CIO/IT Director __ A C
Service Desk Lead __ R C
Change Advisory Board chair __ R I
HR (for catalog tie-ins) __ C I
Security/Risk __ C I

Vendor map:

Vendor Function SLA contact Support portal
Microsoft (M365) Email, Teams ____ admin.microsoft.com
AWS/Azure Cloud infra ____ console
Telco WAN/MPLS ____ ___
MSP/L3 Server ops ____ ___

Success criteria (must agree before Day 1):

- All P1/P2 incidents created in ServiceNow within 5 minutes of detection
- 100% of changes recorded; no rogue prod changes
- KB deflection target: 20% by month 3
- SLA breach rate < 5% by month 6
- CSAT >= 4.0 / 5.0
- Update Set "ITSM_Baseline_v1" exported and version-controlled

لا تنتقل ليوم 1 قبل الحصول على توقيع الراعي على معايير النجاح.


18.2 Day 1 — Activate plugins & confirm CMDB

Navigate: All > System Definition > Plugins
Activate (with demo data DISABLED for prod):
- com.snc.incident (Incident Management)
- com.snc.problem (Problem Management)
- com.snc.change_request (Change Management)
- com.snc.knowledge (Knowledge Management)
- com.snc.service_catalog (Service Catalog)
- com.snc.service_portal (Service Portal)
- com.snc.service_portal.employee_center (Employee Center)
- com.snc.sla (Service Level Management)
- com.snc.major_incident_mgmt (Major Incident)

Confirm CMDB present — see CMDB.md Day 1. — بدون CMDB لن يعمل تحليل التأثير ولا ربط CI بالحادث.

⚠️ Do NOT activate plugins straight on prod. Use a clone of prod, test, then promote via Update Set.


18.3 Day 2–3 — Categories, groups, on-call

Categories & subcategories:

Navigate: All > System Definition > Choice Lists
Filter: Table = incident · Element = category
Add:
 hardware → laptop, desktop, monitor, peripheral
 software → office, browser, antivirus, custom_app
 network → wifi, vpn, dns, lan
 access → ad, mfa, vpn, app_access
 inquiry → how_to, policy

Assignment groups (seed list):

Group Manager Role Members
Service Desk L1 ____ itil 8
Network Ops ____ itil 4
Server Ops ____ itil 5
Application Support ____ itil 6
Security Ops ____ sn_si.admin 3
Major Incident Comms ____ major_incident_manager 2

On-call rotation seed:

Navigate: All > On-Call Scheduling > Schedules
Create: "Server Ops 24x7"
Roster: 4 engineers, weekly rotation Mon 08:00
Escalation: 5 min, 15 min, 30 min, Manager

18.4 Day 4–5 — Incident states, priority matrix, SLAs

Incident states (default + custom):

Value Label When
1 New Created, not yet picked up
2 In Progress Agent working
3 On Hold (Pending Caller) Waiting on customer
6 Resolved Fix applied, monitoring
7 Closed Confirmed; auto after 5d
8 Cancelled Wrong record

Priority matrix (Data Lookup dl_matrix):

Impact \ Urgency | 1 High | 2 Medium | 3 Low
1 High | 1 | 2 | 3
2 Medium | 2 | 3 | 4
3 Low | 3 | 4 | 5

SLA targets (seed):

Priority Response Resolution Schedule
P1 (Critical) 15 min 4 hours 24x7
P2 (High) 30 min 8 hours 24x7
P3 (Moderate) 4 hours 24 hours Business hours
P4 (Low) 1 day 5 days Business hours
P5 (Planning) 3 days 30 days Business hours
Navigate: All > Service Level Management > SLA Definitions
Create one definition per Priority. Use "Run on" → Task SLAs.

18.5 Day 6–7 — Change Types, CAB, Calendar

Change Types:

Type When Approval Lead time
Standard Pre-approved low-risk repeatable None (template) None
Normal Most changes CAB 5 business days
Emergency Restore service / security patch E-CAB chair None (post-justify)

CAB meeting (recurring):

Wednesdays 14:00–15:00 — chaired by Change Manager
Quorum: Change Mgr + Tech Lead + Security + Business rep
Agenda template (Knowledge article):
1) Implemented since last CAB
2) Pending Authorize
3) Pending Schedule
4) Conflicts (§17.10.10)
5) Freeze windows

Change Schedule view:

Navigate: All > Change > Schedule
Filter: this week + next two weeks
Color: by risk

18.6 Day 8–9 — Problem, RCA, Known Errors

Problem states:

New → Assess → RCA → Fix in Progress → Resolved → Closed

RCA workflow — see §17.4 Recipe D for template.

Known Errors KB:

Create kb_knowledge_base: "Known Errors"
Visibility: itil + ess (read)
Each KE article auto-created when problem.known_error = true

18.7 Day 10–12 — Knowledge bases & workflow

Knowledge bases (seed):

KB Audience Owner
IT — Public All employees IT Comms
IT — Internal itil Service Desk Mgr
HR — Policies All HR (links to HR Leave module)
Security itil + sec CISO office
Known Errors itil + ess Problem Mgr

KB workflow with approval:

Draft → Review → Published
Review state requires kb_owner approval (Flow)
Auto-archive after 365d inactive (§17.7 script)

Article templates — create 3:
1. How-to (steps, screenshots, related)
2. FAQ (Q&A list)
3. Troubleshoot (Problem → Cause → Resolution)


18.8 Day 13–14 — Service Catalog (10 items)

Wave-1 catalog items:

# Item Type Approvals
1 Laptop request Catalog item Manager
2 Password reset Record producer None
3 Software install Catalog item Manager + Security
4 Access request Catalog item Manager + System owner
5 RMA / hardware return Record producer None
6 Conference room booking Catalog item Facilities
7 VIP request (escalated) Record producer None
8 Project access Order guide PMO + Manager
9 Contractor onboarding Order guide HR + Manager + Security
10 Terminate access Record producer HR confirmation

Record Producer #2 — Password reset:

// Script — record producer for incident table, category=access
(function() {
 current.short_description = 'Password reset request for ' + producer.system_name;
 current.category = 'access';
 current.subcategory = 'ad';
 current.urgency = 2;
 current.impact = 3;
 current.caller_id = gs.getUserID();
 current.assignment_group = gs.getProperty('itsm.password.reset.group');
 current.contact_type = 'self-service';
 current.description = 'System: ' + producer.system_name +
 '\nReason: ' + producer.reason +
 '\nLast known login: ' + (producer.last_login || 'unknown');
})();

Record Producer #5 — RMA:

(function() {
 current.short_description = 'RMA — ' + producer.asset_tag;
 current.category = 'hardware';
 current.subcategory = producer.device_type;
 current.cmdb_ci = (function() {
 var ci = new GlideRecord('cmdb_ci_hardware');
 ci.addQuery('asset_tag', producer.asset_tag);
 ci.query();
 return ci.next() ? ci.sys_id.toString() : '';
 })();
 current.description = 'Defect: ' + producer.defect_description +
 '\nFirst seen: ' + producer.first_seen +
 '\nShipping: ' + producer.shipping_address;
})();

Record Producer #10 — Terminate access:

(function() {
 current.short_description = 'Terminate access for ' + producer.user.getDisplayValue();
 current.category = 'access';
 current.urgency = 1;
 current.impact = 2;
 current.assignment_group = gs.getProperty('itsm.offboarding.group');
 current.description = 'User: ' + producer.user.getDisplayValue() +
 '\nLast day: ' + producer.last_day +
 '\nManager: ' + producer.manager.getDisplayValue() +
 '\nSystems to disable: ' + producer.systems_list +
 '\nForward email to: ' + producer.email_forward;
})();

18.9 Day 15–16 — Service Portal & branding

Navigate: All > Service Portal > Portals
Clone "Service Portal" → "IT Hub" → URL suffix /ithub
Update widgets:
- Header logo (PNG max 200×60)
- Color theme (primary, accent, header)
- Homepage tiles: Get Help · Request Something · Knowledge · My Items
Test impersonate ess → must work on mobile width 375px

Employee Center:

Navigate: All > Employee Center > Configuration
Topic taxonomy: IT · HR · Finance · Facilities
Featured items (top 5 from §18.8)
Search collections: KB + Catalog + Articles

18.10 Day 17 — Notifications

Notifications to seed (sysevent_email_action):

# Event Trigger Recipient
1 Incident assigned incident.assignment_group changes Group
2 Incident resolved state changes to 6 Caller
3 Incident closed state changes to 7 Caller
4 Change scheduled state changes to scheduled CI subscribers
5 Change implemented state = implement complete Stakeholders
6 Request RITM created sc_req_item.insert Requester
7 Approval needed approval = requested Approver
8 P1 escalation event itsm.p1.escalate Manager
9 Major Incident declared MI flag = proposed MI distribution
10 Survey event asmt.send.survey Caller

Bilingual templates — provide both EN + AR body fields; respect user language sys_user.preferred_language.


18.11 Day 18–19 — Reports & ITSM dashboard

4-tile ITSM Dashboard:

Tile Indicator Source
P1 Open Count(incident.priority=1 AND active=true) Real-time
SLA Breach Rate Sum(task_sla.has_breached=true) / Sum(all) × 100 Daily
MTTR Avg(resolved_at − opened_at) for last 30d Daily
Change Success Rate Closed Successful / Closed × 100 Weekly

Build:

Navigate: All > Performance Analytics > Dashboards
New → "ITSM Operations"
Add 4 widgets: Single Score for each tile
Set refresh: 5 min real-time, others daily
Share with: itil_admin, change_manager, exec_viewer

18.12 Day 20 — PA Indicators & Data Collector

Navigate: All > Performance Analytics > Indicator Source
Create source: "All Incidents" → table incident, conditions: active=true
Indicators:
 - INC Volume (count, daily)
 - MTTR (avg duration resolved-opened, daily)
 - FCR rate (resolved_at - opened_at < 1h)
 - P1 Volume
Data Collector: nightly 02:00

18.13 Day 21–22 — ATF regression suite (10 tests)

Navigate: All > Automated Test Framework > Tests
Create:
T1 — Create incident as ess, save, verify caller_id auto-set
T2 — Set Impact=1, Urgency=1, verify Priority=1
T3 — Create Standard change, verify auto-approved
T4 — Create Normal change, verify CAB approval task
T5 — Resolve incident, verify task_sla stopped
T6 — Order catalog item, verify REQ+RITM+SC_TASK
T7 — Approve REQ as manager, verify state → Approved
T8 — Inbound email creates incident with caller from email
T9 — Impersonate ess, verify cannot see change.list
T10 — Major incident promotion, verify MI workspace opens
Schedule: Nightly 22:00, alert on fail

18.14 Day 23 — AI / Now Assist features

Navigate: All > Now Assist > Setup
Enable:
- Predictive Categorization (incident)
- Resolution Notes (incident)
- Similar Incidents
- Summarize Incident
- Now Assist for KB authoring
Train: 90 days of historic incidents (>5000 records min)
Test: open new test incident, verify category suggested with confidence > 0.7

18.15 Day 24–25 — Integrations

Outlook email-to-incident:

1) Create mailbox [email protected]
2) Configure ServiceNow Email Properties: incoming POP3/IMAP/OAuth
3) Inbound Action "Create Incident from email" (default OOTB)
4) Test: send email → check incident.list within 2 min

Teams notifications:

Spoke: Microsoft Teams Spoke (Integration Hub)
Subflow: "Post to Teams channel on P1 incident"
Trigger: incident.priority = 1 AND state inserts
Action: Teams - Post message to channel "MI War Room"

JIRA bi-directional:

Spoke: Atlassian Jira Spoke
Use cases:
- ServiceNow incident → JIRA bug (when category=software AND subcategory=defect)
- JIRA issue status change → ServiceNow incident work note
Auth: OAuth + dedicated service account

18.16 Day 26 — ACL hardening

Table Operation Role Condition
incident read itil OR ess (own caller_id) —
incident write itil assignment_group in user’s groups
change_request read itil —
change_request write change_manager OR change_coordinator —
problem read itil —
problem write problem_manager —
kb_knowledge read any published only
kb_knowledge write knowledge author own KB
sysapproval_approver read self approver = self
sc_request read itil OR self requested_for = self OR is_approver

⚠️ Do NOT use Any role on incident. Always specify itil or stricter.


18.17 Day 27 — UAT 30-scenario plan

Categories: 10 end-user + 10 agent + 5 change + 3 catalog + 2 KB
Pass/fail captured in atf_test_result-like table or simple spreadsheet
Sample scenarios:
UC-01 ess opens incident from /esc
UC-02 ess orders laptop, manager approves
UC-03 itil triages new incident, sets priority via matrix
UC-04 itil escalates P2 to Tier 2
UC-05 itil resolves with close code
UC-06 itil reopens within 7 days
UC-07 ess gets survey on close
UC-08 MI declared, comms fire
UC-09 problem from incident, link 5 incidents
UC-10 KE published to KB
UC-11 standard change auto-approved
UC-12 normal change → CAB approval
UC-13 emergency change with post-justify
UC-14 change conflict detected
UC-15 freeze window blocks new change
...
UC-30 PA dashboard renders all 4 tiles within 3 sec

18.18 Day 28 — Training & video

Audiences:
1) Admin (4 hours) — config, ACLs, scripts, troubleshooting
2) Agent (2 hours) — SOW, triage recipes (§17), KB linking
3) End-user (15 minutes) — EC tour, raise issue, approvals, my items
Deliverables:
- Slides EN + AR
- Recorded video (≤ 10 min each)
- Quick reference card (1 page bilingual)
- LMS handoff

18.19 Day 29 — Go-Live readiness review

Sign-off checklist:

[ ] All UAT scenarios PASS (≥ 28/30)
[ ] ATF regression GREEN for 3 consecutive nights
[ ] Update Set "ITSM_Baseline_v1" exported, committed to source-control
[ ] Notifications tested with real email + Teams
[ ] CMDB pre-loaded with critical CIs (see CMDB.md Day 8)
[ ] Knowledge base seeded with ≥ 50 articles
[ ] Catalog has 10 wave-1 items live
[ ] PA dashboard renders for exec_viewer role
[ ] War-room runbook printed & distributed
[ ] Hypercare squad on call 24x7 for week 1
[ ] Comms sent to all employees (T-7, T-1, Go-Live)

18.20 Day 30 — Hypercare day-1 monitoring

- Every 30 min: check incident.list backlog
- Every hour: review P1 / P2 count
- Stand-up at 10:00 and 16:00 with squad
- Watch for: ACL errors, missing fields, slow loads (Cache Inspector)
- Communication: daily exec email "ITSM Go-Live Day N status"
- Capture issues in a tracker — fix-forward not rollback unless critical

18.21 Common pitfalls

Pitfall Symptom Fix
No CMDB before ITSM Incidents lack CI; impact blind Phase CMDB first (see CMDB.md Day 1–8)
Too many categories Agent confusion, low FCR Cap at 5 top + 4 sub each
SLA on wrong state False breaches Use Pause conditions thoroughly
Standard changes still go to CAB CAB drowning Auto-approve via §17.10.5
KB unmaintained Stale, untrusted, low deflection Auto-retire script §17.7
ACL too open Data leak risk Day 26 hardening + audit
Notification storm Email fatigue Consolidate digest + Teams routing
Workspace not adopted Agents stay on classic Train on SOW (§17.3) + remove classic shortcut
No PA Data Collector schedule Empty dashboards Day 20 schedule nightly
Survey ignored Low response rate Trigger on close, < 3 questions, mobile-friendly

18.22 Post Go-Live month-1 KPIs

KPI Target Source
Adoption — % incidents from /esc (not phone) ≥ 40% incident.contact_type
MTTR (median, P3) ≤ 24h PA
SLA breach rate (overall) ≤ 7% PA
Change success rate ≥ 95% change_request.close_code
CSAT (top 2 box) ≥ 80% Survey results
KB deflection (search-then-no-ticket) ≥ 15% KB analytics
First Contact Resolution (FCR) ≥ 35% resolved_at - opened_at < 1h
ATF regression pass rate ≥ 95% ATF dashboard

لو لم تصل لهذه الأرقام في الشهر الأول، خذها كموجة CSI ولا تنتظر — اعقد retro أسبوعي.


18.23 Final implementation checklist


§19 — CIS-ITSM Exam & Z-to-Hero Feature Labs

19.1 Exam bank linkage

Primary bank: C:\SVCProject\EXAM_BANK_ITSM_360.md (~120 questions, 103 KB)

Coverage: Incident, Problem, Change (Std/Normal/Emergency), Knowledge, Catalog, SLA, Workflows, Workspace, Reports, PA.

19.2 Z-to-Hero Feature Labs (15 labs)

Lab Feature Bank Q area
L1 Create P1 incident → CI link → SLA starts Incident basics
L2 Major Incident → mass-communication + parent/child incidents Major Inc
L3 Problem from incident → workaround → known error Problem mgmt
L4 Standard Change template + auto-approve Change types
L5 Normal Change + multi-level CAB approval Change wf
L6 Emergency Change + post-implementation review Emergency
L7 Knowledge article (KCS) from resolved incident KB
L8 Catalog Item “Hardware Request” with approval Catalog
L9 SLA pause on “Awaiting Info” + resume on “In Progress” SLA
L10 Service Operations Workspace /now/sow/home SOW
L11 Assignment Rule by category + skill Assignment
L12 Priority Lookup matrix (Impact × Urgency) Priority
L13 Reports: incident backlog + SLA breach dashboard Reports
L14 Now Assist: summarize incident + suggest KB AI in ITSM
L15 Bulk close 50 incidents via list action + reason Productivity

19.3 Top 20 ITSM concepts to master

  1. Task hierarchy: task → incident, problem, change_request, sc_request, sc_req_item, sc_task
  2. State model (incident 1-Active to 7-Closed)
  3. Priority = Impact × Urgency via Data Lookup
  4. Assignment Rule order of evaluation
  5. SLA: definition, start condition, pause condition, stop condition
  6. Change Types: Standard (pre-approved), Normal (CAB), Emergency (post-review)
  7. Change Approval: Approval Definition vs Flow approval
  8. Change Risk: assessment matrix
  9. Problem Workaround vs Resolution vs Known Error
  10. Knowledge: KCS lifecycle (Capture, Structure, Reuse, Improve)
  11. Service Catalog: Item vs Record Producer vs Order Guide
  12. RITM lifecycle: Request → RITM → SC Task
  13. Major Incident: declare → child/parent linking → comms
  14. Notifications: Event-driven (preferred) vs direct subscription
  15. Service Operations Workspace components
  16. Performance Analytics: Indicators for incident, problem, change
  17. Incident → Problem auto-promotion logic
  18. ATF for ITSM: incident creation + state transitions
  19. Reports vs Dashboards vs PA
  20. ITSM Pro features: Now Assist, Vendor Mgr, DevOps integration

19.4 5 sample CIS-ITSM questions

Q. Which is the correct order of evaluation for Assignment Rules?
A. By order field ascending; first matching rule applies
B. Random
C. By sys_created_on desc
D. Domain → order → first match

Answer: D (in domain-separated instances) — otherwise just order ascending.

Q. A change is rejected after CAB. What state does it move to?
A. Closed
B. Cancelled
C. Authorize → Reject
D. Implement (skipped)

Answer: Depends on workflow — usually moves to Closed with reason “Rejected”.

Q. When should you use a Record Producer vs Catalog Item?
A. RP creates any record type; Item creates only sc_req_item
B. RP needs Flow; Item needs Workflow
C. RP is faster
D. They’re identical

Answer: A

Q. SLA stop condition for incident is typically…
A. state=resolved OR state=closed
B. state=closed
C. state=in_progress
D. priority=4

Answer: A

Q. Service Operations Workspace URL is…
A. /now/sow/home
B. /sp?id=service_ops
C. /itil_homepage.do
D. /now/sow/agent

Answer: A

(Use the full bank EXAM_BANK_ITSM_360.md for remaining 115+ questions.)

19.5 What “Hero” looks like for ITSM


Hands-on Labs — مختبرات عملية

Step-by-step labs for PDI / Australia instance. Replace {BASE} with your instance URL.
مختبرات خطوة بخطوة — استبدل {BASE} برابط نسختك.

  1. Lab 1 — Create & resolve an incident / إنشاء حادث وحله
    - Open {BASE}/incident.do?sys_id=-1.
    - Set Caller, Category, Short description; submit.
    - Assign to your group; move state to In Progress → Resolved → Closed.
    - Verify SLA record on Related Lists → Task SLAs.

  2. Lab 2 — Priority matrix / مصفوفة الأولوية
    - Open an incident; change Impact and Urgency.
    - Confirm Priority auto-calculates via Data Lookup.
    - Document the matrix in a personal cheat sheet.

  3. Lab 3 — Catalog request E2E / طلب كتالوج من البداية للنهاية
    - Browse {BASE}/esc or {BASE}/sp.
    - Order a catalog item; track REQ → RITM → catalog tasks.
    - Complete fulfillment tasks and close the request.

  4. Lab 4 — Standard Change auto-approval / تغيير قياسي
    - Create a Standard Change from a template at {BASE}/change_request.do?sys_id=-1.
    - Walk through Implement → Review → Close without CAB.

  5. Lab 5 — Assignment rule / قاعدة إسناد
    - At {BASE}/sysrule_assignment_list.do, create a rule matching Category = Software.
    - Create a matching incident; verify auto-assignment.

  6. Lab 6 — Knowledge publish / نشر مقال معرفة
    - Create KB article at {BASE}/kb_knowledge.do?sys_id=-1.
    - Submit for review; publish; link from a resolved incident.

  7. Lab 7 — Service Operations Workspace / مساحة عمل الوكيل
    - Open {BASE}/now/sow/home.
    - Use List, Record, and Activity stream to work three incidents.

  8. Lab 8 — Flow approval for Change / موافقة Flow للتغيير
    - Build a simple approval Flow at {BASE}/now/flow-designer.
    - Attach to Normal Change model; test end-to-end.


Best Practices — أفضل الممارسات

Area Best practice (EN) أفضل ممارسة (AR)
Assignment Use Assignment Rules, not Business Rules استخدم Assignment Rules وليس Business Rules
Priority Impact × Urgency via Data Lookup — never manual override culture الأولوية عبر Data Lookup — لا ثقافة تجاوز يدوي
SLA Define pause (On Hold) and stop (Resolved/Closed) conditions upfront حدّد شروط الإيقاف المؤقت والنهائي مسبقًا
Change Standard for repeatable; Normal + CAB for risky; Emergency with post-review Standard للمتكرر؛ Normal + CAB للخطير؛ Emergency مع مراجعة لاحقة
Catalog Variable Sets for reuse; Flow Designer for fulfillment Variable Sets للإعادة؛ Flow Designer للتنفيذ
Agent UI Prefer Service Operations Workspace over classic lists فضّل SOW على القوائم الكلاسيكية
CMDB Link CI on incidents where impact analysis matters اربط CI بالحوادث حيث تحليل التأثير مهم
Knowledge KCS: capture on resolve, review quarterly KCS: التقاط عند الحل، مراجعة ربع سنوية

Common mistakes to avoid / أخطاء شائعة:
- Duplicate assignment logic in BR + Assignment Rules — duplicates cause race conditions.
- SLA without schedule → runs 24/7 incorrectly.
- Catalog items without fulfillment Flow → RITM stuck in Open.


Deployment Checklist — قائمة النشر

# Task (EN) المهمة (AR) Verify
1 Activate ITSM plugins (Change, Problem if needed) تفعيل إضافات ITSM Plugins list
2 Configure roles & groups (itil, change_manager, catalog_admin) الأدوار والمجموعات User has correct role
3 Assignment Rules + Priority matrix قواعد الإسناد ومصفوفة الأولوية Test incident auto-assigns
4 SLA Definitions + schedules تعريفات SLA + جداول Task SLA fires
5 Service Catalog wave-1 items + Flows عناصر كتالوج الموجة الأولى End-to-end order works
6 Change models (Standard/Normal/Emergency) نماذج التغيير Each type routes correctly
7 Employee Center / Service Portal branding هوية البوابة User can submit request
8 SOW layout for agents تخطيط SOW للوكلاء Agent can work queue
9 Inbound email actions (if used) إجراءات البريد الوارد Email creates incident
10 ATF smoke tests + Update Set اختبارات ATF + Update Set Tests pass; US complete
11 UAT sign-off + training materials UAT + مواد تدريب Signed pack
12 Production deploy + hypercare plan نشر إنتاج + خطة hypercare Runbook ready

Direct URLs Quick Reference

Page Navigation URL
Incidents (list) All > Incident > All {BASE}/incident_list.do
Incident (new) All > Incident > Create New {BASE}/incident.do?sys_id=-1
Problems All > Problem > All {BASE}/problem_list.do
Changes All > Change > All {BASE}/change_request_list.do
Change calendar All > Change > Schedule {BASE}/change_request_calendar.do
Change models All > Change > Administration {BASE}/chg_model_list.do
Catalog items All > Service Catalog > Maintain Items {BASE}/sc_cat_item_list.do
Categories All > Service Catalog > Categories {BASE}/sc_category_list.do
Record producers All > Service Catalog > Record Producers {BASE}/sc_cat_item_producer_list.do
SLA definitions All > SLA > SLA Definitions {BASE}/contract_sla_list.do
Active SLAs All > SLA > SLA {BASE}/task_sla_list.do
Assignment rules All > System Policy > Assignment {BASE}/sysrule_assignment_list.do
Inbound email All > System Policy > Inbound Actions {BASE}/sysevent_in_email_action_list.do
Knowledge articles All > Knowledge > Articles {BASE}/kb_knowledge_list.do
Knowledge bases All > Knowledge > Knowledge Bases {BASE}/kb_knowledge_base_list.do
Flow Designer All > Process Automation > Flow Designer {BASE}/now/flow-designer
Service Portal Service Portal {BASE}/sp
Employee Center Employee Center {BASE}/esc
Service Operations Workspace Now Experience > SOW {BASE}/now/sow/home
Plugins All > System Definition > Plugins {BASE}/v_plugin_list.do
Update Sets All > System Update Sets {BASE}/sys_update_set_list.do
Guided Setup All > Guided Setup {BASE}/now/guided-setup

§20 — Deep Implementation Labs (Create → Configure → Deploy)

Purpose: Production-grade, step-by-step labs with copy/paste scripts, SLA wiring, assignment rules, ATF smoke tests, and {BASE} URLs for every ITSM component touched.
Prerequisite: Replace {BASE} with your instance (e.g. https://devXXXX.service-now.com). Run all config in dev/sub-prod first; promote via Update Set.
Update Set: Create ITSM_Wave2_Incident_Problem_Change at {BASE}/sys_update_set_list.do before Step 20.0.

Lab Time Outcome
20.1 Incident E2E 90 min Categories, assignment, SLA, BR, deploy
20.2 Problem E2E 60 min RCA workflow, Known Error, KB link
20.3 Change E2E 90 min Normal/Standard/Emergency, CAB Flow, deploy
20.4 SLA Suite 45 min 5 priority SLAs + schedules + pause/stop
20.5 Assignment Rules 30 min 6 rules + lookup + verification
20.6 ATF Smoke Suite 60 min 12 automated regression tests
20.7 URL Master Index — Every component URL in one table

20.0 — Pre-Lab Foundation (do once)

20.0.1 Create Update Set

Step Action URL
1 Open Local Update Sets {BASE}/sys_update_set_list.do
2 Click New —
3 Name = ITSM_Wave2_Incident_Problem_Change —
4 State = In Progress —
5 Submit → Make This My Current Set —

20.0.2 Verify plugins active

Plugin Search term URL
Incident com.snc.incident {BASE}/v_plugin_list.do
Problem com.snc.problem {BASE}/v_plugin_list.do
Change com.snc.change_management {BASE}/v_plugin_list.do
SLA com.snc.sla {BASE}/v_plugin_list.do
ATF com.glide.automated_testing_framework {BASE}/v_plugin_list.do

20.0.3 Seed groups & roles (background script)

Run at {BASE}/sys.scripts.do:

// ITSM Lab 20.0 — seed groups (idempotent)
var groups = [
  {name: 'Service Desk L1', desc: 'Tier 1 incident triage'},
  {name: 'Network Ops', desc: 'Network incidents'},
  {name: 'Server Ops', desc: 'Server / infrastructure'},
  {name: 'Application Support', desc: 'Business apps'},
  {name: 'Problem Management', desc: 'RCA and Known Errors'},
  {name: 'CAB Approvers', desc: 'Change Advisory Board'}
];
groups.forEach(function(g) {
  var gr = new GlideRecord('sys_user_group');
  gr.addQuery('name', g.name);
  gr.query();
  if (!gr.next()) {
    gr.initialize();
    gr.name = g.name;
    gr.description = g.desc;
    gr.insert();
    gs.info('Created group: ' + g.name);
  } else {
    gs.info('Group exists: ' + g.name);
  }
});

20.0.4 Assign itil role to lab agent

Step Navigate URL
1 Open your user record {BASE}/sys_user_list.do
2 Roles tab → Edit —
3 Add itil, sn_change_write, problem_task —
4 Groups tab → add Service Desk L1 + CAB Approvers —

20.0.5 Verification script

// Run after 20.0.3 — expect 6 groups
var ga = new GlideAggregate('sys_user_group');
ga.addQuery('name', 'IN', 'Service Desk L1,Network Ops,Server Ops,Application Support,Problem Management,CAB Approvers');
ga.addAggregate('COUNT');
ga.query();
ga.next();
gs.info('Groups found: ' + ga.getAggregate('COUNT'));

20.1 — Incident Management Lab (Create → Configure → Deploy)

Goal: Full incident pipeline — categories, priority matrix, assignment rule, P1/P3 SLAs, Business Rule for VIP, notification, UAT, Update Set export.

Phase A — Configure (30 min)

A1. Incident categories

Step Field Value
1 Navigate All > System Definition > Choice Lists → {BASE}/sys_choice_list.do?sysparm_query=name%3Dincident%5Eelement%3Dcategory
2 Verify OOTB hardware, software, network, inquiry
3 Add if missing access (label: Access / Identity)

A2. Subcategories for hardware

Step Navigate URL
1 Choice Lists filter: table=incident, element=subcategory {BASE}/sys_choice_list.do?sysparm_query=name%3Dincident%5Eelement%3Dsubcategory
2 Add laptop, desktop, monitor, printer

A3. Priority matrix (Impact × Urgency)

Step Navigate URL
1 Open Priority Lookup Rules {BASE}/dl_matcher_list.do?sysparm_query=table%3Dincident
2 Confirm matrix: I1×U1→P1, I1×U2→P2, I2×U1→P2, I2×U2→P3, I3×U3→P4 —
3 If custom: All > Incident > Administration > Priority Lookup {BASE}/incident_list.do

A4. Incident properties

Property Recommended URL to check
glide.ui.incident.read_only.number true {BASE}/sys_properties_list.do?sysparm_query=name%3Dglide.ui.incident.read_only.number
com.snc.incident.autoclose.resolved 5 (days) {BASE}/sys_properties_list.do?sysparm_query=nameSTARTSWITHcom.snc.incident

Phase B — Assignment rule for incidents (see §20.5 Lab-INC-01)

Create rule INC — Software → Application Support at {BASE}/sysrule_assignment_list.do (detailed in §20.5).

Phase C — Business Rules (15 min)

C1. VIP auto-escalation BR

Field Value
Navigate {BASE}/sys_script_list.do?sysparm_query=collection%3Dincident
Name ITSM Lab — VIP caller priority boost
Table incident
When before insert, before update
Filter Caller changes OR new record
Advanced true

Script:

(function executeRule(current, previous) {
  if (!current.caller_id) return;
  var u = new GlideRecord('sys_user');
  if (!u.get(current.caller_id)) return;
  if (u.vip != true && u.vip != 'true') return;
  current.impact = 1;
  current.urgency = 1;
  var grp = new GlideRecord('sys_user_group');
  grp.addQuery('name', 'Service Desk L1');
  grp.query();
  if (grp.next()) current.assignment_group = grp.sys_id;
  current.work_notes = 'VIP caller — priority elevated by ITSM Lab BR.';
})(current, previous);

C2. Auto-link CI from asset tag in short description

Field Value
Name ITSM Lab — Link CI by asset tag pattern
When before insert
Advanced true
(function executeRule(current, previous) {
  if (!current.cmdb_ci.nil()) return;
  var sd = (current.short_description || '').toString();
  var match = sd.match(/ASSET[- ]?(\w+)/i);
  if (!match) return;
  var tag = match[1];
  var ci = new GlideRecord('cmdb_ci');
  ci.addQuery('asset_tag', tag);
  ci.setLimit(1);
  ci.query();
  if (ci.next()) {
    current.cmdb_ci = ci.sys_id;
    current.work_notes = 'CI linked via asset tag: ' + ci.name;
  }
})(current, previous);

Phase D — Create & walk incident lifecycle (20 min)

# Step URL / Action Expected
1 Open new incident form {BASE}/incident.do?sys_id=-1 Blank form
2 Caller = your user — caller_id set
3 Category = software, Subcategory = office — —
4 Short description = Outlook sync failure ASSET-LT-0042 — CI auto-links if asset exists
5 Impact = 2, Urgency = 2 — Priority = 3 (Moderate)
6 Submit — Number INCxxxx generated
7 Verify assignment group = Application Support — Rule INC-SW-01 fired
8 State → In Progress — task_sla timer running (§20.4)
9 Work notes = “Reset profile, monitoring” — Audit entry
10 State → On Hold, Hold reason = Awaiting Caller — SLA paused
11 State → In Progress — SLA resumed
12 State → Resolved, Close code = Solved (Permanently) — SLA stopped
13 Resolution notes = “Outlook profile recreated” — —
14 State → Closed (or wait auto-close) — Final state 7
15 Related Lists → Task SLAs {BASE}/task_sla_list.do?sysparm_query=task%3D stage = completed

P1 incident quick test:

Field Value
Impact 1 — High
Urgency 1 — High
Expected Priority 1 — Critical
Expected SLA P1 Response 15m + P1 Resolution 4h (§20.4)
Verify {BASE}/task_sla_list.do?sysparm_query=task.priority%3D1

Phase E — Notification (5 min)

Step Navigate URL
1 Email Notifications {BASE}/sysevent_email_action_list.do?sysparm_query=event_name%3Dincident.assigned
2 Verify OOTB “Incident assigned to you” is active —
3 Optional: clone for VIP — event itsm.vip.incident {BASE}/sysevent_register_list.do

Phase F — Deploy (10 min)

Step Action URL
1 Review captured records in Update Set {BASE}/sys_update_set.do?sys_id=
2 Complete Update Set —
3 Export XML Right-click Update Set → Export to XML
4 In TEST: Retrieved Update Sets → Import {BASE}/sys_remote_update_set_list.do
5 Preview → Commit —
6 Re-run P1 test incident in TEST {BASE}/incident.do?sys_id=-1

Incident lab verification script:

// Background: {BASE}/sys.scripts.do — last 5 incidents with SLA status
var inc = new GlideRecord('incident');
inc.orderByDesc('sys_created_on');
inc.setLimit(5);
inc.query();
while (inc.next()) {
  var sla = new GlideRecord('task_sla');
  sla.addQuery('task', inc.sys_id);
  sla.query();
  var slaStatus = sla.next() ? sla.stage + ' / breached=' + sla.has_breached : 'NO SLA';
  gs.info(inc.number + ' | P' + inc.priority + ' | state=' + inc.state + ' | SLA=' + slaStatus);
}

20.2 — Problem Management Lab (Create → Configure → Deploy)

Goal: Problem from incident pattern, RCA workflow, Known Error flag, KB article link, deploy.

Phase A — Configure (20 min)

A1. Problem states (verify OOTB)

State value Label URL
1 New {BASE}/problem.do?sys_id=-1
2 Assess —
3 Root Cause Analysis —
4 Fix in Progress —
5 Resolved —
6 Closed —

A2. Problem properties

Navigate URL
All > Problem > Administration > Properties {BASE}/problem_list.do

A3. Assignment rule PRB-01

Field Value
URL {BASE}/sysrule_assignment.do?sys_id=-1
Name PRB — All problems → Problem Management
Table problem
Order 200
Condition [Active] [is] [true]
Set field Assignment group = Problem Management

Phase B — Script: Create Problem from incident (UI Action alternative)

Navigate: {BASE}/sys_ui_action_list.do?sysparm_query=table%3Dincident

Or run once as background script to create problem from latest incident:

// ITSM Lab 20.2 — Create Problem from most recent open incident
var inc = new GlideRecord('incident');
inc.addQuery('state', '!=', 7);
inc.addQuery('problem_id', '');
inc.orderByDesc('opened_at');
inc.setLimit(1);
inc.query();
if (!inc.next()) {
  gs.error('No suitable incident found');
} else {
  var prb = new GlideRecord('problem');
  prb.initialize();
  prb.short_description = 'RCA: ' + inc.short_description;
  prb.description = 'Pattern investigation from ' + inc.number + '\n\n' + inc.description;
  prb.cmdb_ci = inc.cmdb_ci;
  prb.priority = inc.priority;
  var grp = new GlideRecord('sys_user_group');
  grp.addQuery('name', 'Problem Management');
  grp.query();
  if (grp.next()) prb.assignment_group = grp.sys_id;
  prb.assigned_to = gs.getUserID();
  var prbId = prb.insert();
  inc.problem_id = prbId;
  inc.update();
  prb.number = prb.number; // refresh
  prb.get(prbId);
  gs.info('Created ' + prb.number + ' linked to ' + inc.number);
}

Phase C — Walk Problem lifecycle (25 min)

# Step Field / Action Expected
1 Open problem list {BASE}/problem_list.do See PRB record
2 State → Assess — Assignment confirmed
3 Paste RCA template (§17.4 Recipe D) into Description — Structured RCA
4 State → Root Cause Analysis — —
5 Workaround = “Restart service X every 4h” work_around field —
6 State → Fix in Progress — —
7 Create related Normal Change (Related Links → Create Change) {BASE}/change_request.do?sys_id=-1 CHG linked
8 After change implements: State → Resolved — —
9 Known error = true known_error checkbox —
10 Create KB from Problem (Knowledge panel) {BASE}/kb_knowledge.do?sys_id=-1 KB draft
11 Publish KB article workflow_state = published —
12 Link KB to problem.kb_knowledge — Cross-reference
13 State → Closed — Final

Known Errors list verify:

{BASE}/problem_list.do?sysparm_query=known_error%3Dtrue

Phase D — Business Rule: Auto-flag recurring incidents

Field Value
Table incident
When after insert
Name ITSM Lab — Flag 3+ same CI in 24h
(function executeRule(current, previous) {
  if (!current.cmdb_ci) return;
  var ga = new GlideAggregate('incident');
  ga.addQuery('cmdb_ci', current.cmdb_ci);
  ga.addQuery('opened_at', '>', gs.daysAgo(1));
  ga.addQuery('sys_id', '!=', current.sys_id);
  ga.addAggregate('COUNT');
  ga.query();
  if (!ga.next()) return;
  if (parseInt(ga.getAggregate('COUNT'), 10) >= 2) {
    current.work_notes = 'PATTERN ALERT: 3+ incidents on same CI in 24h — consider Problem record.';
    current.update();
  }
})(current, previous);

Phase E — Deploy

Same Update Set workflow as §20.1 Phase F. Include: assignment rule PRB-01, BR, any KB base config.


20.3 — Change Management Lab (Create → Configure → Deploy)

Goal: Standard (auto-approve), Normal (CAB Flow), Emergency (post-review) — full lifecycle with scripts.

Phase A — Change models & types (15 min)

Type When Approval URL
Standard Pre-approved template None {BASE}/std_change_producer_list.do
Normal Most production changes CAB Flow {BASE}/chg_model_list.do
Emergency Urgent restore/security E-CAB chair {BASE}/change_request.do?sys_id=-1&sysparm_stack=no

A1. Verify Change models

Step Navigate URL
1 Change Models {BASE}/chg_model_list.do
2 Open “Normal” model —
3 Confirm states: New → Assess → Authorize → Scheduled → Implement → Review → Closed —
4 State flows {BASE}/chg_policy_list.do

A2. CAB Definition

Step Navigate URL
1 CAB Definition {BASE}/cab_definition_list.do
2 Create “Weekly CAB” if missing —
3 Members = CAB Approvers group {BASE}/sys_user_group_list.do?sysparm_query=name%3DCAB%20Approvers
4 Meeting schedule = Wednesday 14:00 —

Phase B — Flow Designer CAB approval (20 min)

Step Navigate URL
1 Flow Designer {BASE}/now/flow-designer
2 New Flow → Trigger: Service Catalog or Record Updated (change_request) —
3 Condition: type = normal AND state changes to Authorize —
4 Action: Ask for Approval → Group = CAB Approvers —
5 If Approved → Update Record state = Scheduled —
6 If Rejected → Update Record state = Closed, close_code = Cancelled —
7 Activate flow —
8 Attach to Normal Change model approval {BASE}/chg_model_list.do

Standard Change auto-approve BR (if not OOTB):

Navigate: {BASE}/sys_script_list.do?sysparm_query=collection%3Dchange_request

(function executeRule(current, previous) {
  if (current.type != 'standard') return;
  if (current.operation() != 'insert') return;
  current.state = -1; // Implement
  current.approval = 'approved';
  current.work_notes = 'ITSM Lab: Standard change auto-approved.';
})(current, previous);

Phase C — Lab C1: Standard Change (15 min)

# Step Value URL
1 New change Type = Standard {BASE}/change_request.do?sys_id=-1
2 Select template “Restart Windows Server” (or any OOTB std template) —
3 Short description Lab — Standard restart APP-SRV-01 —
4 CI pick any server CI {BASE}/cmdb_ci_server_list.do
5 Submit — State jumps to Implement (auto-approved)
6 Fill implementation plan “Graceful restart during maintenance window” —
7 State → Review — —
8 Close code = Successful — —
9 State → Closed — Done without CAB

Phase D — Lab C2: Normal Change with CAB (25 min)

# Step Value Expected
1 New change, Type = Normal — {BASE}/change_request.do?sys_id=-1
2 Short description Lab — Deploy HR Leave patch v2.1 —
3 Risk Moderate —
4 Impact 2 — Medium —
5 Category Application —
6 CI HR application server —
7 Start date Tomorrow 22:00 —
8 End date Tomorrow 23:00 —
9 Backout plan “Restore previous WAR from backup” (50+ chars) —
10 Test plan “Validate leave request submit in TEST” —
11 State → Assess — Assignment to change group
12 State → Authorize — Approval task created
13 Approve as CAB member {BASE}/sysapproval_approver_list.do State → Scheduled
14 State → Implement — Change tasks available
15 Complete change_task records {BASE}/change_task_list.do All closed
16 State → Review — PIR
17 Close code = Successful — —
18 State → Closed — —

Change calendar verify:

{BASE}/change_request_calendar.do

Phase E — Lab C3: Emergency Change (15 min)

# Step Value Expected
1 New change, Type = Emergency — —
2 Short description Lab — EMERGENCY: Restore VPN gateway —
3 Justification “Production VPN down, 200 users affected” —
4 State → Authorize — Expedited approval
5 Approve immediately — State → Scheduled
6 Implement → Review → Closed — Post-implementation review mandatory
7 Work notes “Emergency justified — root cause ticket INCxxx” —

Conflict detection script (run before CAB):

// Background: {BASE}/sys.scripts.do — check overlapping changes on same CI
var chgSysId = '<paste_change_sys_id>';
var chg = new GlideRecord('change_request');
if (!chg.get(chgSysId)) { gs.error('Change not found'); }
var conflict = new GlideRecord('change_request');
conflict.addQuery('cmdb_ci', chg.cmdb_ci);
conflict.addQuery('sys_id', '!=', chg.sys_id);
conflict.addQuery('start_date', '<=', chg.end_date);
conflict.addQuery('end_date', '>=', chg.start_date);
conflict.addQuery('state', 'IN', '-2,-3,-4');
conflict.query();
while (conflict.next()) {
  gs.warn('CONFLICT: ' + conflict.number + ' overlaps on ' + conflict.cmdb_ci.name);
}

Phase F — Deploy Change config

Artifact Verify URL
Change models {BASE}/chg_model_list.do
CAB Definition {BASE}/cab_definition_list.do
Flow (CAB approval) {BASE}/now/flow-designer
Business Rules {BASE}/sys_script_list.do?sysparm_query=collection%3Dchange_request
Update Set export {BASE}/sys_update_set_list.do

20.4 — SLA Configuration Lab (Complete Step-by-Step)

Goal: Five priority-based SLA definitions with schedules, start/pause/stop conditions, retroactive start, and breach notifications.

20.4.1 — Schedules (prerequisite)

Schedule Hours URL
24 x 7 Always on {BASE}/cmn_schedule_list.do
8x5 Business Mon–Fri 08:00–17:00 {BASE}/cmn_schedule_list.do

Create 8x5 schedule if missing:

Step Field Value
1 Navigate {BASE}/cmn_schedule.do?sys_id=-1
2 Name ITSM Lab — 8x5 Business Hours
3 Time zone Australia/Sydney (or your org TZ)
4 Define spans Mon–Fri 08:00–17:00

20.4.2 — SLA Definition template (repeat for P1–P5)

Open SLA Definitions: {BASE}/contract_sla_list.do

P1 Critical — Response SLA

Field Value
Name ITSM Lab — P1 Incident Response
Type SLA
Table incident
Duration 15 minutes
Schedule 24 x 7
Condition [Priority] [is] [1 - Critical]
Start condition [State] [changes to] [In Progress] OR [State] [is] [New] (retroactive)
Pause condition [State] [is] [On Hold]
Stop condition [State] [is one of] [Resolved, Closed]
When to cancel [State] [is] [Cancelled]
Retroactive start ✓ (starts from opened_at if already In Progress)

P1 Critical — Resolution SLA

Field Value
Name ITSM Lab — P1 Incident Resolution
Duration 4 hours
Schedule 24 x 7
Same conditions as Response —
Set operators —

P2 High — Response / Resolution

SLA Duration Schedule
P2 Response 30 minutes 24 x 7
P2 Resolution 8 hours 24 x 7
Condition [Priority] [is] [2 - High] —

P3 Moderate — Response / Resolution

SLA Duration Schedule
P3 Response 4 hours 8x5 Business
P3 Resolution 24 hours 8x5 Business
Condition [Priority] [is] [3 - Moderate] —

P4 Low / P5 Planning

Priority Response Resolution Schedule
P4 1 day 5 days 8x5
P5 3 days 30 days 8x5

20.4.3 — SLA properties to verify

Property Purpose URL
com.snc.sla.engine.version SLA engine version {BASE}/sys_properties_list.do?sysparm_query=name%3Dcom.snc.sla.engine.version
com.snc.sla.compatibility.breach Breach behavior {BASE}/sys_properties_list.do?sysparm_query=nameSTARTSWITHcom.snc.sla

20.4.4 — SLA test procedure (hands-on)

# Action Verify at
1 Create P1 incident {BASE}/incident.do?sys_id=-1
2 Save → check Related Lists → Task SLAs (2 records: Response + Resolution) Form Related Lists
3 Open task_sla list filtered to incident {BASE}/task_sla_list.do?sysparm_query=task%3D
4 Confirm stage = in_progress, breach_time populated —
5 Set State = On Hold stage → paused, pause_time set
6 Set State = In Progress stage → in_progress, pause_duration increased
7 Set State = Resolved stage → completed, end_time set
8 Confirm has_breached = false (if within target) —

SLA verification script:

// {BASE}/sys.scripts.do — audit active SLAs on open incidents
var sla = new GlideRecord('task_sla');
sla.addQuery('task.active', true);
sla.addQuery('stage', '!=', 'cancelled');
sla.orderByDesc('sys_created_on');
sla.setLimit(10);
sla.query();
while (sla.next()) {
  gs.info(sla.task.number + ' | ' + sla.sla.name + ' | stage=' + sla.stage +
    ' | breach=' + sla.has_breached + ' | time_left=' + sla.time_left);
}

20.4.5 — SLA breach notification

Step Navigate URL
1 SLA Workflow / Notifications {BASE}/sysevent_email_action_list.do?sysparm_query=nameLIKEsla
2 Enable “SLA breach warning” (75% elapsed) —
3 Enable “SLA breached” notification to assignment group manager —
4 Event registry {BASE}/sysevent_register_list.do?sysparm_query=nameLIKEsla

20.5 — Assignment Rules Lab (Complete Step-by-Step)

Goal: Six production assignment rules with order, conditions, scripts, and automated verification.

Open Assignment Rules: {BASE}/sysrule_assignment_list.do

Evaluation order: Rules run by Order ascending — first match wins. Lower number = higher priority.

Rule catalog

Order Name Table Condition Set
50 INC-VIP-01 incident Caller VIP is true Group: Service Desk L1, Assign to: (none)
100 INC-NET-01 incident Category is network Group: Network Ops
110 INC-HW-01 incident Category is hardware Group: Service Desk L1
120 INC-SW-01 incident Category is software Group: Application Support
130 INC-ACC-01 incident Category is access Group: Service Desk L1
200 PRB-01 problem Active is true Group: Problem Management
300 CHG-APP-01 change_request Category is Application Group: Application Support

Step-by-step: Create INC-SW-01

Step Field Value
1 Navigate {BASE}/sysrule_assignment.do?sys_id=-1
2 Name INC-SW-01 — Software to Application Support
3 Table incident
4 Active true
5 Order 120
6 Condition [Category] [is] [software]
7 Assignment Group = Application Support
8 Script (optional) see below
9 Submit —

Optional script (Assign to least-loaded agent in group):

// Assignment Rule script — round-robin by open incident count
var groupId = 'Application Support'; // or use current assignment_group
var grp = new GlideRecord('sys_user_group');
grp.addQuery('name', groupId);
grp.query();
if (!grp.next()) return;
var bestUser = null;
var minCount = 999999;
var m = new GlideRecord('sys_user_grmember');
m.addQuery('group', grp.sys_id);
m.query();
while (m.next()) {
  var ga = new GlideAggregate('incident');
  ga.addQuery('assigned_to', m.user);
  ga.addQuery('active', true);
  ga.addAggregate('COUNT');
  ga.query();
  var cnt = ga.next() ? parseInt(ga.getAggregate('COUNT'), 10) : 0;
  if (cnt < minCount) { minCount = cnt; bestUser = m.user; }
}
if (bestUser) current.assigned_to = bestUser;

Assignment Lookup Rules (alternative for complex routing)

Navigate URL
Assignment Lookup Rules {BASE}/dl_matcher_list.do?sysparm_query=table%3Dincident
Data Lookup Definitions {BASE}/dl_definition_list.do

Use when routing depends on multiple fields (category + subcategory + location).

Verification procedure

# Create incident with Expected group URL
1 Category = network Network Ops {BASE}/incident.do?sys_id=-1
2 Category = software Application Support —
3 Category = hardware Service Desk L1 —
4 Caller VIP = true (any category) Service Desk L1 (rule 50 wins) —
5 New problem Problem Management {BASE}/problem.do?sys_id=-1
6 Normal change, Category = Application Application Support {BASE}/change_request.do?sys_id=-1

Assignment audit script:

// {BASE}/sys.scripts.do — unassigned open incidents (should be zero after rules)
var inc = new GlideRecord('incident');
inc.addQuery('active', true);
inc.addQuery('assignment_group', '');
inc.query();
gs.info('Unassigned open incidents: ' + inc.getRowCount());
while (inc.next()) gs.warn('  ' + inc.number + ' — ' + inc.short_description);

20.6 — ATF Smoke Test Suite (Create → Schedule → Deploy)

Goal: 12 Automated Test Framework tests covering Incident, Problem, Change, SLA, Assignment, Catalog, and security — runnable nightly.

Prerequisites:

Item URL
ATF plugin active {BASE}/v_plugin_list.do
ATF Test Generator {BASE}/sys_atf_test_generator.do
Test suite list {BASE}/sys_atf_test_suite_list.do
Test list {BASE}/sys_atf_test_list.do

20.6.1 — Create test suite

Step Field Value
1 Navigate {BASE}/sys_atf_test_suite.do?sys_id=-1
2 Name ITSM Lab 20 — Smoke Suite
3 Active true
4 Description Regression for Incident/Problem/Change/SLA/Assignment

20.6.2 — Test definitions (12 tests)

ATF-01 — Incident: Priority matrix P1

Step type Configuration
1. Open existing record / New record Table: incident, {BASE}/incident.do?sys_id=-1
2. Set field values impact=1, urgency=1
3. Submit form —
4. Field value validation priority = 1

ATF-02 — Incident: Assignment rule software

Step Detail
Create incident category=software
Assert assignment_group.name = Application Support

ATF-03 — Incident: SLA starts on insert

Step Detail
Create P1 incident impact=1, urgency=1, state=In Progress
Server-side script step see script below
// ATF server step — assert task_sla exists
var incSysId = test.getRecordSysId('incident');
var sla = new GlideRecord('task_sla');
sla.addQuery('task', incSysId);
sla.query();
assertTrue(sla.hasNext(), 'Expected task_sla record for P1 incident');

ATF-04 — Incident: SLA pause on hold

Step Detail
Update incident state=3 (On Hold)
Server script assert task_sla.stage = paused

ATF-05 — Incident: Resolve stops SLA

Step Detail
Update state=6, close_code=Solved (Permanently)
Server script assert task_sla.stage = completed

ATF-06 — Problem: Create and assign

Step Detail
New problem {BASE}/problem.do?sys_id=-1
Assert assignment_group = Problem Management

ATF-07 — Change: Standard auto-approve

Step Detail
New change_request type=standard, use std template
Assert state = Implement OR approval = approved

ATF-08 — Change: Normal creates approval

Step Detail
New change type=normal, state→Authorize
Assert sysapproval_approver record exists

ATF-09 — Catalog: Order creates REQ/RITM

Step Detail
Impersonate end-user with ess role
Open catalog item {BASE}/sp?id=sc_cat_item&sys_id=
Order —
Server script assert sc_request + sc_req_item created

ATF-10 — Security: ess cannot read change_request.list

Step Detail
Impersonate ess user
Navigate change_request.list
Assert Access denied OR empty list per ACL

ATF-11 — Knowledge: Publish workflow

Step Detail
Create kb_knowledge {BASE}/kb_knowledge.do?sys_id=-1
Set workflow_state published
Assert valid_to > today

ATF-12 — SOW loads for itil user

Step Detail
Impersonate itil agent
Navigate {BASE}/now/sow/home
Assert Page title contains “Service Operations” OR workspace loads

20.6.3 — Schedule nightly run

Step Navigate URL
1 Create schedule {BASE}/sysauto_atf_test_list.do
2 Name ITSM Smoke — Nightly 22:00
3 Test suite ITSM Lab 20 — Smoke Suite
4 Run time 22:00 daily
5 On failure email admin group

20.6.4 — Run manually & read results

Action URL
Run test suite now {BASE}/sys_atf_test_suite.do?sys_id= → Run Test Suite
Test results {BASE}/sys_atf_test_result_list.do
Latest result detail {BASE}/sys_atf_test_result.do?sys_id=

Pass criteria for deploy: 12/12 green for 3 consecutive nightly runs (matches §18.19).

20.6.5 — ATF deploy checklist

# Task URL
1 Export test suite in Update Set {BASE}/sys_update_set_list.do
2 Import to TEST {BASE}/sys_remote_update_set_list.do
3 Run suite in TEST {BASE}/sys_atf_test_suite_list.do
4 Fix failures → new Update Set —
5 Promote to PROD after sign-off —

20.7 — Master URL Index (Every ITSM Component)

Single reference — replace {BASE} with your instance. All links open the corresponding list or form.

20.7.1 — Core process tables

Component List URL New record URL Table
Incident {BASE}/incident_list.do {BASE}/incident.do?sys_id=-1 incident
Problem {BASE}/problem_list.do {BASE}/problem.do?sys_id=-1 problem
Problem Task {BASE}/problem_task_list.do {BASE}/problem_task.do?sys_id=-1 problem_task
Change Request {BASE}/change_request_list.do {BASE}/change_request.do?sys_id=-1 change_request
Change Task {BASE}/change_task_list.do {BASE}/change_task.do?sys_id=-1 change_task
Change Conflict {BASE}/change_conflict_list.do — change_conflict
Change Freeze {BASE}/change_freeze_window_list.do {BASE}/change_freeze_window.do?sys_id=-1 change_freeze_window
Standard Change Producer {BASE}/std_change_producer_list.do — std_change_producer
Task SLA (active timers) {BASE}/task_sla_list.do — task_sla
SLA Definition {BASE}/contract_sla_list.do {BASE}/contract_sla.do?sys_id=-1 contract_sla

20.7.2 — Service Catalog & Request

Component List URL New record URL
Catalog {BASE}/sc_catalog_list.do {BASE}/sc_catalog.do?sys_id=-1
Category {BASE}/sc_category_list.do {BASE}/sc_category.do?sys_id=-1
Catalog Item {BASE}/sc_cat_item_list.do {BASE}/sc_cat_item.do?sys_id=-1
Record Producer {BASE}/sc_cat_item_producer_list.do —
Order Guide {BASE}/sc_cat_item_guide_list.do —
Variable {BASE}/item_option_new_list.do —
Variable Set {BASE}/item_option_new_set_list.do —
Request (REQ) {BASE}/sc_request_list.do —
RITM {BASE}/sc_req_item_list.do —
Catalog Task {BASE}/sc_task_list.do —
User Criteria {BASE}/user_criteria_list.do —

20.7.3 — Knowledge

Component URL
Knowledge Bases {BASE}/kb_knowledge_base_list.do
Articles {BASE}/kb_knowledge_list.do
New Article {BASE}/kb_knowledge.do?sys_id=-1
KB Categories {BASE}/kb_category_list.do
Article Templates {BASE}/kb_template_list.do
Knowledge Portal {BASE}/kb

20.7.4 — Administration & Policy

Component URL
Assignment Rules {BASE}/sysrule_assignment_list.do
Assignment Lookup {BASE}/dl_matcher_list.do
Business Rules {BASE}/sys_script_list.do
Client Scripts {BASE}/sys_script_client_list.do
UI Policies {BASE}/sys_ui_policy_list.do
Data Policies {BASE}/sys_data_policy_list.do
UI Actions {BASE}/sys_ui_action_list.do
Notifications (email) {BASE}/sysevent_email_action_list.do
Inbound Actions {BASE}/sysevent_in_email_action_list.do
Events {BASE}/sysevent_register_list.do
Flow Designer {BASE}/now/flow-designer
Scheduled Jobs {BASE}/sysauto_script_list.do
Properties {BASE}/sys_properties_list.do
Choice Lists {BASE}/sys_choice_list.do

20.7.5 — Change administration

Component URL
Change Models {BASE}/chg_model_list.do
Change Policies {BASE}/chg_policy_list.do
CAB Definition {BASE}/cab_definition_list.do
CAB Meeting {BASE}/cab_meeting_list.do
Change Calendar {BASE}/change_request_calendar.do
Risk Assessment {BASE}/risk_assessment_list.do

20.7.6 — Users, groups, security

Component URL
Users {BASE}/sys_user_list.do
Groups {BASE}/sys_user_group_list.do
Roles {BASE}/sys_user_role_list.do
Group Members {BASE}/sys_user_grmember_list.do
ACLs {BASE}/sys_security_acl_list.do
Approvals {BASE}/sysapproval_approver_list.do
Impersonation log {BASE}/sys_log_list.do?sysparm_query=sourceLIKEimpersonation
Component URL
All CIs {BASE}/cmdb_ci_list.do
Servers {BASE}/cmdb_ci_server_list.do
Applications {BASE}/cmdb_ci_appl_list.do
Relationships {BASE}/cmdb_rel_ci_list.do
Outages {BASE}/cmdb_ci_outage_list.do
Service {BASE}/cmdb_ci_service_list.do

20.7.8 — Portals & workspaces

Component URL
Service Portal {BASE}/sp
Service Portal home {BASE}/sp?id=index
Catalog home {BASE}/sp?id=sc_home
Employee Center {BASE}/esc
Service Operations Workspace {BASE}/now/sow/home
Agent Workspace (classic) {BASE}/now/cwf/agent
Major Incident Workspace {BASE}/now/major-incident
Portal config {BASE}/sp_portal_list.do
Widgets {BASE}/sp_widget_list.do

20.7.9 — Reporting & analytics

Component URL
Reports {BASE}/sys_report_list.do
Dashboards {BASE}/pa_dashboards_list.do
PA Indicators {BASE}/pa_indicators_list.do
PA Data Collector {BASE}/pa_collection_list.do
Surveys {BASE}/asmt_assessment_list.do

20.7.10 — Development & deploy

Component URL
Studio {BASE}/$studio.do
Background Scripts {BASE}/sys.scripts.do
Update Sets (local) {BASE}/sys_update_set_list.do
Retrieved Update Sets {BASE}/sys_remote_update_set_list.do
Plugins {BASE}/v_plugin_list.do
Guided Setup {BASE}/now/guided-setup
REST API Explorer {BASE}/$restapi.do
System Logs {BASE}/syslog_list.do
ATF Tests {BASE}/sys_atf_test_list.do
ATF Test Suites {BASE}/sys_atf_test_suite_list.do
ATF Results {BASE}/sys_atf_test_result_list.do
ATF Schedule {BASE}/sysauto_atf_test_list.do

20.7.11 — HR Leave app cross-reference (scope x_786686_hr_leave)

Component URL
HR Leave Application {BASE}/sys_app.do?sys_id=c84db0e8839f0b509f02b0d6feaad3c9
Leave Requests {BASE}/x_786686_hr_leave_req_v2_list.do
HR Leave Business Rules {BASE}/sys_script_list.do?sysparm_query=collectionSTARTSWITHx_786686_hr_leave

20.8 — Integrated Deploy Runbook (Dev → Test → Prod)

Single cutover sequence after Labs 20.1–20.6 pass locally.

Phase Step Action URL
DEV 1 Complete Update Set ITSM_Wave2_Incident_Problem_Change {BASE}/sys_update_set_list.do
DEV 2 Run ATF suite — 12/12 pass {BASE}/sys_atf_test_suite_list.do
DEV 3 Export Update Set to XML Update Set → Export
DEV 4 Document: assignment rules, SLA targets, change models in sign-off sheet —
TEST 5 Import Retrieved Update Set {BASE}/sys_remote_update_set_list.do
TEST 6 Preview → Commit → fix collisions —
TEST 7 Manual UAT: P1 incident, Normal change, Problem+KB §20.1–20.3 verify tables
TEST 8 Run ATF suite in TEST {BASE}/sys_atf_test_result_list.do
TEST 9 3 nightly greens —
PROD 10 Change request for prod deploy (eat your own dog food) {BASE}/change_request.do?sys_id=-1
PROD 11 Import Update Set during maintenance window {BASE}/sys_remote_update_set_list.do
PROD 12 Smoke: 1 P3 incident + 1 catalog order + SOW load {BASE}/now/sow/home
PROD 13 Hypercare 7 days — daily backlog review {BASE}/incident_list.do?sysparm_query=active%3Dtrue

Post-deploy health script (run in PROD):

// ITSM Wave2 health check — {BASE}/sys.scripts.do
var checks = [];
// 1. Assignment rules active
var ar = new GlideAggregate('sysrule_assignment');
ar.addQuery('active', true);
ar.addQuery('table', 'IN', 'incident,problem,change_request');
ar.addAggregate('COUNT');
ar.query(); ar.next();
checks.push('Assignment rules: ' + ar.getAggregate('COUNT'));
// 2. SLA definitions
var sla = new GlideAggregate('contract_sla');
sla.addQuery('active', true);
sla.addQuery('collection', 'incident');
sla.addAggregate('COUNT');
sla.query(); sla.next();
checks.push('Incident SLAs: ' + sla.getAggregate('COUNT'));
// 3. Open P1 count
var p1 = new GlideAggregate('incident');
p1.addQuery('priority', 1);
p1.addQuery('active', true);
p1.addAggregate('COUNT');
p1.query(); p1.next();
checks.push('Open P1 incidents: ' + p1.getAggregate('COUNT'));
checks.forEach(function(c) { gs.info('HEALTH — ' + c); });

20.9 — §20 Lab Sign-Off Checklist

Estimated total lab time: 6–8 hours (single implementer) · Recommended: split across 2 days with UAT on day 2.


§20 added: Deep Implementation Labs — Incident / Problem / Change create-configure-deploy, SLA suite, assignment rules, ATF smoke tests, master URL index.