{
  "nodes": [
    {
      "id": "38cd304e-e260-4bbd-ace1-57b5fd0e6344",
      "name": "When clicking \"Execute Workflow\"",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1300,
        360
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "087994ba-3b40-4337-b17a-e2ab4aa39963",
      "name": "Whether type is file",
      "type": "n8n-nodes-base.if",
      "position": [
        940,
        780
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.type }}",
              "value2": "file"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ab2ec609-2c7a-4976-9ce0-57f6961578e1",
      "name": "Set new path for subfolder",
      "type": "n8n-nodes-base.set",
      "position": [
        1240,
        900
      ],
      "parameters": {
        "fields": {
          "values": [
            {
              "name": "from",
              "stringValue": "={{ decodeURIComponent($json.path) }}"
            },
            {
              "name": "to",
              "stringValue": "={{ decodeURIComponent($('Set folder-paths for from and to').item.json.to + '/' + $json.path.split('/').filter(Boolean).pop() + '/') }}"
            }
          ]
        },
        "include": "none",
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "98099141-0e7f-49f0-bfc9-67eef67b13aa",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        540,
        474.3406813627256
      ],
      "parameters": {
        "width": 1861.9238476953906,
        "height": 665.3466933867735,
        "content": "## \ud558\uc704 \ud3f4\ub354\uc758 \ubaa8\ub4e0 \ud30c\uc77c \uac00\uc838\uc624\uae30\n\n\uc774 \uc6cc\ud06c\ud50c\ub85c\uc758 \uc774 \ubd80\ubd84\uc5d0\uc11c, \ud558\uc704 \ud3f4\ub354 \ub0b4\uc5d0 \uc704\uce58\ud55c \ubaa8\ub4e0 \ud30c\uc77c\uc774 \uc218\uc9d1\ub429\ub2c8\ub2e4. \uc774\uc5d0\ub294 \ud558\uc704 \ud3f4\ub354 \ub0b4\uc758 \ud558\uc704 \ud3f4\ub354 \ud0d0\uc0c9\uc774 \ud3ec\ud568\ub418\uba70, \uc804\uccb4 \ud3f4\ub354 \uad6c\uc870\uc5d0\uc11c \ubaa8\ub4e0 \ud30c\uc77c\uc758 \uc2dd\ubcc4\uc744 \ubcf4\uc7a5\ud569\ub2c8\ub2e4. \ub610\ud55c, \uc2dd\ubcc4\ub41c \uac01 \ud558\uc704 \ud3f4\ub354\uc5d0 \ub300\ud574 \ubaa9\uc801\uc9c0 \uad6c\uc870\uc5d0 \ud574\ub2f9 \ud3f4\ub354\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "8284d632-f0a0-437e-9f75-6995c72400c2",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2440,
        478.85370741482984
      ],
      "parameters": {
        "width": 695.2464929859717,
        "height": 660.1721006751914,
        "content": "## \ud30c\uc77c \ubcf4\uac15\n\uc774 \uc6cc\ud06c\ud50c\ub85c\uc758 \ub2e8\uacc4\uc5d0\uc11c, \ubaa8\ub4e0 \uc2dd\ubcc4\ub41c \ud30c\uc77c\uc774 \ucc98\ub9ac\ub418\uc5b4 \ub300\uc0c1 \uad6c\uc870 \ub0b4\uc758 \uc62c\ubc14\ub978 \uacbd\ub85c\ub85c \ubcf4\uac15\ub429\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "f8b151e4-f9c9-474c-94f3-1c0d340d8e36",
      "name": "Set new path for file",
      "type": "n8n-nodes-base.code",
      "position": [
        2900,
        860
      ],
      "parameters": {
        "jsCode": "for (const item of $input.all()) {\n  const toPath = $('Set folder-paths for from and to').item.json.to;\n  const fromPath = $('Set folder-paths for from and to').item.json.from;\n\n   // Remove leading and trailing slashes\n  path = fromPath.replace(/^\\/|\\/$/g, '');\n  // Split the path into an array of folders\n  const folders = path.split('/');\n  // Remove empty strings (resulting from leading, trailing, or consecutive slashes)\n  const nonEmptyFoldersCount = folders.filter(folder => folder !== '').length;\n\n  newFilePathArray = item.json.path.replace(/^\\/|\\/$/g, '').split('/');\n  \n  item.json.newPath = toPath.replace(/^\\/|\\/$/g, '') + '/' + newFilePathArray.slice(nonEmptyFoldersCount).join(\"/\")\n}\n\nreturn $input.all();"
      },
      "typeVersion": 2
    },
    {
      "id": "638426c9-c736-4ba9-91a2-383049f15ee5",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3180,
        480
      ],
      "parameters": {
        "width": 695.2464929859717,
        "height": 658.7966837968969,
        "content": "## \ud30c\uc77c \uc774\ub3d9  \n\uc774 \uc6cc\ud06c\ud50c\ub85c\uc758 \uc774 \ub2e8\uacc4\uc5d0\uc11c \ud30c\uc77c\ub4e4\uc740 \ubaa9\uc801\uc9c0 \uad6c\uc870\ub85c \uc774\ub3d9\ub429\ub2c8\ub2e4.  \n\nLoop Over \ub178\ub4dc\uc5d0\uc11c \ubc30\uce58 \ud06c\uae30\uac00 1\ub85c \uc720\uc9c0\ub418\uba74, \uac01 \ud30c\uc77c\uc774 \uc21c\ucc28\uc801\uc73c\ub85c \uc774\ub3d9\ub429\ub2c8\ub2e4. \ubc30\uce58 \ud06c\uae30\uac00 \uc99d\uac00\ub418\uba74, \uc5ec\ub7ec \ud30c\uc77c\uc774 \ub3d9\uc2dc\uc5d0 \uc774\ub3d9\ub429\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "96d83360-21ed-49f1-b273-47ee609f52fa",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3920,
        480
      ],
      "parameters": {
        "width": 695.2464929859717,
        "height": 658.7966837968969,
        "content": "## (\uc120\ud0dd\uc0ac\ud56d) from-\ud3f4\ub354 \uc0ad\uc81c"
      },
      "typeVersion": 1
    },
    {
      "id": "cd5dbcf2-378e-4102-9db2-0627c829e2f2",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        480
      ],
      "parameters": {
        "width": 871.7450543093198,
        "height": 665.3466933867735,
        "content": "## \uc774\ub3d9\ud560 \ud30c\uc77c\uacfc \ud558\uc704 \ud3f4\ub354 \uac00\uc838\uc624\uae30\n\uc774 \uc6cc\ud06c\ud50c\ub85c\uc758 \uc774 \ubd80\ubd84\uc5d0\uc11c, \uc774\ub3d9\ud560 \ubaa8\ub4e0 \ud30c\uc77c\uacfc \ud558\uc704 \ud3f4\ub354\uac00 \uc218\uc9d1\ub429\ub2c8\ub2e4. \ub610\ud55c, \ubaa9\uc801\uc9c0 \ud3f4\ub354\uac00 \uc774\ubbf8 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub294 \uacbd\uc6b0 \uc0dd\uc131\ub429\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "91894912-7f54-447b-947b-4040fc92f094",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1340,
        60
      ],
      "parameters": {
        "width": 723.2756594453772,
        "height": 463.596247600301,
        "content": "## \uc218\ub3d9 \uc2dc\uc791  \n\uc6cc\ud06c\ud50c\ub85c\ub97c \uc218\ub3d9\uc73c\ub85c \uc2dc\uc791\ud558\uae30 \uc704\ud574, Set Paths \ub178\ub4dc\ub294 \uc774\ub3d9\ud560 \ud3f4\ub354 \uacbd\ub85c\uc640 \ubaa9\uc801\uc9c0 \ud3f4\ub354 \uacbd\ub85c\uc758 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. \uc11c\ube0c\ud3f4\ub354\ub294 '/'\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud45c\uc2dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \n\n\uc6cc\ud06c\ud50c\ub85c\ub97c \uc2dc\uc791\ud558\uae30 \uc804\uc5d0 \ub2e4\ub978 \uc6cc\ud06c\ud50c\ub85c \ud2b8\ub9ac\uac70\ub97c \ube44\ud65c\uc131\ud654\ud558\uc138\uc694."
      },
      "typeVersion": 1
    },
    {
      "id": "c1e7754f-6efa-4967-9b8d-6c1bcdb55355",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "disabled": true,
      "position": [
        -1320,
        880
      ],
      "parameters": {
        "path": "285b2cba-587b-4131-82a8-cdd35a8d49e1",
        "options": {},
        "httpMethod": "POST",
        "responseData": "noData",
        "responseMode": "lastNode"
      },
      "typeVersion": 1
    },
    {
      "id": "cb3e0c28-afa4-4847-b95e-5c7523f18df6",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1340,
        580
      ],
      "parameters": {
        "width": 723.2756594453772,
        "height": 500.9028666051119,
        "content": "## \uc6f9\ud6c5 \ud2b8\ub9ac\uac70\n\uc6f9\ud6c5\uc744 \uad6c\uc131\ud558\uc5ec \uc6cc\ud06c\ud50c\ub85c\ub97c \ud2b8\ub9ac\uac70\ud558\ub3c4\ub85d \uc790\ub3d9\ud654\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uac01 \uc694\uccad\uc774 JSON \ubcf8\ubb38\uc5d0 \ucd5c\uc18c\ud55c 'from-path'\uc640 'to-path' \ub450 \uc18d\uc131\uc774 \uc124\uc815\ub418\uc5b4 \uc788\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4. \uc5ec\uae30 \uc608\uc2dc\uc785\ub2c8\ub2e4:\n\n```\n{\n \"from\": \"Folder/to/move\",\n \"to\": \"New-Folder\"\n}\n```\n\n\uc694\uccad\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc73c\uba74 \uc6cc\ud06c\ud50c\ub85c\uac00 \uc624\ub958\ub85c \uc751\ub2f5\ud560 \uac83\uc785\ub2c8\ub2e4.\n\n\uc6cc\ud06c\ud50c\ub85c\ub97c \uc2dc\uc791\ud558\uae30 \uc804\uc5d0 \ub2e4\ub978 \uc6cc\ud06c\ud50c\ub85c \ud2b8\ub9ac\uac70\ub97c \ube44\ud65c\uc131\ud654\ud558\uc138\uc694."
      },
      "typeVersion": 1
    },
    {
      "id": "3c85f4a4-28b3-4315-b689-033e4af3f888",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1340,
        1140
      ],
      "parameters": {
        "width": 723.2756594453772,
        "height": 498.6039613328509,
        "content": "## \ub2e4\ub978 \uc6cc\ud06c\ud50c\ub85c\uc6b0\uc5d0 \uc758\ud574 \ud2b8\ub9ac\uac70\n\ub610\ud55c \ub2e4\ub978 \uc6cc\ud06c\ud50c\ub85c\uc6b0 \ub0b4\uc5d0\uc11c \uc774 \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub97c \uc2dc\uc791\ud558\ub294 \uac83\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4. \uc774 \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub97c \uc2dc\uc791\ud560 \ub54c \uc801\uc5b4\ub3c4 'from-path'\uc640 'to-path'\ub97c \ub9e4\uac1c\ubcc0\uc218\ub85c \uc804\ub2ec\ud558\ub294 \uac83\uc744 \ud655\uc778\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4.\n\n\uc694\uccad\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc73c\uba74 \uc6cc\ud06c\ud50c\ub85c\uc6b0\uac00 \uc624\ub958\ub85c \uc751\ub2f5\ud560 \uac83\uc785\ub2c8\ub2e4.\n\n\uc6cc\ud06c\ud50c\ub85c\uc6b0\ub97c \uc2dc\uc791\ud558\uae30 \uc804\uc5d0 \ub2e4\ub978 \uc6cc\ud06c\ud50c\ub85c\uc6b0 \ud2b8\ub9ac\uac70\ub97c \ube44\ud65c\uc131\ud654\ud558\ub294 \uac83\uc744 \ud655\uc778\ud558\uc138\uc694."
      },
      "typeVersion": 1
    },
    {
      "id": "88e63d18-7c68-4d4f-bfe6-5780115d3ed0",
      "name": "Execute Workflow Trigger",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "disabled": true,
      "position": [
        -1320,
        1440
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "82d7182e-3aca-4407-8faa-3704429974dc",
      "name": "Set folder-paths for from and to",
      "type": "n8n-nodes-base.set",
      "position": [
        -280,
        880
      ],
      "parameters": {
        "fields": {
          "values": [
            {
              "name": "from",
              "stringValue": "={{ $json.from }}"
            },
            {
              "name": "to",
              "stringValue": "={{ $json.to }}"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "e9edad54-d5f2-481e-b5be-b43a15b74233",
      "name": "Create to folder if necessary",
      "type": "n8n-nodes-base.nextCloud",
      "onError": "continueRegularOutput",
      "position": [
        -40,
        880
      ],
      "parameters": {
        "path": "={{ $json.to }}",
        "resource": "folder"
      },
      "credentials": {
        "nextCloudApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4283f069-ea26-499d-928c-5f0f3898cdc4",
      "name": "Get all folders/files in from-folder",
      "type": "n8n-nodes-base.nextCloud",
      "position": [
        240,
        880
      ],
      "parameters": {
        "path": "={{ $('Set folder-paths for from and to').item.json.from }}",
        "resource": "folder",
        "operation": "list"
      },
      "credentials": {
        "nextCloudApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "06c77d03-d79b-4435-9f7f-eef919b7b6af",
      "name": "Loop over files and folders",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        660,
        880
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "56cc28ea-d934-4d9c-9e28-968c2e1fa4da",
      "name": "Consolidate all files and folders found",
      "type": "n8n-nodes-base.noOp",
      "position": [
        2000,
        760
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "57883a8f-7989-4706-808a-595376ebaf47",
      "name": "Create subfolder in to-folder",
      "type": "n8n-nodes-base.nextCloud",
      "onError": "continueRegularOutput",
      "position": [
        1440,
        900
      ],
      "parameters": {
        "path": "={{$('Set new path for subfolder').item.json.to }}",
        "resource": "folder"
      },
      "credentials": {
        "nextCloudApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0a173b88-53c5-44b1-ae04-f68b343025ce",
      "name": "Get all folders/files in found subfolder",
      "type": "n8n-nodes-base.nextCloud",
      "position": [
        1680,
        900
      ],
      "parameters": {
        "path": "={{$('Set new path for subfolder').item.json.from }}",
        "resource": "folder",
        "operation": "list"
      },
      "credentials": {
        "nextCloudApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3c17b67c-e815-4e27-9b63-19346cb8b966",
      "name": "Whether there is are more files or subfolders found",
      "type": "n8n-nodes-base.if",
      "position": [
        2200,
        880
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{$node[\"Loop over files and folders\"].context[\"noItemsLeft\"]}}",
              "value2": true
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "94c4e926-eb92-4b10-8d35-2b3483cc4819",
      "name": "Consolidate all found files",
      "type": "n8n-nodes-base.code",
      "position": [
        2580,
        860
      ],
      "parameters": {
        "jsCode": "let results = [],\n  i = 0;\n\ndo {\n  try {\n    results = results.concat($(\"Consolidate all files and folders found\").all(0, i));\n  } catch (error) {\n    return results;\n  }\n  i++;\n} while (true);"
      },
      "typeVersion": 2
    },
    {
      "id": "b40e30ff-793c-46e6-b5a0-5498ee27a3c9",
      "name": "Loop Over all files",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        3300,
        860
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "034c66f7-c184-438d-96de-1d20f8f7adc5",
      "name": "Move file to destination",
      "type": "n8n-nodes-base.nextCloud",
      "position": [
        3660,
        940
      ],
      "parameters": {
        "path": "={{ decodeURIComponent($json.path) }}",
        "toPath": "={{ decodeURIComponent($json.newPath) }}",
        "operation": "move"
      },
      "credentials": {
        "nextCloudApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "34c8521f-cb17-479f-842b-38cbb5970403",
      "name": "Delete from-folder",
      "type": "n8n-nodes-base.nextCloud",
      "onError": "continueRegularOutput",
      "position": [
        4200,
        840
      ],
      "parameters": {
        "path": "={{ $('Set folder-paths for from and to').item.json.from }}",
        "resource": "folder",
        "operation": "delete"
      },
      "credentials": {
        "nextCloudApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "eeda26a3-f5e6-4e6d-aeca-ebe2dbc2cb9e",
      "name": "Set paths",
      "type": "n8n-nodes-base.set",
      "position": [
        -780,
        360
      ],
      "parameters": {
        "fields": {
          "values": [
            {
              "name": "from",
              "stringValue": "Old-Folder"
            },
            {
              "name": "to",
              "stringValue": "Destination"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "ba2e352a-4911-470b-a3bb-f63e3470e228",
      "name": "Whether the request is valid",
      "type": "n8n-nodes-base.if",
      "position": [
        -1100,
        880
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $json.hasOwnProperty('body') && $json.body.hasOwnProperty('to') && $json.body.hasOwnProperty('from')}}",
              "value2": true
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ed4ddbf1-becf-4944-abd4-0b4cdf6d3b85",
      "name": "Stop and Error: request not valid",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        -760,
        920
      ],
      "parameters": {
        "errorMessage": "The Request is not valid!"
      },
      "typeVersion": 1
    },
    {
      "id": "2b5d67ac-983b-486d-99f1-e05995383878",
      "name": "Whether the request is valid1",
      "type": "n8n-nodes-base.if",
      "position": [
        -1120,
        1440
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $json.hasOwnProperty('to') && $json.hasOwnProperty('from')}}",
              "value2": true
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b57309cf-2a69-4879-a7d4-5499f8278e3b",
      "name": "Stop and Error: request not valid1",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        -760,
        1480
      ],
      "parameters": {
        "errorMessage": "The Request is not valid!"
      },
      "typeVersion": 1
    },
    {
      "id": "f109308f-0b48-4395-9f2d-c8b4e8d936d2",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2440,
        60
      ],
      "parameters": {
        "width": 770.5015081009478,
        "height": 1247.9320267653952,
        "content": "# \ud15c\ud50c\ub9bf \uc124\uba85\n\n\n## \uc124\uba85:\n\uc774 \ud15c\ud50c\ub9bf\uc740 Nextcloud \uc778\uc2a4\ud134\uc2a4 \ub0b4\uc5d0\uc11c \ud3f4\ub354\uc640 \uadf8 \uc548\uc5d0 \uc788\ub294 \ubaa8\ub4e0 \ud30c\uc77c \ubc0f \ud558\uc704 \ud3f4\ub354\ub97c \uc774\ub3d9\ud558\ub294 \uac83\uc744 \ub3d5\uc2b5\ub2c8\ub2e4. Nextcloud \uc0ac\uc6a9\uc790\ub294 \uc18c\uc2a4 \ud3f4\ub354\uc640 \ub300\uc0c1 \ud3f4\ub354\uc5d0 \ubaa8\ub450 \uc811\uadfc\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. Nextcloud\ub294 \ud3f4\ub354 \uc774\ub3d9\uc744 \ud5c8\uc6a9\ud558\uc9c0\ub9cc, \uc18d\ub3c4 \uc81c\ud55c\uc774 \uc788\ub294 \uc678\ubd80 \uc2a4\ud1a0\ub9ac\uc9c0\uc640 \uad00\ub828\ub41c \uacbd\uc6b0 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc6cc\ud06c\ud50c\ub85c\ub294 \uac01 \ud30c\uc77c\uc744 \uac1c\ubcc4\uc801\uc73c\ub85c \uc774\ub3d9\ud558\uc5ec \uc18d\ub3c4 \uc81c\ud55c\uc744 \ucd08\uacfc\ud558\uc9c0 \uc54a\ub3c4\ub85d \ud558\uba70, \ud2b9\ud788 \uc18d\ub3c4 \uc81c\ud55c\uc774 \uc788\ub294 \uc678\ubd80 \uc2a4\ud1a0\ub9ac\uc9c0 \uc124\uc815\uc5d0 \uc720\uc6a9\ud569\ub2c8\ub2e4.\n\n## \uc791\ub3d9 \uc6d0\ub9ac:\n\n- \uc9c0\uc815\ub41c \uc18c\uc2a4 \ud3f4\ub354 \ub0b4\uc758 \ubaa8\ub4e0 \ud30c\uc77c\uacfc \ud558\uc704 \ud3f4\ub354\ub97c \uc2dd\ubcc4\ud569\ub2c8\ub2e4.\n- \ud558\uc704 \ud3f4\ub354 \ub0b4\uc5d0\uc11c \ucd94\uac00 \ud30c\uc77c\uc744 \uc7ac\uadc0\uc801\uc73c\ub85c \uac80\uc0c9\ud569\ub2c8\ub2e4.\n- \ub300\uc0c1 \ud3f4\ub354\uc5d0 \ud3f4\ub354 \uad6c\uc870\ub97c \ubcf5\uc81c\ud569\ub2c8\ub2e4.\n- \uc2dd\ubcc4\ub41c \uac01 \ud30c\uc77c\uc744 \ub300\uc0c1 \ud3f4\ub354\uc758 \ud574\ub2f9 \uc704\uce58\ub85c \uac1c\ubcc4\uc801\uc73c\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4.\n\n## \uc124\uc815 \ub2e8\uacc4:\n\n- \ud504\ub85c\uc138\uc2a4\uc5d0 \ucc38\uc5ec\ud558\ub294 \ubaa8\ub4e0 Nextcloud \ub178\ub4dc\uc5d0 Nextcloud \uc790\uaca9 \uc99d\uba85\uc744 \uc124\uc815\ud569\ub2c8\ub2e4.\n- \ud2b8\ub9ac\uac70 \uc124\uc815\uc744 \ud3b8\uc9d1\ud569\ub2c8\ub2e4. \uc790\uc138\ud55c \uc9c0\uce68\uc740 \ud574\ub2f9 \ud2b8\ub9ac\uac70 \uad6c\uc131 \ub0b4\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.\n- \uc6cc\ud06c\ud50c\ub85c\ub97c \uc2dc\uc791\ud558\uc5ec \ud3f4\ub354 \uc774\ub3d9 \ud504\ub85c\uc138\uc2a4\ub97c \uc9c4\ud589\ud569\ub2c8\ub2e4.\n\n\n## \ub3c4\uc6c0\n\uc774 \ud15c\ud50c\ub9bf\uc744 \uc801\uc6a9\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ud544\uc694\ud558\uc2dc\uba74 \uc5b8\uc81c\ub4e0\uc9c0 \uc5f0\ub77d \uc8fc\uc138\uc694. \uc800\uc640 \uc81c \uc11c\ube44\uc2a4\uc5d0 \ub300\ud55c \ucd94\uac00 \uc815\ubcf4\ub97c \uc5ec\uae30\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. => https://nicokowalczyk.de/links\n\n\ub610\ud55c, \uc81c\uac00 \uc774 \uc6cc\ud06c\ud50c\ub85c\ub97c \uc124\uba85\ud558\uace0 \uc608\uc2dc\ub97c \uc81c\uacf5\ud558\ub294 \ube44\ub514\uc624\ub97c \uc81c\uc791\ud588\uc2b5\ub2c8\ub2e4. \uc774 \ube44\ub514\uc624\ub294 \uc5ec\uae30\uc5d0\uc11c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. https://youtu.be/K1kmG_Q_jRk\n\n\uac10\uc0ac\ud569\ub2c8\ub2e4.  \nNico Kowalczyk"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Whether the request is valid",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set paths": {
      "main": [
        [
          {
            "node": "Set folder-paths for from and to",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over all files": {
      "main": [
        [
          {
            "node": "Delete from-folder",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Move file to destination",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Whether type is file": {
      "main": [
        [
          {
            "node": "Consolidate all files and folders found",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set new path for subfolder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set new path for file": {
      "main": [
        [
          {
            "node": "Loop Over all files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute Workflow Trigger": {
      "main": [
        [
          {
            "node": "Whether the request is valid1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Move file to destination": {
      "main": [
        [
          {
            "node": "Loop Over all files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set new path for subfolder": {
      "main": [
        [
          {
            "node": "Create subfolder in to-folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Consolidate all found files": {
      "main": [
        [
          {
            "node": "Set new path for file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop over files and folders": {
      "main": [
        null,
        [
          {
            "node": "Whether type is file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Whether the request is valid": {
      "main": [
        [
          {
            "node": "Set folder-paths for from and to",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Stop and Error: request not valid",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create subfolder in to-folder": {
      "main": [
        [
          {
            "node": "Get all folders/files in found subfolder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create to folder if necessary": {
      "main": [
        [
          {
            "node": "Get all folders/files in from-folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Whether the request is valid1": {
      "main": [
        [
          {
            "node": "Set folder-paths for from and to",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Stop and Error: request not valid1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set folder-paths for from and to": {
      "main": [
        [
          {
            "node": "Create to folder if necessary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \"Execute Workflow\"": {
      "main": [
        [
          {
            "node": "Set paths",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get all folders/files in from-folder": {
      "main": [
        [
          {
            "node": "Loop over files and folders",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Consolidate all files and folders found": {
      "main": [
        [
          {
            "node": "Whether there is are more files or subfolders found",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get all folders/files in found subfolder": {
      "main": [
        [
          {
            "node": "Consolidate all files and folders found",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Whether there is are more files or subfolders found": {
      "main": [
        [
          {
            "node": "Consolidate all found files",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Loop over files and folders",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}