{
  "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."
}