Rappels automatisés pour les dates d'échéance des tickets GLPI

Avancé

Ceci est unTicket Management, Multimodal AIworkflow d'automatisation du domainecontenant 16 nœuds.Utilise principalement des nœuds comme If, Set, SplitOut, Aggregate, HttpRequest. Rappels automatisés des dates d'échéance des tickets GLPI via Microsoft Teams

Prérequis
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "instanceId": "9a6585d268bcb16af660ea2f3e8e0a8881962c92868e9c530eb83c6c580731c3"
  },
  "nodes": [
    {
      "id": "89d3c9e8-e4cc-4a28-80ab-7f7661491168",
      "name": "No Operation, do nothing3",
      "type": "n8n-nodes-base.noOp",
      "position": [
        320,
        400
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5c41293e-18e8-49eb-94bd-442d4c1fc373",
      "name": "Fin de session1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        96,
        32
      ],
      "parameters": {
        "url": "={{ $('Configuration Variables').item.json.glpi_url }}apirest.php/killSession",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Session-Token",
              "value": "={{ $('Get session token').item.json.session_token }}"
            },
            {
              "name": "App-Token",
              "value": "={{ $('Configuration Variables').item.json.app_token }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d15822e3-b973-457a-9706-779958ff44b1",
      "name": "No Operation, do nothing2",
      "type": "n8n-nodes-base.noOp",
      "position": [
        320,
        32
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d33d8698-b491-4d09-8ea0-ce2d9feb9e95",
      "name": "Variables de configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        -1248,
        560
      ],
      "parameters": {
        "fields": {
          "values": [
            {
              "name": "glpi_url",
              "stringValue": "https://your_glpi_server.com"
            },
            {
              "name": "app_token",
              "stringValue": "Your App Token is here"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "37f976d6-bc9e-4bb1-a1a8-c2cd80dc0f21",
      "name": "Envoyer un message au Technicien Support 1",
      "type": "n8n-nodes-base.microsoftTeams",
      "position": [
        96,
        416
      ],
      "webhookId": "faef30e7-48b9-48d8-ac4a-2930a533a552",
      "parameters": {
        "chatId": {
          "__rl": true,
          "mode": "list",
          "value": "19:9d87b5db-9cfe-4cc5-ab11-b131a06789ff_b3481c22-4337-4a46-aec4-0457bad71345@unq.gbl.spaces",
          "cachedResultUrl": "https://teams.microsoft.com/l/chat/19%3A9d87b5db-9cfe-4cc5-ab11-b131a06789ff_b3481c22-4337-4a46-aec4-0457bad71345%40unq.gbl.spaces/0?tenantId=84a66816-16ec-48c3-bcea-b62049cde20b",
          "cachedResultName": "Support Technician 1, Integropen Solutions (oneOnOne)"
        },
        "message": "=## Action Required: Ticket about to expire\n\n**Title:** {{ $json['1'] }}\n\n**ID:** {{ $json['2'] }}\n\n**Expires in:** {{ $json['18'] }}",
        "options": {
          "includeLinkToWorkflow": false
        },
        "resource": "chatMessage"
      },
      "credentials": {
        "microsoftTeamsOAuth2Api": {
          "id": "6gsSfvAqrtsa0H1n",
          "name": "Microsoft Teams account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "ad446521-d997-4563-84f6-30dbd5865622",
      "name": "Envoyer un message au Technicien Support 2",
      "type": "n8n-nodes-base.microsoftTeams",
      "position": [
        320,
        608
      ],
      "webhookId": "faef30e7-48b9-48d8-ac4a-2930a533a552",
      "parameters": {
        "chatId": {
          "__rl": true,
          "mode": "list",
          "value": "19:57fafa2a-5195-4d52-a389-ef2fb95d75f0_b3481c22-4337-4a46-aec4-0457bad71345@unq.gbl.spaces",
          "cachedResultUrl": "https://teams.microsoft.com/l/chat/19%3A57fafa2a-5195-4d52-a389-ef2fb95d75f0_b3481c22-4337-4a46-aec4-0457bad71345%40unq.gbl.spaces/0?tenantId=84a66816-16ec-48c3-bcea-b62049cde20b",
          "cachedResultName": "Support Technician 2, Integropen Solutions (oneOnOne)"
        },
        "message": "=## Action Required: Ticket about to expire\n\n**Title:** {{ $json['1'] }}\n\n**ID:** {{ $json['2'] }}\n\n**Expires in:** {{ $json['18'] }}",
        "options": {
          "includeLinkToWorkflow": false
        },
        "resource": "chatMessage"
      },
      "credentials": {
        "microsoftTeamsOAuth2Api": {
          "id": "6gsSfvAqrtsa0H1n",
          "name": "Microsoft Teams account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "27036a12-b3ee-4319-b65c-c98bb217897a",
      "name": "Agrégation",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -128,
        32
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "1f1bb9d4-d8f6-40d2-94ce-ffe727d8c0ef",
      "name": "Tickets sur le point d'expirer",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -800,
        560
      ],
      "parameters": {
        "url": "={{ $('Configuration Variables').item.json.glpi_url }}/apirest.php/search/Ticket",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "criteria[0][field]",
              "value": "18"
            },
            {
              "name": "criteria[0][searchtype]",
              "value": "lessthan"
            },
            {
              "name": "criteria[0][value]",
              "value": "={{new Date(Date.now() + (2 * 24 * 60 * 60 * 1000)).toISOString().split('T')[0]}}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Session-Token",
              "value": "={{ $json.session_token }}"
            },
            {
              "name": "App-Token",
              "value": "={{ $('Configuration Variables').item.json.app_token }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "861d3525-6e45-476d-a00b-fade07e0ded8",
      "name": "Obtenir le jeton de session",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1024,
        560
      ],
      "parameters": {
        "url": "={{ $json.glpi_url }}/apirest.php/initSession",
        "options": {},
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBasicAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "App-Token",
              "value": "={{ $json.app_token }}"
            }
          ]
        }
      },
      "credentials": {
        "httpBasicAuth": {
          "id": "7dcUgKfChVkBmVFm",
          "name": "GLPI"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "db9e10ea-b03f-4792-b5e7-5b4484a5351c",
      "name": "Technicien Support 1 ?",
      "type": "n8n-nodes-base.if",
      "position": [
        -128,
        320
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "2aae6f0c-eea2-4402-a2dc-d75f946134ee",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json[\"5\"] }}",
              "rightValue": "7"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "097be4cb-3a42-413e-99a1-281c5fbd284b",
      "name": "Technicien Support 2 ?",
      "type": "n8n-nodes-base.if",
      "position": [
        96,
        224
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "6c4e4a5b-7eda-48dd-8b44-cc66715d3399",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json[\"5\"] }}",
              "rightValue": "8"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "9143952e-58bd-40ac-aece-3d718e54674b",
      "name": "Déclencheur planifié",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1472,
        560
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "9a2a292d-4472-4ad2-8c92-ee7ff5989f03",
      "name": "Boucle sur les éléments",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -352,
        560
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "38834a1f-125c-4aa6-a4e0-63f8fce69d69",
      "name": "Diviser",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -576,
        560
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "data"
      },
      "typeVersion": 1
    },
    {
      "id": "0f8bf852-c719-49ed-8400-975c74cdd7cd",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2048,
        -32
      ],
      "parameters": {
        "color": 5,
        "width": 720,
        "height": 496,
        "content": "## Requirements:\n- GLPI REST API\n- User with application administrator privileges\n\n- Necessary Changes\n\nUpdate the GLPI server URL in the \"Configuration Variables\" node\n\nglpi_url: \"https://your_glpi_server.com\"\napp_token: \"Your App Token is here\"\n\nGLPI User ID Identification\nFor complete workflow configuration, it's necessary to identify the correct IDs of technical users for proper notification assignment.\nUser IDs can be obtained by accessing user management in GLPI and observing the ID directly in the browser URL when selecting a specific user.\nPath: Administration > Users > [Select User]\nWhen clicking on the desired user, you can see the user ID directly in the browser URL (e.g., id=7 for Support Technician 1, id=8 for Support Technician 2).\n\n- The technician id must be taken into account for IF nodes to redirect to the correct technician in teams."
      },
      "typeVersion": 1
    },
    {
      "id": "ee77c5c3-03b1-47e2-825f-734f386ae613",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1312,
        -32
      ],
      "parameters": {
        "color": 4,
        "width": 976,
        "height": 496,
        "content": "## Tickets about to expire node\n\nThe criteria[0][value] field sets the date range for identifying cases that are close to expiration, allowing a notification to be generated for the technician.\n\nExample:\ncriteria[0][value]: {{new Date(Date.now() + (5 * 24 * 60 * 60 * 1000)).toISOString().split('T')[0]}}\n\nTechnical explanation:\nThe {{new Date(Date.now() + (5 * 24 * 60 * 60 * 1000)).toISOString().split('T')[0]}} value does the following:\n\nDate.now() → Gets the current date and time in milliseconds.\n\n+ (5 * 24 * 60 * 60 * 1000) → Adds 5 days (5 days × 24 hours × 60 minutes × 60 seconds × 1000 ms).\n\nnew Date(...) → Creates a Date object with that future date.\n\n.toISOString() → Converts the date to ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ).\n\n.split('T')[0] → It only keeps the date portion (YYYY-MM-DD) without the time.\n\nIn short: the field automatically generates the date 5 days from today in YYYY-MM-DD format, which will be used as a criterion to filter cases that are about to expire."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "27036a12-b3ee-4319-b65c-c98bb217897a": {
      "main": [
        [
          {
            "node": "5c41293e-18e8-49eb-94bd-442d4c1fc373",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "38834a1f-125c-4aa6-a4e0-63f8fce69d69": {
      "main": [
        [
          {
            "node": "9a2a292d-4472-4ad2-8c92-ee7ff5989f03",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5c41293e-18e8-49eb-94bd-442d4c1fc373": {
      "main": [
        [
          {
            "node": "d15822e3-b973-457a-9706-779958ff44b1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9a2a292d-4472-4ad2-8c92-ee7ff5989f03": {
      "main": [
        [
          {
            "node": "27036a12-b3ee-4319-b65c-c98bb217897a",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "db9e10ea-b03f-4792-b5e7-5b4484a5351c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9143952e-58bd-40ac-aece-3d718e54674b": {
      "main": [
        [
          {
            "node": "d33d8698-b491-4d09-8ea0-ce2d9feb9e95",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "861d3525-6e45-476d-a00b-fade07e0ded8": {
      "main": [
        [
          {
            "node": "1f1bb9d4-d8f6-40d2-94ce-ffe727d8c0ef",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "db9e10ea-b03f-4792-b5e7-5b4484a5351c": {
      "main": [
        [
          {
            "node": "37f976d6-bc9e-4bb1-a1a8-c2cd80dc0f21",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "097be4cb-3a42-413e-99a1-281c5fbd284b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "097be4cb-3a42-413e-99a1-281c5fbd284b": {
      "main": [
        [
          {
            "node": "ad446521-d997-4563-84f6-30dbd5865622",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "89d3c9e8-e4cc-4a28-80ab-7f7661491168",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d33d8698-b491-4d09-8ea0-ce2d9feb9e95": {
      "main": [
        [
          {
            "node": "861d3525-6e45-476d-a00b-fade07e0ded8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1f1bb9d4-d8f6-40d2-94ce-ffe727d8c0ef": {
      "main": [
        [
          {
            "node": "38834a1f-125c-4aa6-a4e0-63f8fce69d69",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "89d3c9e8-e4cc-4a28-80ab-7f7661491168": {
      "main": [
        [
          {
            "node": "9a2a292d-4472-4ad2-8c92-ee7ff5989f03",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "37f976d6-bc9e-4bb1-a1a8-c2cd80dc0f21": {
      "main": [
        [
          {
            "node": "9a2a292d-4472-4ad2-8c92-ee7ff5989f03",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ad446521-d997-4563-84f6-30dbd5865622": {
      "main": [
        [
          {
            "node": "9a2a292d-4472-4ad2-8c92-ee7ff5989f03",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Gestion des tickets, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds16
Catégorie2
Types de nœuds10
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Luis Hernandez

Luis Hernandez

@integropen

I like solving problems and have a true passion for no-code automation. I'm thoughtful by nature and enjoy finding ways to optimize processes, always guided by my principles and values.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34