
🧩 ServiceNow – Guide Complet (Platform, ITSM, Dev & Ops)
Comprendre la plateforme “Now” : workflows, CMDB, ITSM, low-code, intégrations, gouvernance et déploiement.
Qu’est-ce que ServiceNow ?
Plateforme cloud “Now” : data model + workflow + UI + sécurité + intégrations. Pourquoi ce n’est pas “juste ITSM”.
O/S & Platforms Workflow EnterpriseInstallation / Instance Dev
Créer une instance développeur, accéder au portail, premières étapes, navigation, rôles.
Dev Instance Setup OnboardingArchitecture interne
Tables + Dictionary, ACL, Business Rules, Flow Designer, UI Builder, APIs, MID Server (pattern).
CMDB Data Model FlowITSM : Incident/Change/Problem
Process ITIL : tickets, SLA, assignment groups, knowledge, catalog, approvals, escalations.
ITSM ITIL SLACMDB & CIs
Configuration Items, relations, discovery (concept), impact analysis, qualité de données.
CMDB CIs RelationsDéveloppement (Low-code + Pro-code)
App Engine Studio / Studio, tables, forms, lists, scripts, client/server, REST.
Low-code JS App EngineScripts & règles
Business Rules, Script Includes, UI Policies, Client Scripts, GlideRecord (patterns + anti-patterns).
Glide Rules QualityIntégrations (REST/MID)
Outbound/inbound APIs, Import Sets, Transform Maps, IntegrationHub, MID Server (réseau privé).
REST Import MIDSécurité & Gouvernance
RBAC, ACL, domaines, audit, séparation dev/prod, contrôles, ownership, SoD.
ACL Roles AuditDéploiement & CI/CD
Update Sets, application packages, instances (dev/test/prod), release & rollback, “safe deploy”.
Update Set Release OpsÉcosystème & Marketplace
Developer portal, Store, Learning/Certifs, Community. Choisir les bons modules selon le besoin.
Developer Store LearningCheat-sheet
Raccourcis, “glossaire”, patterns de dev, checklists (perf, sécu, release).
Quick Glossary ChecklistDéfinition (sans blabla)
ServiceNow est une plateforme cloud d’entreprise orientée workflows : elle combine un modèle de données (tables), un moteur d’automatisation (flows/rules), une couche UI (portails, formulaires), une couche sécurité (roles/ACL) et des connecteurs (APIs, MID server).
Glossaire minimal
| Terme | Traduction | À retenir |
|---|---|---|
Instance | environnement ServiceNow | une URL dédiée (dev/test/prod) |
Record | ligne | un objet métier persistant |
Table | table | schéma + index + ACL |
Dictionary | métadonnées | définit champs, types, contraintes |
ACL | règle d’accès | contrôle lecture/écriture |
Flow | workflow low-code | automatisation lisible |
Business Rule | trigger serveur | logique côté serveur |
URLs officielles
- Docs : https://www.servicenow.com/docs/ :contentReference[oaicite:2]{index=2}
- Developer Portal : https://developer.servicenow.com/ :contentReference[oaicite:3]{index=3}
- Learning : https://learning.servicenow.com/ :contentReference[oaicite:4]{index=4}
- Store : https://store.servicenow.com/ :contentReference[oaicite:5]{index=5}
“Now Platform” : les couches
[ UI Layer ]
- Forms / Lists / Workspaces
- Service Portal / UI Builder
- Notifications (email, push)
[ Workflow Layer ]
- Flow Designer / Approvals
- Business Rules / Script Actions
- SLA / Escalations / Tasks
[ Data Layer ]
- Tables + Dictionary
- CMDB (CIs + relations)
- Attachments, audit, history
[ Security & Governance ]
- Users / Groups / Roles (RBAC)
- ACL (field/table)
- Domain separation (selon usage)
- Audit, policies
[ Integration Layer ]
- REST / SOAP APIs
- Import Sets + Transform Maps
- IntegrationHub (connecteurs)
- MID Server (réseau privé)
Modules : lecture rapide
| Bloc | Cas d’usage | Livrables |
|---|---|---|
| ITSM | Support IT | Incidents, Changes, SLA, KB |
| ITOM | Ops / visibilité | Discovery, events, service mapping |
| CSM | Support client | Cases, omnichannel, knowledge |
| HRSD | RH | Employee workflows, demandes |
| App Engine | Apps métiers | Tables + UI + flows + APIs |

