{ "id": "q1DorytEoEw1QLGj", "meta": { "instanceId": "workflow-adbfd9fd", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:50.227617", "updatedAt": "2025-09-29T07:07:50.227630", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "name": "Generate Company Stories from LinkedIn with Bright Data & Google Gemini", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "nodes": [ { "id": "1424195e-79ec-48e8-9bb6-fbae072aca81", "name": "When clicking ‘Test workflow’", "type": "n8n-nodes-base.manualTrigger", "position": [ -1440, 245 ], "parameters": {}, "typeVersion": 1, "notes": "This manualTrigger node performs automated tasks as part of the workflow." }, { "id": "509519c2-efe9-4191-87af-9c5c782350d6", "name": "Google Gemini Chat Model", "type": "n8n-nodes-base.noOp", "notes": "Gemini Experimental Model", "position": [ 696, 540 ], "parameters": { "options": {}, "modelName": "models/gemini-2.0-flash-thinking-exp-01-21" }, "credentials": { "googlePalmApi": { "id": "YeO7dHZnuGBVQKVZ", "name": "Google Gemini(PaLM) Api account" } }, "notesInFlow": true, "typeVersion": 1 }, { "id": "3be8be65-38c2-4500-8676-925bdf7844ac", "name": "Default Data Loader", "type": "n8n-nodes-base.noOp", "position": [ 816, 542.5 ], "parameters": { "options": {} }, "typeVersion": 1, "notes": "This documentDefaultDataLoader node performs automated tasks as part of the workflow." }, { "id": "65b72f55-6424-487b-a622-879589d43344", "name": "Recursive Character Text Splitter", "type": "n8n-nodes-base.noOp", "position": [ 904, 740 ], "parameters": { "options": {}, "chunkOverlap": 100 }, "typeVersion": 1, "notes": "This textSplitterRecursiveCharacterTextSplitter node performs automated tasks as part of the workflow." }, { "id": "4ab31927-5372-4a8f-83b5-355bcd6eaae2", "name": "If Node", "type": "n8n-nodes-base.if", "position": [ -340, 170 ], "parameters": { "options": {}, "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "6a7e5360-4cb5-4806-892e-5c85037fa71c", "operator": { "type": "string", "operation": "equals" }, "leftValue": "={{ $('Check Snapshot Status').item.json.status }}", "rightValue": "ready" } ] } }, "typeVersion": 2.2, "notes": "This if node performs automated tasks as part of the workflow." }, { "id": "30382d3b-6ba8-4a96-93ce-9d22fc547793", "name": "Set Snapshot Id", "type": "n8n-nodes-base.set", "position": [ -780, 245 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "2c3369c6-9206-45d7-9349-f577baeaf189", "name": "snapshot_id", "type": "string", "value": "={{ $json.snapshot_id }}" } ] } }, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow." }, { "id": "a4867b6f-fa91-4b83-befc-9ce97c10228c", "name": "Download Snapshot", "type": "n8n-nodes-base.httpRequest", "position": [ 100, 120 ], "parameters": { "url": "{{ $env.BASE_URL }}", "options": { "timeout": 10000 }, "sendQuery": true, "authentication": "{{ $credentials.genericCredentialType }}", "genericAuthType": "httpHeaderAuth", "queryParameters": { "parameters": [ { "name": "format", "value": "json" } ] } }, "credentials": { "httpHeaderAuth": { "id": "kdbqXuxIR8qIxF7y", "name": "Header Auth account" } }, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "16580d94-23fc-45d6-a282-640148b602d3", "name": "Set LinkedIn URL", "type": "n8n-nodes-base.set", "position": [ -1220, 245 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "47f839a1-df2a-4972-9dad-597a8af0bf75", "name": "url", "type": "string", "value": "{{ $env.WEBHOOK_URL }}" } ] } }, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow." }, { "id": "be007904-269a-4823-bdd8-1ba5b4f69f5c", "name": "Google Gemini Chat Model1", "type": "n8n-nodes-base.noOp", "position": [ 408, 340 ], "parameters": { "options": {}, "modelName": "models/gemini-2.0-flash-exp" }, "credentials": { "googlePalmApi": { "id": "YeO7dHZnuGBVQKVZ", "name": "Google Gemini(PaLM) Api account" } }, "typeVersion": 1, "notes": "This lmChatGoogleGemini node performs automated tasks as part of the workflow." }, { "id": "56a08c75-5122-483e-af0e-da1dd3e08eaf", "name": "Check on the errors", "type": "n8n-nodes-base.if", "position": [ -120, 120 ], "parameters": { "options": {}, "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "b267071c-7102-407b-a98d-f613bcb1a106", "operator": { "type": "string", "operation": "equals" }, "leftValue": "={{ $json.errors.toString() }}", "rightValue": "0" } ] } }, "typeVersion": 2.2, "notes": "This if node performs automated tasks as part of the workflow." }, { "id": "6925a606-1108-4605-9124-c74d3df555ac", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ -1420, -100 ], "parameters": { "width": 400, "height": 280, "content": "## Note\n\nDeals with the LinkedIn data extraction using the Bright Data Web Scrapper API.\n\nThe information extraction and summarization are being used to demonstrate the usage of the N8N AI capabilities.\n\n**Please make sure to set the LinkedIn URL and Webhook Notification URL**" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "a5f977db-14e5-4652-b2d3-0a1b0470be9a", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ -940, -100 ], "parameters": { "width": 420, "height": 280, "content": "## LLM Usages\n\nGoogle Gemini Flash Exp model is being used.\n\nInformation extraction is being used for formatting the LinkedIn response to produce a story.\n\nSummarization Chain is being used for summarization of the content" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "ae6377e2-6ca0-4218-affd-d3c81c16d996", "name": "Perform LinkedIn Web Request", "type": "n8n-nodes-base.httpRequest", "position": [ -1000, 245 ], "parameters": { "url": "{{ $env.API_BASE_URL }}", "method": "POST", "options": {}, "jsonBody": "=[\n {\n \"url\": \"{{ $json.url }}\"\n }\n]", "sendBody": true, "sendQuery": true, "sendHeaders": true, "specifyBody": "json", "authentication": "{{ $credentials.genericCredentialType }}", "genericAuthType": "httpHeaderAuth", "queryParameters": { "parameters": [ { "name": "dataset_id", "value": "gd_l1vikfnt1wgvvqz95w" }, { "name": "include_errors", "value": "true" } ] }, "headerParameters": { "parameters": [ {} ] } }, "credentials": { "httpHeaderAuth": { "id": "kdbqXuxIR8qIxF7y", "name": "Header Auth account" } }, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "9a1e8d92-24a9-481c-b81f-5e37bca46fe2", "name": "Check Snapshot Status", "type": "n8n-nodes-base.httpRequest", "position": [ -560, 245 ], "parameters": { "url": "{{ $env.BASE_URL }}", "options": {}, "sendHeaders": true, "authentication": "{{ $credentials.genericCredentialType }}", "genericAuthType": "httpHeaderAuth", "headerParameters": { "parameters": [ {} ] } }, "credentials": { "httpHeaderAuth": { "id": "kdbqXuxIR8qIxF7y", "name": "Header Auth account" } }, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "543d6087-c1d8-4f98-9b7c-fedbce9b0215", "name": "LinkedIn Data Extractor", "type": "n8n-nodes-base.noOp", "position": [ 320, 120 ], "parameters": { "text": "=Write a complete story of the provided company information in JSON. Use the following Company info to produce a story or a blog post. Make sure to incorporate all the provided company context.\n\nHere's the Company Info in JSON - {{ $json.input }}", "options": { "systemPromptTemplate": "You are an expert data formatter" }, "attributes": { "attributes": [ { "name": "company_story", "required": true, "description": "Detailed Company Info" } ] } }, "typeVersion": 1, "notes": "This informationExtractor node performs automated tasks as part of the workflow." }, { "id": "d07c83f0-5adf-4d5a-976a-b344aa8a853e", "name": "Concise Summary Generator", "type": "n8n-nodes-base.noOp", "position": [ 712, 320 ], "parameters": { "options": { "summarizationMethodAndPrompts": { "values": { "prompt": "=Write a concise summary of the following:\n\n\n{{ $json.output.company_story }}\n\n", "combineMapPrompt": "=Write a concise summary of the following:\n\n\n\n\n\nCONCISE SUMMARY: {{ $json.output.company_story }}" } } }, "operationMode": "documentLoader" }, "typeVersion": 2, "notes": "This chainSummarization node performs automated tasks as part of the workflow." }, { "id": "0867753e-c3ab-473e-960a-344573cdde29", "name": "Webhook Notifier for Data Extractor", "type": "n8n-nodes-base.httpRequest", "position": [ 834, -80 ], "parameters": { "url": "{{ $env.WEBHOOK_URL }}", "options": {}, "sendBody": true, "bodyParameters": { "parameters": [ { "name": "response", "value": "={{ $json.output }}" } ] } }, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "d666cbb8-64bf-47b9-802a-d78ed5caa128", "name": "Webhook Notifier for Summary Generator", "type": "n8n-nodes-base.httpRequest", "position": [ 1192, 320 ], "parameters": { "url": "{{ $env.WEBHOOK_URL }}", "options": {}, "sendBody": true, "bodyParameters": { "parameters": [ { "name": "response", "value": "={{ $json.response.text }}" } ] } }, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "fbd962be-5003-4039-b17e-fc0f16c2edf7", "name": "Wait for 30 seconds", "type": "n8n-nodes-base.wait", "position": [ -120, 345 ], "webhookId": "f2aafd71-61f2-4aa4-8290-fa3bbe3d46b9", "parameters": { "amount": 30 }, "typeVersion": 1.1, "notes": "This wait node performs automated tasks as part of the workflow." } ], "active": false, "pinData": {}, "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "versionId": "0f4279a9-1593-421e-825e-850cdae1bb97", "connections": { "a4867b6f-fa91-4b83-befc-9ce97c10228c": { "main": [ [ { "node": "error-handler-a4867b6f-fa91-4b83-befc-9ce97c10228c", "type": "main", "index": 0 } ], [ { "node": "error-handler-a4867b6f-fa91-4b83-befc-9ce97c10228c-026806c4", "type": "main", "index": 0 } ], [ { "node": "error-handler-a4867b6f-fa91-4b83-befc-9ce97c10228c-7b1ee72f", "type": "main", "index": 0 } ], [ { "node": "error-handler-a4867b6f-fa91-4b83-befc-9ce97c10228c-5194df15", "type": "main", "index": 0 } ], [ { "node": "error-handler-a4867b6f-fa91-4b83-befc-9ce97c10228c-13848348", "type": "main", "index": 0 } ], [ { "node": "error-handler-a4867b6f-fa91-4b83-befc-9ce97c10228c-79b20c72", "type": "main", "index": 0 } ], [ { "node": "error-handler-a4867b6f-fa91-4b83-befc-9ce97c10228c-73f017c3", "type": "main", "index": 0 } ], [ { "node": "error-handler-a4867b6f-fa91-4b83-befc-9ce97c10228c-75b3242b", "type": "main", "index": 0 } ], [ { "node": "error-handler-a4867b6f-fa91-4b83-befc-9ce97c10228c-0b13b095", "type": "main", "index": 0 } ] ] }, "ae6377e2-6ca0-4218-affd-d3c81c16d996": { "main": [ [ { "node": "error-handler-ae6377e2-6ca0-4218-affd-d3c81c16d996", "type": "main", "index": 0 } ], [ { "node": "error-handler-ae6377e2-6ca0-4218-affd-d3c81c16d996-e0428936", "type": "main", "index": 0 } ], [ { "node": "error-handler-ae6377e2-6ca0-4218-affd-d3c81c16d996-7873e740", "type": "main", "index": 0 } ], [ { "node": "error-handler-ae6377e2-6ca0-4218-affd-d3c81c16d996-7a3c6e46", "type": "main", "index": 0 } ], [ { "node": "error-handler-ae6377e2-6ca0-4218-affd-d3c81c16d996-fccf6a0f", "type": "main", "index": 0 } ], [ { "node": "error-handler-ae6377e2-6ca0-4218-affd-d3c81c16d996-af465c8b", "type": "main", "index": 0 } ], [ { "node": "error-handler-ae6377e2-6ca0-4218-affd-d3c81c16d996-7ed3837f", "type": "main", "index": 0 } ], [ { "node": "error-handler-ae6377e2-6ca0-4218-affd-d3c81c16d996-ab60b6ce", "type": "main", "index": 0 } ], [ { "node": "error-handler-ae6377e2-6ca0-4218-affd-d3c81c16d996-5b9eec92", "type": "main", "index": 0 } ] ] }, "9a1e8d92-24a9-481c-b81f-5e37bca46fe2": { "main": [ [ { "node": "error-handler-9a1e8d92-24a9-481c-b81f-5e37bca46fe2", "type": "main", "index": 0 } ], [ { "node": "error-handler-9a1e8d92-24a9-481c-b81f-5e37bca46fe2-c554d10b", "type": "main", "index": 0 } ], [ { "node": "error-handler-9a1e8d92-24a9-481c-b81f-5e37bca46fe2-53e95384", "type": "main", "index": 0 } ], [ { "node": "error-handler-9a1e8d92-24a9-481c-b81f-5e37bca46fe2-a919f2ce", "type": "main", "index": 0 } ], [ { "node": "error-handler-9a1e8d92-24a9-481c-b81f-5e37bca46fe2-5320b7a6", "type": "main", "index": 0 } ], [ { "node": "error-handler-9a1e8d92-24a9-481c-b81f-5e37bca46fe2-b2ba3efb", "type": "main", "index": 0 } ], [ { "node": "error-handler-9a1e8d92-24a9-481c-b81f-5e37bca46fe2-9aeb9721", "type": "main", "index": 0 } ], [ { "node": "error-handler-9a1e8d92-24a9-481c-b81f-5e37bca46fe2-497ea11e", "type": "main", "index": 0 } ], [ { "node": "error-handler-9a1e8d92-24a9-481c-b81f-5e37bca46fe2-4ab5fa51", "type": "main", "index": 0 } ] ] }, "0867753e-c3ab-473e-960a-344573cdde29": { "main": [ [ { "node": "error-handler-0867753e-c3ab-473e-960a-344573cdde29", "type": "main", "index": 0 } ], [ { "node": "error-handler-0867753e-c3ab-473e-960a-344573cdde29-879a0c0f", "type": "main", "index": 0 } ], [ { "node": "error-handler-0867753e-c3ab-473e-960a-344573cdde29-0ea82671", "type": "main", "index": 0 } ], [ { "node": "error-handler-0867753e-c3ab-473e-960a-344573cdde29-0734128f", "type": "main", "index": 0 } ], [ { "node": "error-handler-0867753e-c3ab-473e-960a-344573cdde29-b458aa00", "type": "main", "index": 0 } ], [ { "node": "error-handler-0867753e-c3ab-473e-960a-344573cdde29-5b62412c", "type": "main", "index": 0 } ], [ { "node": "error-handler-0867753e-c3ab-473e-960a-344573cdde29-495bfe50", "type": "main", "index": 0 } ], [ { "node": "error-handler-0867753e-c3ab-473e-960a-344573cdde29-32c58473", "type": "main", "index": 0 } ], [ { "node": "error-handler-0867753e-c3ab-473e-960a-344573cdde29-fc3b6d4c", "type": "main", "index": 0 } ] ] }, "d666cbb8-64bf-47b9-802a-d78ed5caa128": { "main": [ [ { "node": "error-handler-d666cbb8-64bf-47b9-802a-d78ed5caa128", "type": "main", "index": 0 } ], [ { "node": "error-handler-d666cbb8-64bf-47b9-802a-d78ed5caa128-274ead28", "type": "main", "index": 0 } ], [ { "node": "error-handler-d666cbb8-64bf-47b9-802a-d78ed5caa128-414a9cca", "type": "main", "index": 0 } ], [ { "node": "error-handler-d666cbb8-64bf-47b9-802a-d78ed5caa128-17a1f2db", "type": "main", "index": 0 } ], [ { "node": "error-handler-d666cbb8-64bf-47b9-802a-d78ed5caa128-f6324f13", "type": "main", "index": 0 } ], [ { "node": "error-handler-d666cbb8-64bf-47b9-802a-d78ed5caa128-9e738060", "type": "main", "index": 0 } ], [ { "node": "error-handler-d666cbb8-64bf-47b9-802a-d78ed5caa128-4b8a22ea", "type": "main", "index": 0 } ], [ { "node": "error-handler-d666cbb8-64bf-47b9-802a-d78ed5caa128-5df6346d", "type": "main", "index": 0 } ], [ { "node": "error-handler-d666cbb8-64bf-47b9-802a-d78ed5caa128-633cb037", "type": "main", "index": 0 } ] ] }, "509519c2-efe9-4191-87af-9c5c782350d6": { "main": [ [ { "node": "error-handler-509519c2-efe9-4191-87af-9c5c782350d6-204bf8f1", "type": "main", "index": 0 } ] ] }, "be007904-269a-4823-bdd8-1ba5b4f69f5c": { "main": [ [ { "node": "error-handler-be007904-269a-4823-bdd8-1ba5b4f69f5c-0e3ec39b", "type": "main", "index": 0 } ] ] } }, "description": "Automated workflow: Generate Company Stories from LinkedIn with Bright Data & Google Gemini. This workflow integrates 12 different services: stickyNote, httpRequest, wait, textSplitterRecursiveCharacterTextSplitter, lmChatGoogleGemini. It contains 31 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Generate Company Stories from LinkedIn with Bright Data & Google Gemini. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }