Workflow: Dropbox Manual Automate

Workflow Details

Download Workflow
{
    "id": "48",
    "name": "Workflow management",
    "nodes": [
        {
            "name": "On clicking 'execute'",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                240,
                300
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "name": "Function",
            "type": "n8n-nodes-base.function",
            "position": [
                570,
                300
            ],
            "parameters": {
                "functionCode": "\/\/console.log(items[0].json.data);\nlet data = items[0].json.data;\nitems = data.map(i => {\n\/\/  console.log({json:i});\n  return {json:i};\n});\n\/\/console.log(items);\nreturn items;"
            },
            "typeVersion": 1
        },
        {
            "name": "SplitInBatches",
            "type": "n8n-nodes-base.splitInBatches",
            "position": [
                760,
                300
            ],
            "parameters": {
                "options": [],
                "batchSize": 1
            },
            "typeVersion": 1
        },
        {
            "name": "IF",
            "type": "n8n-nodes-base.if",
            "position": [
                2090,
                570
            ],
            "parameters": {
                "conditions": {
                    "boolean": [
                        {
                            "value1": "={{$node[\"SplitInBatches\"].context[\"noItemsLeft\"]}}",
                            "value2": true
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "name": "NoOp",
            "type": "n8n-nodes-base.noOp",
            "position": [
                2270,
                550
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "name": "Airtable",
            "type": "n8n-nodes-base.airtable",
            "position": [
                1100,
                200
            ],
            "parameters": {
                "table": "Workflows",
                "operation": "list",
                "application": "<YOUR_APP_ID>",
                "additionalOptions": {
                    "fields": [],
                    "filterByFormula": "=workflowId={{$node[\"Get Workflow Details\"].json[\"data\"][\"id\"]}}"
                }
            },
            "credentials": {
                "airtableApi": "n8n management demo"
            },
            "typeVersion": 1,
            "alwaysOutputData": true
        },
        {
            "name": "Airtable1",
            "type": "n8n-nodes-base.airtable",
            "position": [
                1750,
                130
            ],
            "parameters": {
                "id": "={{$node[\"Airtable\"].json[\"id\"]}}",
                "table": "Workflows",
                "options": {
                    "typecast": true
                },
                "operation": "update",
                "application": "<YOUR_APP_ID>"
            },
            "credentials": {
                "airtableApi": "n8n management demo"
            },
            "typeVersion": 1
        },
        {
            "name": "Airtable2",
            "type": "n8n-nodes-base.airtable",
            "position": [
                1750,
                320
            ],
            "parameters": {
                "table": "Workflows",
                "options": {
                    "typecast": true
                },
                "operation": "append",
                "application": "<YOUR_APP_ID>"
            },
            "credentials": {
                "airtableApi": "n8n management demo"
            },
            "typeVersion": 1
        },
        {
            "name": "Set",
            "type": "n8n-nodes-base.set",
            "position": [
                1590,
                130
            ],
            "parameters": {
                "values": {
                    "string": [
                        {
                            "name": "workflowId",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"id\"]}}"
                        },
                        {
                            "name": "name",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"name\"]}}"
                        },
                        {
                            "name": "errorWorkflowId",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"settings\"][\"errorWorkflow\"]}}"
                        },
                        {
                            "name": "createdAt",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"createdAt\"]}}"
                        },
                        {
                            "name": "updatedAt",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"updatedAt\"]}}"
                        },
                        {
                            "name": "nodes",
                            "value": "={{$node[\"Prepare data\"].json[\"fields\"][\"nodes\"]}}"
                        },
                        {
                            "name": "timezone",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"settings\"][\"timezone\"]}}"
                        },
                        {
                            "name": "CRON_details",
                            "value": "={{$node[\"Prepare data\"].json[\"fields\"][\"CRON_details\"]}}"
                        },
                        {
                            "name": "rawData",
                            "value": "={{$node[\"Prepare data\"].json[\"fields\"][\"rawData\"]}}"
                        }
                    ],
                    "boolean": [
                        {
                            "name": "isActive",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"active\"]}}"
                        },
                        {
                            "name": "isCRON",
                            "value": "={{$node[\"Prepare data\"].json[\"fields\"][\"isCRON\"]}}"
                        },
                        {
                            "name": "saveManualExecutions",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"settings\"][\"saveManualExecutions\"]}}"
                        },
                        {
                            "name": "isTrigger",
                            "value": "={{$node[\"Prepare data\"].json[\"fields\"][\"isTrigger\"]}}"
                        }
                    ]
                },
                "options": [],
                "keepOnlySet": true
            },
            "typeVersion": 1
        },
        {
            "name": "Set1",
            "type": "n8n-nodes-base.set",
            "position": [
                1590,
                320
            ],
            "parameters": {
                "values": {
                    "string": [
                        {
                            "name": "workflowId",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"id\"]}}"
                        },
                        {
                            "name": "name",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"name\"]}}"
                        },
                        {
                            "name": "errorWorkflowId",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"settings\"][\"errorWorkflow\"]}}"
                        },
                        {
                            "name": "createdAt",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"createdAt\"]}}"
                        },
                        {
                            "name": "updatedAt",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"updatedAt\"]}}"
                        },
                        {
                            "name": "nodes",
                            "value": "={{$node[\"Prepare data1\"].json[\"fields\"][\"nodes\"]}}"
                        },
                        {
                            "name": "timezone",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"settings\"][\"timezone\"]}}"
                        },
                        {
                            "name": "CRON_details",
                            "value": "={{$node[\"Prepare data1\"].json[\"fields\"][\"CRON_details\"]}}"
                        },
                        {
                            "name": "rawData",
                            "value": "={{$node[\"Prepare data1\"].json[\"fields\"][\"rawData\"]}}"
                        }
                    ],
                    "boolean": [
                        {
                            "name": "isActive",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"active\"]}}"
                        },
                        {
                            "name": "isCRON",
                            "value": "={{$node[\"Prepare data1\"].json[\"fields\"][\"isCRON\"]}}"
                        },
                        {
                            "name": "saveManualExecutions",
                            "value": "={{$node[\"Get Workflow Details\"].json[\"data\"][\"settings\"][\"saveManualExecutions\"]}}"
                        },
                        {
                            "name": "isTrigger",
                            "value": "={{$node[\"Prepare data1\"].json[\"fields\"][\"isTrigger\"]}}"
                        }
                    ]
                },
                "options": [],
                "keepOnlySet": true
            },
            "typeVersion": 1
        },
        {
            "name": "Get All Workflows",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                410,
                300
            ],
            "parameters": {
                "url": "http:\/\/localhost:5678\/rest\/workflows",
                "options": {
                    "fullResponse": false
                },
                "headerParametersUi": {
                    "parameter": [
                        {
                            "name": "Authorization",
                            "value": "<TOKEN>"
                        }
                    ]
                },
                "allowUnauthorizedCerts": true
            },
            "typeVersion": 1
        },
        {
            "name": "Prepare data",
            "type": "n8n-nodes-base.function",
            "position": [
                1430,
                130
            ],
            "parameters": {
                "functionCode": "let data = $node[\"Get Workflow Details\"].json[\"data\"];\nlet file = $node[\"Get file link\"].json[\"link\"];\nlet nodes = new Set(data[\"nodes\"].map(i => i.type));\nlet nodes2 = [...nodes];\n\/\/console.log(...nodes);\nlet data2 = data[\"nodes\"].map(i => i.name);\nif(nodes2.includes('n8n-nodes-base.cron')){\n  console.log('Cron found!');\n\/\/  console.log(data);\n  let cron_node = data[\"nodes\"].filter(i => i.type == 'n8n-nodes-base.cron');\n  \/\/console.log(cron_node[0].parameters.triggerTimes.item);\n  items[0].json[\"fields\"][\"isCRON\"]=true;\n  items[0].json[\"fields\"][\"nodes\"]=[...nodes];\n  items[0].json[\"fields\"][\"CRON_details\"]=cron_node[0].parameters.triggerTimes.item;\n  items[0].json[\"fields\"][\"rawData\"]=[{url:file ,filename: 'workflow_'+data[\"id\"]+'__'+data[\"updatedAt\"]+'.json'}];\n} else {  \n  \/\/console.log('Cron not found!');\n  items[0].json[\"fields\"][\"isCRON\"]=false;\n  items[0].json[\"fields\"][\"nodes\"]=[...nodes];\n  items[0].json[\"fields\"][\"rawData\"]=[{url:file ,filename: 'workflow_'+data[\"id\"]+'__'+data[\"updatedAt\"]+'.json'}];\n}\nif(nodes2.some(i => {\n  let regExp = new RegExp(\/n8n-nodes-base\\.[\\w]+Trigger\/);\n  if(i=='n8n-nodes-base.webhook'){\n    return true;\n  }\n  if(regExp.test(i)){\n    return true;\n  }\n  return false;\n})){\n  items[0].json[\"fields\"][\"isTrigger\"]=true;  \n} else {\n  items[0].json[\"fields\"][\"isTrigger\"]=false;\n}\n  \n\/\/console.log(items);\nreturn items;\n"
            },
            "typeVersion": 1
        },
        {
            "name": "Prepare data1",
            "type": "n8n-nodes-base.function",
            "position": [
                1430,
                320
            ],
            "parameters": {
                "functionCode": "let data = $node[\"Get Workflow Details\"].json[\"data\"];\nlet file = $node[\"Get file link\"].json[\"link\"];\nlet nodes = new Set(data[\"nodes\"].map(i => i.type));\nlet nodes2 = [...nodes];\n\/\/console.log(data);\nlet data2 = data[\"nodes\"].map(i => i.name);\nif(nodes2.includes('n8n-nodes-base.cron')){\n  \/\/console.log('Cron found!');\n  let cron_node = data[\"nodes\"].filter(i => i.type == 'n8n-nodes-base.cron');\n  items[0].json={\n    fields:{\n      isCRON:true,\n      nodes:[...nodes],\n      CRON_details:cron_node[0].parameters.triggerTimes.item,\n      rawData:[{url:file ,filename: 'workflow_'+data[\"id\"]+'__'+data[\"updatedAt\"]+'.json'}]\n    }\n  };\n} else {  \n  \/\/console.log('Cron not found!');\n  items[0].json={\n    fields:{\n      isCRON:false,\n      nodes:[...nodes],\n      rawData:[{url:file ,filename: 'workflow_'+data[\"id\"]+'__'+data[\"updatedAt\"]+'.json'}]\n    }\n  };\n}\nif(nodes2.some(i => {\n  let regExp = new RegExp(\/n8n-nodes-base\\.[\\w]+Trigger\/);\n  if(i=='n8n-nodes-base.webhook'){\n    return true;\n  }\n  if(regExp.test(i)){\n    return true;\n  }\n  return false;\n})){\n  items[0].json[\"fields\"][\"isTrigger\"]=true;  \n} else {\n  items[0].json[\"fields\"][\"isTrigger\"]=false;\n}\n\/\/console.log(items);\nreturn items;\n\n"
            },
            "typeVersion": 1
        },
        {
            "name": "Cron",
            "type": "n8n-nodes-base.cron",
            "position": [
                250,
                510
            ],
            "parameters": {
                "triggerTimes": {
                    "item": [
                        {
                            "mode": "everyHour",
                            "minute": 15
                        },
                        {
                            "mode": "everyHour",
                            "minute": 45
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Move Binary Data",
            "type": "n8n-nodes-base.moveBinaryData",
            "position": [
                1000,
                -10
            ],
            "parameters": {
                "mode": "jsonToBinary",
                "options": {
                    "keepSource": true
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Dropbox",
            "type": "n8n-nodes-base.dropbox",
            "position": [
                1140,
                -10
            ],
            "parameters": {
                "path": "=\/workflows\/workflow_{{$node[\"Get Workflow Details\"].json[\"data\"][\"id\"]}}\/workflow_{{$node[\"Get Workflow Details\"].json[\"data\"][\"id\"]}}__{{$node[\"Get Workflow Details\"].json[\"data\"][\"updatedAt\"]}}.json",
                "binaryData": true
            },
            "credentials": {
                "dropboxApi": "My n8n backups"
            },
            "typeVersion": 1
        },
        {
            "name": "Get Workflow Details",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                840,
                -10
            ],
            "parameters": {
                "url": "=http:\/\/localhost:5678\/rest\/workflows\/{{$node[\"SplitInBatches\"].json[\"id\"]}}",
                "options": [],
                "headerParametersUi": {
                    "parameter": [
                        {
                            "name": "Authorization",
                            "value": "<TOKEN>"
                        }
                    ]
                },
                "allowUnauthorizedCerts": true
            },
            "typeVersion": 1
        },
        {
            "name": "Get file link",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                1290,
                -10
            ],
            "parameters": {
                "url": "https:\/\/api.dropboxapi.com\/2\/files\/get_temporary_link",
                "options": [],
                "requestMethod": "POST",
                "bodyParametersUi": {
                    "parameter": [
                        {
                            "name": "path",
                            "value": "={{$node[\"Dropbox\"].json[\"path_lower\"]}}"
                        }
                    ]
                },
                "headerParametersUi": {
                    "parameter": [
                        {
                            "name": "Authorization",
                            "value": "<TOKEN>"
                        }
                    ]
                }
            },
            "typeVersion": 1,
            "continueOnFail": true,
            "alwaysOutputData": true
        },
        {
            "name": "IF Airtable record exists?",
            "type": "n8n-nodes-base.if",
            "position": [
                1270,
                200
            ],
            "parameters": {
                "conditions": {
                    "boolean": [
                        {
                            "value1": "={{$node[\"Airtable\"].json[\"id\"] != \"\" && $node[\"Airtable\"].json[\"id\"] != null && $node[\"Airtable\"].json[\"id\"] != undefined}}",
                            "value2": true
                        }
                    ]
                }
            },
            "typeVersion": 1
        }
    ],
    "active": true,
    "settings": {
        "errorWorkflow": "5"
    },
    "connections": {
        "IF": {
            "main": [
                [
                    {
                        "node": "NoOp",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "SplitInBatches",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Set": {
            "main": [
                [
                    {
                        "node": "Airtable1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Cron": {
            "main": [
                [
                    {
                        "node": "Get All Workflows",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Set1": {
            "main": [
                [
                    {
                        "node": "Airtable2",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Dropbox": {
            "main": [
                [
                    {
                        "node": "Get file link",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Airtable": {
            "main": [
                [
                    {
                        "node": "IF Airtable record exists?",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Function": {
            "main": [
                [
                    {
                        "node": "SplitInBatches",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Airtable1": {
            "main": [
                [
                    {
                        "node": "IF",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Airtable2": {
            "main": [
                [
                    {
                        "node": "IF",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Prepare data": {
            "main": [
                [
                    {
                        "node": "Set",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get file link": {
            "main": [
                [
                    {
                        "node": "Airtable",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Prepare data1": {
            "main": [
                [
                    {
                        "node": "Set1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "SplitInBatches": {
            "main": [
                [
                    {
                        "node": "Get Workflow Details",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Move Binary Data": {
            "main": [
                [
                    {
                        "node": "Dropbox",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get All Workflows": {
            "main": [
                [
                    {
                        "node": "Function",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get Workflow Details": {
            "main": [
                [
                    {
                        "node": "Move Binary Data",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "On clicking 'execute'": {
            "main": [
                [
                    {
                        "node": "Get All Workflows",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "IF Airtable record exists?": {
            "main": [
                [
                    {
                        "node": "Prepare data",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Prepare data1",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

ImapEmail, XmlToJson, POST-HTTP-Request
View
Gmail GoogleSheets Create Triggered
View
Perplexity Researcher
View
Aggregate Stickynote Create Triggered
View
Automate Drive-To-Store Lead Generation System (with coupon) on SuiteCRM
View
Import multiple CSV to GoogleSheet
View
Add subscriber to form, create tag and subscriber to the tag
View
Aggregate Stickynote Create Triggered
View
HubSpot Automate Triggered
View
Manual N8N Export Triggered
View