{ "nodes": [ { "id": "c3ef40df-084e-435c-9a11-3aa0a2f94f36", "name": "When clicking \"Test workflow\"", "type": "n8n-nodes-base.manualTrigger", "position": [ 740, 520 ], "parameters": {}, "typeVersion": 1, "notes": "This manualTrigger node performs automated tasks as part of the workflow." }, { "id": "e0583472-a450-4582-83bc-84a014bea543", "name": "Split Out", "type": "n8n-nodes-base.splitOut", "position": [ 1640, 520 ], "parameters": { "options": {}, "fieldToSplitOut": "output.results" }, "typeVersion": 1, "notes": "This splitOut node performs automated tasks as part of the workflow." }, { "id": "b8aa573d-5b63-4669-900f-bcc915b6ad41", "name": "Save to Google Sheets", "type": "n8n-nodes-base.googleSheets", "position": [ 1900, 520 ], "parameters": { "columns": { "value": {}, "schema": [ { "id": "name", "type": "string", "display": true, "removed": false, "required": false, "displayName": "name", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "price", "type": "string", "display": true, "removed": false, "required": false, "displayName": "price", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "availability", "type": "string", "display": true, "removed": false, "required": false, "displayName": "availability", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "image", "type": "string", "display": true, "removed": false, "required": false, "displayName": "image", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "link", "type": "string", "display": true, "removed": false, "required": false, "displayName": "link", "defaultMatch": false, "canBeUsedToMatch": true } ], "mappingMode": "autoMapInputData", "matchingColumns": [ "Book prices" ] }, "options": {}, "operation": "append", "sheetName": { "__rl": true, "mode": "list", "value": 258629074, "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "Sheet2" }, "documentId": { "__rl": true, "mode": "list", "value": "1VDbfi2PpeheD2ZlO6feX3RdMeSsm0XukQlNVW8uVcuo", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "Book Prices" } }, "credentials": { "googleSheetsOAuth2Api": { "id": "GHRceL2SKjXxz0Dx", "name": "Google Sheets account" } }, "typeVersion": 4.2, "notes": "This googleSheets node performs automated tasks as part of the workflow." }, { "id": "a63c3ab3-6aab-43b2-8af6-8b00e24e0ee6", "name": "OpenAI Chat Model", "type": "n8n-nodes-base.noOp", "position": [ 1300, 700 ], "parameters": { "options": {} }, "credentials": { "openAiApi": { "id": "5oYe8Cxj7liOPAKk", "name": "Derek T" } }, "typeVersion": 1, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow." }, { "id": "40326966-0c46-4df2-8d80-fa014e05b693", "name": "Information Extractor", "type": "n8n-nodes-base.noOp", "position": [ 1260, 520 ], "parameters": { "text": "={{ $json.data }}", "options": { "systemPromptTemplate": "You are an expert extraction algorithm.\nOnly extract relevant information from the text.\nIf you do not know the value of an attribute asked to extract, you may omit the attribute's value.\nAlways output the data in a json array called results. Each book should have a title, price, availability and product_url, image_url" }, "schemaType": "manual", "inputSchema": "{\n \"results\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"price\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"image_url\": {\n \"type\": \"string\"\n },\n \"product_url\": {\n \"type\": \"string\"\n },\n \"availability\": {\n \"type\": \"string\"\n } \n }\n }\n }\n}" }, "typeVersion": 1, "notes": "This informationExtractor node performs automated tasks as part of the workflow." }, { "id": "8ddca560-8da7-4090-b865-0523f95ca463", "name": "Jina Fetch", "type": "n8n-nodes-base.httpRequest", "position": [ 1020, 520 ], "parameters": { "url": "{{ $env.WEBHOOK_URL }}", "options": { "allowUnauthorizedCerts": true }, "authentication": "{{ $credentials.genericCredentialType }}", "genericAuthType": "httpHeaderAuth" }, "credentials": { "httpHeaderAuth": { "id": "ALBmOXmADcPmyHr1", "name": "jina" } }, "typeVersion": 4.1, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "b1745cea-fdbe-4f14-b09c-884549beac7e", "name": "Sticky Note5", "type": "n8n-nodes-base.stickyNote", "position": [ 80, 320 ], "parameters": { "color": 5, "width": 587, "height": 570, "content": "## Start here: Step-by Step Youtube Tutorial :star:\n\n[![AI Powered Web Scraping : the EASY way with n8n and Jina.ai (no-code!)]({{ $env.WEBHOOK_URL }}]({{ $env.WEBHOOK_URL }}\n\n[Google Sheet Example]({{ $env.WEBHOOK_URL }}\n\n\n" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." } ], "pinData": {}, "connections": { "8ddca560-8da7-4090-b865-0523f95ca463": { "main": [ [ { "node": "error-handler-8ddca560-8da7-4090-b865-0523f95ca463", "type": "main", "index": 0 } ], [ { "node": "error-handler-8ddca560-8da7-4090-b865-0523f95ca463-30818715", "type": "main", "index": 0 } ], [ { "node": "error-handler-8ddca560-8da7-4090-b865-0523f95ca463-d9b969e2", "type": "main", "index": 0 } ], [ { "node": "error-handler-8ddca560-8da7-4090-b865-0523f95ca463-18d7a9a2", "type": "main", "index": 0 } ], [ { "node": "error-handler-8ddca560-8da7-4090-b865-0523f95ca463-aada4026", "type": "main", "index": 0 } ], [ { "node": "error-handler-8ddca560-8da7-4090-b865-0523f95ca463-eceb5576", "type": "main", "index": 0 } ], [ { "node": "error-handler-8ddca560-8da7-4090-b865-0523f95ca463-b0148f66", "type": "main", "index": 0 } ], [ { "node": "error-handler-8ddca560-8da7-4090-b865-0523f95ca463-b103acb0", "type": "main", "index": 0 } ], [ { "node": "error-handler-8ddca560-8da7-4090-b865-0523f95ca463-03f323eb", "type": "main", "index": 0 } ] ] }, "b8aa573d-5b63-4669-900f-bcc915b6ad41": { "main": [ [ { "node": "error-handler-b8aa573d-5b63-4669-900f-bcc915b6ad41-c3dd1858", "type": "main", "index": 0 } ] ] }, "a63c3ab3-6aab-43b2-8af6-8b00e24e0ee6": { "main": [ [ { "node": "error-handler-a63c3ab3-6aab-43b2-8af6-8b00e24e0ee6-55452926", "type": "main", "index": 0 } ] ] } }, "name": "Manualtrigger Workflow", "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "description": "Automated workflow: Manualtrigger Workflow. This workflow integrates 8 different services: stickyNote, httpRequest, splitOut, informationExtractor, stopAndError. It contains 11 nodes and follows best practices for error handling and security.", "meta": { "instanceId": "workflow-e1abee54", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:53.693645", "updatedAt": "2025-09-29T07:07:53.693664", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "notes": "Excellent quality workflow: Manualtrigger Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }