FSM — Field 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 · 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 |
|---|---|---|---|
| Work Orders | All > Field Service > Work Orders | {BASE}/wm_order_list.do | Work order queue |
| Work Order Tasks | All > Field Service > Work Order Tasks | {BASE}/wm_task_list.do | Task execution |
| Dispatcher Workspace | Now Experience > FSM Dispatcher | {BASE}/now/fsm-dispatch/home | Scheduling & dispatch |
| Agent Workspace | Now Experience > FSM Agent | {BASE}/now/fsm-agent/home | Field agent view |
| Dispatch Groups | All > Field Service > Dispatch Groups | {BASE}/dispatch_group_list.do | Team routing |
| Qualifications | All > Field Service > Qualifications | {BASE}/wm_qualification_list.do | Technician skills |
| Parts / Inventory | All > Inventory > Stockrooms | {BASE}/alm_stockroom_list.do | Parts management |
| Locations | All > System > Locations | {BASE}/cmn_location_list.do | Service locations |
| Flow Designer | All > Process Automation > Flow Designer | {BASE}/now/flow-designer | WO automation |
| Guided Setup FSM | 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-FSM Professional Implementer Guide
الأسلوب: عربية + إنجليزية تكمّلان بعضهما — بدون ترجمة حرفية لأسماء الشاشات.
ملخص ووصف بالعربية (Arabic Summary)
| البند | الشرح |
|---|---|
| ما هو FSM؟ | الخدمة الميدانية — أوامر عمل، فنيون، جدولة، جوال، قطع غيار |
| لماذا مهم؟ | إصلاحات في موقع العميل لا تتم من مكتب الخدمة |
| من يستخدمه؟ | موزّع (Dispatcher)، فني ميداني، مدير قطع |
| ماذا يغطي الملف؟ | Work Order، Dispatcher workspace، Mobile · §16 مختبر E2E |
ملخص في سطر: من القضية/الطلب إلى أمر عمل → جدولة → إنجاز على الجوال مع قطع.
وصف مختصر: يغطي المناطق، الجدولة، تطبيق الجوال، استهلاك المخزون، وربط CSM. مناسب CIS-FSM.
1) Overview & Business Value
FSM manages work performed in the field by technicians. — يدير العمل الميداني: جدولة الفنيين، الأجزاء، المواقع، والمهام في الموقع.
Core value:
- Work Order management.
- Scheduling & dispatch (manual + automated).
- Inventory & parts management.
- Mobile app for technicians.
- Integration with CSM (case → work order) and ITSM.
2) Architecture & Data Model
Key tables:
| Table | الغرض |
|---|---|
| wm_order | أمر العمل (Work Order) |
| wm_task | مهمة العمل (Work Order Task) |
| wm_qualification | المؤهلات/المهارات |
| dispatch_group | مجموعة الإرسال (Dispatch) |
| sm_schedule / appointments | الجدولة والمواعيد |
| pc_product_cat_item parts | الأجزاء |
| inv_* (Inventory) | المخزون |
| cmn_location | المواقع |
Model:
Work Order (wm_order)
└─ Work Order Task (wm_task)
├─ assigned technician (with qualifications)
├─ scheduled appointment (time window)
├─ parts required (inventory)
└─ location (cmn_location)
3) Plugins & Activation
| App / Plugin | Name |
|---|---|
| Field Service Management | com.snc.work_management (from Store) |
| FSM Dispatcher Workspace | included |
| Mobile (Now Mobile / Agent) | platform |
| Dynamic Scheduling | from Store |
| Appointment Booking | from Store |
| FSM Contractor Management | from Store |
How to activate:
- Navigate: All > System Applications > All Available Applications > All. — Open direct
- Search “Field Service Management”.
- Install.
- Guided Setup:
Navigate: All > Guided Setup > Field Service Management. — Open direct
4) Guided Setup & All Options
Sections:
- Foundation — locations, territories, skills.
- Technicians & Qualifications — الفنيون ومهاراتهم.
- Dispatch Groups — مجموعات الإرسال.
- Scheduling — manual board / auto / dynamic.
- Inventory & Parts — المخزون والأجزاء.
- Work Order types & states.
- Mobile configuration.
- Customer/Asset (CSM/CMDB integration).
Important options:
| Option | Navigate |
|---|---|
| Dispatch Workspace | /now FSM Dispatcher |
| Territories | All > Field Service > Administration > Territories · Open direct |
| Skills/Qualifications | All > Field Service > Administration · Open direct |
| Auto Dispatch / Dynamic Scheduling | property + plugin |
| Inventory locations | All > Inventory · Open direct |
| Appointment Booking | config |
5) End-to-End Process Cycle
Work Order lifecycle:
Draft → Requested → Qualified → Assigned/Scheduled → Work in Progress → Closed Complete
Full flow:
Trigger (CSM case / request / asset failure)
→ Work Order created
→ Qualification (skills + parts + location)
→ Schedule + Dispatch to technician
→ Technician (mobile): travel → on-site → complete task → consume parts
→ Close work order → customer signature/feedback
Dispatch إما يدوي (لوحة الإرسال) أو تلقائي (Auto/Dynamic Scheduling).
6) Development
Business Rule — require qualification before assignment
(function executeRule(current, previous) {
if (current.assigned_to.changes() && !current.assigned_to.nil()) {
// ensure technician has required skill (simplified)
if (current.skills.nil()) {
gs.addErrorMessage('Define required skills before assigning a technician.');
current.setAbortAction(true);
}
}
})(current, previous);
Development topics:
- Auto-assignment / Dynamic Scheduling configuration.
- Work order tasks & dependencies.
- Mobile app layouts (Agent/Now Mobile).
- Parts requirements + inventory transfers.
- Geolocation & maps.
- Flow Designer for WO approvals.
7) Administration
| Area | Navigate |
|---|---|
| Roles | sn_field_service.* (dispatcher, agent, admin) |
| Territories | All > Field Service > Administration · Open direct |
| Dispatch Groups | All > Field Service · Open direct |
| Inventory | All > Inventory · Open direct |
| Schedules/Shifts | All > Field Service > Schedules · Open direct |
Key roles:
- field_service_dispatcher — المرسِل.
- field_service_agent / technician — الفني الميداني.
- field_service_admin — المدير.
8) Hands-on Labs
Lab 1 — Foundation:
1. Create a Location and a Territory.
2. Create a technician user + qualifications.
Lab 2 — Work Order:
1. Navigate: All > Field Service > Work Orders > Create New. — Open direct
2. Add a task, set required skills + location.
Lab 3 — Dispatch:
1. Open the Dispatcher Workspace.
2. Schedule the task to the technician on the board.
Lab 4 — Parts:
1. Add a part requirement to the task.
2. Transfer/consume from inventory.
Lab 5 — CSM → FSM:
1. From a CSM case, create a Work Order.
2. Complete it and verify the case updates.
9) Best Practices & Common Mistakes
Best practices:
- Model skills/qualifications properly for accurate matching.
- Use Dynamic Scheduling for large field teams.
- Keep inventory locations accurate for parts.
- Use the mobile app for real-time field updates.
Common mistakes:
- إسناد فني بلا المهارة المطلوبة.
- إهمال المخزون فتفشل المهام لعدم توفّر الأجزاء.
- خلط Work Order مع Work Order Task في التقارير.
10) CIS-FSM Exam Focus
High-yield:
- Work Order vs Work Order Task.
- Qualification matching (skills + territory + parts).
- Dispatch: manual board vs Auto/Dynamic Scheduling.
- Inventory & parts consumption.
- Technician mobile workflow (travel/onsite/complete).
- CSM ↔ FSM integration (case to work order).
- Territories & schedules/shifts.
Exam tip: — ركّز على كيف يُختار الفني (المهارة + المنطقة + الوقت + الأجزاء).
11) Portals, Workspaces, Role Hierarchy & Feature Catalog
ملاحظة عن الروابط:
URLs الـ Workspaces قد تختلف حسب الإصدار والـ App Config.
11.1 Portals & Mobile (customers + technicians)
| Surface | URL / App | لمن |
|---|---|---|
| Customer Service Portal | /csm | العملاء (طلب خدمة ميدانية) |
| FSM customer self-service | /csm?id=… | العملاء |
| Now Mobile (technician) | Now Mobile app | الفنيون |
| Field Service Mobile (Agent app) | Mobile Agent app | الفنيون |
11.2 Workspaces (dispatch/managers)
| Workspace | URL | لمن |
|---|---|---|
| Dispatcher Workspace | /now/fsm/dispatcher | المرسِلون (Dispatch board + map) |
| FSM Agent/Manager Workspace | /now/cwf/agent | الوكلاء/المديرون |
| Scheduling / Central Dispatch | configurable | المرسِلون |
| Admin (classic) | /nav_to.do | admins |
لوحة الإرسال (Dispatch board) فيها خريطة وجدول زمني لتعيين المهام للفنيين.
11.3 Role Hierarchy
admin
└─ field_service_admin
├─ field_service_dispatcher (الإرسال والجدولة)
├─ field_service_agent (الفني الميداني)
├─ field_service_manager
└─ inventory roles (inventory_user / inventory_admin)
wm_initiator (من يفتح أمر عمل)
11.4 Full Business Cycle
Trigger (CSM case / request / preventive maintenance / asset failure)
→ Work Order (wm_order) + Work Order Task (wm_task)
→ Qualification: required skills + parts + location/territory
→ Schedule & Dispatch (manual board OR Auto/Dynamic Scheduling)
→ Technician (mobile): assigned → traveling → on-site
↳ consume parts (inventory transfer)
↳ capture notes / photos / signature
→ Complete task → Close Work Order
→ Customer confirmation / feedback → invoice/report
11.5 Feature Catalog
Process features:
- Work Order & Work Order Task management.
- Qualification matching (skills, territory, parts).
- Manual Dispatch board, Auto Dispatch, Dynamic Scheduling.
- Appointment Booking.
- Inventory & Parts Management (stockrooms, transfers).
- Preventive/Planned Maintenance.
- Contractor Management.
- Geolocation, maps, route planning.
- Time recording & costing.
Platform features used:
- Dispatcher Workspace + map.
- Mobile apps (Now Mobile / Mobile Agent) offline-capable.
- Flow Designer (WO approvals/automation).
- CSM integration (case → work order).
- CMDB/Asset integration (asset-based service).
- Performance Analytics (first-time fix rate, utilization).
- Now Assist for FSM.
12) End-to-End Implementation (Post-Activation)
اقرأ هذا بعد تثبيت FSM وتشغيل Guided Setup.
12.1 Application Menus map
All > Field Service
├─ Work Orders (Create New / Open / My / Unassigned / All)
├─ Work Order Tasks
├─ Dispatch (Dispatcher Workspace / Map)
├─ Schedules / Appointments
├─ Administration
│ ├─ Territories / Regions
│ ├─ Skills / Qualifications
│ ├─ Dispatch Groups
│ └─ Auto/Dynamic Scheduling config
└─ Reports / Performance
All > Inventory
├─ Stockrooms / Transfer Orders / Parts
└─ Inventory adjustments
12.2 Core tables to know
| List | Table |
|---|---|
| wm_order.list | work orders |
| wm_task.list | work order tasks |
| dispatch_group.list | dispatch groups |
| cmn_location.list | locations |
| sm_schedule.list | schedules |
| inventory inv_* | stockrooms/parts |
12.3 End-to-end build order
- Foundation:
- Locations, Territories/Regions.
- Skills/Qualifications catalog. - Resources:
- Technician users + qualifications + working hours/shifts. - Dispatch:
- Dispatch Groups mapped to territories. - Scheduling strategy:
- Manual board / Auto Dispatch / Dynamic Scheduling / Appointment Booking. - Inventory:
- Stockrooms, parts catalog, transfer orders. - Work Order config:
- Work Order types, states, task templates, SLAs. - Mobile:
- Configure Mobile Agent layouts (forms, actions, offline). - Flows:
- WO approvals, auto-assignment automation. - Integrations:
- CSM (case → WO), CMDB/Asset (asset service), maps/geocoding. - Workspace:
- Dispatcher Workspace /now/fsm/dispatcher. - Reporting + Test + Deploy.
12.4 All configuration pages
| Config | Navigate |
|---|---|
| FSM properties | All > Field Service > Administration > Properties · Open direct |
| Territories | All > Field Service > Administration > Territories · Open direct |
| Skills | All > Field Service > Administration > Skills · Open direct |
| Dynamic Scheduling | property + plugin config |
| Inventory setup | All > Inventory > Administration · Open direct |
| Mobile config | All > Now Mobile App Builder / Studio · Open direct |
Study path note: — للدراسة من الصفر اتبع: STUDY_ROADMAP.md
13) Options & Instance Notes
| Resource | Content |
|---|---|
| Instance gaps | MODULE_OPTIONS_AND_INSTANCE_NOTES.md → FSM |
| Full implementation | MODULE_IMPLEMENTATION_PLAYBOOK.md → FSM |
14) Implementation Scenarios, Options, Best Practices & Customizations
Playbook: MODULE_IMPLEMENTATION_PLAYBOOK.md → FSM
14.1 Scenarios
| ID | Scenario | Path |
|---|---|---|
| S1 | Work Orders | Dispatch + mobile |
| S2 | + Parts/inventory | Stockrooms + transfers |
| S3 | CSM-integrated | Case creates WO |
14.2 Options matrix
| Area | A | B |
|---|---|---|
| Scheduling | Dynamic scheduling | Manual dispatch |
| Mobile | FSM mobile app | Browser only |
| Parts | inv_* + ITAM overlap | Parts only in FSM |
| Maps | Geocoding enabled | Address text only |
14.3 Plugins
com.snc.field_service_management, scheduling — Store + Guided Setup FSM
14.4 Roles
sn_fsm_dispatcher, technician, inventory_admin, territory managers.
14.5 Common developments
Work order task templates, agent maps, parts consumption BRs, asset-linked WOs, SLA for on-site arrival, integration to CSM cases.
14.6 Best practices
Define territories/skills early; pilot one region; offline mobile test before rollout.
14.7 Go-live
- [ ] Dispatcher workspace UAT
- [ ] Mobile sync tested
- [ ] Parts reorder thresholds set
15) Zero-to-Hero End-to-End Implementation (Scratch → Go-Live)
Framework: MODULE_ZERO_TO_HERO_CONSULTING.md
من Territories/Skills حتى Dispatcher + Mobile + Work Orders.
15.1 Business goals
| Goal | العربي |
|---|---|
| First-time fix | إصلاح من أول زيارة |
| Schedule optimization | جدولة الفنيين |
| Parts availability | قطع الغيار في الوقت |
| CSM link | Case → WO |
15.2 Phase 0 — Discover
Territories, skills, parts stockrooms, mobile offline needs.
15.3 Phase 1 — Activate
FSM plugin, scheduling, mobile app — Guided Setup FSM.
15.4 Phase 2 — Foundation (Week 2–4)
Technicians, dispatchers, territories, skills, work order types.
15.5 Phase 3 — Dispatch (Week 4–6)
Dispatcher workspace, scheduling rules, maps.
15.6 Phase 4 — Mobile & parts (Week 6–8)
Mobile sync test, inventory, consumption on WO.
15.7 Phase 5 — UAT & go-live
End-to-end WO: create→assign→complete→parts deducted.
15.8 Phase 7 — Operate
Utilization, travel time, parts stockouts.
15.9 Master checklist
- [ ] Mobile tested · [ ] Dispatcher trained · [ ] Parts linked · [ ] Go-live
16) Full E2E Practice · Pages · Requirements · Options (AR + EN)
Field technicians · Dispatcher workspace · Mobile offline sync.
16.1 Business goals
| Goal (EN) | الهدف (AR) | KPI |
|---|---|---|
| First-time fix | إصلاح من أول زيارة | FTFR |
| Optimized dispatch | توزيع أمثل | Travel time |
| Parts on van/stockroom | قطع غيار | Stockout rate |
| Customer appointment | موعد العميل | On-time arrival |
Why buy FSM: English: Desk agents cannot fix HVAC at customer site — need WO, schedule, mobile, parts. — FSM يربط قضية/طلب → أمر عمل → فني → قطع → إغلاق مع خريطة وجوال.
16.2 Requirements
| ID | EN | AR |
|---|---|---|
| FS-R01 | Work Order types + tasks | أنواع WO |
| FS-R02 | Dispatcher workspace | موزّع |
| FS-R03 | Scheduling / territories | جدولة ومناطق |
| FS-R04 | Mobile Agent app sync | جوال |
| FS-R05 | Parts/inventory consumption | قطع |
| FS-R06 | (Optional) CSM case origin | من CSM |
| FS-R07 | Customer notifications | إشعار عميل |
16.3 Consultation cycle
| Phase | EN | AR | Deliverable |
|---|---|---|---|
| 0 | Field workforce size, regions | الفنيين | Territory map |
| 1 | As-is dispatch (phone/maps) | الوضع الحالي | Gap |
| 2 | WO lifecycle | دورة WO | Process |
| 3 | Parts model | قطع | Stockroom/van |
| 4 | Mobile pilot users | جوال | Device list |
| 5 | UAT E2E WO | UAT | Sign-off |
16.4 Options (A / B / C)
| Area | A | B | C |
|—|—|—|
| Intake | CSM Case → WO | Catalog WO | Manual |
| Schedule | Dynamic scheduling | Manual dispatch | External |
| Mobile | FSM Mobile Agent | Browser | Paper |
| Parts | Inventory Management | Simple task parts | No inventory |
| Maps | Built-in maps | External GPS | None |
16.5 All pages (Navigate)
| Page | Navigate |
|---|---|
| Field Service Administration | All > Field Service > Administration · Open direct |
| Work Orders | All > Field Service > Work Orders · Open direct |
| Work Order Tasks | All > Field Service > Tasks · Open direct |
| Dispatch Queue | Dispatcher Workspace /now/fsm/dispatcher |
| Territories | All > Field Service > Territories · Open direct |
| Scheduling | All > Field Service > Scheduling · Open direct |
| Agents (field) | All > Field Service > Agents · Open direct |
| Parts / Stock | All > Inventory > Stockrooms · Open direct |
| Mobile layouts | All > Mobile > Layout · Open direct |
| Agent map view | Dispatcher map tab |
16.6 Full PDI lab (15 steps)
| Step | EN | AR | Verify |
|---|---|---|---|
| 1 | Activate FSM + Guided Setup | تفعيل | Apps on |
| 2 | Create territory + assign agents | منطقة | Territory map |
| 3 | Create WO type Break/Fix | نوع | Type saved |
| 4 | Create WO from case or manual | WO | Record open |
| 5 | Open Dispatcher workspace | موزّع | Queue visible |
| 6 | Assign WO to agent (drag schedule) | إسناد | Agent scheduled |
| 7 | Agent mobile — accept/start/complete | جوال | States updated |
| 8 | Add part to WO — consume from stock | قطعة | Qty reduced |
| 9 | Capture customer signature (if enabled) | توقيع | Attached |
| 10 | Close WO — verify case closed (if linked) | إغلاق | End state |
| 11 | Report: utilization by agent | تقرير | Dashboard |
| 12 | Failed sync test (offline queue) | offline | Sync on reconnect |
| 13 | Options A/B/C | خيارات | Doc |
| 14 | UAT FS-R01–07 | UAT | Pass |
| 15 | Update Set FSM Lab 16 | Export | Done |
16.7 Sign-off
- [ ] Mobile devices enrolled · [ ] Dispatcher trained on map · [ ] Parts master aligned · [ ] CSM handoff tested (if applicable)
§17 — Power User Playbook (FSM)
17.1 Personas
| Persona | Primary actions |
|---|---|
| Customer | Book appointment via portal, track ETA, leave rating |
| Dispatcher | Optimize daily plan, reassign, handle emergencies via Dispatch Workspace |
| Field Technician | Mobile WO execution, parts, signature, photos |
| Service Manager | Capacity planning, performance reviews, customer escalations |
| Inventory Manager | Truck stock, warehouse, replenishment |
| Subcontractor | Limited portal access for assigned WOs |
17.2 Day-in-Life — Dispatcher
- Open Dispatch Workspace /now/fsm/dispatcher.
- Map view shows technicians + WOs as pins.
- Drag a WO from queue to technician → system validates skill+territory+capacity.
- Auto-optimize route via “Optimize Day” action.
- Emergency: pull a tech off current job, escalate flag.
17.3 Day-in-Life — Field Technician (Mobile)
- Open ServiceNow Now Mobile → My Work Orders.
- See ETA, customer info, parts required.
- “Start travel” → geofence detects arrival → “Start work”.
- Perform task; consume parts from truck stock.
- Take photos; capture customer signature.
- Complete → invoice/follow-up triggered.
17.4 Top 20 FSM Scripts (full code)
1. Auto-assign WO by skill + territory + availability
var FSMSmartDispatch = Class.create();
FSMSmartDispatch.prototype = {
initialize: function {},
assign: function (woSysId) {
var wo = new GlideRecord(‘wm_order’);
if (!wo.get(woSysId)) return null;
var requiredSkill = wo.getValue(‘skills’);
var territory = wo.getValue(‘territory’);
var due = wo.getValue(‘requested_due_by’);
// candidates with skill + territory
var cand = new GlideRecord(‘sys_user’);
cand.addQuery(‘active’, true);
cand.addQuery(‘skills’, ‘CONTAINS’, requiredSkill);
cand.addQuery(‘u_territories’, ‘CONTAINS’, territory);
cand.query();
var best = null;
var bestScore = -Infinity;
while (cand.next()) {
var score = this._score(cand, wo);
if (score > bestScore) {
bestScore = score;
best = cand.getUniqueValue();
}
}
if (best) {
wo.setValue(‘assigned_to’, best);
wo.update();
}
return best;
},
_score: function (tech, wo) {
// Lower load + nearby + matching language
var loadAgg = new GlideAggregate(‘wm_order’);
loadAgg.addQuery(‘assigned_to’, tech.getUniqueValue());
loadAgg.addQuery(‘state’, ‘IN’, ‘pending,in_progress’);
loadAgg.addAggregate(‘COUNT’);
loadAgg.query();
var load = loadAgg.next() ? parseInt(loadAgg.getAggregate(‘COUNT’), 10) : 0;
return -load * 10; // negative = lower is better
},
type: ‘FSMSmartDispatch’
};
2. Route optimization (simple greedy)
function optimizeDay(techSysId, date) {
var gr = new GlideRecord('wm_order');
gr.addQuery('assigned_to', techSysId);
gr.addQuery('scheduled_start', date);
gr.orderBy('priority');
gr.query();
var wos = [];
while (gr.next()) {
wos.push({
sysId: gr.getUniqueValue(),
lat: parseFloat(gr.getValue(‘latitude’)),
lng: parseFloat(gr.getValue(‘longitude’)),
duration: parseInt(gr.getValue(‘estimated_duration’), 10),
priority: parseInt(gr.getValue(‘priority’), 10)
});
}
// Nearest-neighbor heuristic from start point
var start = { lat: parseFloat(gs.getProperty(‘x_fsm.depot_lat’)),
lng: parseFloat(gs.getProperty(‘x_fsm.depot_lng’)) };
var ordered = [];
var cur = start;
while (wos.length > 0) {
wos.sort(function (a, b) {
return _dist(cur, a) - _dist(cur, b);
});
var next = wos.shift();
ordered.push(next);
cur = next;
}
// Persist order
ordered.forEach(function (w, idx) {
var u = new GlideRecord(‘wm_order’);
if (u.get(w.sysId)) {
u.setValue(‘dispatch_order’, idx + 1);
u.update();
}
});
function _dist(a, b) {
var dx = a.lat - b.lat, dy = a.lng - b.lng;
return Math.sqrt(dx * dx + dy * dy);
}
}
3. Parts reservation from truck stock
function reserveParts(woSysId, partRequests) {
var wo = new GlideRecord('wm_order');
if (!wo.get(woSysId)) return { success: false, error: 'wo_not_found' };
var techId = wo.getValue('assigned_to');
var truck = _getTruckFor(techId);
var reserved = [];
for (var i = 0; i < partRequests.length; i++) {
var p = partRequests[i];
var stock = new GlideRecord(‘alm_consumable’);
stock.addQuery(‘stockroom’, truck);
stock.addQuery(‘model’, p.model);
stock.setLimit(1);
stock.query();
if (!stock.next()) {
return { success: false, error: ‘no_stock’, model: p.model };
}
var avail = parseInt(stock.getValue(‘quantity’), 10) -
parseInt(stock.getValue(‘reserved’), 10);
if (avail < p.qty) {
return { success: false, error: ‘insufficient’, model: p.model,
available: avail, requested: p.qty };
}
stock.setValue(‘reserved’,
parseInt(stock.getValue(‘reserved’), 10) + p.qty);
stock.update();
reserved.push({ stock: stock.getUniqueValue(), qty: p.qty });
}
return { success: true, reserved: reserved };
}
4. ETA notification SMS to customer
// Triggered when tech starts travel
(function (current, previous) {
if (current.state.changes() && current.getValue('state') === 'en_route') {
var customer = new GlideRecord('customer_contact');
if (!customer.get(current.getValue('contact'))) return;
var phone = customer.getValue('mobile_phone');
if (!phone) return;
var eta = parseInt(current.getValue(‘eta_minutes’), 10) || 30;
var msg = ‘Your technician ’ + current.getDisplayValue(‘assigned_to’) +
’ is on the way. ETA ~’ + eta + ’ minutes. Track: ’ +
gs.getProperty(‘glide.servlet.uri’) +
‘sp?id=track&wo=’ + current.getValue(‘number’);
new HRLXProSMSUtils().sendSMS(phone, msg); // reuse from doc 06
}
})(current, previous);
5. Geofence arrival detection
// Scripted REST endpoint /api/x_fsm/geofence
(function process(request, response) {
var data = request.body.data;
var techId = data.tech_id;
var lat = parseFloat(data.lat);
var lng = parseFloat(data.lng);
// Find active WO for this tech
var wo = new GlideRecord(‘wm_order’);
wo.addQuery(‘assigned_to’, techId);
wo.addQuery(‘state’, ‘en_route’);
wo.setLimit(1);
wo.query();
if (!wo.next()) {
response.setStatus(404); return { ok: false };
}
var siteLat = parseFloat(wo.getValue(‘latitude’));
var siteLng = parseFloat(wo.getValue(‘longitude’));
var distM = _haversine(lat, lng, siteLat, siteLng);
if (distM < 100) {
wo.setValue(‘state’, ‘on_site’);
wo.setValue(‘arrived_at’, new GlideDateTime());
wo.update();
gs.eventQueue(‘x_fsm.wo.arrived’, wo, techId);
}
return { ok: true, distance_m: distM };
function _haversine(lat1, lon1, lat2, lon2) {
var R = 6371000;
var dLat = (lat2 - lat1) * Math.PI / 180;
var dLon = (lon2 - lon1) * Math.PI / 180;
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat1 * Math.PI/180) * Math.cos(lat2 * Math.PI/180) *
Math.sin(dLon/2) * Math.sin(dLon/2);
return 2 * R * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
}
})(request, response);
6. Photo upload to WO — use sys_attachment API with category tags.
7. Multi-resource scheduling (2 techs) — set wo.assigned_to_secondary field; map view shows both pins.
8. Recurring WO generator (preventive maintenance)
// Scheduled Job — daily 03:00
(function {
var pm = new GlideRecord('wm_pm_contract');
pm.addActiveQuery();
pm.query();
while (pm.next()) {
var nextDue = _nextDue(pm);
if (nextDue && _shouldCreate(nextDue)) {
var wo = new GlideRecord('wm_order');
wo.initialize();
wo.setValue('pm_contract', pm.getUniqueValue());
wo.setValue('asset', pm.getValue('asset'));
wo.setValue('short_description', 'PM: ' + pm.getValue('name'));
wo.setValue('scheduled_start', nextDue);
wo.setValue('type', 'preventive');
wo.insert();
}
}
})();
9. Asset health → predictive maintenance — IoT signal → triggers WO when threshold breached.
10. Tech timesheet auto-populate — sum wo.travel_time + work_time per day.
11-20. Quick recipes
| # | Pattern |
|---|---|
| 11 | Truck stock replenishment trigger when below par |
| 12 | Customer signature capture (canvas → attachment) |
| 13 | Travel time calculator via Google Maps Distance Matrix |
| 14 | Emergency reassignment workflow with new ETA SMS |
| 15 | SLA breach predictor via ML model |
| 16 | Skill gap report (skills needed vs available) |
| 17 | Bulk-reschedule due to weather (severe weather API) |
| 18 | WO → Invoice integration (NetSuite/QuickBooks) |
| 19 | Technician scorecard (FTF rate, CSAT, on-time %) |
| 20 | Schedule density heatmap (cooler = available) |
17.5 Mobile App configuration
| Feature | Setup |
|---|---|
| Offline mode | enable sync queue, max 7-day cache |
| Signature | |
| Photo | camera plugin, compress + upload |
| Barcode | QR code scan for asset lookup |
| Push notifications | FCM/APNS via Now Mobile |
| GPS | foreground + background tracking opt-in |
§18 — From-Scratch Implementation (Day 0 → Day 30)
| Phase | Days | Outcome |
|---|---|---|
| Foundation | 0–6 | Territory, skills, resources |
| Operations | 7–14 | WOs, Dispatch Workspace, mobile |
| Customer + Inventory | 15–20 | Portal, parts, scheduling automations |
| Analytics + AI | 21–25 | Dashboards, Now Assist |
| Pilot + Rollout | 26–30 | UAT, training, go-live |
18.1 Day-by-day
Day 0 — Service area map, territory plan, skill matrix, technician headcount, current tool sunset plan, mobile devices inventory
Day 1 — Activate plugins
- com.snc.work_management
- com.snc.dispatch_workspace
- com.snc.field_service.mobile
Day 2-3 — Territories + Skills + Resources
- Territories defined geographically (zip codes / polygons)
- Skill taxonomy (HVAC, Electrical, Plumbing, IT, etc.)
- Technicians + Sub-contractors
Day 4 — Asset model linking — WO must reference an asset (alm_asset or cmdb_ci).
Day 5 — Inventory locations
- Warehouses (master stock)
- Trucks (per-tech mobile stock)
- Bin → Item → Quantity hierarchy
Day 6-7 — WO types + states
- Types: Installation, Repair, Preventive Maintenance, Emergency, Inspection
- States: Pending → Scheduled → Dispatched → En route → On site → Complete → Closed
Day 8-9 — Dispatch Workspace + Map
- Configure layers (technicians, WOs, traffic)
- Skill filters
- Drag-drop assignment
Day 10 — Customer Portal booking widget
- Select service type
- Pick available slot
- Confirm appointment
Day 11 — Mobile app branding + offline config
- Logo, theme
- Sync schedule (every 5 min when online)
- Conflict resolution rules
Day 12 — Scheduling automation rules
- Auto-assign by skill+territory
- Auto-optimize daily route at 06:00
Day 13 — Skill-based routing engine — links to AWA from CSM module.
Day 14 — Parts ordering integration (NetSuite or SAP)
Day 15 — GPS + geofencing
- Tech app sends location every 60s when WO active
- Geofence triggers state transition
Day 16-17 — Preventive Maintenance schedules
- PM contracts per asset
- Frequency (calendar or usage-based)
- Auto-WO generation (script #8 above)
Day 18 — SLA on WO
- Response SLA: time-to-dispatch
- Resolution SLA: time-to-complete
Day 19 — Subcontractor management
- Limited portal access
- Mark WOs as outsourced
- Cost tracking
Day 20 — Customer notifications (SMS, email, push)
- Appointment booked confirmation
- 1-day reminder
- Tech en route ETA
- Completion + survey
Day 21-22 — Dashboards
- Utilization (% billable hours)
- First-Time-Fix-Rate
- CSAT
- Avg travel time
- Parts cost per WO
Day 23 — Salesforce / SAP / NetSuite integration
Day 24 — Now Assist for FSM
- Suggest similar WOs
- Recommend parts
- Predict job duration
Day 25 — ATF — 10 scenarios
Day 26 — Mobile pilot with 10 techs
Day 27 — Training
- Dispatcher (1 day)
- Field technicians (½ day in field)
- Customer support (booking portal)
Day 28 — UAT — full territory cycle
Day 29 — Pilot go-live in 1 territory
Day 30 — Full rollout + Hypercare
18.2 KPIs Month 1
| KPI | Target |
|---|---|
| First-Time-Fix-Rate | ≥ 80% |
| Avg travel time per WO | ≤ 25 min |
| Utilization (productive hours) | ≥ 70% |
| Customer CSAT | ≥ 4.5 / 5 |
| On-time arrival % | ≥ 90% |
| Mobile app crash rate | < 0.5% |
§19 — CIS-FSM Exam & Z-to-Hero Feature Labs
19.1 Exam bank
Primary: C:\SVCProject\EXAM_BANK_FSM_360.md (~120 Q, 95 KB).
19.2 Z-to-Hero Feature Labs (12 labs)
| Lab | Feature | Bank topic |
|---|---|---|
| L1 | Territory definition (ZIP-based) | Territories |
| L2 | Skill taxonomy + Technician skill matrix | Skills |
| L3 | Stockroom (warehouse + truck) + bin location | Inventory |
| L4 | Work Order types (Install, Repair, PM, Emergency) | WO types |
| L5 | Smart Dispatch script (skill+territory+capacity) | Dispatching |
| L6 | Dispatcher Workspace /now/fsm/dispatcher map | Dispatcher |
| L7 | Mobile WO execution on Now Mobile (start/complete) | Mobile |
| L8 | Geofence arrival detection | Geo |
| L9 | Parts reservation from truck stock | Parts |
| L10 | Customer signature capture + photo attach | Mobile features |
| L11 | Twilio SMS ETA notification | Customer comms |
| L12 | Preventive Maintenance recurring WO generator | PM |
19.3 Top 15 FSM must-know concepts
- Work Order wm_order table + state model
- Territory ↔ Group ↔ Technician mapping
- Skill ↔ Technician + WO required skills
- Dispatcher Workspace map view (drag-drop)
- Mobile Now app offline capability
- Stockroom hierarchy: warehouse → truck → bin
- Parts: model vs consumable vs spare
- PM (Preventive Maintenance) Contracts → auto-WO
- Customer booking via portal slot picker
- Skill-based + territory-based + capacity-based routing
- ETA calculation (Maps API)
- Travel time vs work time vs idle
- First-Time-Fix-Rate (FFR) metric
- Subcontractor management
- Asset → WO link (alm_asset or cmdb_ci)
19.4 5 sample CIS-FSM questions
Q1. Which table stores Work Orders?
A. task
B. wm_order
C. sn_customerservice_case
D. incidentAnswer: B (extends task)
Q2. Dispatcher Workspace allows reassignment by:
A. Edit field
B. Drag-drop pin on map + auto-validation of skill/territory
C. Background script
D. EmailAnswer: B
Q3. When does geofence trigger state change to “On Site”?
A. When tech taps “Arrive” manually
B. When GPS coordinates of mobile device < threshold from WO location
C. When dispatcher confirms
D. When customer scans QRAnswer: B
Q4. Preventive Maintenance generates WOs via:
A. Manual creation
B. Scheduled Job that scans PM contracts daily and creates WOs by frequency
C. Email trigger
D. Customer requestAnswer: B
Q5. Truck stock is modeled as:
A. alm_consumable with stockroom = truck stockroom
B. Custom table
C. cmdb_ci_truck
D. wm_inventoryAnswer: A
Use EXAM_BANK_FSM_360.md for remaining 115+ questions.
19.5 What “Hero” looks like for FSM
Implements full field operation: territories + skills, smart dispatch, mobile + offline + signature, parts + PM, geofence + ETA SMS, customer portal booking, sub-contractor mgmt. Passes CIS-FSM with ≥85%.
Hands-on Labs — مختبرات عملية
Step-by-step labs for PDI / Australia instance. Replace
{BASE}with your instance URL.
مختبرات خطوة بخطوة — استبدل{BASE}برابط نسختك.
-
Lab 1 — Create Work Order / إنشاء أمر عمل — Open {BASE}/wm_order.do?sys_id=-1; set location, priority, short description; submit.
-
Lab 2 — Add tasks & parts / مهام وقطع — Add Work Order Tasks; attach required parts from stockroom.
-
Lab 3 — Dispatcher scheduling / جدولة الموزّع — Open {BASE}/now/fsm-dispatch/home; drag WO to technician calendar.
-
Lab 4 — Qualification match / مطابقة المؤهلات — Create qualification; assign to agent; verify only qualified techs appear.
-
Lab 5 — Mobile execution / تنفيذ جوال — Complete task on Now Mobile / Agent app; capture signature and parts consumed.
-
Lab 6 — Inventory consumption / استهلاك مخزون — Verify stockroom quantity decreases after part used.
-
Lab 7 — CSM integration / تكامل CSM — Create WO from Case; close Case when WO completes.
Best Practices — أفضل الممارسات
| Area | Best practice (EN) | أفضل ممارسة (AR) |
|---|---|---|
| Scheduling | Use Dispatch Groups + qualifications — not manual email | Dispatch Groups + مؤهلات — لا بريد يدوي |
| Parts | Pre-stage parts in stockroom before dispatch | جهّز القطع في المستودع قبل الإرسال |
| Mobile | Train techs on offline-capable flows | درّب الفنيين على العمل دون اتصال |
| SLA | Separate travel vs work SLA if needed | SLA سفر vs عمل منفصل إن لزم |
Deployment Checklist — قائمة النشر
| # | Task (EN) | المهمة (AR) | Verify |
|---|---|---|---|
| 1 | Install FSM from Store | تثبيت FSM | Plugin active |
| 2 | Locations & territories | المواقع والمناطق | Geo coverage |
| 3 | Dispatch groups & qualifications | مجموعات الإرسال | Routing works |
| 4 | Stockrooms & parts catalog | مستودعات وقطع | Parts available |
| 5 | Dispatcher workspace config | إعداد الموزّع | Schedule visible |
| 6 | Mobile app profiles | ملفات الجوال | Tech completes WO |
| 7 | CSM/ITSM integration | تكامل CSM/ITSM | WO from case/incident |
| 8 | UAT field pilot | UAT ميداني | Sign-off |
Direct URLs Quick Reference
| Page | Navigation | URL |
|---|---|---|
| Work Orders | All > Field Service > Work Orders | {BASE}/wm_order_list.do |
| Work Order Tasks | All > Field Service > Tasks | {BASE}/wm_task_list.do |
| Dispatcher Workspace | Now > FSM Dispatch | {BASE}/now/fsm-dispatch/home |
| Agent Workspace | Now > FSM Agent | {BASE}/now/fsm-agent/home |
| Dispatch Groups | All > Field Service | {BASE}/dispatch_group_list.do |
| Qualifications | All > Field Service | {BASE}/wm_qualification_list.do |
| Stockrooms | All > Inventory | {BASE}/alm_stockroom_list.do |
| Locations | All > System > Locations | {BASE}/cmn_location_list.do |
| Guided Setup | All > Guided Setup | {BASE}/now/guided-setup |
§20 — Deep Implementation Labs, Scripts & Deploy Runbook
Appendix: Professional create → configure → deploy sequence for FSM on Australia instances.
Token: Replace{BASE}withhttps://YOUR_INSTANCE.service-now.com.
Related: implementation/FSM_IMPLEMENTATION_FROM_SCRATCH_TO_PRO.md
20.1 Three-Phase Implementation Model
| Phase | Days | Goal | Exit criteria |
|---|---|---|---|
| CREATE | 0–3 | Install FSM plugins, dispatch groups, Update Set | FSM menus + Guided Setup complete |
| CONFIGURE | 4–16 | Territories, skills, WO types, inventory, mobile | WO create→dispatch→complete in sub-prod |
| DEPLOY | 17–30 | ATF, mobile pilot, transport, hypercare | Prod field pilot sign-off |
20.2 CREATE Phase — Install & Foundation
Step C1 — Verify instance & activate FSM
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | Confirm build | All > System Diagnostics > Stats | {BASE}/stats.do |
| 2 | Open Plugins | Filter Navigator: Plugins | {BASE}/v_plugin_list.do |
| 3 | Search FSM | Filter: nameCONTAINSwork_management |
{BASE}/v_plugin_list.do?sysparm_query=nameCONTAINSwork_management |
| 4 | Activate Field Service Management | Open → Activate/Upgrade | — |
| 5 | Activate Dispatch Workspace | Search dispatch_workspace → Activate |
{BASE}/v_plugin_list.do?sysparm_query=nameCONTAINSdispatch |
| 6 | Optional: Dynamic Scheduling | Search dynamic_scheduling → Activate if licensed |
— |
Step C2 — Guided Setup FSM
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | Guided Setup | All > Guided Setup | {BASE}/now/guided-setup |
| 2 | Select Field Service Management | Get Started | {BASE}/now/guided-setup/fsm |
| 3 | Foundation | Locations, Territories, Skills → Mark Complete | — |
| 4 | Dispatch | Enable Dispatcher Workspace | — |
| 5 | Mobile | Confirm Mobile Agent plugin active | {BASE}/now/mobile-app-builder |
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 FSM_AU_Implement_2026 |
State In progress | {BASE}/sys_update_set_list.do |
| 3 | Dispatch group | All > Field Service > Dispatch Groups > New | {BASE}/dispatch_group.do?sys_id=-1 |
| 4 | Name FSM Sydney Dispatch |
Add dispatchers | {BASE}/dispatch_group_list.do |
| 5 | Test users | Create fsm.dispatcher1, fsm.tech1 |
{BASE}/sys_user_list.do |
| 6 | Assign roles | field_service_dispatcher, field_service_agent |
{BASE}/sys_user_role_list.do?sysparm_query=nameCONTAINSfield_service |
20.3 CONFIGURE Phase — Field Operations Build
Step F1 — Locations, territories, qualifications
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | Location | All > System > Locations > New | {BASE}/cmn_location.do?sys_id=-1 |
| 2 | Address: Sydney CBD lab site | Lat/Long if geocoding enabled | {BASE}/cmn_location_list.do |
| 3 | Territory | All > Field Service > Administration > Territories > New | {BASE}/wm_territory.do?sys_id=-1 |
| 4 | Name LAB-Sydney Metro, link location group |
— | — |
| 5 | Qualification | All > Field Service > Qualifications > New | {BASE}/wm_qualification.do?sys_id=-1 |
| 6 | Name HVAC Level 2 |
Assign to fsm.tech1 on user Skills related list |
{BASE}/sys_user_skill_list.do |
Step F2 — Work Order types & templates
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | WO list | All > Field Service > Work Orders | {BASE}/wm_order_list.do |
| 2 | Properties | All > Field Service > Administration > Properties | {BASE}/sys_properties_list.do?sysparm_query=nameSTARTSWITHwm. |
| 3 | Create WO | New | {BASE}/wm_order.do?sys_id=-1 |
| 4 | Type Break/Fix, Priority 3, Location=Sydney CBD | Submit | — |
| 5 | Add Task | Related List Work Order Tasks > New | {BASE}/wm_task.do?sys_id=-1 |
| 6 | Required skill HVAC Level 2, Estimated duration 90 min |
Submit | — |
Step F3 — Inventory & parts
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | Warehouse stockroom | All > Inventory > Stockrooms > New | {BASE}/alm_stockroom.do?sys_id=-1 |
| 2 | Name LAB-Sydney Warehouse, Type=Warehouse |
— | {BASE}/alm_stockroom_list.do |
| 3 | Truck stockroom | New: Name LAB-Van-Tech1, Assigned to fsm.tech1 |
— |
| 4 | Part model | All > Product Catalog > Hardware > Models | {BASE}/cmdb_model_list.do |
| 5 | Add consumable qty 10 to truck stock | Stockroom → Related Consumables | {BASE}/alm_consumable_list.do |
| 6 | Link part requirement on WO Task | Task form → Parts related list | — |
Step F4 — Dispatcher Workspace & scheduling
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | Open Dispatcher | Now Experience > FSM Dispatcher | {BASE}/now/fsm-dispatch/home |
| 2 | Map tab | Confirm technician pin for fsm.tech1 |
— |
| 3 | Schedule board | Drag unassigned WO task to tech calendar slot | — |
| 4 | Validate skill match | System warns if skill mismatch — confirm override or fix | — |
| 5 | Agent workspace | Now Experience > FSM Agent | {BASE}/now/fsm-agent/home |
| 6 | Schedules | All > Field Service > Schedules | {BASE}/cmn_schedule_list.do |
Step F5 — Mobile Agent configuration
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | Mobile App Builder | All > Now Mobile App Builder | {BASE}/now/mobile-app-builder |
| 2 | FSM layout | All > Mobile > Layout (Service Graph) | {BASE}/sys_sg_screen_list.do |
| 3 | Enable offline sync | Mobile properties → cache 7 days | — |
| 4 | Signature widget | Enable on Complete action | — |
| 5 | Test login | Now Mobile app → fsm.tech1 |
— |
20.4 DEPLOY Phase — Test, Transport, Go-Live
Step D1 — ATF & mobile pilot
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | ATF tests | All > Automated Test Framework > Tests | {BASE}/sys_atf_test_list.do |
| 2 | Test: WO create + assign | Server-side + workspace steps | — |
| 3 | Test: Mobile complete (if device farm available) | Mobile test framework | — |
| 4 | Offline test | Airplane mode → complete task → reconnect → sync | — |
Step D2 — Update Set transport
| # | Action | Exact navigation / clicks | Direct URL |
|---|---|---|---|
| 1 | Complete FSM_AU_Implement_2026 |
{BASE}/sys_update_set_list.do | — |
| 2 | Export / retrieve | {BASE}/sys_remote_update_set_list.do | — |
| 3 | Preview + Commit | Resolve wm_* collisions |
— |
| 4 | Post-deploy smoke | Create WO {BASE}/wm_order.do?sys_id=-1 | — |
Step D3 — Hypercare (first 72h)
| Hour | Check | URL |
|---|---|---|
| 0 | Dispatcher board loads | {BASE}/now/fsm-dispatch/home |
| 4 | Unassigned WO count | {BASE}/wm_order_list.do?sysparm_query=assigned_toISEMPTY |
| 8 | Mobile sync errors | {BASE}/syslog_list.do?sysparm_query=messageLIKEmobile |
| 24 | Parts stockouts | {BASE}/alm_consumable_list.do?sysparm_query=quantity%3C%3D0 |
| 72 | FTFR dashboard | {BASE}/pa_dashboards_list.do |
20.5 Full Component URL Catalog (FSM)
| 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 |
| Work Orders | All > Field Service > Work Orders | {BASE}/wm_order_list.do | {BASE}/wm_order.do?sys_id=-1 |
| Work Order Tasks | All > Field Service > Work Order Tasks | {BASE}/wm_task_list.do | {BASE}/wm_task.do?sys_id=-1 |
| Dispatcher Workspace | Now Experience > FSM Dispatcher | {BASE}/now/fsm-dispatch/home | — |
| FSM Agent Workspace | Now Experience > FSM Agent | {BASE}/now/fsm-agent/home | — |
| Dispatch Groups | All > Field Service > Dispatch Groups | {BASE}/dispatch_group_list.do | {BASE}/dispatch_group.do?sys_id=-1 |
| Qualifications | All > Field Service > Qualifications | {BASE}/wm_qualification_list.do | {BASE}/wm_qualification.do?sys_id=-1 |
| Territories | All > Field Service > Administration > Territories | {BASE}/wm_territory_list.do | — |
| Locations | All > System > Locations | {BASE}/cmn_location_list.do | {BASE}/cmn_location.do?sys_id=-1 |
| Schedules | All > Field Service > Schedules | {BASE}/cmn_schedule_list.do | — |
| Stockrooms | All > Inventory > Stockrooms | {BASE}/alm_stockroom_list.do | {BASE}/alm_stockroom.do?sys_id=-1 |
| Consumables | All > Inventory > Consumables | {BASE}/alm_consumable_list.do | — |
| Transfer Orders | All > Inventory > Transfer Orders | {BASE}/alm_transfer_order_list.do | — |
| Part Requirements | WO Task related list | — | — |
| FSM Properties | All > Field Service > Administration > Properties | {BASE}/sys_properties_list.do?sysparm_query=nameSTARTSWITHwm. | |
| Mobile Layouts | All > Mobile > Layout | {BASE}/sys_sg_screen_list.do | — |
| Mobile App Builder | All > Now Mobile App Builder | {BASE}/now/mobile-app-builder | — |
| Flow Designer | All > Process Automation > Flow Designer | {BASE}/now/flow-designer | — |
| PM Contracts | All > Field Service > Preventive Maintenance | {BASE}/wm_pm_contract_list.do | — |
| CSM Cases (handoff) | All > Customer Service > Cases | {BASE}/sn_customerservice_case_list.do | — |
| REST API (WO) | Table API | {BASE}/api/now/table/wm_order |
— |
| Guided Setup | All > Guided Setup | {BASE}/now/guided-setup | — |
| Impersonation | avatar > Impersonate | {BASE}/impersonate_user.do | — |
20.6 Deep Hands-On Labs (8 labs — exact clicks)
Prefix pilot records with
LAB-FSM-.
Lab 1 — FSM plugin activation & Guided Setup (CREATE)
Goal: FSM application menus and Dispatcher Workspace available.
- Admin login → {BASE}/stats.do → record instance name.
- Create Update Set
FSM_LAB01_CREATEat {BASE}/sys_update_set.do?sys_id=-1. - Open {BASE}/v_plugin_list.do?sysparm_query=nameCONTAINSwork_management → Activate Field Service Management.
- Open {BASE}/now/guided-setup → Field Service Management → complete Foundation + Dispatch sections.
- Filter Navigator: type Field Service → confirm Work Orders, Dispatch Groups, Qualifications.
- Open {BASE}/now/fsm-dispatch/home → board renders (may be empty).
- Verify: No plugin activation errors in {BASE}/syslog_list.do?sysparm_query=level%3Derror.
Lab 2 — Location + Territory + Qualification (CONFIGURE)
Goal: Geographic coverage and skill catalog for Sydney pilot.
- {BASE}/cmn_location.do?sys_id=-1: Name=
LAB-FSM-Sydney Site, Street=1 George St, City=Sydney, State=NSW → Submit. - {BASE}/wm_territory.do?sys_id=-1: Name=
LAB-Sydney Metro, include location → Submit. - {BASE}/wm_qualification.do?sys_id=-1: Name=
LAB-HVAC-L2→ Submit. - Open user
fsm.tech1{BASE}/sys_user_list.do → Related Skills → addLAB-HVAC-L2. - Assign territory to tech (user field or territory members related list per version).
- Verify: {BASE}/wm_qualification_list.do?sysparm_query=nameSTARTSWITHLAB shows 1 row.
Lab 3 — Work Order + Task with skill requirement (CONFIGURE)
Goal: WO in Draft/Requested with task requiring HVAC skill.
- {BASE}/wm_order.do?sys_id=-1: Short description=
LAB-FSM-WO-001 AC repair, Location=LAB-FSM-Sydney Site, Priority=3 → Submit. - Related Work Order Tasks → New {BASE}/wm_task.do?sys_id=-1.
- Task: Short description=
Replace compressor filter, Required qualification=LAB-HVAC-L2, Duration=60 min → Submit. - WO state → Qualified (or click Qualify UI action if present).
- Verify: Task shows required skill; WO appears in {BASE}/wm_order_list.do?sysparm_query=short_descriptionLIKElab-fsm.
Lab 4 — Dispatcher schedule assignment (CONFIGURE)
Goal: Dispatcher drags task to technician on calendar/map.
- Login as
fsm.dispatcher1→ {BASE}/now/fsm-dispatch/home. - Unassigned queue → locate
LAB-FSM-WO-001. - Map tab → confirm Sydney site pin.
- Drag WO/task to
fsm.tech1timeline slot (next available 2-hour window). - Confirm dialog if skill/territory validation passes.
- Open WO → Assigned to =
fsm.tech1, Scheduled start populated. - Verify: WO state moves toward Scheduled / Assigned.
Lab 5 — Mobile execution: travel → onsite → complete (CONFIGURE)
Goal: Technician completes task on mobile with state transitions.
- Login Now Mobile as
fsm.tech1(or impersonate + mobile browser). - My Work Orders → open
LAB-FSM-WO-001. - Tap Start Travel → state En route.
- Tap Start Work (or geofence auto-arrival if configured) → Work in Progress.
- Add work notes + photo attachment.
- Tap Complete → WO task Closed Complete.
- Verify: Desktop {BASE}/wm_task_list.do?sysparm_query=short_descriptionLIKEcompressor shows closed.
Lab 6 — Parts consumption from truck stock (CONFIGURE)
Goal: Part qty decrements when consumed on task.
- Ensure
LAB-Van-Tech1stockroom has consumable qty 5 (Lab 2 prerequisite or create now). - Open WO task → Parts related list → New part requirement: Model=filter, Qty=1, Source=
LAB-Van-Tech1. - On mobile or desktop: Consume part (UI action Consume / Issue).
- Open {BASE}/alm_consumable_list.do → filter stockroom=
LAB-Van-Tech1→ qty reduced by 1. - Verify: Transfer/consumption record in inventory history.
Lab 7 — CSM Case → FSM Work Order integration (INTEGRATION)
Goal: Case spawns WO; closing WO updates case.
- Prerequisite: CSM case exists (see CSM.md §20 Lab 3) or create at {BASE}/sn_customerservice_case.do?sys_id=-1.
- Open case → Create Work Order UI action.
- WO opens with Case field populated → Location from case account site → Submit.
- Dispatch and complete WO (Labs 4–5 abbreviated).
- Close WO Closed Complete.
- Return to case {BASE}/sn_customerservice_case_list.do → work note or state reflects completion.
- Verify: Case Related List Work Orders links to
LAB-FSM-WOrecord.
Lab 8 — Deploy Update Set + field pilot (DEPLOY)
Goal: Transport FSM config; 10-tech pilot in one territory.
- Complete Update Set
FSM_AU_Implement_2026. - Import to target {BASE}/sys_remote_update_set_list.do → Preview → Commit.
- Run ATF {BASE}/sys_atf_test_list.do.
- Pilot: 10 techs complete 5 WOs each over 3 days — track FTFR.
- Daily standup: review {BASE}/wm_order_list.do?sysparm_query=active%3Dtrue.
- Verify: Hypercare table §20.4 all green; sign-off from field ops manager.
20.7 Implementation Scripts & REST URLs
Script A — Smart dispatch by skill + territory
// Background: {BASE}/sys.scripts.do
var d = new FSMSmartDispatch(); // see §17.4 script #1
var woId = 'WO_SYS_ID';
d.assign(woId);
// Verify: {BASE}/wm_order_list.do?sys_id=WO_SYS_ID
Script B — Geofence REST endpoint (mobile POST)
// Scripted REST: POST {BASE}/api/x_fsm/geofence
// Body: { tech_id, lat, lng }
// On success within 100m → wm_order.state = on_site
// Test via {BASE}/$restapi.do
Script C — PM recurring WO generator
// Scheduled daily 03:00 — see §17.4 script #8
// Scans wm_pm_contract → inserts wm_order
// Monitor: {BASE}/wm_order_list.do?sysparm_query=type%3Dpreventive
Script D — ETA SMS on en_route (requires Twilio/SMS provider)
// Business Rule wm_order state → en_route
// Sends SMS with track link: {BASE}/sp?id=track&wo=WO_NUMBER
REST endpoint quick reference
| Operation | Method | URL |
|---|---|---|
| List work orders | GET | {BASE}/api/now/table/wm_order |
| Create work order | POST | {BASE}/api/now/table/wm_order |
| Update WO state | PATCH | {BASE}/api/now/table/wm_order/{sys_id} |
| List tasks | GET | {BASE}/api/now/table/wm_task |
| List stockrooms | GET | {BASE}/api/now/table/alm_stockroom |
| Geofence check | POST | {BASE}/api/x_fsm/geofence |
20.8 Configuration Decision Log (template)
| Setting | OOTB default | Approved value | Owner | Test case |
|---|---|---|---|---|
| Scheduling mode | Manual dispatch | Manual + future Dynamic | Dispatch Mgr | Lab 4 |
| Mobile offline cache | 3 days | 7 days | Mobile Lead | Lab 5 |
| Parts source | Warehouse only | Warehouse + truck | Inventory Mgr | Lab 6 |
| Geofence radius | Off | 100m | Ops Lead | Script B |
20.9 Sign-off checklist (CREATE → CONFIGURE → DEPLOY)
- [ ] CREATE: FSM + Dispatch plugins active · Guided Setup done · Dispatch group exists
- [ ] CONFIGURE: Territory/skills · WO E2E · Inventory · Mobile offline tested
- [ ] DEPLOY: Update Set committed · 10-tech pilot · CSM handoff tested · Hypercare roster
- [ ] Evidence: WO sys_ids · Mobile screenshots · Parts reconciliation report
Cross-link: CSM case origin — {BASE}/sn_customerservice_case_list.do · HR onsite requests — see HRSD.md if employee facilities tie-in.