[AI/LangChain] Output Parser 4
Ensure your AI models consistently deliver structured, reliable data with the [AI/LangChain] Output Parser 4 workflow. This powerful n8n automation leverages OpenAI's advanced language models to generate and then rigorously validate structured outputs, making it ideal for applications requiring precise data formats. The workflow begins with a manual trigger, allowing you to initiate the process on demand, feeding your prompt into an LLM Chain. This chain then utilizes an OpenAI Chat Model to produce an initial response, which is subsequently passed through a Structured Output Parser to enforce a predefined schema. For scenarios where the initial output might deviate, an Auto-fixing Output Parser, powered by another OpenAI Chat Model, intelligently corrects any formatting errors, guaranteeing that your final data adheres to the expected structure. Businesses and developers building AI-powered applications, such as data extraction tools, content generation systems, or automated reporting, will find this workflow invaluable for maintaining data integrity and reducing manual correction efforts, ultimately saving significant time and improving the accuracy of their AI-driven processes.
Workflow JSON
{"id": "cKRViOHDPsosO7UX", "meta": {"instanceId": "ec7a5f4ffdb34436e59d23eaccb5015b5238de2a877e205b28572bf1ffecfe04"}, "name": "[AI/LangChain] Output Parser 4", "tags": [], "nodes": [{"id": "3d669ba2-65b7-4502-92d9-645c4e51b26d", "name": "When clicking \"Execute Workflow\"", "type": "n8n-nodes-base.manualTrigger", "position": [380, 240], "parameters": {}, "typeVersion": 1}, {"id": "9a509299-746d-4a3f-b379-8a4a9a92c75a", "name": "Prompt", "type": "n8n-nodes-base.set", "position": [600, 240], "parameters": {"values": {"string": [{"name": "input", "value": "Return the 5 largest states by area in the USA with their 3 largest cities and their population."}]}, "options": {}}, "typeVersion": 2}, {"id": "e2092fe6-d803-43e9-b2df-b0fc7aa83b02", "name": "LLM Chain", "type": "@n8n/n8n-nodes-langchain.chainLlm", "position": [1060, 240], "parameters": {}, "typeVersion": 1}, {"id": "711734d0-1003-4639-bdee-c160f6f976b3", "name": "Structured Output Parser", "type": "@n8n/n8n-nodes-langchain.outputParserStructured", "position": [1560, 900], "parameters": {"jsonSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"state\": {\n \"type\": \"string\"\n },\n \"cities\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": \"string\",\n \"population\": \"number\"\n }\n }\n }\n }\n}"}, "typeVersion": 1}, {"id": "f9b782f8-bb7b-4d65-be0d-d65c11de03d2", "name": "Auto-fixing Output Parser", "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing", "position": [1260, 540], "parameters": {}, "typeVersion": 1}, {"id": "a26f034e-ea19-47ba-8fef-4f0a0d447c01", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [1480, 795], "parameters": {"height": 264.69900963477494, "content": "### Parser which defines the output format and which gets used to validate the output"}, "typeVersion": 1}, {"id": "d902971a-e304-449c-a933-900c9c49ce55", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [1080, 792], "parameters": {"height": 266.9506012398238, "content": "### The LLM which gets used to try to autofix the output in case it was not valid"}, "typeVersion": 1}, {"id": "b4c3b935-61b1-4243-b7df-ba4b7fd6e3ce", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [920, 440], "parameters": {"height": 245.56048099185898, "content": "### The LLM to process the original prompt"}, "typeVersion": 1}, {"id": "916d2998-cf0e-40f9-a373-149c609ed229", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [1200, 449], "parameters": {"width": 348.0763970423483, "height": 233.17672716408998, "content": "### Autofixing parser which tries to fix invalid outputs with the help of an LLM"}, "typeVersion": 1}, {"id": "5cabf993-6bdd-4401-bb6d-fa20ff703127", "name": "OpenAI Chat Model", "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "position": [980, 540], "parameters": {"options": {"temperature": 0}}, "credentials": {"openAiApi": {"id": "", "name": "[Your openAiApi]"}}, "typeVersion": 1}, {"id": "7f666edb-ecb7-4a6d-9dc7-ba67ef41d71f", "name": "OpenAI Chat Model1", "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "position": [1140, 900], "parameters": {"options": {"temperature": 0}}, "credentials": {"openAiApi": {"id": "", "name": "[Your openAiApi]"}}, "typeVersion": 1}], "active": false, "pinData": {}, "settings": {"executionOrder": "v1"}, "versionId": "976446d0-eb9d-478e-8178-69017329d736", "connections": {"Prompt": {"main": [[{"node": "LLM Chain", "type": "main", "index": 0}]]}, "OpenAI Chat Model": {"ai_languageModel": [[{"node": "LLM Chain", "type": "ai_languageModel", "index": 0}]]}, "OpenAI Chat Model1": {"ai_languageModel": [[{"node": "Auto-fixing Output Parser", "type": "ai_languageModel", "index": 0}]]}, "Structured Output Parser": {"ai_outputParser": [[{"node": "Auto-fixing Output Parser", "type": "ai_outputParser", "index": 0}]]}, "Auto-fixing Output Parser": {"ai_outputParser": [[{"node": "LLM Chain", "type": "ai_outputParser", "index": 0}]]}, "When clicking \"Execute Workflow\"": {"main": [[{"node": "Prompt", "type": "main", "index": 0}]]}}}How to Import This Workflow
- 1Copy the workflow JSON above using the Copy Workflow JSON button.
- 2Open your n8n instance and go to Workflows.
- 3Click Import from JSON and paste the copied workflow.
Don't have an n8n instance? Start your free trial at n8nautomation.cloud
Related Templates
Text to Speech (OpenAI)
Converts text into natural-sounding speech using OpenAI's Text-to-Speech API. It sends your input text to OpenAI and receives an audio file in return. This is useful for creating audio versions of articles, generating voiceovers for videos, or providing accessibility features for web content. Quickly transform written content into engaging audio.
LangChain - Example - Code Node Example
Explore a basic LangChain agent that answers questions using a custom tool. This workflow connects n8n's AI nodes and custom code nodes to OpenAI for language model interactions. It's useful for developers building custom AI assistants or researchers experimenting with agentic workflows. This saves development time by providing a ready-to-use example of a LangChain agent.
AI-Powered Candidate Shortlisting Automation for ERPNext
Automate AI-powered candidate shortlisting for ERPNext job applications. This workflow connects ERPNext, Google Gemini, WhatsApp, and Outlook to process resumes, evaluate candidates, and communicate outcomes. Recruiters and HR departments can use this to efficiently screen applicants, automatically reject unqualified candidates, and send acceptance notifications. It significantly reduces manual review time and streamlines the hiring process.