The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
380,
300
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyX",
"unit": "minutes",
"value": 15
}
]
}
},
"typeVersion": 1
},
{
"name": "Checks IP if new",
"type": "n8n-nodes-base.function",
"position": [
740,
300
],
"parameters": {
"functionCode": "const staticData = getWorkflowStaticData('global');\nconst newItem = items.map(item => item.json[\"ip\"]);\nconst ildItem = staticData.ildItem; \n\nif (!ildItem) {\n staticData.ildItem = newItem;\n return items;\n}\n\n\nconst actualnewItem = newItem.filter((id) => !ildItem.includes(id));\nconst actualItem = items.filter((data) => actualnewItem.includes(data.json['ip']));\nstaticData.ildItem = [...actualnewItem, ...ildItem];\n\nreturn actualItem;"
},
"typeVersion": 1
},
{
"name": "subdomains",
"type": "n8n-nodes-base.function",
"position": [
1100,
300
],
"parameters": {
"functionCode": "items[0].json = {\n value: [\n {id: \"subdomain1\"},\n {id: \"subdomain2\"},\n {id: \"subdomain3\"}\n ]\n};\nreturn items;"
},
"typeVersion": 1
},
{
"name": "Loops trough Subdomain list",
"type": "n8n-nodes-base.function",
"position": [
1280,
300
],
"parameters": {
"functionCode": "const newItems = [];\n\nfor (const item of items[0].json.value) {\n newItems.push({json: item});\n}\n\nreturn newItems;"
},
"typeVersion": 1
},
{
"name": "Send data to Namecheap",
"type": "n8n-nodes-base.httpRequest",
"position": [
1460,
300
],
"parameters": {
"url": "=https://dynamicdns.park-your-domain.com/update?host={{$node[\"Loops trough Subdomain list\"].parameter[\"functionCode\"]}}test&domain={{$node[\"yourdomain.com\"].parameter[\"values\"][\"string\"][0][\"value\"]}}&password={{$node[\"yourdomain.com\"].parameter[\"values\"][\"string\"][1][\"value\"]}}&ip={{$node[\"Get Public IP address\"].json[\"ip\"]}}",
"options": {},
"responseFormat": "string"
},
"typeVersion": 1
},
{
"name": "Get Public IP address",
"type": "n8n-nodes-base.httpRequest",
"position": [
560,
300
],
"parameters": {
"url": "https://api.ipify.org?format=json",
"options": {},
"jsonParameters": true,
"allowUnauthorizedCerts": true
},
"retryOnFail": true,
"typeVersion": 1,
"continueOnFail": true
},
{
"name": "yourdomain.com",
"type": "n8n-nodes-base.set",
"position": [
920,
300
],
"parameters": {
"values": {
"string": [
{
"name": "domain",
"value": "yourdomain.com"
},
{
"name": "password",
"value": "your-namecheap-ddns-password"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
}
],
"connections": {
"Cron": {
"main": [
[
{
"node": "Get Public IP address",
"type": "main",
"index": 0
}
]
]
},
"subdomains": {
"main": [
[
{
"node": "Loops trough Subdomain list",
"type": "main",
"index": 0
}
]
]
},
"yourdomain.com": {
"main": [
[
{
"node": "subdomains",
"type": "main",
"index": 0
}
]
]
},
"Checks IP if new": {
"main": [
[
{
"node": "yourdomain.com",
"type": "main",
"index": 0
}
]
]
},
"Get Public IP address": {
"main": [
[
{
"node": "Checks IP if new",
"type": "main",
"index": 0
}
]
]
},
"Loops trough Subdomain list": {
"main": [
[
{
"node": "Send data to Namecheap",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Push Your Public Ip To Namecheaps Dynamic Dns. Uses httpRequest. Scheduled trigger; 7 nodes.
Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Send Google Analytics Data To A I To Analyze Then Save Results In Baserow. Uses scheduleTrigger, manualTrigger, stickyNote, googleAnalytics. Scheduled trigger; 22 nodes.
AI Email Auto-Responder (Ollama). Uses emailReadImap, httpRequest. Scheduled trigger; 6 nodes.
Send Updates About The Position Of The Iss Every Minute To A Topic In Kafka. Uses httpRequest, kafka. Scheduled trigger; 4 nodes.
Send Http Requests To A List Of Urls. Uses splitOut, scheduleTrigger, httpRequest. Scheduled trigger; 4 nodes.
Send Updates About The Position Of The Iss Every Minute To A Topic In Rabbitmq. Uses rabbitmq, httpRequest. Scheduled trigger; 4 nodes.