This workflow corresponds to n8n.io template #2315 — we link there as the canonical source.
This workflow follows the Agent → HTTP Request 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 →
{
"name": "Agent-Trainer-Micro",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "trainer-micro",
"options": {
"rawBody": false
}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2.1,
"position": [
-500,
200
],
"id": "webhook-trainer",
"name": "Webhook: Receive Training Data"
},
{
"parameters": {
"operation": "xlsx",
"binaryPropertyName": "file",
"options": {}
},
"type": "n8n-nodes-base.extractFromFile",
"typeVersion": 1,
"position": [
-100,
0
],
"id": "parse-excel",
"name": "Parse Excel"
},
{
"parameters": {
"operation": "pdf",
"binaryPropertyName": "file",
"options": {}
},
"type": "n8n-nodes-base.extractFromFile",
"typeVersion": 1,
"position": [
-100,
400
],
"id": "parse-pdf",
"name": "Parse PDF"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"type": "string"
},
"conditions": [
{
"id": "is-pdf",
"leftValue": "={{ $('Webhook: Receive Training Data').item.json.body?.type }}",
"rightValue": "checker",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.1,
"position": [
-300,
200
],
"id": "if-file-type",
"name": "If Checker (PDF)"
},
{
"parameters": {
"promptType": "define",
"text": "={{ $('Webhook: Receive Training Data').item.json.body?.prompt }}\n\nData to parse:\n{{ JSON.stringify($('Parse Excel').item.json) }}\n\nReturn the results strictly in JSON format.",
"hasOutputParser": true,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2.2,
"position": [
150,
0
],
"id": "ai-trainer-maker",
"name": "AI Trainer Maker"
},
{
"parameters": {
"promptType": "define",
"text": "={{ $('Webhook: Receive Training Data').item.json.body?.prompt }}\n\nData to parse:\n{{ $('Parse PDF').item.json.text }}\n\nReturn the results strictly in JSON format.",
"hasOutputParser": true,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2.2,
"position": [
150,
400
],
"id": "ai-trainer-checker",
"name": "AI Trainer Checker"
},
{
"parameters": {
"modelSource": "inferenceProfile",
"model": "us.anthropic.claude-opus-4-20250514-v1:0",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatAwsBedrock",
"typeVersion": 1.1,
"position": [
150,
200
],
"id": "bedrock-trainer",
"name": "AWS Bedrock",
"credentials": {
"aws": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsonSchemaExample": "{\n \"cusip\": \"\",\n \"eventType\": \"\",\n \"principalRate\": 1000,\n \"premiumRate\": 0,\n \"securityCalledAmount\": 0,\n \"securityDescription\": \"\",\n \"payableDate\": \"\",\n \"publicationDate\": \"\",\n \"recordDate\": \"\",\n \"status\": \"Created\",\n \"confidenceScore\": 0.0\n}"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.3,
"position": [
350,
-100
],
"id": "json-formatter-maker",
"name": "JSON Formatter (Maker)"
},
{
"parameters": {
"jsonSchemaExample": "{\n \"cusip\": \"\",\n \"payableDate\": \"\",\n \"publicationDate\": \"\",\n \"eventType\": \"\",\n \"securityCalledAmount\": 0,\n \"securityDescription\": \"\",\n \"confidenceScore\": 0.0\n}"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.3,
"position": [
350,
500
],
"id": "json-formatter-checker",
"name": "JSON Formatter (Checker)"
},
{
"parameters": {
"method": "POST",
"url": "={{ $('Webhook: Receive Training Data').item.json.body?.baseUrl }}/api/training/callback",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ { sessionId: $('Webhook: Receive Training Data').item.json.body?.sessionId, type: $('Webhook: Receive Training Data').item.json.body?.type, result: JSON.stringify($json.output) } }}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
600,
200
],
"id": "trainer-callback",
"name": "Trainer Callback"
}
],
"connections": {
"Webhook: Receive Training Data": {
"main": [
[
{
"node": "If Checker (PDF)",
"type": "main",
"index": 0
}
]
]
},
"If Checker (PDF)": {
"main": [
[
{
"node": "Parse PDF",
"type": "main",
"index": 0
}
],
[
{
"node": "Parse Excel",
"type": "main",
"index": 0
}
]
]
},
"Parse Excel": {
"main": [
[
{
"node": "AI Trainer Maker",
"type": "main",
"index": 0
}
]
]
},
"Parse PDF": {
"main": [
[
{
"node": "AI Trainer Checker",
"type": "main",
"index": 0
}
]
]
},
"AI Trainer Maker": {
"main": [
[
{
"node": "Trainer Callback",
"type": "main",
"index": 0
}
]
]
},
"AI Trainer Checker": {
"main": [
[
{
"node": "Trainer Callback",
"type": "main",
"index": 0
}
]
]
},
"AWS Bedrock": {
"ai_languageModel": [
[
{
"node": "AI Trainer Maker",
"type": "ai_languageModel",
"index": 0
},
{
"node": "AI Trainer Checker",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"JSON Formatter (Maker)": {
"ai_outputParser": [
[
{
"node": "AI Trainer Maker",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"JSON Formatter (Checker)": {
"ai_outputParser": [
[
{
"node": "AI Trainer Checker",
"type": "ai_outputParser",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"meta": {
"templateId": "2315"
}
}
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.
aws
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Agent-Trainer-Micro. Uses agent, lmChatAwsBedrock, outputParserStructured, httpRequest. Webhook trigger; 10 nodes.
Source: https://github.com/praveen631264/samplefullstack-dashboard/blob/c0eea9ffac577f8c69e78a8d72db02ec5991191a/n8n/Agent-Trainer-Micro.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
⏺ 🚀 How it works
LineOA. Uses httpRequest, agent, lmChatGoogleGemini, outputParserStructured. Webhook trigger; 69 nodes.
Resume Screening & Behavioral Interviews with Gemini, Elevenlabs, & Notion ATS copy. Uses outputParserStructured, chainLlm, googleDrive, stickyNote. Webhook trigger; 67 nodes.
Candidate Engagement | Resume Screening | AI Voice Interviews | Applicant Insights
leads. Uses supabase, gmail, formTrigger, httpRequest. Webhook trigger; 62 nodes.