HRSD — HR Service Delivery (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 · Scopex_786686_hr_leave
Australia Instance — نسخة أستراليا
| Setting | Value |
|---|---|
| Region / Datacenter | ServiceNow Australia |
| Release train | Zurich (Sep 2026 EA) · next EA: Brazil |
| URL base | {BASE} |
| 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 |
|---|---|---|---|
| HR Cases | All > HR > Cases | {BASE}/sn_hr_core_case_list.do | HR case queue |
| HR Services | All > HR > Services | {BASE}/sn_hr_core_service_list.do | Service catalog (HR) |
| Employee Center | Employee Center | {BASE}/esc | Employee self-service |
| Lifecycle Events | All > HR > Lifecycle Events | {BASE}/sn_hr_le_case_list.do | On/offboarding |
| HR Criteria | All > HR > Administration > HR Criteria | {BASE}/sn_hr_core_criteria_list.do | Data segregation |
| COE Configuration | All > HR > Administration | {BASE}/sn_hr_core_case_list.do | Centers of Excellence |
| HR Knowledge | All > Knowledge (HR) | {BASE}/kb_knowledge_list.do | HR articles |
| HR Workspace | Now Experience > HR | {BASE}/now/hr/home | HR agent workspace |
| Flow Designer | All > Process Automation > Flow Designer | {BASE}/now/flow-designer | HR workflows |
| Guided Setup HRSD | 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_leaveCIS-HR Professional Implementer Guide
الأسلوب: عربية + إنجليزية تكمّلان بعضهما — بدون ترجمة حرفية لأسماء الشاشات.
ملاحظة:
تطبيقنا (HR Leave App) هو امتداد عملي لهذا الموديول.
ملخص ووصف بالعربية (Arabic Summary)
| البند | الشرح |
|---|---|
| ما هو HRSD؟ | تسليم خدمات الموارد البشرية — قضايا HR، Employee Center، دورة حياة الموظف |
| لماذا مهم؟ | قضايا HR حساسة تحتاج سرية (HR Criteria) وبوابة موظف آمنة |
| من يستخدمه؟ | موظف، وكيل HR، مدير (حسب الصلاحية)، COE (Payroll، Benefits…) |
| ماذا يغطي الملف؟ | Cases، /esc، Lifecycle، scoped apps (Leave) · §16 |
ملخص في سطر: بوابة موظف + Case HR + onboarding/offboarding — مرتبط بتطبيق الإجازات في المشروع.
وصف مختصر: يشرح HR Services، HR Criteria للسرية، Employee Center، Activity Sets، وربط x_786686_hr_leave. ليس ITSM.
1) Overview & Business Value
HRSD delivers HR services to employees across the lifecycle. — من التوظيف (Onboarding) حتى المغادرة (Offboarding) وكل ما بينهما.
Core value:
- HR Case management (with sensitive data separation).
- Employee self-service (Employee Center).
- Lifecycle Events (onboarding/offboarding/transfer).
- Knowledge tailored to HR.
- Integration with payroll/HRIS (Workday/SAP).
2) Architecture & Data Model
Key tables:
| Table | الغرض |
|---|---|
| sn_hr_core_case | حالة HR الأساسية |
| sn_hr_core_case_* (COE) | حالات حسب مجال (payroll, benefits…) |
| sn_hr_core_profile | ملف الموظف في HR |
| sn_hr_le_case (Lifecycle Event) | أحداث دورة حياة الموظف |
| sn_hr_core_task | مهام HR |
| sn_hr_core_service | خدمات HR |
| sn_hr_core_subject_person | الشخص موضوع الحالة |
Centers of Excellence (COE): — HRSD يفصل الحالات حسب مجال (COE) لحماية البيانات الحساسة.
HR Case (base sn_hr_core_case)
├─ Total Rewards COE
├─ Payroll COE
├─ Benefits COE
├─ Employee Relations COE (حسّاس جدًا)
└─ ...
Each COE = scoped data + roles + criteria
3) Plugins & Activation
| App / Plugin | Name |
|---|---|
| HR Service Delivery (core) | com.sn_hr_core |
| HR: Case and Knowledge Management | com.sn_hr_case_management |
| HR: Employee Relations | com.sn_hr_em_rel |
| HR: Lifecycle Events (Enterprise) | com.sn_hr_lifecycle_ent |
| Employee Center / Pro | from Store |
| HR Integrations (Workday/SAP spokes) | IntegrationHub |
| Now Assist for HRSD | subscription |
How to activate:
- Navigate: All > System Applications > All Available Applications > All. — Open direct
- Activate HR Core, then Case & Knowledge, then optional COEs.
- Guided Setup:
Navigate: All > Guided Setup > HR Service Delivery. — Open direct
4) Guided Setup & All Options
Sections:
- Foundation — HR profiles, departments, locations.
- COE configuration — which centers of excellence are active.
- HR Services & Catalog — خدمات HR.
- Case Management — types, states, assignment, criteria.
- Knowledge — HR knowledge base + criteria.
- Lifecycle Events — onboarding/offboarding journeys.
- Employee Center — the unified portal.
- Security — HR Criteria, roles, data separation.
Important options:
| Option | Navigate |
|---|---|
| HR Profiles | All > HR Administration > Profiles · Open direct |
| COEs / Services | All > HR Administration > Services · Open direct |
| HR Criteria (security) | All > HR Administration > HR Criteria · Open direct |
| Lifecycle Events | All > HR Lifecycle Events · Open direct |
| Employee Center | All > Employee Center config · Open direct |
| Assignment rules | All > HR Administration > Assignment · Open direct |
5) End-to-End Process Cycle
HR Case lifecycle:
New → In Progress → Awaiting Info → Resolved → Closed Complete
Full service flow:
Employee (Employee Center)
→ Submit HR request / Record Producer
→ HR Case created in correct COE
→ HR Criteria controls who can see it
→ Assigned to HR agent (skills/COE)
→ Tasks / approvals (Flow Designer)
→ Resolve → employee confirms → Close
Lifecycle Event (Onboarding) flow:
Trigger (new hire) → Lifecycle Event case
→ Activity set (IT account, equipment, badge, training)
→ Tasks fan out to multiple teams
→ Track completion → onboarding complete
6) Development
Business Rule — route sensitive cases to Employee Relations
(function executeRule(current, previous) {
if (current.hr_service.getDisplayValue().indexOf('Relations') > -1) {
current.assignment_group.setDisplayValue('Employee Relations');
}
})(current, previous);
Our HR Leave App tie-in
في تطبيقنا نربط x_786686_hr_leave_employee_v2.u_user بـ sn_hr_core_profile.user.
var prof = new GlideRecord('sn_hr_core_profile');
prof.addQuery('user', current.u_requested_for_user);
prof.query();
if (prof.next()) {
current.u_department = prof.getValue('department');
}
Development topics:
- HR Services & Service Activities.
- Lifecycle Events & Activity Sets.
- HR Criteria (the security engine).
- Employee Center widgets & topics.
- Flow Designer for approvals/tasks.
- Integration spokes (Workday/SAP).
7) Administration
| Area | Navigate |
|---|---|
| Roles | sn_hr_core.* (basic, case_writer, admin, manager) |
| HR Profiles | All > HR Administration > Profiles · Open direct |
| HR Criteria | All > HR Administration > HR Criteria · Open direct |
| COE configuration | All > HR Administration · Open direct |
| Employee Center | All > Employee Center · Open direct |
Key roles:
- sn_hr_core.basic — موظف عادي.
- sn_hr_core.case_writer — وكيل HR.
- sn_hr_core.manager — مدير HR.
- sn_hr_core.admin — مسؤول HR.
- COE-specific roles (e.g. sn_hr_em_rel.*). — HR Criteria هو ما يمنع موظفًا من رؤية حالة موظف آخر — أهم نقطة أمان.
8) Hands-on Labs
Lab 1 — Foundation:
1. Create/verify HR Profiles for test users.
2. Confirm COEs are active.
Lab 2 — HR Case end-to-end:
1. Navigate: All > HR Case Management > Create New. — Open direct
2. Choose an HR Service; assign and resolve.
Lab 3 — HR Criteria:
1. Create an HR Criteria restricting a sensitive service.
2. Impersonate a regular employee; confirm they can’t see it.
Lab 4 — Lifecycle Event (Onboarding):
1. Trigger an onboarding lifecycle event.
2. Watch activity sets fan out tasks to teams.
Lab 5 — Employee Center + our app:
1. Add the HR Leave Record Producer as connected content.
2. Submit a leave request from Employee Center.
9) Best Practices & Common Mistakes
Best practices:
- Configure HR Criteria carefully — data privacy is critical.
- Use COEs to separate sensitive data (Employee Relations).
- Use Lifecycle Events for multi-team journeys (onboarding).
- Surface everything through Employee Center.
Common mistakes:
- تجاهل HR Criteria → تسريب بيانات حساسة.
- استخدام ITSM incident بدل HR Case للطلبات الموظفية.
- خلط HR Profile بـ sys_user دون ربط صحيح.
10) CIS-HR Exam Focus
High-yield:
- HR Case table & COE structure (sensitive data separation).
- HR Criteria (the security model) — most tested.
- HR Profile vs sys_user relationship.
- HR Services & Service Activities.
- Lifecycle Events & Activity Sets (onboarding/offboarding).
- Employee Center (unified portal) & topics.
- HR roles (basic/case_writer/manager/admin) + COE roles.
- Knowledge with HR Criteria.
Exam tip: — أتقن HR Criteria و COE و Lifecycle Events — هذه عماد امتحان CIS-HR.
11) Portals, Workspaces, Role Hierarchy & Feature Catalog
ملاحظة عن الروابط:
URLs الـ Workspaces قد تختلف حسب الإصدار والـ App Config.
11.1 Service Portals (employees)
| Portal | URL | لمن |
|---|---|---|
| Employee Center | /esc | كل الموظفين (البوابة الموحّدة) |
| Employee Center Pro | /esc (Pro) | الموظفون |
| HR Service Portal (legacy) | /hr | الموظفون |
| Knowledge (HR) | /kb | الموظفون (بحسب HR Criteria) |
11.2 Workspaces (HR agents/managers)
| Workspace | URL | لمن |
|---|---|---|
| HR Agent Workspace | /now/hr/agent or /now/cwf/agent | وكلاء HR |
| HR Case Workspace (configurable) | /now/cwf (HR view) | الوكلاء |
| Manager Hub / Manager self-service | /esc?id=mgr… | المديرون |
| Admin (classic) | /nav_to.do | admins |
وكلاء HR يعملون في HR Agent Workspace؛ والموظف يتعامل عبر Employee Center فقط.
11.3 Role Hierarchy
admin
└─ sn_hr_core.admin
└─ sn_hr_core.manager
└─ sn_hr_core.case_writer (HR agent — يكتب الحالات)
└─ sn_hr_core.basic (موظف عادي self-service)
COE-specific (sensitive):
sn_hr_em_rel. (Employee Relations) — منفصلة لحماية الخصوصية
sn_hr_integrations. (التكامل مع Workday/SAP)
الوصول للبيانات الحساسة لا يُمنح بالدور وحده، بل عبر HR Criteria أيضًا.
11.4 Full Business Cycle
Employee (/esc)
→ HR request / Record Producer / Lifecycle trigger
→ HR Case created in correct COE (sn_hr_core_case + COE table)
→ HR Criteria controls visibility (privacy)
→ AWA/assignment → HR agent (HR Agent Workspace)
→ Tasks + approvals (Flow Designer)
↳ onboarding/offboarding → Lifecycle Event + Activity Sets
↳ tasks fan out to IT (ITSM), Facilities, Payroll
→ Resolve → employee confirmation → Close → eSign/Knowledge
11.5 Feature Catalog
Process features:
- HR Case & Knowledge Management.
- Centers of Excellence (COE) with data separation.
- HR Criteria (the privacy/security engine).
- Lifecycle Events (Onboarding/Offboarding/Transfer) + Activity Sets.
- Employee Relations (sensitive case handling).
- Employee Document Management (eSign, document templates).
- To-do lists & Journeys (Employee Journey Management).
- Manager Hub / Manager self-service.
- Listening posts / surveys.
Platform features used:
- Employee Center (unified portal) + topics + taxonomy.
- Configurable HR Agent Workspace + Playbooks.
- Flow Designer (HR approvals/tasks).
- Advanced Work Assignment.
- IntegrationHub spokes (Workday, SAP SuccessFactors).
- Now Assist for HRSD (case summarization, Q&A).
- Virtual Agent (HR deflection).
- Performance Analytics (HR KPIs, case volumes).
11.6 Link to our HR Leave App
تطبيقنا x_786686_hr_leave يُنشر داخل Employee Center كـ Record Producer.
ويستفيد من HR Profile و HR Criteria لتأمين بيانات الإجازات.
See:
../09_MODULES_AND_INTEGRATION.md
../03_SERVICE_CATALOG.md
12) End-to-End Implementation (Post-Activation)
اقرأ هذا بعد تفعيل HR Core + Case & Knowledge + COEs.
12.1 Application Menus map
All > HR Administration
├─ Profiles / Employee Files
├─ Services / Service Activities
├─ COE (Centers of Excellence)
├─ HR Criteria (security)
├─ Assignment Rules
└─ Properties
All > HR Case Management
├─ Cases (Create New / Open / My / All)
├─ HR Tasks
└─ Knowledge (HR)
All > HR Lifecycle Events
├─ Lifecycle Events / Activity Sets / Activities
└─ Onboarding / Offboarding / Transfer
All > Employee Center (Topics / Taxonomy / Content / Quick Links)
All > Employee Relations (sensitive cases)
12.2 Core tables to know
| List | Table |
|---|---|
| sn_hr_core_case.list | HR cases (base) |
| sn_hr_core_profile.list | HR profiles |
| sn_hr_core_task.list | HR tasks |
| sn_hr_core_service.list | HR services |
| sn_hr_le_case.list | lifecycle event cases |
| sn_hr_core_subject_person.list | subject persons |
| COE tables sn_hr_core_case_* | per-COE cases |
12.3 End-to-end build order
- Foundation:
- HR Profiles for users; departments/locations.
- Decide active COEs. - Security (critical first):
- HR Criteria to enforce data privacy.
All > HR Administration > HR Criteria. — Open direct - Services:
- HR Services + Service Activities per COE. - Case configuration:
- Case types, states, assignment rules, templates. - Knowledge:
- HR knowledge bases with HR Criteria. - Lifecycle Events:
- Onboarding/Offboarding journeys + Activity Sets (fan-out tasks). - Flows:
- Approvals/tasks via Flow Designer. - Employee Center:
- Topics, taxonomy, connected content, quick links, branding.
Portal: /esc. - Workspace:
- HR Agent Workspace /now/hr/agent + Playbooks. - Integrations:
- Workday/SAP spokes (IntegrationHub), AD for users. - Our app:
- Publish HR Leave Record Producer to Employee Center. - Test + Deploy (verify HR Criteria with impersonation).
12.4 All configuration pages
| Config | Navigate |
|---|---|
| HR properties | All > HR Administration > Properties · Open direct |
| HR Criteria | All > HR Administration > HR Criteria · Open direct |
| COE config | All > HR Administration > COE · Open direct |
| Services | All > HR Administration > Services · Open direct |
| Employee Center config | All > Employee Center > … · Open direct |
| Workspace (UI Builder) | All > Now Experience Framework > UI Builder · Open direct |
Study path note: — للدراسة من الصفر اتبع: STUDY_ROADMAP.md
13) Options & Instance Notes
| Resource | Content |
|---|---|
| Instance gaps | MODULE_OPTIONS_AND_INSTANCE_NOTES.md → HRSD |
| Full implementation | MODULE_IMPLEMENTATION_PLAYBOOK.md → HRSD |
| HR Leave app | ../09_MODULES_AND_INTEGRATION.md |
14) Implementation Scenarios, Options, Best Practices & Customizations
Playbook: MODULE_IMPLEMENTATION_PLAYBOOK.md → HRSD
14.1 Scenarios
| ID | Scenario | Path |
|---|---|---|
| S1 | HR Cases + Employee Center | Profiles + COEs + services |
| S2 | + Lifecycle Events | Onboarding/offboarding journeys |
| S3 | + HRIS integration | Workday/SAP spokes |
14.2 Options matrix
| Area | A (required) | B |
|---|---|---|
| Security | HR Criteria | ACL only (insufficient) |
| Portal | Employee Center /esc | Legacy portal |
| Cases | COE-specific tables | Single case type |
| Custom apps | Scoped (e.g. Leave) | Global tables (avoid) |
14.3 Plugins
com.sn_hr_core, com.sn_hr_case_management, Lifecycle Events, COE packs, Employee Center Pro — Guided Setup: HRSD
14.4 Roles
sn_hr_core.basic, case_writer, manager, admin, COE roles — assign via groups.
14.5 Common developments
HR Profiles, HR Criteria (build first), Lifecycle Activity Sets, EC Topics, scoped leave/benefits apps, Workday integration, document generation, HR knowledge bases.
14.6 Best practices
Never use ITSM incident for employee HR issues; test Criteria with Impersonate for every persona; COE separation (Payroll vs Benefits).
14.7 Go-live
- [ ] HR Criteria matrix signed off
- [ ] EC topics + connected content
- [ ] Lifecycle smoke test (onboarding)
- [ ] Scoped app published to EC
15) Zero-to-Hero End-to-End Implementation (Scratch → Go-Live)
Framework: MODULE_ZERO_TO_HERO_CONSULTING.md · HR Leave: ../09_MODULES_AND_INTEGRATION.md
من HR Profiles + HR Criteria حتى Employee Center + Cases + Lifecycle.
15.1 Business goals
| Goal | العربي |
|---|---|
| Employee self-service | الموظف يخدم نفسه بأمان |
| HR case management | قضايا HR منفصلة عن ITSM |
| Privacy / segregation | HR Criteria — من يرى ماذا |
| Onboarding journeys | رحلات انضمام/مغادرة منسّقة |
15.2 Phase 0 — Discover
COEs (Payroll, Benefits, Leave), case types, EC vs legacy portal, Workday integration?
15.3 Phase 1 — Activate
HR Core, Case Management, Lifecycle Events, Employee Center — Guided Setup HRSD.
15.4 Phase 2 — Security first (Week 2–4)
HR Profiles → HR Criteria (mandatory before cases) — Impersonate every persona.
15.5 Phase 3 — Services & COEs (Week 4–6)
HR Services, categories, knowledge, agent workspace /now/hr/agent.
15.6 Phase 4 — Employee Center (Week 6–8)
Topics, taxonomy, connected content, scoped apps (Leave app).
15.7 Phase 5 — Lifecycle (Week 8–10)
Onboarding Activity Sets, cross-team tasks, offboarding asset/ access hooks.
15.8 Phase 6 — UAT & go-live
Case confidentiality test, manager view, lifecycle smoke test.
15.9 Phase 7 — Operate
Case SLA, KB deflection, lifecycle metrics.
15.10 Master checklist
- [ ] HR Criteria signed · [ ] EC live · [ ] Lifecycle pilot · [ ] Scoped apps
16) Full E2E Practice · Pages · Requirements · Options (AR + EN)
Employee Center + HR cases · Example scoped app: HR Leave (x_786686_hr_leave).
16.1 Business goals
| Goal (EN) | الهدف (AR) | KPI |
|---|---|---|
| Employee self-service HR | خدمة ذاتية HR | EC adoption % |
| Confidential case handling | سرية القضايا | ACL breach = 0 |
| Lifecycle automation | أتمتة دورة الموظف | Onboarding days |
| COE efficiency | كفاءة مراكز HR | Case SLA |
Why buy HRSD: English: HR requests are sensitive — need portal, cases, and lifecycle in one platform. — HRSD يعطي موظفًا بوابة آمنة ويعطي HR Case مع SLA وKnowledge — ليس email.
16.2 Requirements
| ID | EN | AR |
|---|---|---|
| HR-R01 | HR Services taxonomy | تصنيف خدمات HR |
| HR-R02 | Case types with HR Criteria ACL | أنواع قضايا + سرية |
| HR-R03 | Employee Center topics | مواضيع EC |
| HR-R04 | Agent workspace /now/hr/agent | workspace وكلاء |
| HR-R05 | Lifecycle Events (on/off boarding) | أحداث دورة الحياة |
| HR-R06 | Scoped apps (Leave, etc.) | تطبيقات scoped |
| HR-R07 | Manager visibility where allowed | رؤية المدير |
16.3 Consultation cycle
| Phase | EN | AR | Deliverable |
|---|---|---|---|
| 0 | HR COE structure | هيكل HR | Stakeholder map |
| 1 | Sensitive data rules | بيانات حساسة | HR Criteria doc |
| 2 | Service catalog (HR) | كatalog HR | Service list |
| 3 | EC content strategy | محتوى EC | Topic map |
| 4 | Lifecycle pilot (onboarding) | onboarding | Activity Sets |
| 5 | Scoped app integration | تطبيقات | Leave demo |
| 6 | UAT confidentiality | UAT سرية | Sign-off |
Questions: Which cases can managers see? Which need HR-only?
أي قضايا يراها المدير؟ أيها HR فقط؟
16.4 Options (A / B / C)
| Area | A | B | C |
|---|---|---|---|
| Portal | Employee Center /esc | HR Service Portal | Classic /sp |
| Case creation | Topic → case | Catalog only | |
| Confidentiality | HR Criteria profiles | Manual ACL | All open (bad) |
| Lifecycle | Lifecycle Events app | Manual tasks | External HRIS only |
| Leave/absence | Scoped app + Flow | Case type only | HRIS integration |
16.5 All pages (Navigate)
| Page | Navigate |
|---|---|
| HR Administration | All > HR > Administration · Open direct |
| HR Services | All > HR > HR Services · Open direct |
| HR Cases | All > HR > Cases · Open direct |
| HR Criteria | All > HR > HR Criteria · Open direct |
| HR Profiles | All > HR > HR Profiles · Open direct |
| Lifecycle Events | All > HR > Lifecycle Events · Open direct |
| Activity Sets | All > HR > Activity Sets · Open direct |
| Employee Center config | All > Employee Center > Configuration · Open direct |
| HR Agent Workspace | /now/hr/agent |
| Employee Center | /esc |
| Scoped apps | All > Studio or sys_scope.list · Open direct |
| Knowledge (HR) | All > Knowledge (HR bases) · Open direct |
16.6 Full PDI lab (18 steps)
| Step | EN | AR | Verify |
|---|---|---|---|
| 1 | Activate HRSD plugins + Guided Setup | تفعيل | Apps on |
| 2 | Create HR Service General HR | خدمة | Service record |
| 3 | Configure HR Criteria — restrict case fields | معايير HR | Profile works |
| 4 | Create case type e.g. Payroll Inquiry | نوع قضية | Type saved |
| 5 | Configure EC topic linking to service | موضوع EC | Topic visible |
| 6 | Impersonate employee — submit case via /esc | قضية | Case created |
| 7 | Agent opens /now/hr/agent — work case | وكيل | SLA starts |
| 8 | Test manager cannot see confidential case | سرية | Access denied |
| 9 | Publish HR KB article — deflect in EC | معرفة | Article found |
| 10 | Create Activity Set for onboarding (3 tasks) | onboarding | Tasks spawn |
| 11 | Open scoped Leave app (if installed) | إجازات | Leave request |
| 12 | Flow approval on leave (link approval_flow.md) | موافقة | Approved |
| 13 | Link lifecycle task to IT catalog (optional) | تكامل IT | Cross-dept task |
| 14 | CSAT on case close | رضا | Survey sent |
| 15 | PA report: cases by category | تقرير | Dashboard |
| 16 | Options A/B/C documented | خيارات | Doc |
| 17 | UAT scripts HR-R01–R07 | UAT | Pass |
| 18 | Update Set HRSD Lab 16 | Export | Done |
16.7 Sign-off
- [ ] HR Criteria signed by Legal/HR · [ ] EC topics AR+EN · [ ] Confidentiality UAT passed · [ ] Lifecycle owner trained
§17 — Power User Playbook (HRSD)
17.1 Personas
| Persona | Primary actions |
|---|---|
| Employee | Open /esc, search policies, submit case, request leave (HR Leave app), view paystub |
| HR Tier-1 Agent | Triage HR cases, route to COE, link KB, resolve simple cases |
| COE Specialist (Payroll/Benefits/Employee Relations) | Handle sensitive cases under HR Criteria, deep expertise, escalate |
| HR Manager | Approve sensitive actions, dashboards, escalations |
| HR Business Partner | Liaison for business unit, strategic HR support |
| Knowledge Author | Draft, review, publish, retire HR KB articles |
| Lifecycle Coordinator | Trigger and monitor Onboarding / Offboarding / Transfer activity sets |
كل دور يستخدم بوابة مختلفة وله صلاحيات مختلفة على نفس الجدول sn_hr_core_case.
17.2 Day-in-Life — Employee
- Open /esc — Employee Center.
- Search “annual leave policy” — find KB article (deflection).
- Click “Request Time Off” topic → opens HR Leave Catalog Item (links to x_786686_hr_leave).
- Submit; case HRC0001234 is created in sn_hr_core_case.
- Track status in /esc?id=my_requests.
- Reply to email “approved” — Inbound Email Action updates case state.
// Inline status macro for /esc widget
(function {
var u = gs.getUserID();
var arr = [];
var gr = new GlideRecord('sn_hr_core_case');
gr.addQuery('opened_for', u);
gr.addQuery('active', true);
gr.orderByDesc('sys_created_on');
gr.setLimit(20);
gr.query();
while (gr.next()) {
arr.push({
number: gr.getValue('number'),
short: gr.getValue('short_description'),
state: gr.getDisplayValue('state'),
opened: gr.getDisplayValue('sys_created_on')
});
}
data.cases = arr;
})();
17.3 Day-in-Life — HR Agent (Tier-1)
- Open /now/hr/agent workspace.
- View My Cases queue; pick HRC0001234.
- Identify subject (Annual Leave) → route to Time-Off COE (auto-assignment script below).
- Link KB article.
- If simple → resolve. Otherwise transfer.
17.4 Top 20 HRSD Scripts (full code)
1. Auto-assign HR case to COE by subject
// Business Rule on sn_hr_core_case (before, insert)
(function executeRule(current, previous) {
if (current.assignment_group.nil() && !current.subject.nil()) {
var routing = {
'time_off': 'HR Time Off COE',
'payroll': 'HR Payroll COE',
'benefits': 'HR Benefits COE',
'employee_relations': 'HR Employee Relations'
};
var groupName = routing[current.getValue('subject')];
if (groupName) {
var grp = new GlideRecord('sys_user_group');
if (grp.get('name', groupName)) {
current.setValue('assignment_group', grp.getUniqueValue());
}
}
}
})(current, previous);
2. PII redaction in journal
// Script Include HRPIIRedactor — call before saving comments
var HRPIIRedactor = Class.create();
HRPIIRedactor.prototype = {
initialize: function {},
redact: function (text) {
if (gs.nil(text)) return '';
return text
.replace(/\b\d{3}-\d{2}-\d{4}\b/g, '[SSN-REDACTED]') // US SSN
.replace(/\b\d{16}\b/g, '[CC-REDACTED]') // credit cards
.replace(/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/gi, '[EMAIL]')
.replace(/\b\d{10,15}\b/g, '[PHONE]');
},
type: 'HRPIIRedactor'
};
3. Onboarding task generator from start_date
// Script Action subscribed to event x_hrsd.lifecycle.onboarding.start
(function (event, current) {
var employeeId = event.parm1;
var startDate = event.parm2;
// Define standard 20-task onboarding set
var tasks = [
{ name: ‘IT Account Setup’, due: 0, assign: ‘IT Service Desk’ },
{ name: ‘Email + Calendar’, due: 0, assign: ‘IT Service Desk’ },
{ name: ‘Laptop assignment’, due: -3, assign: ‘IT Asset Mgmt’ },
{ name: ‘Badge + Access’, due: 0, assign: ‘Security’ },
{ name: ‘Org chart welcome’, due: 0, assign: ‘HR Operations’ },
{ name: ‘Benefits enrollment’, due: 7, assign: ‘HR Benefits’ },
{ name: ‘Payroll setup’, due: 3, assign: ‘HR Payroll’ },
{ name: ‘Compliance training’, due: 7, assign: ‘L&D’ },
{ name: ‘Manager 1-on-1’, due: 1, assign: ‘Manager’ },
{ name: ‘Team intro meeting’, due: 1, assign: ‘Manager’ }
// …10 more
];
tasks.forEach(function (t) {
var task = new GlideRecord(‘sn_hr_core_task’);
task.initialize();
task.setValue(‘short_description’, t.name);
task.setValue(‘opened_for’, employeeId);
var grp = new GlideRecord(‘sys_user_group’);
if (grp.get(‘name’, t.assign)) {
task.setValue(‘assignment_group’, grp.getUniqueValue());
}
var due = new GlideDateTime(startDate);
due.addDaysLocalTime(t.due);
task.setValue(‘due_date’, due);
task.insert();
});
})(event, current);
4. Offboarding cross-module revoker
// Triggered by event x_hrsd.lifecycle.offboarding.start
(function (event) {
var employeeId = event.parm1;
var lastDay = event.parm2;
// 1. Disable AD/SSO via Microsoft Graph spoke
var ms = new sn_ms_graph.Microsoft365Spoke();
ms.disableUser(employeeId);
// 2. Reclaim assets (laptop, phone, badge) — create ITAM tasks
var asset = new GlideRecord(‘alm_asset’);
asset.addQuery(‘assigned_to’, employeeId);
asset.addActiveQuery();
asset.setLimit(50);
asset.query();
while (asset.next()) {
gs.eventQueue(‘x_hrsd.asset.reclaim_required’,
asset, asset.getValue(‘asset_tag’), lastDay);
}
// 3. Revoke catalog entitlements
var ent = new GlideRecord(‘sc_user_criteria_member’);
ent.addQuery(‘user’, employeeId);
ent.deleteMultiple();
// 4. Cancel pending HR Leave requests in x_786686_hr_leave
var leave = new GlideRecord(‘x_786686_hr_leave_req_v2’);
leave.addQuery(‘u_requested_for_user’, employeeId);
leave.addQuery(‘u_state’, ‘IN’, ‘submitted,approved’);
leave.query();
while (leave.next()) {
leave.setValue(‘u_state’, ‘cancelled’);
leave.setValue(‘u_approver_comments’, ‘Auto-cancelled — offboarding.’);
leave.update();
}
})(event);
5. Anniversary recognition
// Scheduled Job HRLX Service Anniversary — daily 09:00
(function {
var today = new GlideDate();
var p = new GlideRecord('sn_hr_core_profile');
p.addQuery('start_date', today); // anniversary if month-day matches (advanced — use addEncodedQuery)
p.query();
while (p.next()) {
var years = _calcYears(p.getValue('start_date'));
if ([1, 3, 5, 10, 15, 20, 25].indexOf(years) > -1) {
gs.eventQueue('x_hrsd.recognition.anniversary',
p, p.getValue('user'), years);
}
}
function _calcYears(start) {
return new GlideDateTime().getYearLocalTime() -
new GlideDateTime(start).getYearLocalTime();
}
})();
6. HR Profile sync from Workday
// Scheduled Job — runs every 4 hours
(function syncWorkday() {
var r = new sn_ws.RESTMessageV2('Workday_HR', 'getWorkers');
r.setStringParameter('since', _lastSync());
var resp = r.execute();
if (resp.getStatusCode() !== 200) {
gs.error('Workday sync failed: ' + resp.getStatusCode());
return;
}
var workers = JSON.parse(resp.getBody()).workers;
workers.forEach(function (w) {
var p = new GlideRecord('sn_hr_core_profile');
if (p.get('employee_number', w.employee_id)) {
p.setValue('department', _mapDept(w.dept));
p.setValue('manager', _mapUser(w.manager_id));
p.setValue('location', _mapLoc(w.location));
p.update();
} else {
p.initialize();
p.setValue('employee_number', w.employee_id);
p.setValue('user', _createOrFindUser(w));
p.insert();
}
});
gs.setProperty('x_hrsd.workday.last_sync', new GlideDateTime().getValue());
})();
7. HR Case SLA pause when waiting employee
// Triggered when state transitions to "awaiting_info"
(function (current, previous) {
if (current.state.changes() && current.getValue('state') === 'awaiting_info') {
var slas = new GlideRecord('task_sla');
slas.addQuery('task', current.getUniqueValue());
slas.addQuery('active', true);
slas.query();
while (slas.next()) {
slas.setValue('stage', 'paused');
slas.update();
}
}
})(current, previous);
8. KB article suggestion based on case topic
// AJAX Script Include — called from HR Workspace
var HRKBSuggester = Class.create();
HRKBSuggester.prototype = Object.extendsObject(AbstractAjaxProcessor, {
ajaxSuggest: function {
var subject = this.getParameter('sysparm_subject');
var topic = this.getParameter('sysparm_topic');
var arr = [];
// AI Search first
try {
var aiResults = new sn_ais.SearchService()
.search(‘hr_kb’, subject, { limit: 5 });
aiResults.results.forEach(function (r) {
arr.push({ id: r.id, title: r.title, score: r.score });
});
} catch (e) {
gs.warn(‘AI Search failed; falling back to keyword’);
}
// Fallback keyword
if (arr.length === 0) {
var kb = new GlideRecord(‘kb_knowledge’);
kb.addQuery(‘kb_category.label’, ‘CONTAINS’, topic);
kb.addQuery(‘workflow_state’, ‘published’);
kb.orderByDesc(‘sys_view_count’);
kb.setLimit(5);
kb.query();
while (kb.next()) {
arr.push({
id: kb.getUniqueValue(),
title: kb.getValue(‘short_description’),
score: 0.5
});
}
}
return JSON.stringify(arr);
},
type: ‘HRKBSuggester’
});
9. Compliance training reminder
// Scheduled Job — monthly
(function {
var due = new GlideDateTime();
due.addDaysLocalTime(14);
var tr = new GlideRecord(‘sn_compliance_training_assignment’);
tr.addQuery(‘due_date’, ‘<=’, due);
tr.addQuery(‘state’, ‘pending’);
tr.query();
while (tr.next()) {
gs.eventQueue(‘x_hrsd.compliance.reminder’,
tr, tr.getValue(‘assignee’), tr.getValue(‘course_name’));
}
})();
10. Org chart traversal — approval routing
var OrgChartUtil = Class.create();
OrgChartUtil.prototype = {
initialize: function {},
/*
* Climb up the org chart up to N levels.
* @param {string} startUserSysId
* @param {number} levelsUp
* @returns {string|null} approver sys_id
/
getApprover: function (startUserSysId, levelsUp) {
levelsUp = parseInt(levelsUp, 10) || 1;
var current = startUserSysId;
for (var i = 0; i < levelsUp; i++) {
var u = new GlideRecord(‘sys_user’);
if (!u.get(current)) return null;
var mgr = u.getValue(‘manager’);
if (!mgr) return null;
current = mgr;
}
return current;
},
/* find approver with role /
getApproverWithRole: function (startUserSysId, role, maxLevels) {
var current = startUserSysId;
for (var i = 0; i < (maxLevels || 10); i++) {
var u = new GlideRecord(‘sys_user’);
if (!u.get(current)) return null;
if (gs.hasRoleForUser(role, current)) return current;
current = u.getValue(‘manager’);
if (!current) return null;
}
return null;
},
type: ‘OrgChartUtil’
};
11–20. Quick recipes
| # | Pattern | Key call |
|---|---|---|
| 11 | Multi-language case auto-translation | new sn_one_extend.SkillRunner(‘translate’, text, ‘ar’) |
| 12 | HR Case → HR Leave linker | new GlideRecord(‘x_786686_hr_leave_req_v2’); …insert(); update case.parent |
| 13 | Org chart updater | bulk update sys_user.manager from Workday webhook |
| 14 | HR Manager dashboard refresher | scheduled job rebuilds pa_scores for HRSD indicators |
| 15 | Concierge case template | clone master case via gr.update(current.getUniqueValue()) |
| 16 | HR Case auto-merge dedupe | use sys_text_index similarity over short_description |
| 17 | Sensitive case auditor | every update on Employee Relations type → sys_audit capture + manager notification |
| 18 | HR Survey trigger | OnAfter close → create asmt_assessment_instance |
| 19 | Employee directory deep link | URL /esc?id=org_chart&user=${sys_id} |
| 20 | Employee Center widget refresher | spUtil.recordWatch($scope, ‘sn_hr_core_case’, ‘opened_for=’ + uid) |
17.5 Employee Center configuration
| Component | Where |
|---|---|
| Topics | sn_publications_topic — group HR services by domain |
| Connected Content | sn_publications_connected_content — link KB/catalog/quick-link to topic |
| Featured Items | sn_employee_center_featured_item — hero spots |
| Content blocks | Drag in Employee Center Studio |
لربط HR Leave items بالـ EC:
1. أنشئ topic “Time Off”.
2. أضف Connected Content → اختر catalog item “Submit Leave Request”.
3. الموظف يجد الرابط مباشرة في EC.
§18 — From-Scratch Implementation (Day 0 → Day 30)
18.1 Roadmap overview
| Phase | Days | Goal |
|---|---|---|
| Phase 1 — Foundation | 0–7 | HR Profiles, COE, EC ready |
| Phase 2 — Service Delivery | 8–15 | Case types, KB, Lifecycle |
| Phase 3 — Automation & Analytics | 16–22 | Notifications, surveys, reports |
| Phase 4 — Integration & AI | 23–27 | Workday/SAP, Now Assist |
| Phase 5 — Go-Live | 28–30 | UAT, Training, Hypercare |
18.2 Day-by-day
Day 0 — Preparation
- Stakeholder map (HR Director, COE leads, IT, Legal/Privacy)
- COE strategy: which COEs to launch first (recommend Time Off + Benefits)
- Persona map (Employee, Manager, Agent, COE, HRBP)
- Maturity assessment (current case mgmt: spreadsheet? ticketing? legacy ServiceNow?)
Day 1 — Plugin activation
Navigate: All > System Applications > All Available Applications > All
Activate:
- com.sn_hr_core
- com.sn_hr_case_management
- com.sn_hr_lifecycle_ent
- (optional) com.sn_hr_em_rel — Employee Relations
- (optional) com.sn_hr_payroll
Then: All > Guided Setup > HR Service Delivery
Day 2 — Bulk import HR Profiles + photos
// Import Set + Transform Map from CSV
// CSV columns: employee_number,user_id,department,manager_employee_number,location,start_date,job_title
// In Transform Map onBefore:
(function transformRow(source, target) {
target.user = _findUser(source.u_employee_number);
target.manager = _findManagerByEmp(source.u_manager_employee_number);
target.start_date = source.u_start_date;
target.department = _findDept(source.u_department);
})(source, target);
Day 3-4 — Foundation tables
- cmn_department — full hierarchy (3 levels)
- cmn_location — countries + cities + buildings
- cmn_cost_center — finance dimension
- Bulk import via Excel → Import Set
Day 5-6 — HR Services Catalog
- HR Service: General HR, Payroll, Benefits, Onboarding, Offboarding, Leave (link to x_786686_hr_leave)
- HR Catalog Items: 15-20 starter items
Day 7 — Case types + COE routing
| Subject category | COE |
|---|---|
| Time Off / Leave | Time Off COE |
| Pay & Comp | Payroll COE |
| Health & Wellness | Benefits COE |
| Conduct / Workplace | Employee Relations |
| Career & Performance | Talent COE |
| Other | General HR |
Day 8 — HR Criteria (visibility)
// Script in HR Criteria (sn_hr_core_criteria)
(function {
// Only employees in same department OR HR group can see case
var caseDept = current.getValue('subject_department');
if (gs.hasRole('hr_admin') || gs.hasRole('hr_em_rel_agent')) {
return true;
}
var userDept = new GlideRecord('sys_user');
userDept.get(gs.getUserID());
return (userDept.getValue('department') === caseDept);
})();
Day 9-10 — Employee Center pages, branding, navigation
- Theme: brand colors, logo, fonts
- Navigation: 4 main topics (Time Off, Benefits, Payroll, Career)
- Search prominent (AI Search enabled)
- Mobile-first responsive
Day 11 — Topics + Connected Content
- Topic taxonomy → 3 levels
- Connected Content rules per topic
- Link HR Leave items to “Time Off” topic
Day 12-13 — Knowledge bases
- KB: HR Policies (public)
- KB: Benefits (employee-only)
- KB: Payroll (employee-only)
- KB: Internal HR (HR-only)
- Article templates + workflow + criteria
Day 14-15 — Onboarding Lifecycle Event
Steps:
1. Create Lifecycle Event: Onboarding — Standard
2. Trigger: employee record insert (state = pre_hire)
3. Activity Set with 20 tasks (use script #3 above)
4. Stakeholders: New Hire, Manager, HR, IT, Facilities
5. Dashboards: open tasks, days-to-complete
Day 16 — Offboarding Lifecycle Event
- Similar pattern, but with cross-module integrations (script #4 above)
Day 17 — Notifications + branded mail layouts
- All standard case events: assigned, updated, resolved, reopened, closed
- Branded layout with logo, footer
Day 18 — Surveys
- Post-case CSAT
- Quarterly eNPS via Survey Designer
Day 19 — Reports + Dashboard
4-tile HR Dashboard:
| Tile | Type | Query |
|—|—|—|
| Open by COE | Stacked Bar | active=true, group by assignment_group |
| Avg Resolution Time | Single Score | resolved cases this month, avg(resolved_at − opened_at) |
| eNPS This Quarter | Single Score | from survey responses |
| Top 5 Topics | Pie | group by subject |
Day 20 — PA Indicators
- Avg time to resolve by COE
- Reopen rate
- Self-service deflection rate
- Lifecycle event completion %
Day 21 — Service Portal vs EC migration
- If on legacy /hr Service Portal, plan migration to /esc
- Use Connected Content for backward compatibility
Day 22-23 — ATF (15 tests)
- Confidential case visibility (employee can’t see EM Rel)
- Case auto-assignment
- KB article visibility per role
- Onboarding tasks spawn correctly
- Notification fires on state change
- HR Leave integration works
- Catalog → case creation
- SLA pause/resume
- Inbound email update
- PA Indicator collects correctly
Day 24 — Workday/SAP HRIS integration
Mapping table:
| Workday field | ServiceNow field |
|---|---|
| Employee_ID | sn_hr_core_profile.employee_number |
| Worker_ID | sys_user.employee_number |
| Job_Title | sys_user.title |
| Manager | sys_user.manager (via lookup) |
| Hire_Date | sn_hr_core_profile.start_date |
| Department | sys_user.department (via lookup) |
| Location | sys_user.location (via lookup) |
| sys_user.email | |
| Phone | sys_user.phone |
| Cost_Center | sys_user.cost_center |
| Status | sys_user.active |
Frequency: 4-hour batch (full sync nightly + incremental every 4 hours)
Day 25 — Now Assist for HRSD
- Summarize HR case (skill)
- Draft empathetic reply
- Suggest similar cases
- Classify intake by subject
- Translation (English ↔ Arabic for ME deployments)
Day 26 — Mobile App
- HR Mobile branding
- Push notifications enabled
- Offline case viewing
- Photo attach for medical certs
Day 27 — Training
| Role | Duration | Topics |
|---|---|---|
| HR Admin | 1 day | configuration, criteria, KB |
| HR Agent | ½ day | workspace, scripts, transfer rules |
| COE Specialist | ½ day | their COE workflows + criteria |
| End User | 30 min | EC tour, self-service |
| Manager | 30 min | approvals, dashboard |
Day 28 — UAT (30 scenarios)
- 5 employee self-service flows
- 5 agent triage flows
- 5 COE specialist scenarios
- 5 lifecycle event scenarios
- 5 integration scenarios
- 5 negative tests (no access, denied, etc.)
Day 29 — Cutover readiness
- Final data load (HR profiles, KB)
- Cutover plan with hourly checkpoints
- Comms to employees (T-7, T-1, Day 1)
- Helpdesk briefed for Day 1 surge
Day 30 — Go-Live + Hypercare
- 24/7 war-room for first 48h
- Daily ticket review
- Hotfix protocol
- Daily KPI report to CHRO
18.3 Cross-link to HR Leave (x_786686_hr_leave)
| Integration point | Implementation |
|---|---|
| EC topic “Time Off” → Leave catalog item | Connected Content rule |
| HR Case “Leave Question” → relates to Leave Request | parent field, task_rel_task |
| Onboarding task “Activate Leave Balance” | Lifecycle task triggers x_786686_hr_leave.bal.initialize event |
| Offboarding “Cancel pending leave” | Script #4 above |
| Manager dashboard | tile pulling from both sn_hr_core_case AND x_786686_hr_leave_req_v2 |
18.4 Common pitfalls + fixes
| Issue | Fix |
|---|---|
| Cases visible to wrong managers | Tighten HR Criteria script |
| EC topic doesn’t show items | Check user criteria + topic content rule |
| Lifecycle tasks duplicate | Add idempotency check on activity-set spawn |
| Slow case list | Index opened_for, assignment_group, state |
| Workday sync conflicts | Use last_sync watermark + ETag |
18.5 KPIs to track month 1
| KPI | Target |
|---|---|
| % cases resolved within SLA | ≥ 90% |
| Avg resolution time | < 24h (Tier 1), < 5d (COE) |
| Self-service deflection rate | ≥ 30% (cases avoided via KB) |
| eNPS (HRSD experience) | > 40 |
| Onboarding task completion on time | ≥ 95% |
| Confidentiality breach incidents | 0 |
§19 — CIS-HR Exam & Z-to-Hero Feature Labs
19.1 Exam bank
Primary: C:\SVCProject\EXAM_BANK_HRSD_360.md (~120 Q, 95 KB).
19.2 Z-to-Hero Feature Labs (12 labs)
| Lab | Feature | Bank topic |
|---|---|---|
| L1 | HR Profile bulk import (CSV) | Profile mgmt |
| L2 | HR Service definition + COE routing rules | HR Services + COE |
| L3 | HR Criteria — restrict salary fields to HR + employee | HR Security (exam priority) |
| L4 | Employee Center /esc config + brand + Topic creation | EC |
| L5 | Connected Content (KB article → Topic) | EC content |
| L6 | Featured Items in EC + topic ordering | EC UX |
| L7 | Onboarding Lifecycle Event with 10 task templates | LCE |
| L8 | Offboarding LCE with cross-module deprovisioning | LCE |
| L9 | HR Case auto-categorization (Now Assist) | AI HR |
| L10 | Cross-link x_786686_hr_leave to HR Case | Cross-app |
| L11 | Workday-style HRIS sync (Spoke or mock REST) | HRIS integration |
| L12 | Manager Hub portal page (delegation, team view) | Manager experience |
19.3 Top 15 HRSD must-know concepts
- HR Profile vs HR Case (linked but distinct)
- HR Criteria: condition + restricted fields (THE exam topic)
- COE (Center of Excellence) routing
- Employee Center vs legacy /hr portal
- Topics: Featured, Topic Detail, Connected Content
- Lifecycle Events (LCE): Activity Sets + Tasks
- HR Services Catalog (different from regular Service Catalog)
- HR Case states + assignment + escalation
- Manager Hub for delegations
- PII handling + redaction
- HRIS integration patterns (Workday, SAP SuccessFactors, Oracle HCM)
- Surveys (post-onboarding, post-case)
- Mobile EC for employees
- Now Assist for HR (summarize, draft reply, KB suggest)
- HR Reports + PA (case volume, satisfaction)
19.4 5 sample CIS-HR questions
Q1. HR Criteria is used to:
A. Limit which catalog items appear
B. Restrict fields and tabs based on conditions and audience
C. Define HR Services
D. Approve casesAnswer: B
Q2. Where do you configure Topics for Employee Center?
A. Service Portal designer
B. Employee Center > Configuration > Topics
C. UI Builder
D. HR ProfileAnswer: B
Q3. A Lifecycle Event triggers when:
A. Manually launched
B. Activity Set trigger condition is met (e.g., new hire start date)
C. Both
D. Only via Flow DesignerAnswer: C
Q4. Which integration is recommended for Workday HRIS to ServiceNow HR Profile sync?
A. Direct GlideRecord script
B. Workday IH Spoke + Identification rule on employee_number
C. Manual CSV import daily
D. Email-to-recordAnswer: B
Q5. When an employee opens a case via /esc, what restricts visibility of the case?
A. ACL on HR Case table
B. HR Criteria
C. Both A and B
D. None — all visibleAnswer: C
Use EXAM_BANK_HRSD_360.md for remaining 115+ questions.
19.5 What “Hero” looks like for HRSD
Builds full HR shared services platform: HR Profile mastering, Criteria-based security, EC topics with connected KB, Onboarding/Offboarding LCEs with cross-module hooks, HRIS bi-directional sync, Now Assist for HR. Passes CIS-HR with ≥85%.
Hands-on Labs — مختبرات عملية
Step-by-step labs for PDI / Australia instance. Replace
{BASE}with your instance URL.
مختبرات خطوة بخطوة — استبدل{BASE}برابط نسختك.
-
Lab 1 — HR Case / قضية HR — Create at {BASE}/sn_hr_core_case.do?sys_id=-1; select COE (e.g. Payroll).
-
Lab 2 — HR Criteria / معايير السرية — Configure at {BASE}/sn_hr_core_criteria_list.do; verify case visibility.
-
Lab 3 — Employee Center request / طلب من EC — Submit HR service via {BASE}/esc.
-
Lab 4 — Lifecycle Event / حدث دورة حياة — Trigger onboarding at {BASE}/sn_hr_le_case_list.do.
-
Lab 5 — HR Knowledge / معرفة HR — Publish article restricted to HR COE.
-
Lab 6 — Scoped app (Leave) / تطبيق الإجازات — Test x_786686_hr_leave catalog item end-to-end.
-
Lab 7 — HR Workspace / مساحة HR — Work cases at {BASE}/now/hr/home.
Best Practices — أفضل الممارسات
| Area | Best practice (EN) | أفضل ممارسة (AR) |
|---|---|---|
| Privacy | HR Criteria on every sensitive COE — mandatory | HR Criteria على كل COE حساس |
| COE | Separate Payroll, Benefits, ER — never one generic queue | فصل COEs — لا قائمة واحدة |
| Portal | Employee Center over classic SP for HR | Employee Center للموظف |
| Integration | HRIS spoke for employee data sync | Spoke HRIS لمزامنة البيانات |
Deployment Checklist — قائمة النشر
| # | Task (EN) | المهمة (AR) | Verify |
|---|---|---|---|
| 1 | Install HRSD plugins | تثبيت HRSD | Active |
| 2 | COE structure & services | هيكل COE | Services listed |
| 3 | HR Criteria per COE | HR Criteria | Access restricted |
| 4 | Employee Center config | Employee Center | Employee submits |
| 5 | Lifecycle templates | قوالب Lifecycle | Onboarding runs |
| 6 | HR Workspace | مساحة HR | Agent works queue |
| 7 | Scoped apps (Leave etc.) | تطبيقات scoped | Leave E2E works |
| 8 | UAT with HR COE | UAT مع HR | Sign-off |
Direct URLs Quick Reference
| Page | Navigation | URL |
|---|---|---|
| HR Cases | All > HR > Cases | {BASE}/sn_hr_core_case_list.do |
| HR Services | All > HR > Services | {BASE}/sn_hr_core_service_list.do |
| Employee Center | Employee Center | {BASE}/esc |
| Lifecycle Events | All > HR > Lifecycle | {BASE}/sn_hr_le_case_list.do |
| HR Criteria | All > HR > Administration | {BASE}/sn_hr_core_criteria_list.do |
| HR Workspace | Now > HR | {BASE}/now/hr/home |
| Flow Designer | All > Flow Designer | {BASE}/now/flow-designer |
| Guided Setup | All > Guided Setup | {BASE}/now/guided-setup |
§20 — Deep Implementation Labs, Scripts & Deploy Runbook
Appendix: Professional create → configure → deploy sequence for HRSD on Australia instances.
Token: Replace{BASE}withhttps://YOUR_INSTANCE.service-now.com.
Scoped app tie-in:x_786686_hr_leavepublishes to Employee Center.
Related: implementation/HRSD_IMPLEMENTATION_FROM_SCRATCH_TO_PRO.md
20.1 Three-Phase Implementation Model
| Phase | Days | Goal | Exit criteria |
|---|---|---|---|
| CREATE | 0–3 | HR Core plugins, COEs, Update Set, HR Profiles | HR menus + Guided Setup complete |
| CONFIGURE | 4–20 | HR Criteria, Services, EC topics, Lifecycle, Leave app | Confidential case + EC self-service E2E |
| DEPLOY | 21–30 | ATF, Criteria UAT, transport, hypercare | Legal sign-off on Criteria matrix |
20.2 CREATE Phase — Install & Foundation
Step C1 — Verify instance & activate HRSD
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | Confirm build | All > System Diagnostics > Stats | {BASE}/stats.do |
| 2 | Plugins | Filter Navigator: Plugins | {BASE}/v_plugin_list.do |
| 3 | HR Core | Filter nameCONTAINShr_core → Activate |
{BASE}/v_plugin_list.do?sysparm_query=nameCONTAINShr_core |
| 4 | Case Management | Activate com.sn_hr_case_management |
— |
| 5 | Lifecycle Events | Activate com.sn_hr_lifecycle_ent (if licensed) |
{BASE}/v_plugin_list.do?sysparm_query=nameCONTAINSlifecycle |
| 6 | Employee Center Pro | Activate from Store if entitled | — |
Step C2 — Guided Setup HRSD
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | Guided Setup | All > Guided Setup | {BASE}/now/guided-setup |
| 2 | HR Service Delivery tile | Get Started | {BASE}/now/guided-setup/hrsd |
| 3 | Foundation | HR Profiles, Departments → Mark Complete | — |
| 4 | COE selection | Enable Payroll, Benefits, Time Off COEs | — |
| 5 | Employee Center | Enable /esc portal |
{BASE}/esc |
Step C3 — Roles, groups, Update Set
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | Update Set | All > Local Update Sets > New | {BASE}/sys_update_set.do?sys_id=-1 |
| 2 | Name HRSD_AU_Implement_2026 |
State In progress | {BASE}/sys_update_set_list.do |
| 3 | HR agent group | All > Groups > New: HR Tier-1 Agents |
{BASE}/sys_user_group.do?sys_id=-1 |
| 4 | Roles | sn_hr_core.case_writer, sn_hr_core.basic |
{BASE}/sys_user_role_list.do?sysparm_query=nameSTARTSWITHsn_hr |
| 5 | Test users | hr.agent1, employee.test1, manager.test1 |
{BASE}/sys_user_list.do |
| 6 | HR Profiles | All > HR Administration > Profiles | {BASE}/sn_hr_core_profile_list.do |
20.3 CONFIGURE Phase — HR Service Delivery Build
Step F1 — HR Profiles & COE structure (security first)
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | HR Profile for employee | Profiles > New or auto-gen | {BASE}/sn_hr_core_profile.do?sys_id=-1 |
| 2 | Link employee.test1 sys_user |
Department, Manager populated | — |
| 3 | COE config | All > HR Administration > COE | {BASE}/sn_hr_core_case_list.do |
| 4 | Enable COEs: General HR, Payroll, Benefits, Time Off, Employee Relations | — | — |
| 5 | HR Criteria (critical) | All > HR Administration > HR Criteria > New | {BASE}/sn_hr_core_criteria.do?sys_id=-1 |
| 6 | Criteria: Employee Relations cases visible only to ER group + subject person | Script tab — see §17.4 | {BASE}/sn_hr_core_criteria_list.do |
Step F2 — HR Services & case configuration
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | HR Service | All > HR Administration > Services > New | {BASE}/sn_hr_core_service.do?sys_id=-1 |
| 2 | Name General HR Inquiry, COE=General HR |
Active=true | {BASE}/sn_hr_core_service_list.do |
| 3 | Service Payroll Inquiry |
COE=Payroll, apply HR Criteria | — |
| 4 | Case types | Configure per COE table extensions | — |
| 5 | Assignment rules | All > HR Administration > Assignment | {BASE}/sysrule_assignment_list.do?sysparm_query=tableSTARTSWITHsn_hr |
| 6 | Test case | {BASE}/sn_hr_core_case.do?sys_id=-1 | — |
Step F3 — Employee Center topics & Leave app
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | EC config | All > Employee Center > Configuration | {BASE}/esc |
| 2 | Topics | Topics > New: Time Off |
Employee Center admin UI |
| 3 | Connected Content | Link catalog item Submit Leave Request (x_786686_hr_leave) |
— |
| 4 | Scoped app verify | All > Studio → app HR Leave |
{BASE}/sys_scope_list.do?sysparm_query=scope%3Dx_786686_hr_leave |
| 5 | Catalog item | Module Leave Request published to EC | {BASE}/x_786686_hr_leave_req_v2_list.do |
| 6 | Preview EC | {BASE}/esc?id=time_off_topic (topic id varies) | — |
Step F4 — Lifecycle Events (onboarding)
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | Lifecycle Events | All > HR Lifecycle Events | {BASE}/sn_hr_le_case_list.do |
| 2 | Activity Sets | All > HR > Activity Sets > New | {BASE}/sn_hr_le_activity_set.do?sys_id=-1 |
| 3 | Name LAB Standard Onboarding |
5+ activities (IT, HR, Manager) | {BASE}/sn_hr_le_activity_set_list.do |
| 4 | Lifecycle Event case | New onboarding for pre-hire | {BASE}/sn_hr_le_case.do?sys_id=-1 |
| 5 | Trigger | New hire start date T-7 | — |
| 6 | Task fan-out | Related HR Tasks spawn cross-team | {BASE}/sn_hr_core_task_list.do |
Step F5 — HR Agent Workspace & Knowledge
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | HR Workspace | Now Experience > HR | {BASE}/now/hr/home |
| 2 | Agent view | {BASE}/now/hr/agent | — |
| 3 | KB article | All > Knowledge > Create New | {BASE}/kb_knowledge.do?sys_id=-1 |
| 4 | HR Criteria on KB | Restrict Benefits articles to employees | {BASE}/kb_knowledge_base_list.do |
| 5 | Flow approval | Leave approval Flow at {BASE}/now/flow-designer | — |
20.4 DEPLOY Phase — Test, Transport, Go-Live
Step D1 — Confidentiality UAT (mandatory)
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | Impersonate employee.test1 |
avatar > Impersonate | {BASE}/impersonate_user.do |
| 2 | Attempt open ER case URL directly | Should 403/blank per HR Criteria | — |
| 3 | Impersonate hr.agent1 |
Can see assigned COE cases | — |
| 4 | Access Debugger | All > Access Control Debugger | {BASE}/$access_control_debugger.do |
| 5 | Document matrix | Legal/HR sign-off on Criteria doc | — |
Step D2 — ATF & Update Set
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | ATF | {BASE}/sys_atf_test_list.do | EC submit + Criteria deny tests |
| 2 | Complete Update Set | {BASE}/sys_update_set_list.do | — |
| 3 | Import target | {BASE}/sys_remote_update_set_list.do | — |
| 4 | Smoke EC | {BASE}/esc + Leave request E2E | — |
Step D3 — Hypercare (first 72h)
| Hour | Check | URL |
|---|---|---|
| 0 | EC /esc loads |
{BASE}/esc |
| 4 | Open HR cases by COE | {BASE}/sn_hr_core_case_list.do?sysparm_query=active%3Dtrue |
| 8 | Criteria breach attempts | {BASE}/syslog_list.do?sysparm_query=messageLIKEaccess |
| 24 | Leave requests submitted | {BASE}/x_786686_hr_leave_req_v2_list.do |
| 72 | Onboarding tasks completion | {BASE}/sn_hr_core_task_list.do?sysparm_query=short_descriptionLIKEonboard |
20.5 Full Component URL Catalog (HRSD)
| Component | Filter Navigator path | Direct URL | Create URL |
|---|---|---|---|
| Plugins | All > System Definition > Plugins | {BASE}/v_plugin_list.do | — |
| Update Sets | All > System Update Sets > Local | {BASE}/sys_update_set_list.do | {BASE}/sys_update_set.do?sys_id=-1 |
| HR Profiles | All > HR Administration > Profiles | {BASE}/sn_hr_core_profile_list.do | {BASE}/sn_hr_core_profile.do?sys_id=-1 |
| HR Services | All > HR Administration > Services | {BASE}/sn_hr_core_service_list.do | {BASE}/sn_hr_core_service.do?sys_id=-1 |
| HR Cases | All > HR Case Management > Cases | {BASE}/sn_hr_core_case_list.do | {BASE}/sn_hr_core_case.do?sys_id=-1 |
| HR Criteria | All > HR Administration > HR Criteria | {BASE}/sn_hr_core_criteria_list.do | {BASE}/sn_hr_core_criteria.do?sys_id=-1 |
| HR Tasks | All > HR Case Management > Tasks | {BASE}/sn_hr_core_task_list.do | — |
| Lifecycle Events | All > HR Lifecycle Events | {BASE}/sn_hr_le_case_list.do | {BASE}/sn_hr_le_case.do?sys_id=-1 |
| Activity Sets | All > HR > Activity Sets | {BASE}/sn_hr_le_activity_set_list.do | {BASE}/sn_hr_le_activity_set.do?sys_id=-1 |
| Employee Center | Employee Center | {BASE}/esc | — |
| EC Topics | Employee Center > Configuration > Topics | Admin UI from {BASE}/esc | — |
| HR Workspace | Now Experience > HR | {BASE}/now/hr/home | — |
| HR Agent Workspace | Now Experience > HR Agent | {BASE}/now/hr/agent | — |
| Assignment Rules | All > HR Administration > Assignment | {BASE}/sysrule_assignment_list.do?sysparm_query=tableSTARTSWITHsn_hr | — |
| Knowledge (HR) | All > Knowledge > Articles | {BASE}/kb_knowledge_list.do | {BASE}/kb_knowledge.do?sys_id=-1 |
| Flow Designer | All > Process Automation > Flow Designer | {BASE}/now/flow-designer | — |
| Scoped Apps | All > Studio / Applications | {BASE}/sys_scope_list.do | — |
| HR Leave Requests | Module (scoped app) | {BASE}/x_786686_hr_leave_req_v2_list.do | — |
| HR Leave Balances | Module (scoped app) | {BASE}/x_786686_hr_leave_bal_v2_list.do | — |
| HR Leave Employees | Module (scoped app) | {BASE}/x_786686_hr_leave_employee_v2_list.do | — |
| REST API (HR Case) | Table API | {BASE}/api/now/table/sn_hr_core_case |
— |
| Impersonation | avatar > Impersonate | {BASE}/impersonate_user.do | — |
| Access Debugger | All > System Security > Access Control Debugger | {BASE}/$access_control_debugger.do | — |
| Guided Setup | All > Guided Setup | {BASE}/now/guided-setup | — |
20.6 Deep Hands-On Labs (8 labs — exact clicks)
Prefix pilot records with
LAB-HR-.
Lab 1 — HRSD plugin activation & HR Profiles (CREATE)
Goal: HR menus visible; every test user has HR Profile.
- {BASE}/stats.do → note build.
- Update Set
HRSD_LAB01_CREATEat {BASE}/sys_update_set.do?sys_id=-1. - Activate HR Core {BASE}/v_plugin_list.do?sysparm_query=nameCONTAINShr_core.
- Guided Setup {BASE}/now/guided-setup → HR Service Delivery → complete Foundation.
- For each test user → {BASE}/sn_hr_core_profile.do?sys_id=-1 → link sys_user, department, manager.
- Verify: {BASE}/sn_hr_core_profile_list.do ≥ 3 profiles.
Lab 2 — HR Criteria confidentiality (CONFIGURE) — EXAM PRIORITY
Goal: Employee Relations case invisible to peer employees.
- Create HR Service
LAB Employee RelationsCOE=Employee Relations at {BASE}/sn_hr_core_service.do?sys_id=-1. - {BASE}/sn_hr_core_criteria.do?sys_id=-1: Name=
LAB-ER-Confidential, Table=sn_hr_core_case, apply to ER COE. - Script: allow if
gs.hasRole('sn_hr_em_rel.case_writer')OR user is opened_for OR subject person; else deny field/tab visibility. - Create case {BASE}/sn_hr_core_case.do?sys_id=-1: Service=
LAB Employee Relations, opened_for=employee.test1, short description=LAB-HR-ER-001. - Copy case sys_id from URL.
- Impersonate different employee (not subject) → paste
{BASE}/sn_hr_core_case.do?sys_id=CASE_SYS_ID→ expect Security constraint or empty form. - Impersonate HR ER agent → case fully visible.
- Verify: {BASE}/$access_control_debugger.do explains deny reason.
Lab 3 — Employee Center case submission (CONFIGURE)
Goal: Employee submits General HR case via /esc.
- Configure topic
General HRin Employee Center admin (linked to HR Service General HR). - Impersonate
employee.test1{BASE}/impersonate_user.do. - Browse {BASE}/esc → General HR topic → Contact HR / Open Case.
- Subject=
LAB-HR-EC-001, Description=Question about payslip→ Submit. - Note case number → {BASE}/esc?id=my_requests.
- End impersonation →
hr.agent1opens {BASE}/now/hr/agent → case in queue. - Resolve case → employee sees Resolved in EC.
- Verify: {BASE}/sn_hr_core_case_list.do?sysparm_query=short_descriptionLIKElab-hr-ec.
Lab 4 — HR Leave app via Employee Center (CONFIGURE)
Goal: End-to-end leave request from scoped app x_786686_hr_leave.
- Confirm app scope active {BASE}/sys_scope_list.do?sysparm_query=scope%3Dx_786686_hr_leave.
- EC Topic Time Off → Connected Content → catalog item Submit Leave Request.
- Impersonate
employee.test1→ {BASE}/esc → Time Off → Submit Leave Request. - Fill dates (3 days annual leave), reason → Submit.
- Track in {BASE}/x_786686_hr_leave_req_v2_list.do → state Submitted.
- Impersonate
manager.test1→ approve via approval inbox or catalog task. - Verify: Request state Approved; balance updated {BASE}/x_786686_hr_leave_bal_v2_list.do.
Lab 5 — Onboarding Lifecycle Event (CONFIGURE)
Goal: Activity Set spawns cross-team tasks on onboarding trigger.
- {BASE}/sn_hr_le_activity_set.do?sys_id=-1: Name=
LAB Onboarding Set. - Add activities:
IT Account,Badge,Benefits Enroll,Manager Welcome(assign groups). - Create Lifecycle Event {BASE}/sn_hr_le_case.do?sys_id=-1: Type=Onboarding, Employee=new hire user, Start=T+7.
- Submit → watch Related Tasks / Activity execution.
- Open {BASE}/sn_hr_core_task_list.do?sysparm_query=short_descriptionLIKElab → ≥4 tasks.
- Complete each task as respective team.
- Verify: Lifecycle case state Complete when all activities done.
Lab 6 — HR Knowledge deflection in EC (CONFIGURE)
Goal: Employee finds KB article before opening case.
- {BASE}/kb_knowledge.do?sys_id=-1: Title=
LAB Annual Leave Policy, KB=HR Policies, HR Criteria=employees. - Submit → Publish workflow → Published.
- Link article to EC Topic Time Off Connected Content.
- Impersonate employee → {BASE}/esc → search
annual leave→ article appears. - Click article → confirm read → optional Was this helpful?
- Verify: Deflection metric — no duplicate case if employee satisfied.
Lab 7 — COE routing & manager visibility (CONFIGURE)
Goal: Payroll case routes to Payroll COE; manager cannot see salary fields.
- HR Service
LAB Payroll InquiryCOE=Payroll → {BASE}/sn_hr_core_service_list.do. - Assignment rule: Payroll cases → group
HR Payroll COE{BASE}/sysrule_assignment_list.do. - HR Criteria on salary fields: visible to Payroll COE + employee only (not manager unless delegated).
- Employee submits payroll case via EC.
- Impersonate
manager.test1→ open team view / Manager Hub → confirm no salary detail fields. - Verify: Case assigned to Payroll group; manager sees only permitted fields.
Lab 8 — Deploy Update Set + confidentiality sign-off (DEPLOY)
Goal: Transport HRSD config with Legal-approved Criteria matrix.
- Complete
HRSD_AU_Implement_2026Update Set. - Export/import {BASE}/sys_remote_update_set_list.do → Commit.
- Run ATF: EC case submit, ER case deny, Leave E2E.
- Execute confidentiality test pack (10 personas × 5 sensitive cases).
- Legal + CHRO sign Criteria matrix PDF.
- Go-live: communicate {BASE}/esc to all staff.
- Verify: Hypercare §20.4 checklist; zero ACL breach incidents in week 1.
20.7 Implementation Scripts & REST URLs
Script A — Auto-route case to COE by subject
// Business Rule sn_hr_core_case (before insert) — see §17.4 script #1
// Maps subject time_off → HR Time Off COE group
// Test: POST {BASE}/api/now/table/sn_hr_core_case
Script B — HR Profile sync hook for Leave app
// Business Rule on x_786686_hr_leave_req_v2 (before insert)
var prof = new GlideRecord('sn_hr_core_profile');
prof.addQuery('user', current.u_requested_for_user);
prof.query();
if (prof.next()) {
current.u_department = prof.getValue('department');
}
// Verify: {BASE}/x_786686_hr_leave_req_v2_list.do
Script C — Offboarding cancel pending leave
// Event x_hrsd.lifecycle.offboarding.start — see §17.4 script #4
// Sets x_786686_hr_leave_req_v2.u_state = cancelled
// Monitor: {BASE}/x_786686_hr_leave_req_v2_list.do?sysparm_query=u_state%3Dcancelled
Script D — PII redaction in case comments
// Before insert sys_journal_field on sn_hr_core_case
var redactor = new HRPIIRedactor();
current.value = redactor.redact(current.value);
// Configure Script Include: {BASE}/sys_script_include_list.do
REST endpoint quick reference
| Operation | Method | URL |
|---|---|---|
| List HR cases | GET | {BASE}/api/now/table/sn_hr_core_case |
| Create HR case | POST | {BASE}/api/now/table/sn_hr_core_case |
| HR Profiles | GET | {BASE}/api/now/table/sn_hr_core_profile |
| Leave requests | GET | {BASE}/api/now/table/x_786686_hr_leave_req_v2 |
| Lifecycle cases | GET | {BASE}/api/now/table/sn_hr_le_case |
20.8 Configuration Decision Log (template)
| Setting | OOTB default | Approved value | Owner | Test case |
|---|---|---|---|---|
| Confidentiality engine | HR Criteria | HR Criteria (mandatory) | Legal/HR | Lab 2 |
| Employee portal | /esc | /esc Employee Center Pro | HR Ops | Lab 3 |
| Leave intake | Scoped app catalog | x_786686_hr_leave RP | App Owner | Lab 4 |
| Onboarding tasks | 10 default | 20 tasks Activity Set | LCE Coord | Lab 5 |
20.9 Sign-off checklist (CREATE → CONFIGURE → DEPLOY)
- [ ] CREATE: HR Core + Case Mgmt active · HR Profiles for all employees · Update Set started
- [ ] CONFIGURE: HR Criteria signed · EC topics live · Leave app in EC · Lifecycle pilot · KB published
- [ ] DEPLOY: Confidentiality UAT 100% · Update Set committed · CHRO go-live comms · Hypercare roster
- [ ] HR Leave integration: {BASE}/x_786686_hr_leave_req_v2_list.do E2E in prod
Project docs: ../09_MODULES_AND_INTEGRATION.md · ../03_SERVICE_CATALOG.md · ../01_DEVELOPMENT.md