Parse files and URLs into structured JSON with Groq and Google Gemini
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
Nodes used (16)
- Extract from File
n8n-nodes-base.extractFromFile - If
n8n-nodes-base.if - Basic LLM Chain
@n8n/n8n-nodes-langchain.chainLlm - Groq Chat Model
@n8n/n8n-nodes-langchain.lmChatGroq - Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured - Aggregate
n8n-nodes-base.aggregate - Summarize
n8n-nodes-base.summarize - Switch
n8n-nodes-base.switch - Execute Workflow Trigger
n8n-nodes-base.executeWorkflowTrigger - Google Drive
n8n-nodes-base.googleDrive - Edit Image
n8n-nodes-base.editImage - Code
n8n-nodes-base.code - Edit Fields (Set)
n8n-nodes-base.set - Manual Trigger
n8n-nodes-base.manualTrigger - Google Gemini Chat Model
@n8n/n8n-nodes-langchain.lmChatGoogleGemini - HTTP Request
n8n-nodes-base.httpRequest
What it does
Quick overview This sub-workflow accepts files or a URL from a parent workflow, extracts readable text from many formats, optionally converts that text into structured JSON using Groq and Google Gemini models, and returns one normalized result per input. How it works 1. Triggers when executed by another n8n workflow and receives binary attachments and an optional extraction object that can define required fields. 2. Splits incoming attachments into one item per file (or converts a provided URL into a fetchable text source) and builds a JSON Schema from extraction.fieldschemas. 3. Routes each item by MIME type and extracts content using native n8n extractors (PDF, JSON, CSV, Excel, Google Sheets and text) or fetches web pages as text via an HTTP request. 4. For image files, converts the image to a compatible format and uses a vision-capable LLM to extract visible information into JSON and add contentclass and classconfidence. 5. If a schema was provided, sends the extracted text to an LLM to produce structured JSON that matches the requested schema. 6. Returns { status, error, data: { text, contentclass, classconfidence } } for every input. File types it has no route for come back with a standardized unsupported status and an error payload, so the parent workflow keeps running. Setup 1. Add a credential for a vision-capable LLM to the Vision LLM node, which extracts structured data from images. 2. Add a credential for an LLM to the Text LLM node, which structures extracted text into schema-compliant JSON. A free tier is enough, and any chat model node works in either place. 3. From the parent workflow, use an Execute Workflow node to call this workflow and pass either binaryfiles (attachments) or a url, plus optional extraction.fieldschemas and instructions for the fields you want returned. Requirements - One vision-capable LLM and one text LLM with structured output support. The template ships with Google Gemini and Groq nodes, which both have free tiers. - A parent workflow that calls it through an Execute Workflow node Customization - Add a file type with a new rule in Route by File Type - Use classconfidence (0 to 1) in the parent to auto-accept, review or flag each result Additional info Node-by-node documentation · Used by smart-folder2table and inbox-attachment-organizer