IT helpdesk AI agent

Staff describe their IT problem in a chat; the agent walks them through known fixes and logs a ticket when needed.

AI agentAdvanced Saves ~15 hours/month AI AgentsBy Flowngn team

Works with n8n · Make · Zapier

How it works

Trigger: Chat — an employee opens the IT chat
  1. An employee describes the problem.
  2. The agent finds the fix in your knowledge base and gives it one step at a time.
  3. If that doesn't work, it logs a ticket with all the details.
  4. Urgent issues (security, outages) go straight to your IT Slack channel.

What it can do

Unlike a fixed flow, an agent decides which of its tools to use, in what order — and remembers the conversation.

  • Solves common issues: Wi-Fi, printers, email, VPN, passwords resets via your portal
  • Logs tickets with device, problem and priority
  • Escalates security incidents immediately

System prompt

The instructions that shape the agent. It's already inside the n8n template — copy it into Make or Zapier, and adjust the YOUR_… parts.

System prompt
You are the IT helpdesk assistant for YOUR_COMPANY's staff. Reply in the employee's language, short and step by step.

Tools:
- "Knowledge base": known problems and fixes (problem, steps). Search it before answering.
- "Create ticket": logs a ticket for the IT team. Use it when the fix doesn't work, the problem isn't in the knowledge base, or the person needs access, hardware or a new account.
- "Alert IT": posts to the IT Slack channel. Use it only for urgent issues: many people affected, security incidents, a suspected phishing email that someone clicked, or a down system.

How to help:
1. Ask what's wrong, on which device and since when, if it isn't clear.
2. Give the fix from the knowledge base one step at a time and ask if it worked.
3. If not, create a ticket with the details and tell them the ticket was logged.

Rules:
- Never ask for or accept passwords, MFA codes or recovery codes. If someone shares one, tell them to change it now.
- Never suggest disabling antivirus, firewalls or security updates.
- Don't guess fixes that aren't in the knowledge base for anything risky (data loss, registry, BIOS); create a ticket instead.

Safety rules

Built into the prompt and the tools:

  • Never asks for passwords or MFA codes
  • Never suggests turning off security software
  • Hands risky fixes to a person

Uses your own AI key (Claude, OpenAI or another model). Cost depends on the model and conversation length — a small, fast model keeps most conversations to a fraction of a cent.

Diagram

IT chatChat TriggerIT agentAI AgentClaude modelAnthropic Chat Mo…◷MemorySimple MemoryGKnowledge baseGoogle Sheets ToolGCreate ticketGoogle Sheets ToolSAlert ITSlack Tool
Trigger AI Agent tool

Build it

Pick your tool — same automation, step by step.

Copy and paste straight into an n8n canvas (Ctrl+V), or download and use Import from File. Then connect your own credentials and replace every YOUR_… placeholder. AI steps use a Claude model node — swap it for OpenAI, Gemini or Ollama if you prefer.