static/img/servicenow/now_platform_layers.pngDiagramme global : “Record → Workflow → UI → Audit”
Utilisateur / Agent / API Client
│
▼ (UI: Form/List/Workspace | REST API)
[ Access Control ]
- Roles / Groups
- ACL Table + Field
│
▼
[ Record Update ]
- Insert / Update / Delete (table)
- Dictionary constraints
│
▼
[ Server Automation ]
- Business Rules (before/after)
- Script Includes (services)
- Flow Designer (approvals/tasks)
│
▼
[ Side Effects ]
- Notifications (email, push)
- SLA timers / escalations
- Audit history / metrics
│
▼
[ Reporting / Dashboards ]
- KPIs, trends, backlog, MTTR
Pourquoi ce diagramme est important
- Tu peux expliquer où se met la logique (flow vs rule vs script).
- Tu peux expliquer les risques : ACL trop permissives, rules lentes, “sur-automatisation”.
- Tu peux expliquer le debug : quel layer regarder en premier.
Erreurs fréquentes (interview)
- Mettre toute la logique dans 40 Business Rules non documentées.
- Oublier les ACL / tester “admin” uniquement.
- Créer des tables sans stratégie (naming, ownership, lifecycle, archivage).
- Déployer en prod avec un Update Set “fourre-tout”.
Positionnement “Web” (dans ton catalogue IDEO-Lab)
| Objet | ServiceNow se rapproche de… | Différence clé |
|---|---|---|
| Plateforme | PaaS / Enterprise Platform | Data + workflow + UI + sécurité intégrés |
| ITSM | Outil ITIL (ticketing) | Mais extensible en apps métiers |
| RAD | Low-code | Gouvernance + sécurité + data model très structurés |
| ERP | Enterprise workflows | Ce n’est pas un ERP “comptable”, c’est “process & ops” |
Créer une instance développeur
Pour apprendre / prototyper, tu passes par le portail développeur. Ensuite tu obtiens une instance (ton environnement) avec une URL dédiée.
Checklist “setup propre” (10 min)
- Créer compte / se connecter
- Demander une Personal Developer Instance
- Noter : URL instance, user admin, mot de passe, release
- Vérifier accès : Studio, App Engine, Tables, ACL
Docs : où chercher
- Documentation produit : https://www.servicenow.com/docs/ :contentReference[oaicite:7]{index=7}
- Guides Dev : via la doc (developer guides)
- Learning / parcours : https://learning.servicenow.com/ :contentReference[oaicite:8]{index=8}
- Apps & intégrations : https://store.servicenow.com/ :contentReference[oaicite:9]{index=9}

static/img/servicenow/dev_instance_portal.pngNavigation : les 6 écrans que tu dois maîtriser
| Écran | À quoi ça sert | À savoir en interview |
|---|---|---|
| Application Navigator | menus & modules | “où se trouve” Table, Flow, ACL… |
| Lists | vue tableau records | filters, views, exports |
| Forms | édition record | UI Policies vs Client Scripts |
| Workspaces | UI agent moderne | expérience “agent” + productivité |
| Flow Designer | automatisation | approvals + tasks + actions |
| Studio / App Engine | développement | packaging + update sets |
Mini-diagramme : UI côté client
Form (UI)
- UI Policy (low-code) : show/hide, mandatory, read-only
- Client Script (JS) : onChange/onLoad/onSubmit
│
▼
Server
- Business Rule : before/after, validations, side effects
- Flow Designer : orchestration, approvals, notifications
- ACL : droits d'accès effectifs
RBAC : Users / Groups / Roles
Le contrôle d’accès se fait via rôles (attribués directement ou via groupes) et via ACL (au niveau table / champ).
User → Groups → Roles → ACL (table/field)
Check “sécurité minimale” (projet)
- Créer un rôle
x_myapp.userpour l’app - Créer un rôle
x_myapp.admin(admin app) - Verrouiller tables custom via ACL (CRUD)
- Tester avec un user non-admin
ACL : table vs field
| Niveau | Exemple | Impact |
|---|---|---|
| Table ACL | Qui peut lire/écrire un record | garde-fou principal |
| Field ACL | Masquer “salary” sauf HR | protection fine |
| Scripted ACL | conditions dynamiques | puissant mais à documenter + perf |

