TinkerLab
ARTIFACT // N8N-WEBHOOK-TRIAGE-GUARD.JSON (JSON)

Webhook Ticket Triage Workflow with Schema Guard & Dead-Letter Fallback (n8n-webhook-triage-guard.json)

Validates incoming payload, enforces strict JSON output, caps token cost, and routes malformed responses to a safe fallback queue.

[KEY VERIFIED TAKEAWAY / TL;DR]This reproducible configuration artifact "Webhook Ticket Triage Workflow with Schema Guard & Dead-Letter Fallback" (n8n-webhook-triage-guard.json, JSON) is paired with Tinker AI Lab's hardware-verified guide "n8n-webhook-ticket-triage". It exposes 3 customizable browser variables (WEBHOOK_PATH=tinker-ticket-triage, API_BASE_URL=http://host.docker.internal:11434/v1, TRIAGE_MODEL=qwen2.5:7b) with loopback-first security defaults.
02 // WORKFLOWNo-Code AI Workflows· Verified: 2026-10-23
Browse All 42 Artifacts →
n8n-webhook-triage-guard.json

Webhook Ticket Triage Workflow with Schema Guard & Dead-Letter Fallback

Validates incoming payload, enforces strict JSON output, caps token cost, and routes malformed responses to a safe fallback queue.

View Paired Guide →
Customizable Variables (Saved in Browser)
UTF-8 Encoded · Live Client-Side Compilation
{
  "name": "Tinker AI — Webhook Ticket Triage with Schema Guard",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "tinker-ticket-triage",
        "responseMode": "lastNode"
      },
      "name": "Inbound Ticket Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [200, 280]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "http://host.docker.internal:11434/v1/chat/completions",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify({ model: 'qwen2.5:7b', temperature: 0, max_tokens: 256, response_format: { type: 'json_object' }, messages: [{ role: 'system', content: 'Return JSON with keys: urgency (low|medium|high), department (billing|tech|general), reason (string).' }, { role: 'user', content: String($json.body?.message || '').slice(0, 2000) }] }) }}",
        "options": { "timeout": 30000 }
      },
      "name": "Structured Triage LLM",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "retryOnFail": true,
      "maxTries": 2,
      "continueOnFail": true,
      "position": [460, 280]
    }
  ],
  "connections": {
    "Inbound Ticket Webhook": {
      "main": [[{ "node": "Structured Triage LLM", "type": "main", "index": 0 }]]
    }
  }
}
PARAMETER SPECIFICATION // 参数化变量规范说明表

Customizable Parameter Reference for n8n-webhook-triage-guard.json

This JSON artifact exposes 3 template variables compiled client-side in your browser.

Template TokenParameter DescriptionVerified DefaultExample Format
{{WEBHOOK_PATH}}Webhook Route Pathtinker-ticket-triagetinker-ticket-triage
{{API_BASE_URL}}OpenAI-Compatible Base URLhttp://host.docker.internal:11434/v1http://host.docker.internal:11434/v1
{{TRIAGE_MODEL}}Triage Model IDqwen2.5:7bqwen2.5:7b
PAIRED HARDWARE MANIFEST // 配套实测环境与边界记录

Verified Environment for "Automated Webhook Ticket Triage: Schema Guard, Dead-Letter Fallback, Cost & Permissions"

Tested Hardware & OS

Docker n8n 1.76+ · Compatible with Local Ollama or Any OpenAI-Compatible Endpoint

Pinned Stack & Model Versions
n8n 1.76.xOpenAI-Compatible Chat Completions v1qwen2.5:7b / gpt-4o-mini
Offline Boundary (Configurable: Local-Only or Cloud API)

When handling PII customer tickets, point API_BASE_URL to local Ollama (`http://host.docker.internal:11434/v1`) so customer data never leaves your server.

Known Operational Limits & Failure Modes
  • Unbounded user webhook bodies can inject 50K+ tokens or prompt-injection payloads if not sliced (`slice(0, 2000)`) before the LLM node.
  • Giving the workflow full Read/Write admin API keys to downstream CRM/Slack exposes the system if a webhook secret is leaked.
DEPLOYMENT CHECKLIST // 配置落地核验步骤

3-Step Verification Checklist After Deploying n8n-webhook-triage-guard.json

  1. Enforced 2,000-character input truncation and `max_tokens: 256` on the LLM request.
  2. Verified downstream webhook/API credentials have write-only scope for the target queue.
  3. Tested the dead-letter fallback branch by simulating an LLM timeout or invalid JSON.