Workflow JSON
Show code (247 lines)
{
  "name": "IT helpdesk AI agent (Flowngn)",
  "nodes": [
    {
      "parameters": {
        "content": "## IT helpdesk AI agent\nStaff describe their IT problem in a chat; the agent walks them through known fixes and logs a ticket when needed.\n\n**Setup**\n1. Open each node and connect your own credentials.\n2. Replace every YOUR_… placeholder.\n3. Test once, then activate.\n\nFree template from Flowngn",
        "height": 260,
        "width": 340
      },
      "id": "35c485a3-3b64-489d-a81c-e397bb33eb88",
      "name": "Setup notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -420,
        -60
      ]
    },
    {
      "parameters": {
        "public": true,
        "mode": "hostedChat",
        "initialMessages": "Hi! What's not working? Tell me the device and what you see.",
        "options": {
          "responseMode": "lastNode"
        }
      },
      "id": "35c485a3-3b64-489d-a81c-e397bb33eb88",
      "name": "IT chat",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "typeVersion": 1.1,
      "position": [
        0,
        0
      ],
      "webhookId": "35c485a3-3b64-489d-a81c-e397bb33eb88"
    },
    {
      "parameters": {
        "options": {
          "systemMessage": "=You are the IT helpdesk assistant for YOUR_COMPANY's staff. Reply in the employee's language, short and step by step.\n\nTools:\n- \"Knowledge base\": known problems and fixes (problem, steps). Search it before answering.\n- \"Create ticket\": logs a ticket for the IT team. Use it when the fix doesn't work, the problem isn't in the knowledge base, or the person needs access, hardware or a new account.\n- \"Alert IT\": posts to the IT Slack channel. Use it only for urgent issues: many people affected, security incidents, a suspected phishing email that someone clicked, or a down system.\n\nHow to help:\n1. Ask what's wrong, on which device and since when, if it isn't clear.\n2. Give the fix from the knowledge base one step at a time and ask if it worked.\n3. If not, create a ticket with the details and tell them the ticket was logged.\n\nRules:\n- Never ask for or accept passwords, MFA codes or recovery codes. If someone shares one, tell them to change it now.\n- Never suggest disabling antivirus, firewalls or security updates.\n- Don't guess fixes that aren't in the knowledge base for anything risky (data loss, registry, BIOS); create a ticket instead."
        }
      },
      "id": "35c485a3-3b64-489d-a81c-e397bb33eb88",
      "name": "IT agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.9,
      "position": [
        300,
        0
      ]
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "claude-sonnet-5",
          "mode": "list"
        },
        "options": {}
      },
      "id": "35c485a3-3b64-489d-a81c-e397bb33eb88",
      "name": "Claude model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "typeVersion": 1.3,
      "position": [
        -40,
        220
      ]
    },
    {
      "parameters": {
        "contextWindowLength": 10
      },
      "id": "35c485a3-3b64-489d-a81c-e397bb33eb88",
      "name": "Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        130,
        220
      ]
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Returns known IT problems and the steps to fix them.",
        "operation": "read",
        "documentId": {
          "__rl": true,
          "value": "YOUR_SPREADSHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Knowledge base",
          "mode": "name"
        },
        "options": {}
      },
      "id": "35c485a3-3b64-489d-a81c-e397bb33eb88",
      "name": "Knowledge base",
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.5,
      "position": [
        300,
        220
      ]
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Logs an IT ticket.",
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "YOUR_SPREADSHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Tickets",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "created_at": "={{ $now.toISO() }}",
            "name": "={{ $fromAI('name', \"The employee's name\", 'string') }}",
            "email": "={{ $fromAI('email', \"The employee's work email\", 'string') }}",
            "device": "={{ $fromAI('device', \"Device and operating system\", 'string') }}",
            "problem": "={{ $fromAI('problem', \"Short description of the problem and what was already tried\", 'string') }}",
            "priority": "={{ $fromAI('priority', \"low, normal, high or urgent\", 'string') }}",
            "status": "open"
          }
        },
        "options": {}
      },
      "id": "35c485a3-3b64-489d-a81c-e397bb33eb88",
      "name": "Create ticket",
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.5,
      "position": [
        470,
        220
      ]
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Posts an urgent issue to the IT channel.",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "#it",
          "mode": "name"
        },
        "text": "={{ $fromAI('message', \"The urgent issue, who reported it and how many people are affected\", 'string') }}",
        "otherOptions": {}
      },
      "id": "35c485a3-3b64-489d-a81c-e397bb33eb88",
      "name": "Alert IT",
      "type": "n8n-nodes-base.slackTool",
      "typeVersion": 2.2,
      "position": [
        640,
        220
      ]
    }
  ],
  "connections": {
    "IT chat": {
      "main": [
        [
          {
            "node": "IT agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Claude model": {
      "ai_languageModel": [
        [
          {
            "node": "IT agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Memory": {
      "ai_memory": [
        [
          {
            "node": "IT agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Knowledge base": {
      "ai_tool": [
        [
          {
            "node": "IT agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Create ticket": {
      "ai_tool": [
        [
          {
            "node": "IT agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Alert IT": {
      "ai_tool": [
        [
          {
            "node": "IT agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}

Open in the playground to edit →

Tips

  • Start the knowledge base with your 20 most common tickets. That covers most questions.

Related flows