static/img/servicenow/rbac_acl_flow.pngPremière mini-app (propre, “enterprise-ready”)
Objectif : faire une app “Request → Record → Flow → Notification”. Exemple : Demande d’accès (Access Request).
- Créer une table
x_ideo_access_request - Champs : requestor, system, justification, status, approver
- UI : form + list + views
- Flow : à la création → approval → status update → notif
Diagramme “mini-app”
User submits Form
│
▼
Record created (x_ideo_access_request)
│
▼
Flow Designer
- Create approval task
- Wait for decision
- Update status
- Notify requestor
Tables + Dictionary : le cœur
ServiceNow est “database-centric” : tout est table + record + métadonnées (Dictionary). Tu configures des champs, types, choix (choices), références (reference), règles, index…
| Type de champ | Exemple | Notes |
|---|---|---|
String | short_description | souvent indexé pour recherche |
Reference | caller_id → sys_user | clé étrangère logique |
Choice | state | préférer un modèle stable (enum) |
Date/DateTime | opened_at | attention timezone/reporting |
Boolean | active | souvent utilisé pour archivage soft |
Naming & gouvernance (conseil pro)
Prefix app : x_ideo_*
Tables:
- x_ideo_access_request
- x_ideo_asset
- x_ideo_vendor
Fields:
- u_ pour champs ajoutés sur tables out-of-box (si besoin)
- éviter 50 champs "misc_*"
Flow Designer vs Business Rules : qui fait quoi ?
| Outil | Quand l’utiliser | Risques |
|---|---|---|
| Flow Designer | orchestration lisible, approvals, intégrations | trop de flows = complexité de run |
| Business Rules | validations serveur, side effects atomiques | perf + debug si non documentées |
| Script Includes | services réutilisables (helper/API) | mauvais design → spaghetti |
| Scheduled Jobs | batch, maintenance, sync | charges, fenêtres de run |
Anti-pattern “monstre”
20 Business Rules déclenchées sur incident (before+after), plus 5 flows qui modifient le même champ. Résultat : comportements imprévisibles.
Diagramme “ordre de traitement” (simplifié)
Client submits record
│
▼
Server "Before" Business Rules
│
▼
Database write (insert/update)
│
▼
Server "After" Business Rules
│
▼
Flows / Notifications / SLA recalculations

static/img/servicenow/automation_order.pngUI : Lists, Forms, Workspaces
- List : filtre, group by, export, vues
- Form : sections, related lists, policies, scripts
- Workspace : UI agent moderne (productivité)
- Portal : expérience self-service (catalog)
Tableau : outils UI
| Brique | But | Exemple |
|---|---|---|
| UI Policy | UX declarative | mandatory si “type = urgent” |
| Client Script | JS côté client | auto-fill, validation simple |
| UI Action | bouton/action | “Resolve” / “Escalate” |
| Notifications | feedback | mail sur assignation |
UX “safe” : ce qu’un senior fait
- UX côté client → confort, pas sécurité.
- Validation côté serveur → règle métier + audit.
- Tester avec rôle user réel (pas admin).
- Éviter les scripts lourds “onChange” (latence).
MID Server : le pont vers le réseau privé
Quand l’instance cloud doit parler à des systèmes derrière firewall (AD, DB on-prem, outils internes), on déploie un MID Server sur un serveur interne.
ServiceNow Cloud Instance
│ (HTTPS outbound)
▼
MID Server (On-Prem)
│ (LDAP/JDBC/SSH/SNMP/HTTP...)
▼
Internal Systems (AD, DB, CM tools, APIs)
Pourquoi c’est critique
- Sécurité : pas d’ouverture inbound vers le SI
- Intégrations : discovery, imports, orchestrations
- Ops : monitoring / events / CMDB mapping

