Workflow: Splitout Filter Automation

Workflow Details

Download Workflow
{
    "nodes": [
        {
            "id": "6cdc45e5-1fa4-47fe-b80a-0e1560996936",
            "name": "Text",
            "type": "@n8n\/n8n-nodes-langchain.toolWorkflow",
            "position": [
                1460,
                980
            ],
            "parameters": {
                "name": "text_retrieval_tool",
                "source": "parameter",
                "description": "Call this tool to return all text from the given website. Query should be full website URL.",
                "workflowJson": "{\n \"nodes\": [\n {\n \"parameters\": {},\n \"id\": \"05107436-c9cb-419b-ae8a-b74d309a130d\",\n \"name\": \"Execute workflow\",\n \"type\": \"n8n-nodes-base.manualTrigger\",\n \"typeVersion\": 1,\n \"position\": [\n 2220,\n 620\n ]\n },\n {\n \"parameters\": {\n \"assignments\": {\n \"assignments\": [\n {\n \"id\": \"253c2b17-c749-4f0a-93e8-5ff74f1ce49b\",\n \"name\": \"domain\",\n \"value\": \"={{ $json.query }}\",\n \"type\": \"string\"\n }\n ]\n },\n \"options\": {}\n },\n \"id\": \"bb8be616-3227-4705-8520-1827069faacd\",\n \"name\": \"Set domain\",\n \"type\": \"n8n-nodes-base.set\",\n \"typeVersion\": 3.3,\n \"position\": [\n 2440,\n 620\n ]\n },\n {\n \"parameters\": {\n \"assignments\": {\n \"assignments\": [\n {\n \"id\": \"ed0f1505-82b6-4393-a0d8-088055137ec9\",\n \"name\": \"domain\",\n \"value\": \"={{ $json.domain.startsWith(\\\"http\\\") ? $json.domain : \\\"http:\/\/\\\" + $json.domain }}\",\n \"type\": \"string\"\n }\n ]\n },\n \"options\": {}\n },\n \"id\": \"bdf29340-f135-489f-848e-1c7fa43a01df\",\n \"name\": \"Add protocool to domain\",\n \"type\": \"n8n-nodes-base.set\",\n \"typeVersion\": 3.3,\n \"position\": [\n 2640,\n 620\n ]\n },\n {\n \"parameters\": {\n \"assignments\": {\n \"assignments\": [\n {\n \"id\": \"2b1c7ff8-06a7-448b-99b7-5ede4b2e0bf0\",\n \"name\": \"response\",\n \"value\": \"={{ $json.data }}\",\n \"type\": \"string\"\n }\n ]\n },\n \"options\": {}\n },\n \"id\": \"9f0aa264-08c1-459a-bb99-e28599fe8f76\",\n \"name\": \"Set response\",\n \"type\": \"n8n-nodes-base.set\",\n \"typeVersion\": 3.3,\n \"position\": [\n 3300,\n 620\n ]\n },\n {\n \"parameters\": {\n \"url\": \"={{ $json.domain }}\",\n \"options\": {}\n },\n \"id\": \"cec7c8e8-bf5e-43d5-aa41-876293dbec78\",\n \"name\": \"Get website\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"typeVersion\": 4.2,\n \"position\": [\n 2860,\n 620\n ]\n },\n {\n \"parameters\": {\n \"html\": \"={{ $json.data }}\",\n \"options\": {\n \"ignore\": \"a,img\"\n }\n },\n \"id\": \"1af94fcb-bca3-45c4-9277-18878c75d417\",\n \"name\": \"Convert HTML to Markdown\",\n \"type\": \"n8n-nodes-base.markdown\",\n \"typeVersion\": 1,\n \"position\": [\n 3080,\n 620\n ]\n }\n ],\n \"connections\": {\n \"Execute workflow\": {\n \"main\": [\n [\n {\n \"node\": \"Set domain\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Set domain\": {\n \"main\": [\n [\n {\n \"node\": \"Add protocool to domain\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Add protocool to domain\": {\n \"main\": [\n [\n {\n \"node\": \"Get website\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Get website\": {\n \"main\": [\n [\n {\n \"node\": \"Convert HTML to Markdown\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Convert HTML to Markdown\": {\n \"main\": [\n [\n {\n \"node\": \"Set response\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n }\n },\n \"pinData\": {}\n}",
                "requestOptions": []
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "af8efccb-ba3c-44de-85f7-b932d7a2e3ca",
            "name": "URLs",
            "type": "@n8n\/n8n-nodes-langchain.toolWorkflow",
            "position": [
                1640,
                980
            ],
            "parameters": {
                "name": "url_retrieval_tool",
                "source": "parameter",
                "description": "Call this tool to return all URLs from the given website. Query should be full website URL.",
                "workflowJson": "{\n \"nodes\": [\n {\n \"parameters\": {},\n \"id\": \"05107436-c9cb-419b-ae8a-b74d309a130d\",\n \"name\": \"Execute workflow\",\n \"type\": \"n8n-nodes-base.manualTrigger\",\n \"typeVersion\": 1,\n \"position\": [\n 2200,\n 740\n ]\n },\n {\n \"parameters\": {\n \"operation\": \"extractHtmlContent\",\n \"extractionValues\": {\n \"values\": [\n {\n \"key\": \"output\",\n \"cssSelector\": \"a\",\n \"returnValue\": \"attribute\",\n \"returnArray\": true\n }\n ]\n },\n \"options\": {}\n },\n \"id\": \"1972e13e-d923-45e8-9752-e4bf45faaccf\",\n \"name\": \"Retrieve URLs\",\n \"type\": \"n8n-nodes-base.html\",\n \"typeVersion\": 1.2,\n \"position\": [\n 3060,\n 740\n ]\n },\n {\n \"parameters\": {\n \"fieldToSplitOut\": \"output\",\n \"options\": {}\n },\n \"id\": \"19703fbc-05ff-4d80-ab53-85ba6d39fc3f\",\n \"name\": \"Split out URLs\",\n \"type\": \"n8n-nodes-base.splitOut\",\n \"typeVersion\": 1,\n \"position\": [\n 3280,\n 740\n ]\n },\n {\n \"parameters\": {\n \"compare\": \"selectedFields\",\n \"fieldsToCompare\": \"href\",\n \"options\": {}\n },\n \"id\": \"5cc988e7-de9b-4177-b5e7-edb3842202c8\",\n \"name\": \"Remove duplicated\",\n \"type\": \"n8n-nodes-base.removeDuplicates\",\n \"typeVersion\": 1,\n \"position\": [\n 3720,\n 740\n ]\n },\n {\n \"parameters\": {\n \"assignments\": {\n \"assignments\": [\n {\n \"id\": \"04ced063-09f0-496c-9b28-b8095f9e2297\",\n \"name\": \"href\",\n \"value\": \"={{ $json.href.startsWith(\\\"\/\\\") ? $('Add protocool to domain (URL)').item.json[\\\"domain\\\"] + $json.href : $json.href }}\",\n \"type\": \"string\"\n }\n ]\n },\n \"includeOtherFields\": true,\n \"include\": \"selected\",\n \"includeFields\": \"title\",\n \"options\": {}\n },\n \"id\": \"4715a25d-93a7-4056-8768-e3f886a1a0c9\",\n \"name\": \"Set domain to path\",\n \"type\": \"n8n-nodes-base.set\",\n \"typeVersion\": 3.3,\n \"position\": [\n 3940,\n 740\n ]\n },\n {\n \"parameters\": {\n \"conditions\": {\n \"options\": {\n \"caseSensitive\": true,\n \"leftValue\": \"\",\n \"typeValidation\": \"strict\"\n },\n \"conditions\": [\n {\n \"id\": \"d01ea6a8-7e75-40d4-98f2-25d42b245f36\",\n \"leftValue\": \"={{ $json.href.isUrl() }}\",\n \"rightValue\": \"\",\n \"operator\": {\n \"type\": \"boolean\",\n \"operation\": \"true\",\n \"singleValue\": true\n }\n }\n ],\n \"combinator\": \"and\"\n },\n \"options\": {}\n },\n \"id\": \"353deefb-ae69-440c-95b6-fdadacf4bf91\",\n \"name\": \"Filter out invalid URLs\",\n \"type\": \"n8n-nodes-base.filter\",\n \"typeVersion\": 2,\n \"position\": [\n 4160,\n 740\n ]\n },\n {\n \"parameters\": {\n \"aggregate\": \"aggregateAllItemData\",\n \"include\": \"specifiedFields\",\n \"fieldsToInclude\": \"title,href\",\n \"options\": {}\n },\n \"id\": \"9f87be8c-72d7-4ab1-b297-dc7069b2dd11\",\n \"name\": \"Aggregate URLs\",\n \"type\": \"n8n-nodes-base.aggregate\",\n \"typeVersion\": 1,\n \"position\": [\n 4380,\n 740\n ]\n },\n {\n \"parameters\": {\n \"conditions\": {\n \"options\": {\n \"caseSensitive\": true,\n \"leftValue\": \"\",\n \"typeValidation\": \"strict\"\n },\n \"conditions\": [\n {\n \"id\": \"5b9b7353-bd04-4af2-9480-8de135ff4223\",\n \"leftValue\": \"={{ $json.href }}\",\n \"rightValue\": \"\",\n \"operator\": {\n \"type\": \"string\",\n \"operation\": \"exists\",\n \"singleValue\": true\n }\n }\n ],\n \"combinator\": \"and\"\n },\n \"options\": {}\n },\n \"id\": \"35c8323a-5350-403a-9c2d-114b0527e395\",\n \"name\": \"Filter out empty hrefs\",\n \"type\": \"n8n-nodes-base.filter\",\n \"typeVersion\": 2,\n \"position\": [\n 3500,\n 740\n ]\n },\n {\n \"parameters\": {\n \"assignments\": {\n \"assignments\": [\n {\n \"id\": \"253c2b17-c749-4f0a-93e8-5ff74f1ce49b\",\n \"name\": \"domain\",\n \"value\": \"={{ $json.query }}\",\n \"type\": \"string\"\n }\n ]\n },\n \"options\": {}\n },\n \"id\": \"d9f6a148-6c8c-4a58-89f5-4e9cfcd8d910\",\n \"name\": \"Set domain (URL)\",\n \"type\": \"n8n-nodes-base.set\",\n \"typeVersion\": 3.3,\n \"position\": [\n 2400,\n 740\n ]\n },\n {\n \"parameters\": {\n \"assignments\": {\n \"assignments\": [\n {\n \"id\": \"ed0f1505-82b6-4393-a0d8-088055137ec9\",\n \"name\": \"domain\",\n \"value\": \"={{ $json.domain.startsWith(\\\"http\\\") ? $json.domain : \\\"http:\/\/\\\" + $json.domain }}\",\n \"type\": \"string\"\n }\n ]\n },\n \"options\": {}\n },\n \"id\": \"1f974444-da58-4a47-a9c3-ba3091fc1e96\",\n \"name\": \"Add protocool to domain (URL)\",\n \"type\": \"n8n-nodes-base.set\",\n \"typeVersion\": 3.3,\n \"position\": [\n 2620,\n 740\n ]\n },\n {\n \"parameters\": {\n \"url\": \"={{ $json.domain }}\",\n \"options\": {}\n },\n \"id\": \"31d7c7d4-8f61-402b-858d-63dd68ac69ee\",\n \"name\": \"Get website (URL)\",\n \"type\": \"n8n-nodes-base.httpRequest\",\n \"typeVersion\": 4.2,\n \"position\": [\n 2840,\n 740\n ]\n },\n {\n \"parameters\": {\n \"assignments\": {\n \"assignments\": [\n {\n \"id\": \"53c1c016-7983-4eba-a91d-da2a0523d805\",\n \"name\": \"response\",\n \"value\": \"={{ JSON.stringify($json.data) }}\",\n \"type\": \"string\"\n }\n ]\n },\n \"options\": {}\n },\n \"id\": \"f4b6df77-96be-4b12-9a8b-ae9b7009f13d\",\n \"name\": \"Set response (URL)\",\n \"type\": \"n8n-nodes-base.set\",\n \"typeVersion\": 3.3,\n \"position\": [\n 4600,\n 740\n ]\n }\n ],\n \"connections\": {\n \"Execute workflow\": {\n \"main\": [\n [\n {\n \"node\": \"Set domain (URL)\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Retrieve URLs\": {\n \"main\": [\n [\n {\n \"node\": \"Split out URLs\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Split out URLs\": {\n \"main\": [\n [\n {\n \"node\": \"Filter out empty hrefs\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Remove duplicated\": {\n \"main\": [\n [\n {\n \"node\": \"Set domain to path\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Set domain to path\": {\n \"main\": [\n [\n {\n \"node\": \"Filter out invalid URLs\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Filter out invalid URLs\": {\n \"main\": [\n [\n {\n \"node\": \"Aggregate URLs\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Aggregate URLs\": {\n \"main\": [\n [\n {\n \"node\": \"Set response (URL)\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Filter out empty hrefs\": {\n \"main\": [\n [\n {\n \"node\": \"Remove duplicated\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Set domain (URL)\": {\n \"main\": [\n [\n {\n \"node\": \"Add protocool to domain (URL)\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Add protocool to domain (URL)\": {\n \"main\": [\n [\n {\n \"node\": \"Get website (URL)\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n },\n \"Get website (URL)\": {\n \"main\": [\n [\n {\n \"node\": \"Retrieve URLs\",\n \"type\": \"main\",\n \"index\": 0\n }\n ]\n ]\n }\n },\n \"pinData\": {}\n}",
                "requestOptions": []
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "725dc9d9-dc10-4895-aedb-93ecd7494d76",
            "name": "OpenAI Chat Model",
            "type": "@n8n\/n8n-nodes-langchain.lmChatOpenAi",
            "position": [
                1300,
                980
            ],
            "parameters": {
                "model": "gpt-4o",
                "options": {
                    "temperature": 0,
                    "responseFormat": "json_object"
                },
                "requestOptions": []
            },
            "credentials": {
                "openAiApi": {
                    "id": "Qp9mop4DylpfqiTH",
                    "name": "OpenAI (avirago@avirago.pl)"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "2b9aa18b-e72e-486a-b307-db50e408842b",
            "name": "JSON Parser",
            "type": "@n8n\/n8n-nodes-langchain.outputParserStructured",
            "position": [
                1800,
                980
            ],
            "parameters": {
                "schemaType": "manual",
                "inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"social_media\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"platform\": {\n \"type\": \"string\",\n \"description\": \"The name of the social media platform (e.g., LinkedIn, Instagram)\"\n },\n \"urls\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"format\": \"uri\",\n \"description\": \"A URL for the social media platform\"\n }\n }\n },\n \"required\": [\"platform\", \"urls\"],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\"platforms\"],\n \"additionalProperties\": false\n}\n",
                "requestOptions": []
            },
            "typeVersion": 1.1999999999999999555910790149937383830547332763671875
        },
        {
            "id": "87dcfe83-01f3-439c-8175-7da3d96391b4",
            "name": "Map company name and website",
            "type": "n8n-nodes-base.set",
            "position": [
                1400,
                300
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "ae484e44-36bc-4d88-9772-545e579a261c",
                            "name": "company_name",
                            "type": "string",
                            "value": "={{ $json.name }}"
                        },
                        {
                            "id": "c426ab19-649c-4443-aabb-eb0826680452",
                            "name": "company_website",
                            "type": "string",
                            "value": "={{ $json.website }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "a904bd16-b470-4c98-ac05-50bbc09bf24b",
            "name": "Execute workflow",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                540,
                620
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "a9801b62-a691-457c-a52f-ac0d68c8e8b3",
            "name": "Get companies",
            "type": "n8n-nodes-base.supabase",
            "position": [
                780,
                620
            ],
            "parameters": {
                "tableId": "companies_input",
                "operation": "getAll"
            },
            "credentials": {
                "supabaseApi": {
                    "id": "TZeFGe5qO3z7X5Zk",
                    "name": "Supabase (workfloows@gmail.com)"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "40d8fe8a-2975-4ea5-b6ac-46e19d158eea",
            "name": "Select company name and website",
            "type": "n8n-nodes-base.set",
            "position": [
                1040,
                620
            ],
            "parameters": {
                "include": "selected",
                "options": [],
                "assignments": {
                    "assignments": []
                },
                "includeFields": "name,website",
                "includeOtherFields": true
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "20aa3aea-f1f6-435c-a511-d4e8db047c6d",
            "name": "Set social media array",
            "type": "n8n-nodes-base.set",
            "position": [
                1800,
                720
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "a6e109b7-9333-44e8-aa13-590aeb91a56b",
                            "name": "social_media",
                            "type": "array",
                            "value": "={{ $json.output.social_media }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "53f64ebf-8d9f-4718-9a33-aaae06e9cf9a",
            "name": "Merge all data",
            "type": "n8n-nodes-base.merge",
            "position": [
                2040,
                620
            ],
            "parameters": {
                "mode": "combine",
                "options": [],
                "combinationMode": "mergeByPosition"
            },
            "typeVersion": 2.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "e38e590e-cc1c-485f-b6c4-e7631f1c8381",
            "name": "Insert new row",
            "type": "n8n-nodes-base.supabase",
            "position": [
                2260,
                620
            ],
            "parameters": {
                "tableId": "companies_output",
                "dataToSend": "autoMapInputData"
            },
            "credentials": {
                "supabaseApi": {
                    "id": "TZeFGe5qO3z7X5Zk",
                    "name": "Supabase (workfloows@gmail.com)"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "aac08494-b324-4307-a5c5-5d5345cc9070",
            "name": "Convert HTML to Markdown",
            "type": "n8n-nodes-base.markdown",
            "position": [
                2100,
                1314
            ],
            "parameters": {
                "html": "={{ $json.data }}",
                "options": {
                    "ignore": "a,img"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "ca6733cb-973f-4e7b-9d52-48f1af2e08e3",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1420,
                940
            ],
            "parameters": {
                "color": 5,
                "width": 157.8125,
                "height": 166.550000000000039790393202565610408782958984375,
                "content": ""
            },
            "typeVersion": 1
        },
        {
            "id": "4acd71c9-9e31-43fc-bda6-66d6a057306b",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1600,
                940
            ],
            "parameters": {
                "color": 4,
                "width": 157.8125,
                "height": 166.550000000000039790393202565610408782958984375,
                "content": ""
            },
            "typeVersion": 1
        },
        {
            "id": "359adcd6-6bb9-4d64-8dde-6a45b0439fd6",
            "name": "Sticky Note2",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1420,
                1180
            ],
            "parameters": {
                "color": 5,
                "width": 1117.500533997771299254964105784893035888671875,
                "height": 329.4539077203363603985053487122058868408203125,
                "content": "### Text scraper tool\nThis tool is designed to return all text from the given webpage.\n\n\ud83d\udca1 **Consider adding proxy for better crawling accuracy.**\n"
            },
            "typeVersion": 1
        },
        {
            "id": "84133903-dcec-4c0c-8684-fdeb49f5702d",
            "name": "Retrieve URLs",
            "type": "n8n-nodes-base.html",
            "position": [
                2120,
                1700
            ],
            "parameters": {
                "options": [],
                "operation": "extractHtmlContent",
                "extractionValues": {
                    "values": [
                        {
                            "key": "output",
                            "cssSelector": "a",
                            "returnArray": true,
                            "returnValue": "attribute"
                        }
                    ]
                }
            },
            "typeVersion": 1.1999999999999999555910790149937383830547332763671875
        },
        {
            "id": "2ebffed6-5517-47ff-9fcd-5ce503aa3b63",
            "name": "Split out URLs",
            "type": "n8n-nodes-base.splitOut",
            "position": [
                2340,
                1700
            ],
            "parameters": {
                "options": [],
                "fieldToSplitOut": "output"
            },
            "typeVersion": 1
        },
        {
            "id": "215da9b2-0c0d-4d0e-b5f9-9887be75b0c4",
            "name": "Remove duplicated",
            "type": "n8n-nodes-base.removeDuplicates",
            "position": [
                2780,
                1700
            ],
            "parameters": {
                "compare": "selectedFields",
                "options": [],
                "fieldsToCompare": "href"
            },
            "typeVersion": 1
        },
        {
            "id": "55825a1c-9351-413c-858a-c44cd3078f11",
            "name": "Set domain to path",
            "type": "n8n-nodes-base.set",
            "position": [
                3000,
                1700
            ],
            "parameters": {
                "include": "selected",
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "04ced063-09f0-496c-9b28-b8095f9e2297",
                            "name": "href",
                            "type": "string",
                            "value": "={{ $json.href.startsWith(\"\/\") ? $('Add protocool to domain (URL)').item.json[\"domain\"] + $json.href : $json.href }}"
                        }
                    ]
                },
                "includeFields": "title",
                "includeOtherFields": true
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "57858d59-2727-4291-9dc6-238101de25ea",
            "name": "Filter out invalid URLs",
            "type": "n8n-nodes-base.filter",
            "position": [
                3220,
                1700
            ],
            "parameters": {
                "options": [],
                "conditions": {
                    "options": {
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                        {
                            "id": "d01ea6a8-7e75-40d4-98f2-25d42b245f36",
                            "operator": {
                                "type": "boolean",
                                "operation": "true",
                                "singleValue": true
                            },
                            "leftValue": "={{ $json.href.isUrl() }}",
                            "rightValue": ""
                        }
                    ]
                }
            },
            "typeVersion": 2
        },
        {
            "id": "0e487a35-8a6c-48f7-9048-fe66a5a346e8",
            "name": "Aggregate URLs",
            "type": "n8n-nodes-base.aggregate",
            "position": [
                3440,
                1700
            ],
            "parameters": {
                "include": "specifiedFields",
                "options": [],
                "aggregate": "aggregateAllItemData",
                "fieldsToInclude": "title,href"
            },
            "typeVersion": 1
        },
        {
            "id": "0062af28-8727-4ed4-b283-e250146c2085",
            "name": "Filter out empty hrefs",
            "type": "n8n-nodes-base.filter",
            "position": [
                2560,
                1700
            ],
            "parameters": {
                "options": [],
                "conditions": {
                    "options": {
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                        {
                            "id": "5b9b7353-bd04-4af2-9480-8de135ff4223",
                            "operator": {
                                "type": "string",
                                "operation": "exists",
                                "singleValue": true
                            },
                            "leftValue": "={{ $json.href }}",
                            "rightValue": ""
                        }
                    ]
                }
            },
            "typeVersion": 2
        },
        {
            "id": "995e04f2-f5e3-48b8-879e-913f3a9fb657",
            "name": "Set domain (text)",
            "type": "n8n-nodes-base.set",
            "position": [
                1460,
                1314
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "253c2b17-c749-4f0a-93e8-5ff74f1ce49b",
                            "name": "domain",
                            "type": "string",
                            "value": "={{ $json.query }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "c88f1008-00f8-4285-b595-a936e1f925a5",
            "name": "Add protocool to domain (text)",
            "type": "n8n-nodes-base.set",
            "position": [
                1660,
                1314
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "ed0f1505-82b6-4393-a0d8-088055137ec9",
                            "name": "domain",
                            "type": "string",
                            "value": "={{ $json.domain.startsWith(\"http\") ? $json.domain : \"http:\/\/\" + $json.domain }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "3bc68a89-8bab-423a-b4bf-4739739aeb07",
            "name": "Get website (text)",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                1880,
                1314
            ],
            "parameters": {
                "url": "={{ $json.domain }}",
                "options": []
            },
            "typeVersion": 4.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "9d4782c3-872b-4e3c-9f8c-02cfea7a8ff2",
            "name": "Set response (text)",
            "type": "n8n-nodes-base.set",
            "position": [
                2320,
                1314
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "2b1c7ff8-06a7-448b-99b7-5ede4b2e0bf0",
                            "name": "response",
                            "type": "string",
                            "value": "={{ $json.data }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "2b6ffbd9-892d-4246-b47c-86ad51362ac9",
            "name": "Set domain (URL)",
            "type": "n8n-nodes-base.set",
            "position": [
                1460,
                1700
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "253c2b17-c749-4f0a-93e8-5ff74f1ce49b",
                            "name": "domain",
                            "type": "string",
                            "value": "={{ $json.query }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "2477677e-262e-45a3-99c3-06607b5ae270",
            "name": "Get website (URL)",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                1900,
                1700
            ],
            "parameters": {
                "url": "={{ $json.domain }}",
                "options": []
            },
            "typeVersion": 4.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "4f84eb31-7ad4-4b10-8043-b474fc7f367a",
            "name": "Set response (URL)",
            "type": "n8n-nodes-base.set",
            "position": [
                3660,
                1700
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "53c1c016-7983-4eba-a91d-da2a0523d805",
                            "name": "response",
                            "type": "string",
                            "value": "={{ JSON.stringify($json.data) }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "2d2288dd-2ab5-41a1-984c-ff7c5bbab8d1",
            "name": "Sticky Note3",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1420,
                1560
            ],
            "parameters": {
                "color": 4,
                "width": 2467.26787210433758446015417575836181640625,
                "height": 328.798420540123743194271810352802276611328125,
                "content": "### URL scraper tool\nThis tool is designed to return all links (URLs) from the given webpage.\n\n\ud83d\udca1 **Consider adding proxy for better crawling accuracy.**"
            },
            "typeVersion": 1
        },
        {
            "id": "61c1b30f-38e5-44a5-a8be-edd4df1b13e5",
            "name": "Sticky Note4",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                720,
                400
            ],
            "parameters": {
                "width": 221.7729148148144986407714895904064178466796875,
                "height": 400.16865185185224618180654942989349365234375,
                "content": "### Get companies from database\nRetrieve names and websites of companies from Supabase table to process crawling.\n\n\ud83d\udca1 **You can replace Supabase with other database of your choice.**"
            },
            "typeVersion": 1
        },
        {
            "id": "b6c6643a-4450-4576-b9c3-e28bc9ebed5d",
            "name": "Sticky Note5",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                980,
                429.3203481481483549941913224756717681884765625
            ],
            "parameters": {
                "width": 221.7729148148144986407714895904064178466796875,
                "height": 370.147570370370658565661869943141937255859375,
                "content": "### Set parameters for execution\nPass only `name` and `website` values from database. \n\n\u26a0\ufe0f **If you use other field namings, update this node.**"
            },
            "typeVersion": 1
        },
        {
            "id": "52196e71-c2c2-4ec9-91ab-f7ebc9874d6c",
            "name": "Sticky Note6",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1360,
                536.620185911101316378335468471050262451171875
            ],
            "parameters": {
                "width": 339.71287777777752125984989106655120849609375,
                "height": 328.495762237049120813026092946529388427734375,
                "content": "### Crawling agent (retrieve social media profile links)\nCrawl website to extract social media profile links and return them in unified JSON format.\n\n\ud83d\udca1 **You can change type of retrieved data by editing prompt and parser schema.**"
            },
            "typeVersion": 1
        },
        {
            "id": "ea11931b-c1c7-43c4-a728-f10479863e38",
            "name": "Sticky Note7",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                2200,
                435.38198888888922510886914096772670745849609375
            ],
            "parameters": {
                "width": 221.7729148148144986407714895904064178466796875,
                "height": 364.78666296296302107293740846216678619384765625,
                "content": "### Insert data to database\nAdd new rows in database table with extracted data.\n\n\ud83d\udca1 **You can replace Supabase with other database of your choice.**"
            },
            "typeVersion": 1
        },
        {
            "id": "bc3d3337-a5b9-45ec-bb73-810cea9c0e73",
            "name": "Add protocool to domain (URL)",
            "type": "n8n-nodes-base.set",
            "position": [
                1680,
                1700
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "ed0f1505-82b6-4393-a0d8-088055137ec9",
                            "name": "domain",
                            "type": "string",
                            "value": "={{ $json.domain.startsWith(\"http\") ? $json.domain : \"http:\/\/\" + $json.domain }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "db91703c-0133-4030-a9b5-fc3ab4331784",
            "name": "Sticky Note8",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                0,
                660
            ],
            "parameters": {
                "color": 3,
                "width": 369.6026455904733438728726468980312347412109375,
                "height": 256.2667206570230291617917828261852264404296875,
                "content": "## \u26a0\ufe0f Note\n\n1. Complete video guide for this workflow is available [on my YouTube](https:\/\/youtu.be\/2W09puFZwtY). \n2. Remember to add your credentials and configure nodes.\n3. If you like this workflow, please subscribe to [my YouTube channel](https:\/\/www.youtube.com\/@workfloows) and\/or [my newsletter](https:\/\/workfloows.com\/).\n\n**Thank you for your support!**"
            },
            "typeVersion": 1
        },
        {
            "id": "54530733-f8dc-44c7-a645-6f279e9a2c21",
            "name": "Sticky Note9",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                0,
                420
            ],
            "parameters": {
                "color": 7,
                "width": 369.9306267081318537748302333056926727294921875,
                "height": 212.098803417532025150649133138358592987060546875,
                "content": "## Autonomous AI crawler\nThis workflow autonomously navigates through given websites and retrieves social media profile links. \n\n\ud83d\udca1 **You can modify this workflow to retrieve other type of data (e.g. contact details or company profile summary).**"
            },
            "typeVersion": 1
        },
        {
            "id": "b43aee3c-47b5-47fd-89c4-7d213b26b4ca",
            "name": "Crawl website",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                1400,
                720
            ],
            "parameters": {
                "text": "=Retrieve social media profile URLs from this website: {{ $json.website }}",
                "options": {
                    "systemMessage": "You are an automated web crawler tasked with extracting social media URLs from a webpage provided by the user. You have access to a text retrieval tool to gather all text content from the page and a URL retrieval tool to identify and navigate through links on the page. Utilize the URLs retrieved to crawl additional pages. Your objective is to provide a unified JSON output containing the extracted data (links to all possible social media profiles from the website)."
                },
                "promptType": "define",
                "hasOutputParser": true
            },
            "retryOnFail": true,
            "typeVersion": 1.600000000000000088817841970012523233890533447265625
        }
    ],
    "pinData": {
        "Get companies": [
            {
                "id": 1,
                "name": "n8n",
                "website": "https:\/\/n8n.io"
            }
        ]
    },
    "connections": {
        "Text": {
            "ai_tool": [
                [
                    {
                        "node": "Crawl website",
                        "type": "ai_tool",
                        "index": 0
                    }
                ]
            ]
        },
        "URLs": {
            "ai_tool": [
                [
                    {
                        "node": "Crawl website",
                        "type": "ai_tool",
                        "index": 0
                    }
                ]
            ]
        },
        "JSON Parser": {
            "ai_outputParser": [
                [
                    {
                        "node": "Crawl website",
                        "type": "ai_outputParser",
                        "index": 0
                    }
                ]
            ]
        },
        "Crawl website": {
            "main": [
                [
                    {
                        "node": "Set social media array",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get companies": {
            "main": [
                [
                    {
                        "node": "Select company name and website",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Retrieve URLs": {
            "main": [
                [
                    {
                        "node": "Split out URLs",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Aggregate URLs": {
            "main": [
                [
                    {
                        "node": "Set response (URL)",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Merge all data": {
            "main": [
                [
                    {
                        "node": "Insert new row",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Split out URLs": {
            "main": [
                [
                    {
                        "node": "Filter out empty hrefs",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Execute workflow": {
            "main": [
                [
                    {
                        "node": "Get companies",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Set domain (URL)": {
            "main": [
                [
                    {
                        "node": "Add protocool to domain (URL)",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get website (URL)": {
            "main": [
                [
                    {
                        "node": "Retrieve URLs",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "OpenAI Chat Model": {
            "ai_languageModel": [
                [
                    {
                        "node": "Crawl website",
                        "type": "ai_languageModel",
                        "index": 0
                    }
                ]
            ]
        },
        "Remove duplicated": {
            "main": [
                [
                    {
                        "node": "Set domain to path",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Set domain (text)": {
            "main": [
                [
                    {
                        "node": "Add protocool to domain (text)",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get website (text)": {
            "main": [
                [
                    {
                        "node": "Convert HTML to Markdown",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Set domain to path": {
            "main": [
                [
                    {
                        "node": "Filter out invalid URLs",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Filter out empty hrefs": {
            "main": [
                [
                    {
                        "node": "Remove duplicated",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Set social media array": {
            "main": [
                [
                    {
                        "node": "Merge all data",
                        "type": "main",
                        "index": 1
                    }
                ]
            ]
        },
        "Filter out invalid URLs": {
            "main": [
                [
                    {
                        "node": "Aggregate URLs",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Convert HTML to Markdown": {
            "main": [
                [
                    {
                        "node": "Set response (text)",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Map company name and website": {
            "main": [
                [
                    {
                        "node": "Merge all data",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Add protocool to domain (URL)": {
            "main": [
                [
                    {
                        "node": "Get website (URL)",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Add protocool to domain (text)": {
            "main": [
                [
                    {
                        "node": "Get website (text)",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Select company name and website": {
            "main": [
                [
                    {
                        "node": "Crawl website",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "Map company name and website",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Wait Splitout Automation Webhook
View
Extract Business Leads from Google Maps with Dumpling AI to Google Sheets
View
Getresponse Airtable Import Triggered
View
Get a pipeline in CircleCI
View
Search LinkedIn companies and add them to Airtable CRM
View
My workflow 2
View
Webhook Code Update Webhook
View
Schedule Telegram Automation Scheduled
View
Obsidian Notes Read Aloud: Available as a Podcast Feed
View
Wait HTTP Create Webhook
View