AutomationFlowsWeb Scraping › User-friendly Technical Support Portal for Glpi Ticket Management

User-friendly Technical Support Portal for Glpi Ticket Management

ByLuis Hernandez @integropen on n8n.io

Transform your GLPI system's user experience with a modern, optimized web interface that simplifies technical support ticket creation. How it works

Event trigger★★★★☆ complexity25 nodesForm TriggerFormHTTP Request
Web Scraping Trigger: Event Nodes: 25 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #7392 — we link there as the canonical source.

This workflow follows the Form → Form Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "a9dfacc2-aea6-44e3-9ea7-a6f52a1ca8e4",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        2896,
        -360
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "05776e39-221a-4027-bce5-1daa7ebfb88a",
      "name": "Technical Support Portal",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -240,
        -360
      ],
      "parameters": {
        "options": {},
        "formTitle": "Technical Support Portal",
        "formFields": {
          "values": [
            {
              "fieldType": "dropdown",
              "fieldLabel": "Select the type of request to make:",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Request"
                  },
                  {
                    "option": "Incident"
                  }
                ]
              },
              "requiredField": true
            }
          ]
        },
        "formDescription": "Request \ud83d\udcdd: A formal request for a change, enhancement, or new service that does not involve a failure. Example: requesting a new email account or installing software.\n\nIncident \ud83d\udea8: An unplanned event that interrupts or degrades a previously functioning service. Example: The email system is no longer sending or receiving messages."
      },
      "typeVersion": 2.2
    },
    {
      "id": "a229f8b6-e5b3-4bcf-9006-b1e1ce2dbd82",
      "name": "Request Form",
      "type": "n8n-nodes-base.form",
      "position": [
        880,
        -504
      ],
      "parameters": {
        "options": {
          "formTitle": "Create Request",
          "formDescription": "Create your request here. Please provide detailed information and select the most appropriate category for your request."
        },
        "formFields": {
          "values": [
            {
              "fieldLabel": "Title",
              "placeholder": "Ej: Software license",
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Description",
              "placeholder": "=Hello,\nI require a Microsoft 365 Standard license for my work activities since my current license lacks desktop application functionality.",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": " Category",
              "multiselect": true,
              "fieldOptions": {
                "values": [
                  {
                    "option": " Licenses"
                  },
                  {
                    "option": "Computer"
                  },
                  {
                    "option": "Peripherals"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Priority",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Low"
                  },
                  {
                    "option": "Medium"
                  },
                  {
                    "option": "High"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "file",
              "fieldLabel": "Attach authorization if applicable"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8e89d6c0-8ae7-48c2-b11d-49fcebc70b44",
      "name": "Contact information",
      "type": "n8n-nodes-base.form",
      "position": [
        208,
        -360
      ],
      "parameters": {
        "options": {
          "formTitle": "Contact information",
          "formDescription": "Provide your contact details so our support team can assist you and keep you updated on your ticket."
        },
        "formFields": {
          "values": [
            {
              "fieldLabel": "Name",
              "placeholder": "Juan Gomez",
              "requiredField": true
            },
            {
              "fieldType": "number",
              "fieldLabel": "Phone",
              "placeholder": "Ej: 3123456789",
              "requiredField": true
            },
            {
              "fieldType": "email",
              "fieldLabel": "Email",
              "placeholder": "Ej: user@example.com",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e9293ad1-4cb8-40ee-b3b3-15164cca969d",
      "name": "1. Request or incident",
      "type": "n8n-nodes-base.switch",
      "position": [
        656,
        -360
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Request",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "4166d121-3fec-46db-829f-5fb3963a1648",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('Technical Support Portal').item.json['Select the type of request to make:'] }}",
                    "rightValue": "Request"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Incident",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "e5a1859a-e1d2-4992-b8ca-47ca9e72e11d",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('Technical Support Portal').item.json['Select the type of request to make:'] }}",
                    "rightValue": "Incident"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "142152e8-e7fe-4e99-b237-223d26893518",
      "name": "Incident Category ID",
      "type": "n8n-nodes-base.code",
      "position": [
        1552,
        -216
      ],
      "parameters": {
        "jsCode": "const category = $('Incident Form').first().json.Category[0];\nconst urgencyText = $('Incident Form').first().json.Urgency; \n\n// Mapear urgencia a n\u00famero\nlet urgencyId;\nswitch(urgencyText) {\n    case \"Low\":\n        urgencyId = 2;\n        break;\n    case \"Medium\":\n        urgencyId = 3;\n        break;\n    case \"High\":\n        urgencyId = 4;\n        break;\n    default:\n        urgencyId = null;\n}\n\n// Mapear categor\u00eda\nswitch(category) {\n    case \"Computer does not turn on\":\n        return [{ id: 9, category: category, \nurgency: urgencyId }];\n    case \"Server down\":\n        return [{ id: 10, category: category, \nurgency: urgencyId }];\n    case \"Massive website failure\":\n        return [{ id: 11, category: category, \nurgency: urgencyId }];\n    default:\n        return [{ id: null, category: category, urgency: urgencyId }];\n}"
      },
      "typeVersion": 2
    },
    {
      "id": "b299f44f-1ffc-4dfa-90a4-7131f49e7aa6",
      "name": "Create Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1776,
        -504
      ],
      "parameters": {
        "url": "={{ $('Configuration Variables').item.json.glpi_url }}/apirest.php/Ticket/ ",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"input\": {\n    \"name\": \"{{ $('Request Form').item.json.Title }}\",\n    \"content\": \"{{ $('Request Form').item.json.Description }}\\n\\nCordially,\\n\\n{{ $('Contact information').item.json.Name }}\\n{{ $('Contact information').item.json.Phone }}\\n{{ $('Contact information').item.json.Email }}\",\n    \"type\": 2,\n    \"status\": 1,\n    \"priority\": {{ $json.priority }},\n    \"itilcategories_id\": {{ $json.id }},\n    \"users_id_recipient\": 0,\n    \"entities_id\": 0\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "App-Token",
              "value": "={{ $('Configuration Variables').item.json.app_token }}"
            },
            {
              "name": "Session-Token",
              "value": "={{ $('Get session token').item.json.session_token }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ee3f51c5-90b5-46e1-87eb-6afa589b2cf2",
      "name": "Sign Out GLPI",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2672,
        -360
      ],
      "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 }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "8638da3e-cce0-498e-9f0b-f6b7679b73a1",
      "name": "Configuration Variables",
      "type": "n8n-nodes-base.set",
      "position": [
        -16,
        -360
      ],
      "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": "2a314de9-38c2-4c87-a48a-c3f4d269e57c",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        2000,
        -216
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "54120ed4-fdf0-4c1d-b4de-52ed510ddc92",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $('2. Upload File').isExecuted }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "fcb1dcf4-52f4-4876-aec6-71a2b6c988a1",
      "name": "Request Category ID",
      "type": "n8n-nodes-base.code",
      "position": [
        1552,
        -504
      ],
      "parameters": {
        "jsCode": "const category = $('Request Form').first().json[' Category'][0];\nconst priorityText = $('Request Form').first().json.Priority; // o el campo que uses\n\n// Mapear prioridad a n\u00famero\nlet priorityId;\nswitch(priorityText) {\n    case \"Low\":\n        priorityId = 2;\n        break;\n    case \"Medium\":\n        priorityId = 3;\n        break;\n    case \"High\":\n        priorityId = 4;\n        break;\n    default:\n        priorityId = null;\n}\n\n// Mapear categor\u00eda\nswitch(category) {\n    case \"Computer\":\n        return [{ id: 6, category: category, \npriority: priorityId }];\n    case \"Licenses\":\n        return [{ id: 7, categoria: category, priority: priorityId }];\n    case \"Peripherals\":\n        return [{ id: 8, categoria: category, priority: priorityId }];\n    default:\n        return [{ id: null, categoria: category, priority: priorityId }];\n}"
      },
      "typeVersion": 2
    },
    {
      "id": "1ac16c05-9b79-4c9f-a836-ed5616007a57",
      "name": "If1",
      "type": "n8n-nodes-base.if",
      "position": [
        2000,
        -504
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "54120ed4-fdf0-4c1d-b4de-52ed510ddc92",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $('1. Upload File').isExecuted }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "5ee36cd3-0342-4df4-aa22-4595cdfd1ce3",
      "name": "Create Incident",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1776,
        -216
      ],
      "parameters": {
        "url": "={{ $('Configuration Variables').item.json.glpi_url }}/apirest.php/Ticket/",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"input\": {\n    \"name\": \"{{ $('Incident Form').item.json.Title }}\",\n    \"content\": \"{{ $('Incident Form').item.json.Description }}\\n\\n\\nCordially,\\n\\n{{ $('Contact information').item.json.Name }}\\n{{ $('Contact information').item.json.Phone }}\\n{{ $('Contact information').item.json.Email }}\",\n    \"type\": 1,\n    \"status\": 1,\n    \"urgency\": {{ $json.urgency }},\n    \"itilcategories_id\": {{ $json.id }},\n    \"users_id_recipient\": 0,\n    \"entities_id\": 0\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "App-Token",
              "value": "={{ $('Configuration Variables').item.json.app_token }}"
            },
            {
              "name": "Session-Token",
              "value": "={{ $('Get session token').item.json.session_token }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "fc31b978-0fe4-45ba-983f-e54fe47b3105",
      "name": "Get session token",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        432,
        -360
      ],
      "parameters": {
        "url": "={{ $('Configuration Variables').item.json.glpi_url }}/apirest.php/initSession",
        "options": {},
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBasicAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "App-Token",
              "value": "={{ $('Configuration Variables').item.json.app_token }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpBasicAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "a2de616b-3e94-43b4-8bd8-ffe8dbd1a788",
      "name": "1. Upload File",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1328,
        -576
      ],
      "parameters": {
        "url": "={{ $('Configuration Variables').item.json.glpi_url }}/apirest.php/Document/",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "uploadManifest",
              "value": "={\"input\": {\"name\": \"{{ $json[\"Attach authorization if applicable\"][0].filename }}\", \"_filename\": [\"{{ $json[\"Attach authorization if applicable\"][0].filename }}\"]}} "
            },
            {
              "name": "filename[0]",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "Attach_authorization_if_applicable"
            }
          ]
        },
        "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": "306eae46-eca3-439b-a1f6-c34c1ed2347b",
      "name": "2. Upload File",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1328,
        -288
      ],
      "parameters": {
        "url": "={{ $('Configuration Variables').item.json.glpi_url }}/apirest.php/Document/",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "uploadManifest",
              "value": "={\"input\": {\"name\": \"{{ $json[\"Attach evidence\"][0].filename }}\", \"_filename\": [\"{{ $json[\"Attach evidence\"][0].filename }}\"]}} "
            },
            {
              "name": "filename[0]",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "Attach_evidence"
            }
          ]
        },
        "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": "3a7c8254-b48c-47e3-9f8c-628c2f0ba810",
      "name": "2. Link File to Ticket",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2224,
        -288
      ],
      "parameters": {
        "url": "={{ $('Configuration Variables').item.json.glpi_url }}/apirest.php/Document_Item/",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"input\": {\n    \"documents_id\": {{ $('2. Upload File').item.json.id }},\n    \"itemtype\": \"Ticket\",\n    \"items_id\": {{ $json.id }}\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "App-Token",
              "value": "YOUR_AWS_SECRET_KEY_HERE"
            },
            {
              "name": "Session-Token",
              "value": "={{ $('Get session token').item.json.session_token }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a1650956-0e23-4b64-abf1-ebf6786c56b2",
      "name": "1. Link File to Ticket",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2224,
        -576
      ],
      "parameters": {
        "url": "={{ $('Configuration Variables').item.json.glpi_url }}/apirest.php/Document_Item/",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"input\": {\n    \"documents_id\": {{ $('1. Upload File').item.json.id }},\n    \"itemtype\": \"Ticket\",\n    \"items_id\": {{ $json.id }}\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "App-Token",
              "value": "={{ $('Configuration Variables').item.json.app_token }}"
            },
            {
              "name": "Session-Token",
              "value": "={{ $('Get session token').item.json.session_token }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e4a996b3-06c8-4341-84ed-f366b06cd4d0",
      "name": "2. Check if File Exists",
      "type": "n8n-nodes-base.if",
      "position": [
        1104,
        -216
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "a329cedb-1bc1-4fd4-993f-e0f973ab826f",
              "operator": {
                "type": "object",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $('Incident Form').item.binary }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "a9639f53-7ca1-48c7-873e-7ae3084b6f0b",
      "name": "1. Check if File Exists",
      "type": "n8n-nodes-base.if",
      "position": [
        1104,
        -504
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "a329cedb-1bc1-4fd4-993f-e0f973ab826f",
              "operator": {
                "type": "object",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $('Request Form').item.binary }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "1592e1c9-2acc-41f5-a6d0-c192cd7ceca8",
      "name": "Incident Form",
      "type": "n8n-nodes-base.form",
      "position": [
        880,
        -216
      ],
      "parameters": {
        "options": {
          "formTitle": "Create Incident",
          "formDescription": "Create an incident ticket for problems that are currently impacting services or preventing you from completing your work."
        },
        "formFields": {
          "values": [
            {
              "fieldLabel": "Title",
              "placeholder": "Ej: Computer won't start",
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Description",
              "placeholder": "=My work laptop (Dell Latitude 5520) won't turn on. When I press the power button, no lights come on and the screen remains black. It was working fine yesterday. I need urgent assistance as I have important meetings today.",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Category",
              "multiselect": true,
              "fieldOptions": {
                "values": [
                  {
                    "option": "Computer does not turn on"
                  },
                  {
                    "option": "Server down"
                  },
                  {
                    "option": "Massive website failure"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Urgency",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Low"
                  },
                  {
                    "option": "Medium"
                  },
                  {
                    "option": "High"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "file",
              "fieldLabel": "Attach evidence"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6a43a75c-9a0f-4e48-9c1f-8b18cd2ded8d",
      "name": "Finish Request",
      "type": "n8n-nodes-base.form",
      "position": [
        2448,
        -504
      ],
      "parameters": {
        "options": {},
        "operation": "completion",
        "completionTitle": "Your request was created successfully",
        "completionMessage": "=Ticket ID:  {{ $('Create Request').item.json.id }}"
      },
      "typeVersion": 1
    },
    {
      "id": "baf45d52-b2c2-4966-b7ba-13c0756bf163",
      "name": "Finish Incident",
      "type": "n8n-nodes-base.form",
      "position": [
        2448,
        -216
      ],
      "parameters": {
        "options": {},
        "operation": "completion",
        "completionTitle": "Your incident was created successfully",
        "completionMessage": "=Ticket ID:  {{ $('Create Incident').item.json.id }}"
      },
      "typeVersion": 1
    },
    {
      "id": "7479f266-8949-42f2-9f2d-ce31da268843",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        128,
        -1056
      ],
      "parameters": {
        "color": 4,
        "width": 672,
        "height": 192,
        "content": "## Custom interface for GLPI with n8n\n\nCreate custom templates for your clients and request the specific information needed to address their requests or incidents.\n\nEnjoy a revamped interface, more intuitive and functional than the standard one, designed to optimize ticket management.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "49a6d4dd-8104-47a7-8bbc-99dfad1d82a6",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        848,
        -1056
      ],
      "parameters": {
        "color": 5,
        "width": 1008,
        "height": 464,
        "content": "Requirements:\n\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\nCategory ID\n\nDefine categories and identify their IDs so that when the request or incident ticket is created, the correct category is assigned. For the Request Category ID and Incident Category ID nodes.\n\nIf we access these options in GLPI and click on the desired category, we can see the category ID directly in the browser URL.\n\nPath: Setup > Dropdowns > Assistance > ITIL categories > Computer\n\n\n"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "2. Link File to Ticket",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Finish Incident",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If1": {
      "main": [
        [
          {
            "node": "1. Link File to Ticket",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Finish Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Request Form": {
      "main": [
        [
          {
            "node": "1. Check if File Exists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Incident Form": {
      "main": [
        [
          {
            "node": "2. Check if File Exists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sign Out GLPI": {
      "main": [
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1. Upload File": {
      "main": [
        [
          {
            "node": "Request Category ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2. Upload File": {
      "main": [
        [
          {
            "node": "Incident Category ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Request": {
      "main": [
        [
          {
            "node": "If1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Finish Request": {
      "main": [
        [
          {
            "node": "Sign Out GLPI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Incident": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Finish Incident": {
      "main": [
        [
          {
            "node": "Sign Out GLPI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get session token": {
      "main": [
        [
          {
            "node": "1. Request or incident",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Contact information": {
      "main": [
        [
          {
            "node": "Get session token",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Request Category ID": {
      "main": [
        [
          {
            "node": "Create Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Incident Category ID": {
      "main": [
        [
          {
            "node": "Create Incident",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1. Link File to Ticket": {
      "main": [
        [
          {
            "node": "Finish Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1. Request or incident": {
      "main": [
        [
          {
            "node": "Request Form",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Incident Form",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2. Link File to Ticket": {
      "main": [
        [
          {
            "node": "Finish Incident",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1. Check if File Exists": {
      "main": [
        [
          {
            "node": "1. Upload File",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Request Category ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2. Check if File Exists": {
      "main": [
        [
          {
            "node": "2. Upload File",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Incident Category ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Configuration Variables": {
      "main": [
        [
          {
            "node": "Contact information",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Technical Support Portal": {
      "main": [
        [
          {
            "node": "Configuration Variables",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Transform your GLPI system's user experience with a modern, optimized web interface that simplifies technical support ticket creation. How it works

Source: https://n8n.io/workflows/7392/ — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Web Scraping

This workflow allows you to import any workflow from a file or another n8n instance and map the credentials easily. A multi-form setup guides you through the entire process At the beginning you have t

Execute Command, Read Write File, HTTP Request +3
Web Scraping

N8n recently introduced folders and it has been a big improvement on workflow management on top of the tags.

HTTP Request, n8n, Form Trigger +1
Web Scraping

Git Commit. Uses github, n8n, formTrigger, httpRequest. Event-driven trigger; 34 nodes.

GitHub, n8n, Form Trigger +2
Web Scraping

Small businesses, consultants, agencies… anyone who bills with PayPal.

Form, Form Trigger, HTTP Request
Web Scraping

Credentials Transfer. Uses form, httpRequest, executeCommand, readWriteFile. Event-driven trigger; 22 nodes.

Form, HTTP Request, Execute Command +2