AutomationFlowsWeb Scraping › Restore

Restore

RESTORE. Uses github, httpRequest, n8n. Event-driven trigger; 14 nodes.

Event trigger★★★★☆ complexity14 nodesGitHubHTTP Requestn8n
Web Scraping Trigger: Event Nodes: 14 Complexity: ★★★★☆ Added:

This workflow follows the GitHub → HTTP Request recipe pattern — see all workflows that pair these two integrations.

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 →

Download .json
{
  "active": false,
  "connections": {
    "On clicking 'execute'": {
      "main": [
        [
          {
            "node": "Globals",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Globals": {
      "main": [
        [
          {
            "node": "GitHub - get all files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GitHub - get all files": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "GitHub - get each file1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GitHub - get each file1": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "Get many workflows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "n8n import": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "n8n import",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get many workflows": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delete a workflow": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get many workflows1": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items1": {
      "main": [
        [],
        [
          {
            "node": "If1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If1": {
      "main": [
        [
          {
            "node": "Delete a workflow",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "createdAt": "2025-06-28T02:46:19.893Z",
  "id": "3mHXoNY2YDTDVuWs",
  "isArchived": false,
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "RESTORE",
  "nodes": [
    {
      "parameters": {},
      "id": "c24d3041-1d4d-4959-9491-25da3937514a",
      "name": "On clicking 'execute'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -740,
        -340
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "values": {
          "string": [
            {
              "name": "repo.owner",
              "value": "fer336"
            },
            {
              "name": "repo.name",
              "value": "workback"
            },
            {
              "name": "repo.path",
              "value": "/workflows"
            }
          ]
        },
        "options": {}
      },
      "id": "83157ff9-3cf3-40ba-9817-02ea72c63df1",
      "name": "Globals",
      "type": "n8n-nodes-base.set",
      "position": [
        -480,
        -340
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "resource": "file",
        "operation": "list",
        "owner": {
          "__rl": true,
          "mode": "name",
          "value": "={{$node[\"Globals\"].json[\"repo\"][\"owner\"]}}"
        },
        "repository": {
          "__rl": true,
          "mode": "name",
          "value": "={{$node[\"Globals\"].json[\"repo\"][\"name\"]}}"
        },
        "filePath": "={{ $json.repo.path }}"
      },
      "id": "72a07d39-9786-4dd2-baf9-79f70fee9deb",
      "name": "GitHub - get all files",
      "type": "n8n-nodes-base.github",
      "position": [
        -260,
        -340
      ],
      "typeVersion": 1,
      "credentials": {
        "githubOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "content": "## Import All Workflows To N8n",
        "height": 591,
        "width": 2327,
        "color": 2
      },
      "id": "030c6fa4-f655-4f7d-9cb5-5e1a3a76c82c",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -900,
        -420
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "53fcba1a-d349-4a64-9b6e-fcd6da678a1e",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        0,
        -380
      ],
      "typeVersion": 3
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "resource": "file",
        "operation": "get",
        "owner": {
          "__rl": true,
          "value": "={{ $('Globals').item.json.repo.owner }}",
          "mode": "name"
        },
        "repository": {
          "__rl": true,
          "value": "={{ $('Globals').item.json.repo.name }}",
          "mode": "name"
        },
        "filePath": "={{ $json.path }}",
        "asBinaryProperty": false,
        "additionalParameters": {}
      },
      "id": "c1480ce3-7891-47cd-8116-133a7e408954",
      "name": "GitHub - get each file1",
      "type": "n8n-nodes-base.github",
      "position": [
        240,
        -320
      ],
      "typeVersion": 1,
      "credentials": {
        "githubOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "// Paso 1: Tomar el base64\nconst base64Content = $input.first().json.content;\n\n// Paso 2: Decodificarlo\nconst decoded = Buffer.from(base64Content, 'base64').toString('utf-8');\n\n// Paso 3: Parsear el JSON\nconst fullJson = JSON.parse(decoded);\n\n// Paso 4: Limpiar settings (eliminar propiedades no v\u00e1lidas)\nconst cleanedSettings = { ...fullJson.settings };\ndelete cleanedSettings.callerPolicy;\n\n// Paso 5: Construir el workflow con propiedades v\u00e1lidas\nconst workflow = {\n  id: fullJson.id || null,            // \u2705 ID incluido\n  name: fullJson.name,\n  nodes: fullJson.nodes,\n  connections: fullJson.connections,\n  settings: cleanedSettings,\n  staticData: fullJson.staticData,\n};\n\n// Paso 6: Devolver como un solo objeto\nreturn [{ json: workflow }];\n"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        460,
        -220
      ],
      "id": "e4342b41-1889-42a4-816f-e3faf7eefe31",
      "name": "Code",
      "alwaysOutputData": true,
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://n8n.qeva.xyz/api/v1/workflows",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "accept",
              "value": "application/json"
            },
            {
              "name": "X-N8N-API-KEY",
              "value": "<redacted-credential>"
            }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "name",
              "value": "={{ $('Code').item.json.name }}"
            },
            {
              "name": "nodes",
              "value": "={{ $('Code').item.json.nodes }}"
            },
            {
              "name": "connections",
              "value": "={{ $('Code').item.json.connections }}"
            },
            {
              "name": "settings",
              "value": "={{ $('Code').item.json.settings }}"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1300,
        -180
      ],
      "id": "63b97a19-bae4-4fcc-8e98-d52142134369",
      "name": "n8n import"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "fe0e5c6c-c9e5-4e94-ac6e-1eb10c0d227e",
              "leftValue": "={{ $json.name }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        940,
        -240
      ],
      "id": "1235d84f-c9d2-4a99-b9cb-e597294d367b",
      "name": "If"
    },
    {
      "parameters": {
        "filters": {
          "name": "={{ $json.name }}"
        },
        "requestOptions": {}
      },
      "type": "n8n-nodes-base.n8n",
      "typeVersion": 1,
      "position": [
        680,
        -220
      ],
      "id": "c79323ea-1a9c-4459-9f30-9de4c6a7d1a9",
      "name": "Get many workflows",
      "alwaysOutputData": true,
      "credentials": {
        "n8nApi": {
          "name": "<your credential>"
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "operation": "delete",
        "workflowId": {
          "__rl": true,
          "value": "={{ $json.id }}",
          "mode": "id"
        },
        "requestOptions": {}
      },
      "type": "n8n-nodes-base.n8n",
      "typeVersion": 1,
      "position": [
        720,
        380
      ],
      "id": "ec22e517-026d-434b-92b0-60cc87afa0cf",
      "name": "Delete a workflow",
      "credentials": {
        "n8nApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "filters": {},
        "requestOptions": {}
      },
      "type": "n8n-nodes-base.n8n",
      "typeVersion": 1,
      "position": [
        -300,
        240
      ],
      "id": "d8c9bbc5-da7d-4cfd-aca5-3b48095f9430",
      "name": "Get many workflows1",
      "credentials": {
        "n8nApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        60,
        240
      ],
      "id": "398dce83-4725-496e-916b-ceee4f632873",
      "name": "Loop Over Items1"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "2129bcf7-7b5e-4846-8e84-184b8372fae3",
              "leftValue": "={{ $json.id }}",
              "rightValue": "3mHXoNY2YDTDVuWs",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        400,
        300
      ],
      "id": "abc7000a-896d-4e00-91a0-8e5935e48644",
      "name": "If1"
    }
  ],
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [],
  "triggerCount": 0,
  "updatedAt": "2025-06-28T04:19:21.160Z",
  "versionId": "968e225f-12b9-4324-ab48-723c6933f1ef"
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

RESTORE. Uses github, httpRequest, n8n. Event-driven trigger; 14 nodes.

Source: https://github.com/fer336/workback/blob/328a48f11b1e3d69b6c7a911b4269e5d6497480b/workflows/3mHXoNY2YDTDVuWs.json — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Web Scraping

Git Commit. Uses github, n8n, formTrigger, httpRequest. Event-driven trigger; 34 nodes.

GitHub, n8n, Form Trigger +2
Web Scraping

Remixed Backup your workflows to GitHub from Solomon's work. Check out his templates.

HTTP Request, GitHub, Execute Workflow Trigger +1
Web Scraping

This workflow provides everything you need to package and deploy multiple workflows from a single workflow you distribute.

n8n, Stop And Error, GitHub +1
Web Scraping

Say goodbye to messy JSON exports. Treat your n8n automations like real software with a built-in CI/CD pipeline.

GitHub, HTTP Request, Form Trigger +2
Web Scraping

Based on Jonathan & Solomon work.

n8n, HTTP Request, GitHub +1