AutomationFlowsAI & RAG › AI Support Ticket Routing Escalation

AI Support Ticket Routing Escalation

23-ai-support-ticket-routing-escalation. Uses openAi, postgres, slack, jira. Webhook trigger; 6 nodes.

Webhook trigger★★★★☆ complexityAI-powered6 nodesOpenAIPostgresSlackJira
AI & RAG Trigger: Webhook Nodes: 6 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Jira → Slack 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
{
  "name": "23-ai-support-ticket-routing-escalation",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "support-ticket",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "c3d4e5f6-1111-4444-8888-000000000001",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        240,
        400
      ]
    },
    {
      "parameters": {
        "model": "gpt-4o",
        "prompt": {
          "messages": [
            {
              "role": "system",
              "content": "You are an expert IT support triage agent. Analyze the provided support ticket. Extract the sentiment, urgency, category, and a 1-sentence summary. Respond ONLY in valid JSON format with exactly these keys: \"sentiment\" (values: positive, neutral, negative), \"urgency\" (values: critical, high, medium, low), \"category\" (values: technical, billing, feature), \"summary\" (string)."
            },
            {
              "role": "user",
              "content": "Subject: {{ $json.subject }}\nMessage: {{ $json.message }}\nCustomer Email: {{ $json.email }}"
            }
          ]
        },
        "options": {
          "responseFormat": "json_object"
        }
      },
      "id": "c3d4e5f6-2222-4444-8888-000000000002",
      "name": "OpenAI",
      "type": "n8n-nodes-base.openAi",
      "typeVersion": 1.2,
      "position": [
        460,
        400
      ],
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "executeQuery",
        "query": "SELECT client_tier FROM clients WHERE email = '{{ $json.email }}' LIMIT 1;",
        "options": {}
      },
      "id": "c3d4e5f6-3333-4444-8888-000000000003",
      "name": "PostgreSQL",
      "type": "n8n-nodes-base.postgres",
      "typeVersion": 2.5,
      "position": [
        680,
        400
      ],
      "credentials": {
        "postgres": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict"
                },
                "conditions": [
                  {
                    "id": "cond1",
                    "leftValue": "={{ JSON.parse($node['OpenAI'].json.content).urgency }}",
                    "rightValue": "critical",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  },
                  {
                    "id": "cond2",
                    "leftValue": "={{ $json.client_tier }}",
                    "rightValue": "VIP",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            }
          ]
        },
        "options": {
          "fallbackOutput": "default"
        }
      },
      "id": "c3d4e5f6-4444-4444-8888-000000000004",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3,
      "position": [
        900,
        400
      ]
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "C1122334455",
          "mode": "list",
          "cachedResultName": "it-escalation-alerts"
        },
        "text": "\ud83d\udea8 *CRITICAL VIP ESCALATION* \ud83d\udea8\n\n\ud83d\udc64 *Customer:* {{ $json.email }} (VIP)\n\ud83d\udcdd *Subject:* {{ $node['Webhook'].json.subject }}\n\u26a0\ufe0f *Urgency:* {{ JSON.parse($node['OpenAI'].json.content).urgency }}\n\ud83c\udff7\ufe0f *Category:* {{ JSON.parse($node['OpenAI'].json.content).category }}\n\ud83d\udcac *Summary:* {{ JSON.parse($node['OpenAI'].json.content).summary }}\n\n@here Immediate attention required!",
        "otherOptions": {}
      },
      "id": "c3d4e5f6-5555-4444-8888-000000000005",
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.2,
      "position": [
        1120,
        320
      ],
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "project": {
          "__rl": true,
          "value": "SUP",
          "mode": "list",
          "cachedResultName": "Support"
        },
        "issueType": {
          "__rl": true,
          "value": "Task",
          "mode": "list",
          "cachedResultName": "Task"
        },
        "summary": "={{ $node['Webhook'].json.subject }}",
        "description": "Customer: {{ $json.email }}\nTier: {{ $json.client_tier }}\nCategory: {{ JSON.parse($node['OpenAI'].json.content).category }}\nSummary: {{ JSON.parse($node['OpenAI'].json.content).summary }}\n\nOriginal Message:\n{{ $node['Webhook'].json.message }}",
        "priority": "={{ $node['Switch'].context.outputIndex === 0 ? 'Highest' : 'Medium' }}",
        "additionalFields": {
          "labels": "={{ JSON.parse($node['OpenAI'].json.content).category }},{{ $json.client_tier }}"
        }
      },
      "id": "c3d4e5f6-6666-4444-8888-000000000006",
      "name": "Jira",
      "type": "n8n-nodes-base.jira",
      "typeVersion": 2,
      "position": [
        1120,
        480
      ],
      "credentials": {
        "jiraApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI": {
      "main": [
        [
          {
            "node": "PostgreSQL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "PostgreSQL": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Slack",
            "type": "main",
            "index": 0
          },
          {
            "node": "Jira",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Jira",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1",
    "saveManualExecutions": true,
    "saveDataErrorExecution": "all",
    "saveDataSuccessExecution": "all"
  },
  "id": "23-ai-support-ticket-routing-escalation",
  "tags": []
}

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

23-ai-support-ticket-routing-escalation. Uses openAi, postgres, slack, jira. Webhook trigger; 6 nodes.

Source: https://github.com/kooroosh1363/agentic-automation-lab/blob/main/23-ai-support-ticket-routing-escalation/workflow.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

Pyragogy AI Village - Orchestrazione Master (Architettura Profonda V2). Uses start, postgres, openAi, emailSend. Webhook trigger; 37 nodes.

Start, Postgres, OpenAI +4
AI & RAG

AI-Driven Handbook Generator with Multi-Agent Orchestration (Pyragogy AI Village). Uses start, postgres, openAi, emailSend. Webhook trigger; 36 nodes.

Start, Postgres, OpenAI +3
AI & RAG

AI-Driven Handbook Generator with Multi-Agent Orchestration (Pyragogy AI Village). Uses start, postgres, openAi, emailSend. Webhook trigger; 36 nodes.

Start, Postgres, OpenAI +3
AI & RAG

AI-Driven Handbook Generator with Multi-Agent Orchestration (Pyragogy AI Village). Uses start, postgres, openAi, emailSend. Webhook trigger; 36 nodes.

Start, Postgres, OpenAI +3
AI & RAG

Pyragogy AI Village - Orchestrazione Master (Architettura Profonda V2). Uses start, postgres, openAi, emailSend. Webhook trigger; 36 nodes.

Start, Postgres, OpenAI +4