static/img/servicenow/mid_server_network.pngIncident / Request / Change : les différences
| Objet | But | Exemple |
|---|---|---|
| Incident | restaurer un service | VPN down, service indispo |
| Request | demande standard | accès, matériel, logiciel |
| Change | modifier l’IT en contrôle | déploiement prod, patch |
| Problem | cause racine | incidents récurrents |
Diagramme (ITSM simple)
User submits ticket
│
▼
Triage (category/priority)
│
▼
Assignment Group → Agent
│
├─▶ Work Notes / Activities
├─▶ Knowledge suggestions
└─▶ Resolution + Closure

static/img/servicenow/itsm_flow_incident.pngChamps ITSM typiques (ex: Incident)
| Champ | Pourquoi | Impact (workflow / reporting) |
|---|---|---|
caller_id | demandeur | segmentation par population |
category | classification | routing & triage |
priority | urgence + impact | SLA & escalations |
assignment_group | équipe | workload / performance équipes |
state | statut | backlog / cycle time |
SLA : idée générale
Un SLA est un “contrat de temps” : réponse / résolution. Il s’arrête / se met en pause selon état, horaires, exceptions.
SLA = timer + conditions (start/stop/pause)
- start: state = New
- pause: waiting for user
- stop : state = Resolved
Escalations : l’automatisation utile
- Notifier avant violation (ex: 80%)
- Reassign si groupe saturé
- Créer une tâche “major incident”
KPIs ITSM typiques (tableau)
| KPI | Définition | À optimiser |
|---|---|---|
| MTTR | Mean Time To Resolve | triage + routing + knowledge |
| SLA compliance | % SLA respectés | priorisation & capacité |
| Backlog | tickets ouverts | WIP limits + staffing |
| First Contact Resolution | résolution au 1er contact | KB + scripts + empowerment |
CMDB : à quoi ça sert vraiment
- Référentiel des Configuration Items (serveurs, apps, services, DB…)
- Support de l’impact analysis (un incident sur X impacte quels services ?)
- Base pour ITOM, change management, risk & compliance
Diagramme CI (exemple)
[Business Service]
│ depends on
▼
[Application]
│ runs on
▼
[Server / VM]
│ connects to
▼
[Database]

static/img/servicenow/cmdb_ci_graph.pngRelations : la valeur est dans le graphe
| Relation | Exemple | Usage |
|---|---|---|
| depends on | service → app | impact & résilience |
| runs on | app → server | capacity planning |
| connects to | app → DB | incident correlation |
Qualité CMDB : 5 règles simples
- Définir un owner par classe de CI
- Définir un champ unique logique (ex: hostname + env)
- Mettre des contrôles : mandatory + validations serveur
- Archiver / désactiver au bon moment (lifecycle)
- Mettre un dashboard “qualité” (taux de champs manquants, doublons)
KPI Qualité CMDB (ex)
- % CI sans owner
- % CI sans relation critique
- doublons (hostname)
- CI non mis à jour depuis 90j
Impact analysis : “si je touche X, qui casse ?”
Change Request
│ affects
▼
CI / Service
│ has dependencies
▼
Applications / Infra / DB
│ mapped to
▼
Business services & users
Workflow (propre) : de l’idée au prod
1) Design: data model + roles + UX + reporting
2) Dev instance:
- create table(s)
- build forms/lists
- implement flows/rules
- create ACL
3) Test instance:
- test roles (non-admin)
- test integrations
- test performance (scripts)
4) Prod:
- release package/update set
- monitoring + rollback plan
Livrables attendus (entreprise)
- Spécification data model (tables, champs, relations)
- Matrice rôles/ACL
- Workflow diagram (flow designer + règles)
- Plan de release (version + rollback)
- KPIs de succès (avant/après)
Construire une app : pattern minimal
| Étape | Objet | Résultat |
|---|---|---|
| 1 | Table custom | records + schema |
| 2 | Form & List | UI opérable |
| 3 | ACL + roles | sécurité réelle |
| 4 | Flow + notif | automatisation |
| 5 | Reporting | pilotage |
Diagramme “app package”
Application (scope x_ideo_myapp)
- Tables
- UI (forms, lists, views)
- Flows / Rules
- ACL / Roles
- Script Includes
- REST APIs

