Workflow: Generate Company Stories from LinkedIn with Bright Data & Google Gemini
Integrations: httpRequest, if, manualTrigger, noOp, set, stickyNote, wait

{"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 \u2018Test workflow\u2019", "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."}