Production AI Playbook: Deterministic Steps & AI Steps (2 of 5)
Needs changesWhat this workflow does
This AI workflow has 9 nodes and runs when an HTTP POST request hits its webhook URL. Along the way it connects OpenRouter Chat Model.
How it runs
Trigger: When an HTTP POST request hits its webhook URL.
- Clean Ticket Data (Code): runs custom JavaScript code
- AI - Classify Ticket (AI Agent): runs an AI agent, with model: OpenRouter Chat Model; output parser: Structured Output Parser
- Validate AI Output (Code): runs custom JavaScript code
- Is Output Valid? (If): checks a condition and branches into true / false
- Respond - Classification Result (Respond to Webhook): sends the response back to the webhook caller
- Respond - Needs Review (Respond to Webhook): sends the response back to the webhook caller
Services it uses
Before you upgrade to n8n 3.0
1 thing in this workflow is removed in n8n 3.0. Fix it before you upgrade:
- AI Agent v1 (old agent modes) in AI - Classify Ticket (v1.7): replace with Latest AI Agent node (Tools Agent). For SQL Agent, use a Postgres or MySQL tool with a recent AI Agent.
Rather not rewrite it? Many of these flows can be rebuilt in Make (free plan).
| Removed in 3.0 | Replace with |
|---|---|
| AI Agent v1 (old agent modes) AI - Classify Ticket (v1.7) | Latest AI Agent node (Tools Agent). For SQL Agent, use a Postgres or MySQL tool with a recent AI Agent. |
Nodes used (7)
- Webhook
n8n-nodes-base.webhook - Code
n8n-nodes-base.code - AI Agent
@n8n/n8n-nodes-langchain.agent - If
n8n-nodes-base.if - Respond to Webhook
n8n-nodes-base.respondToWebhook - OpenRouter Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenRouter - Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured
From the author
Validate AI-generated outputs before your workflow acts on them. This template sends a support ticket through AI classification, parses the JSON response, and checks that categories, urgency levels, and confidence scores are all within valid ranges. What…