Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
{ "name": "Organized PDF to Sheets Workflow", "nodes": [ { "parameters": {}, "id": "sticky-tools", "name": "Sticky Note - Tools", "type": "n8n-nodes-base.stickyNote", "position": [220, 20], "typeVersion": 1, "notes": "🔧 TOOLS & MODELS\nConfigured AI and integration tools" }, { "parameters": {}, "id": "sticky-setup", "name": "Sticky Note - Setup", "type": "n8n-nodes-base.stickyNote", "position": [480, 320], "typeVersion": 1, "notes": "🏗️ SHEET SETUP WORKFLOW\nCreates spreadsheet structure (runs once)" }, { "parameters": {}, "id": "sticky-extract", "name": "Sticky Note - Extract", "type": "n8n-nodes-base.stickyNote", "position": [480, 520], "typeVersion": 1, "notes": "🤖 DATA EXTRACTION WORKFLOW\nProcesses PDF pages and extracts data" }, { "parameters": {}, "id": "sticky-error", "name": "Sticky Note - Error", "type": "n8n-nodes-base.stickyNote", "position": [1120, 140], "typeVersion": 1, "notes": "⚠️ ERROR HANDLING & LOGGING\nRetry logic and result tracking" }, { "parameters": { "modelId": { "__rl": true, "mode": "list", "value": "gpt-4o" } }, "id": "openai-model", "name": "OpenAI Model", "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "position": [260, 80], "typeVersion": 1 }, { "parameters": {}, "id": "browser-tool", "name": "Browser Tool", "type": "@n8n/n8n-nodes-langchain.toolWebScraper", "position": [460, 80], "typeVersion": 1 }, { "parameters": { "authentication": "oAuth2", "operation": "append" }, "id": "sheets-tool", "name": "Sheets Tool", "type": "@n8n/n8n-nodes-langchain.toolGoogleSheets", "position": [660, 80], "typeVersion": 1 }, { "parameters": {}, "id": "start-system", "name": "Start System", "type": "n8n-nodes-base.manualTrigger", "position": [120, 260], "typeVersion": 1 }, { "parameters": { "assignments": { "assignments": [ { "id": "mode-assignment", "name": "mode", "type": "string", "value": "extract" } ] }, "options": {} }, "id": "mode-selector", "name": "Mode Selector", "type": "n8n-nodes-base.set", "position": [340, 260], "typeVersion": 3.4, "notes": "Change mode: 'setup' or 'extract'" }, { "parameters": { "conditions": { "string": [ { "value1": "={{ $json.mode }}", "value2": "setup" } ] } }, "id": "setup-mode-check", "name": "Setup Mode?", "type": "n8n-nodes-base.if", "position": [560, 260], "typeVersion": 1 }, { "parameters": { "assignments": { "assignments": [ { "id": "sheet-name", "name": "sheetName", "type": "string", "value": "Product Data" }, { "id": "columns", "name": "columns", "type": "array", "value": "=['Product Name', 'Price', 'Description', 'Availability']" } ] }, "options": {} }, "id": "setup-config", "name": "Setup Config", "type": "n8n-nodes-base.set", "position": [760, 360], "typeVersion": 3.4 }, { "parameters": { "agent": "conversationalAgent", "promptType": "define", "text": "=Create a Google Sheet named '{{ $json.sheetName }}' with columns: {{ $json.columns.join(', ') }}. Return the sheet ID.", "hasOutputParser": true, "options": { "systemMessage": "You are a spreadsheet setup assistant." } }, "id": "sheet-setup-agent", "name": "Sheet Setup Agent", "type": "@n8n/n8n-nodes-langchain.agent", "position": [980, 360], "typeVersion": 1.7, "credentials": { "openAiApi": { "id": "your-openai-cred-id", "name": "OpenAI account" } } }, { "parameters": { "assignments": { "assignments": [ { "id": "pdf-url", "name": "pdfUrl", "type": "string", "value": "https://example.com/product-catalog.pdf" }, { "id": "sheet-id", "name": "sheetId", "type": "string", "value": "YOUR_SHEET_ID" }, { "id": "retry-count", "name": "retryCount", "type": "number", "value": 0 }, { "id": "max-retries", "name": "maxRetries", "type": "number", "value": 3 } ] }, "options": {} }, "id": "extract-config", "name": "Extract Config", "type": "n8n-nodes-base.set", "position": [760, 620], "typeVersion": 3.4 }, { "parameters": { "mode": "combine", "combineBy": "combineAll", "options": {} }, "id": "split-pages", "name": "Split Pages", "type": "n8n-nodes-base.merge", "position": [980, 620], "typeVersion": 2.1, "notes": "Simulates page splitting - replace with actual PDF splitter" }, { "parameters": { "assignments": { "assignments": [ { "id": "page-num", "name": "currentPage", "type": "number", "value": "={{ $itemIndex + 1 }}" }, { "id": "page-context", "name": "pageContext", "type": "string", "value": "=Page {{ $itemIndex + 1 }} of PDF" } ] }, "options": {} }, "id": "set-page-context", "name": "Set Page Context", "type": "n8n-nodes-base.set", "position": [1200, 620], "typeVersion": 3.4 }, { "parameters": { "agent": "conversationalAgent", "promptType": "define", "text": "=Extract product data from {{ $json.pageContext }}. For each product found, add a row to sheet {{ $json.sheetId }} with: Product Name, Price, Description, Availability.", "hasOutputParser": true, "options": { "systemMessage": "You are a data extraction assistant. Extract structured product information and save to Google Sheets." } }, "id": "data-extraction-agent", "name": "Data Extraction Agent", "type": "@n8n/n8n-nodes-langchain.agent", "position": [1420, 620], "typeVersion": 1.7, "credentials": { "openAiApi": { "id": "your-openai-cred-id", "name": "OpenAI account" } } }, { "parameters": { "conditions": { "string": [ { "value1": "={{ $json.error }}", "operation": "isEmpty" } ] } }, "id": "error-check", "name": "Error Check", "type": "n8n-nodes-base.if", "position": [1640, 620], "typeVersion": 1 }, { "parameters": { "conditions": { "number": [ { "value1": "={{ $json.retryCount }}", "operation": "smaller", "value2": "={{ $json.maxRetries }}" } ] } }, "id": "retry-check", "name": "Retry Check", "type": "n8n-nodes-base.if", "position": [1640, 800], "typeVersion": 1 }, { "parameters": { "assignments": { "assignments": [ { "id": "increment", "name": "retryCount", "type": "number", "value": "={{ $json.retryCount + 1 }}" } ] }, "options": {} }, "id": "increment-retry", "name": "Increment Retry", "type": "n8n-nodes-base.set", "position": [1860, 720], "typeVersion": 3.4 }, { "parameters": { "operation": "appendOrUpdate", "documentId": { "__rl": true, "mode": "list", "value": "YOUR_LOG_SHEET_ID" }, "sheetName": { "__rl": true, "mode": "list", "value": "gid=0" }, "columns": { "mappingMode": "defineBelow", "value": { "Timestamp": "={{ $now }}", "Status": "Retry", "Page": "={{ $json.currentPage }}", "Attempt": "={{ $json.retryCount }}", "Error": "={{ $json.error }}" } }, "options": {} }, "id": "log-retry", "name": "Log Retry", "type": "n8n-nodes-base.googleSheets", "position": [2080, 800], "typeVersion": 4.5 }, { "parameters": { "operation": "appendOrUpdate", "documentId": { "__rl": true, "mode": "list", "value": "YOUR_LOG_SHEET_ID" }, "sheetName": { "__rl": true, "mode": "list", "value": "gid=0" }, "columns": { "mappingMode": "defineBelow", "value": { "Timestamp": "={{ $now }}", "Status": "Max Retries Reached", "Page": "={{ $json.currentPage }}", "Attempt": "={{ $json.retryCount }}", "Error": "={{ $json.error }}" } }, "options": {} }, "id": "log-max-retries", "name": "Log Max Retries", "type": "n8n-nodes-base.googleSheets", "position": [1860, 880], "typeVersion": 4.5 }, { "parameters": { "operation": "appendOrUpdate", "documentId": { "__rl": true, "mode": "list", "value": "YOUR_LOG_SHEET_ID" }, "sheetName": { "__rl": true, "mode": "list", "value": "gid=0" }, "columns": { "mappingMode": "defineBelow", "value": { "Timestamp": "={{ $now }}", "Status": "Success", "Page": "={{ $json.currentPage }}", "Rows_Added": "={{ $json.output }}" } }, "options": {} }, "id": "log-success", "name": "Log Success", "type": "n8n-nodes-base.googleSheets", "position": [1860, 540], "typeVersion": 4.5 }, { "parameters": { "assignments": { "assignments": [ { "id": "result", "name": "finalResult", "type": "string", "value": "={{ $json.output }}" } ] }, "options": {} }, "id": "parse-output", "name": "Parse Output", "type": "n8n-nodes-base.set", "position": [2080, 540], "typeVersion": 3.4 } ], "connections": { "Start System": { "main": [[{"node": "Mode Selector", "type": "main", "index": 0}]] }, "Mode Selector": { "main": [[{"node": "Setup Mode?", "type": "main", "index": 0}]] }, "Setup Mode?": { "main": [ [{"node": "Setup Config", "type": "main", "index": 0}], [{"node": "Extract Config", "type": "main", "index": 0}] ] }, "Setup Config": { "main": [[{"node": "Sheet Setup Agent", "type": "main", "index": 0}]] }, "Sheet Setup Agent": { "ai_tool": [[{"node": "Sheets Tool", "type": "ai_tool", "index": 0}]], "ai_languageModel": [[{"node": "OpenAI Model", "type": "ai_languageModel", "index": 0}]] }, "Extract Config": { "main": [[{"node": "Split Pages", "type": "main", "index": 0}]] }, "Split Pages": { "main": [[{"node": "Set Page Context", "type": "main", "index": 0}]] }, "Set Page Context": { "main": [[{"node": "Data Extraction Agent", "type": "main", "index": 0}]] }, "Data Extraction Agent": { "main": [[{"node": "Error Check", "type": "main", "index": 0}]], "ai_tool": [ [ {"node": "Sheets Tool", "type": "ai_tool", "index": 0}, {"node": "Browser Tool", "type": "ai_tool", "index": 0} ] ], "ai_languageModel": [[{"node": "OpenAI Model", "type": "ai_languageModel", "index": 0}]] }, "Error Check": { "main": [ [{"node": "Log Success", "type": "main", "index": 0}], [{"node": "Retry Check", "type": "main", "index": 0}] ] }, "Retry Check": { "main": [ [{"node": "Increment Retry", "type": "main", "index": 0}], [{"node": "Log Max Retries", "type": "main", "index": 0}] ] }, "Increment Retry": { "main": [[{"node": "Log Retry", "type": "main", "index": 0}]] }, "Log Retry": { "main": [[{"node": "Set Page Context", "type": "main", "index": 0}]] }, "Log Success": { "main": [[{"node": "Parse Output", "type": "main", "index": 0}]] } }, "pinData": {}, "settings": { "executionOrder": "v1" }, "staticData": null, "tags": [], "triggerCount": 1, "updatedAt": "2025-11-07T00:00:00.000Z", "versionId": "1" }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)