Si vous souhaitez ajouter ServiceNow ITSM pour collecter les incidents dans Axify, voici un guide pratique. Ajouter ServiceNow comme fournisseur d'incidents débloquera les incidents pour les métriques DORA.
- Allez dans Axify.
- Allez dans les paramètres d'un projet
- Sélectionnez l'onglet Intégrations, et descendez dans la section des incidents
- Choisir Ajouter une intégration et sélectionner Autres fournisseurs.
- Vous pouvez spécifier un nom (par exemple: « Incidents critiques ServiceNow »), puis cliquer sur « Générer un webhook ». Vous obtiendrez une URL et un jeton secret nécessaires à ServiceNow.
- Aller dans votre compte Service Now studio (i.e. https://my-instance.service-now.com/now/servicenow-studio)
- Créer un message REST.
- Mettre un nom significatif (ex: Axify incidents critiques)
- Pour "endpoint", mettre l'URL fournie par Axify de l'étape précédente
- Dans le message, créez une méthode HTTP avec « POST » comme méthode HTTP et aucun "endpoint" (voir capture d'écran ci-dessus).
- Créez une règle d'affaires asynchrone déclenchée lors de l'insertion d'un incident. Cette règle sera responsable d'envoyer les nouveaux incidents à Axify.
- Dans la section Avancée, vous allez devoir ajouter ce script.
- NOTE IMPORTANTE: utilisez le jeton d'accès qu'Axify a fournie dans l'étape précédente!
-
(function executeRule(current, previous) {
gs.info("Sending incident to Axify");
var createdOn = current.getValue('sys_created_on');
var glideCreatedOn = new GlideDateTime(createdOn);
var dateCreatedOn = new Date(glideCreatedOn.getNumericValue());
var isoCreatedOn = dateCreatedOn.toISOString();
var body = JSON.stringify({
"status": "TRIGGERED",
"occurred_at": isoCreatedOn,
"title": current.getValue("short_description"),
"description": current.getValue("description"),
"id": current.getValue("sys_id")
});
// Calculate the HMAC-SHA256 code of the request body, which will be used to authenticate the request
var mac = new CertificateEncryption();
var key = gs.base64Encode("<INSERT WEBHOOK SECRET TOKEN>");
var signature = mac.generateMac(key, "HmacSHA256", body);
var message = new sn_ws.RESTMessageV2("Axify incidents", "Post incident");
message.setRequestHeader("X-Axify-Deployment-Event-Signature", "sha256+base64=" + signature);
message.setRequestBody(body);
var response = message.execute();
gs.info("Sent incident to Axify.");
})(current, previous); - Vous recevrez désormais les incidents dès leur création. Nous devrons recevoir un événement dès leur mise à jour ou leur résolution.
- Créez une deuxième règle d'affaires asynchrone déclenchée lors de la modification d'un incident. Cette règle sera responsable d'envoyer les incidents résolus à Axify.
- Dans la section Avancée, vous allez devoir ajouter ce script:
- NOTE IMPORTANTE: utilisez le jeton d'accès qu'Axify a fournie dans l'étape précédente!
-
(function executeRule(current, previous) {
gs.info("Sending incident to Axify");
if (current.getValue("state") != 6) {
// Incident is not resolved, will not send to Axify
return;
}
// Calculate the HMAC-SHA256 code of the request body, which will be used to authenticate the request
var mac = new CertificateEncryption();
var key = gs.base64Encode("<INSERT WEBHOOK SECRET TOKEN>");
var signature = mac.generateMac(key, "HmacSHA256", body);
var message = new sn_ws.RESTMessageV2("Axify incidents", "Post incident");
message.setRequestHeader("X-Axify-Deployment-Event-Signature", "sha256+base64=" + signature);
message.setRequestBody(body);
var response = message.execute();
gs.info("Sent incident to Axify.");
})(current, previous);
- Sauvegarder vos scripts et ça devrait maintenant fonctionner!