Workflow: Wait Code Automation

Workflow Details

Download Workflow
{
    "id": "phqg5Kk3YowxoMHQ",
    "meta": {
        "instanceId": "3b02b4d565b70d8766b64aa225626d46b11a527d9f5fe390a8405f2a09e8b8a4"
    },
    "name": "Namesilo Bulk Domain Availability [Template]",
    "tags": [
        {
            "id": "28jVdgW1S4XWqLH4",
            "name": "Templates",
            "createdAt": "2025-02-28T12:22:07.921Z",
            "updatedAt": "2025-02-28T12:22:07.921Z"
        }
    ],
    "nodes": [
        {
            "id": "b1184b35-0ab4-42d8-a5b2-66ef926d7eed",
            "name": "Set Data",
            "type": "n8n-nodes-base.set",
            "position": [
                -240,
                0
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "05a34cf0-9462-4684-aac8-32b4b17e9ef0",
                            "name": "Domains",
                            "type": "string",
                            "value": "=domain1.com\ndomain2.com\ndomain3.com"
                        },
                        {
                            "id": "438830f9-27fe-4e89-bcb9-766483e2d9b1",
                            "name": "Namesilo API Key",
                            "type": "string",
                            "value": "YOUR_API_KEY"
                        }
                    ]
                }
            },
            "typeVersion": 3.399999999999999911182158029987476766109466552734375
        },
        {
            "id": "7fc40d31-a43b-4273-a6eb-d519fda815d4",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -800,
                -340
            ],
            "parameters": {
                "width": 580,
                "height": 280,
                "content": "## How-To\n1. Claim your free Namesilo API key here: https:\/\/www.namesilo.com\/account\/api-manager\n\n2. Set your API key and domains in \"Set Data\" node.\n\nThe workflow send up to 200 domains per loop until all domains are processed. The output is in Excel format.\n\nEnjoy!\n\nNote: Each loop wait 5min. This is required due to Namesilo rate limits."
            },
            "typeVersion": 1
        },
        {
            "id": "a2137f76-9e08-4743-b914-b10bbebc9a13",
            "name": "Convert & Split Domains",
            "type": "n8n-nodes-base.code",
            "position": [
                -60,
                0
            ],
            "parameters": {
                "jsCode": "\/\/ Get domains from input JSON\nconst domains = $json.Domains.split(\"\\n\").map(domain => domain.trim()).filter(Boolean);\n\n\/\/ Define batch size\nconst batchSize = 200;\n\n\/\/ Split into batches of 200\nlet batches = [];\nfor (let i = 0; i < domains.length; i += batchSize) {\n    batches.push(domains.slice(i, i + batchSize).join(\",\"));\n}\n\n\/\/ Return batches as an array\nreturn batches.map(batch => ({ batchedDomains: batch }));"
            },
            "typeVersion": 2
        },
        {
            "id": "41140017-1f98-4ea9-ac97-9d48e5bdfda1",
            "name": "Wait",
            "type": "n8n-nodes-base.wait",
            "position": [
                680,
                -200
            ],
            "webhookId": "3ede79a2-7875-462f-b15a-1c74339e2a8a",
            "parameters": {
                "unit": "minutes"
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "9aa9ddb5-9091-4726-917c-bce9d0f207c9",
            "name": "Merge Results",
            "type": "n8n-nodes-base.code",
            "position": [
                320,
                0
            ],
            "parameters": {
                "jsCode": "\/\/ This re-maps each input item (if needed)\nconst newItems = items.map(item => ({\n  json: {\n    Domain: item.json.Domain,\n    Availability: item.json.Availability\n  }\n}));\n\nreturn newItems;"
            },
            "typeVersion": 2
        },
        {
            "id": "bb2fd210-fd11-4712-94d0-fabb7060705c",
            "name": "Loop Over Domains",
            "type": "n8n-nodes-base.splitInBatches",
            "position": [
                120,
                0
            ],
            "parameters": {
                "options": []
            },
            "typeVersion": 3
        },
        {
            "id": "5d97cd82-f7d5-4f98-a789-8c0fcf473f0f",
            "name": "Namesilo Requests",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                320,
                -200
            ],
            "parameters": {
                "url": "=https:\/\/www.namesilo.com\/apibatch\/checkRegisterAvailability?version=1&type=json&key={{ $('Set Data').item.json['Namesilo API Key'] }}&domains={{ $json.batchedDomains }}",
                "options": []
            },
            "retryOnFail": true,
            "typeVersion": 4.20000000000000017763568394002504646778106689453125,
            "waitBetweenTries": 5000
        },
        {
            "id": "c4f38893-636a-4293-9e10-395be30683d0",
            "name": "Parse Data",
            "type": "n8n-nodes-base.code",
            "position": [
                500,
                -200
            ],
            "parameters": {
                "jsCode": "\/\/ Ensure input data exists\nif (!$json || !$json.data) {\n    throw new Error(\"Invalid input data format\");\n}\n\n\/\/ Parse the JSON string inside `data`\nlet parsedData;\ntry {\n    parsedData = JSON.parse($json.data);\n} catch (error) {\n    throw new Error(\"Error parsing JSON data: \" + error.message);\n}\n\n\/\/ Extract available and unavailable domains safely\nconst availableDomains = parsedData.reply?.available ? Object.values(parsedData.reply.available) : [];\nconst unavailableDomains = parsedData.reply?.unavailable ? Object.values(parsedData.reply.unavailable) : [];\n\n\/\/ Prepare the output array\nconst output = [];\n\n\/\/ Process available domains\navailableDomains.forEach(domainObj => {\n    if (domainObj && domainObj.domain) {\n        output.push({\n            Domain: domainObj.domain,\n            Availability: \"Available\"\n        });\n    }\n});\n\n\/\/ Process unavailable domains\nunavailableDomains.forEach(domain => {\n    if (typeof domain === \"string\") {\n        output.push({\n            Domain: domain,\n            Availability: \"Unavailable\"\n        });\n    } else if (typeof domain === \"object\" && domain.domain) {\n        output.push({\n            Domain: domain.domain,\n            Availability: \"Unavailable\"\n        });\n    }\n});\n\n\/\/ Return the structured data\nreturn output;"
            },
            "typeVersion": 2
        },
        {
            "id": "ec7b8311-65b7-45b0-85ae-b91d7c82e123",
            "name": "Convert to Excel",
            "type": "n8n-nodes-base.convertToFile",
            "position": [
                500,
                0
            ],
            "parameters": {
                "options": {
                    "fileName": "domain_results.xlsx"
                },
                "operation": "xlsx",
                "binaryPropertyName": "={{ $json.MergedDomains }}"
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "7d33c875-ce2d-404c-97a0-f551939d59f4",
            "name": "Start",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                -420,
                0
            ],
            "parameters": [],
            "typeVersion": 1
        }
    ],
    "active": false,
    "pinData": [],
    "settings": {
        "executionOrder": "v1"
    },
    "versionId": "1a05d4b0-db0c-4554-8abf-0547130be16c",
    "connections": {
        "Wait": {
            "main": [
                [
                    {
                        "node": "Loop Over Domains",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Start": {
            "main": [
                [
                    {
                        "node": "Set Data",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Set Data": {
            "main": [
                [
                    {
                        "node": "Convert & Split Domains",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Parse Data": {
            "main": [
                [
                    {
                        "node": "Wait",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Merge Results": {
            "main": [
                [
                    {
                        "node": "Convert to Excel",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Loop Over Domains": {
            "main": [
                [
                    {
                        "node": "Merge Results",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Namesilo Requests",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Namesilo Requests": {
            "main": [
                [
                    {
                        "node": "Parse Data",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Convert & Split Domains": {
            "main": [
                [
                    {
                        "node": "Loop Over Domains",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Splitout Extractfromfile Create Webhook
View
Get Company by Name
View
Manual Securityscorecard Automate Triggered
View
LinkedIn Profile Finder via Form using Bright Data & GPT-4o-mini
View
Contact Form Text Classifier for eCommerce
View
Template - SSL Expiry Alert System
View
Parse DMARC reports
View
Google Search Engine Results Page Extraction with Bright Data
View
Discord MCP Server
View
Receive updates when an event occurs in TheHive
View