Detect silent refund reply failures with OpenRouter and webhook logs
Needs changesNeeds changes. This template uses 1 thing(s) that n8n 3.0 removes: AI Agent v1 (old agent modes). 1 breaking item(s) found. Static check, last run 2026-10-19.
What this workflow does
This AI workflow has 7 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.
- Order Lookup (Code): runs custom JavaScript code
- Validate Lookup (If): checks a condition and branches into true / false
- Refund Support Agent (AI Agent): runs an AI agent, with model: OpenRouter - Support
- Respond Needs Human (Respond to Webhook): sends the response back to the webhook caller
- Respond to Customer (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 Refund Support Agent (v1.7): replace with Latest AI Agent node (Tools Agent). For SQL Agent, use a Postgres or MySQL tool with a recent AI Agent.
| Removed in 3.0 | Replace with |
|---|---|
| AI Agent v1 (old agent modes) Refund Support Agent (v1.7) | Latest AI Agent node (Tools Agent). For SQL Agent, use a Postgres or MySQL tool with a recent AI Agent. |
Nodes used (6)
- Webhook
n8n-nodes-base.webhook - Code
n8n-nodes-base.code - If
n8n-nodes-base.if - AI Agent
@n8n/n8n-nodes-langchain.agent - OpenRouter Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenRouter - Respond to Webhook
n8n-nodes-base.respondToWebhook
From the author
Quick overview This workflow shows how a support agent can send a confident refund reply even when the order data behind it is missing or incomplete, and how to catch that with saved executions and a validation step. It is Exercise 1 from the n8n Production…