static/img/servicenow/app_scope_package.pngREST (exemple conceptuel)
ServiceNow expose des APIs REST pour lire/écrire des records et pour intégrer des systèmes externes. Ci-dessous : exemple “créer un incident”.
POST /api/now/table/incident
Content-Type: application/json
Authorization: Bearer <token>
{
"short_description": "VPN down for user",
"caller_id": "sys_id_user",
"category": "network",
"priority": "2"
}
Réponse attendue
{
"result": {
"sys_id": "...",
"number": "INC0012345",
"state": "1",
"opened_at": "..."
}
}
Qualité & performance : check “senior”
| Zone | Bon réflexe | Pourquoi |
|---|---|---|
| Scripts | limiter loops + requêtes; factoriser Script Includes | perf + lisibilité |
| Automation | éviter règles contradictoires; documenter triggers | prédictibilité |
| Sécurité | ACL d’abord; test non-admin | protection réelle |
| Release | petits update sets; rollback plan | déploiements sûrs |
Carte des scripts (où mettre la logique ?)
Client-side (browser)
- Client Scripts (onLoad / onChange / onSubmit)
- UI Policies (declarative)
- UI Actions (buttons)
Server-side (instance)
- Business Rules (before/after)
- Script Includes (services, utils, APIs)
- Script Actions (events)
- Scheduled Jobs (batch)
Patterns “propres”
- Centraliser la logique métier dans un Script Include (API interne)
- Garder les Business Rules courtes (orchestration) + appel services
- Nommer & documenter : “WHY” + conditions
- Limiter les actions côté client aux améliorations UX
// pseudo-pattern (idée)
MyAppService.doSomething(current, previous);
// Business Rule : déclenchement + guard clauses
// Service : logique réutilisable et testable
Anti-patterns qui font mal en prod
- Scripts client qui “enforcent” la sécurité (facile à bypass)
- Business Rules multiples qui modifient le même champ sans coordination
- GlideRecord dans une boucle (N+1 logique) sans stratégie
- Pas de logs, pas d’audit, pas de rollback plan
Debug : méthode rapide
- Reproduire avec user non-admin
- Vérifier ACL (table+field)
- Identifier automation active (rules/flows)
- Ajouter logs temporaires (puis retirer)
- Vérifier que le “record update” est unique (pas de ping-pong)
Symptôme: champ "state" change tout seul
→ Chercher: Business Rules + Flows qui touchent state
→ Vérifier: conditions (when), order, guard clauses
4 grands patterns
| Pattern | Exemple | Points d’attention |
|---|---|---|
| Inbound REST | un système crée un incident | auth, rate limits, validation |
| Outbound REST | SN pousse vers Jira | retries, idempotence |
| Import batch | CSV/ETL vers tables | mapping, qualité, doublons |
| On-prem bridge | MID vers AD/DB | réseau, secrets, governance |
Import Sets : principe
Source (CSV/API/DB)
│
▼
Staging Table (Import Set)
│
▼
Transform Map (mapping + scripts)
│
▼
Target Table(s)
Bonnes pratiques
- Staging “append-only” (audit)
- Déduplication explicite (clé logique)
- Transform scripts versionnés
- Dashboard qualité (erreurs mapping)
IntegrationHub : connecteurs & actions
Pour éviter de recoder chaque intégration, tu utilises des “spokes” (connecteurs) et des actions. Parfait quand tu veux industrialiser.
MID Server : rappel pattern
Cloud SN (no inbound)
│ outbound only
▼
MID inside network
│ local protocols
▼
AD / DB / Tools / APIs internes
RBAC & ACL : matrice type
| Objet | Role user | Role admin | Remarque |
|---|---|---|---|
| x_ideo_access_request | R | CRUD | field ACL sur données sensibles |
| incident | R (selon org) | CRUD (ITIL) | attention “admin everywhere” |
Audit : ce que tu veux voir en prod
- Qui a modifié quel record, quand (history)
- Quels flows/rules ont déclenché
- Traçabilité des déploiements (update sets)
- Journalisation des intégrations (requests/réponses)
Audit minimal (checklist)
- logs technique (erreurs)
- logs intégration (API)
- traçabilité changes (release)
- tableaux "incidents de prod" (post-mortem)
Environnements : pourquoi c’est non-négociable
DEV → TEST/UAT → PROD
- build quickly
- validate roles + perf
- deploy safely + rollback
Contrôles “enterprise” (exemples)
| Contrôle | But | Exemple |
|---|---|---|
| Separation of Duties (SoD) | éviter conflits | dev ≠ deployer prod |
| Change approval | garder maîtrise | release approuvée |
| Security review | durcir | ACL + roles + secrets |
Update Sets : l’unité de déploiement (base)
Dev instance
- Create Update Set "x_ideo_myapp_v1.2"
- Capture changes (tables, flows, scripts, ACL)
- Test locally
Export / Move
Test/UAT instance
- Import Update Set
- Preview (collisions)
- Commit
Prod instance
- Import + Preview + Commit
Release plan (format simple)
| Étape | Action | Preuve |
|---|---|---|
| 1 | Freeze dev | tag/version |
| 2 | UAT tests | test report + sign-off |
| 3 | Prod deploy | change record + logs |
| 4 | Post deploy checks | KPIs + smoke tests |
Rollback : ne jamais improviser
Rollback strategies
- revert update set (si applicable)
- restore previous version (app package)
- feature flags / disable flows
- emergency change + hotfix
Checklist prod (10 points)
- ACL validées avec user non-admin
- Flows testés (approvals, notifications)
- Performances OK (pas de boucles lourdes)
- Logs & audit actifs
- Update set preview (collisions)
- Plan rollback écrit
- KPIs de monitoring identifiés
- Change record créé
- Fenêtre de déploiement validée
- Smoke tests post-deploy
Les 4 sites indispensables
| Ressource | À quoi ça sert | Lien |
|---|---|---|
| Documentation | référence produit + guides | https://www.servicenow.com/docs/ :contentReference[oaicite:10]{index=10} |
| Developer Portal | instances dev + ressources | https://developer.servicenow.com/ :contentReference[oaicite:11]{index=11} |
| Learning | cours + certifs | https://learning.servicenow.com/ :contentReference[oaicite:12]{index=12} |
| Store | apps & intégrations | https://store.servicenow.com/ :contentReference[oaicite:13]{index=13} |
Parcours “rapide” (si tu veux être opérationnel)
- Créer instance + maîtriser UI (lists/forms)
- Créer une app custom (table + form + flow)
- Mettre ACL + tester non-admin
- Faire une intégration REST simple
- Faire un “release” (update set) dev → test
- Construire un dashboard KPI

static/img/servicenow/ecosystem_map.pngGlossaire ultra court
Instance = environnement (dev/test/prod)
Record = ligne
Table = objet métier
Dictionary = schéma/metadata
ACL = contrôle d'accès
Flow = workflow low-code
BusinessRule = trigger serveur
MID Server = pont on-prem
Update Set = package déploiement
Patterns “pro”
- Small update sets, versionnés
- ACL d’abord, tests non-admin
- Services (Script Includes) réutilisables
- Flows lisibles (orchestration)
- Data model gouverné (owner, lifecycle)
Checklist “avant prod” (résumé)
[Security]
- roles + ACL table/field OK
- no admin-only testing
[Performance]
- no heavy loops / conflicting rules
- flows validated
[Release]
- preview update set
- rollback plan + kill switch
- smoke tests + KPIs
Ressources
- Docs : https://www.servicenow.com/docs/ :contentReference[oaicite:14]{index=14}
- Developer : https://developer.servicenow.com/ :contentReference[oaicite:15]{index=15}
- Learning : https://learning.servicenow.com/ :contentReference[oaicite:16]{index=16}
- Store : https://store.servicenow.com/ :contentReference[oaicite:17]{index=17}
