Automatisation Dropbox avec n8n : gestion des fichiers en temps réel
- Ce workflow n8n a pour objectif d'automatiser la gestion des fichiers dans Dropbox, permettant ainsi aux utilisateurs de suivre et de traiter les fichiers ajoutés ou modifiés en temps réel. Dans un environnement professionnel où la collaboration et le partage de fichiers sont essentiels, cette automatisation n8n offre une solution efficace pour éviter les pertes de temps et améliorer la productivité. Les cas d'usage incluent la synchronisation de fichiers, la gestion des versions et l'archivage automatique dans une base de données, comme NocoDB.
- Le workflow débute par un déclencheur de type Webhook, qui permet de recevoir des notifications dès qu'un fichier est ajouté ou modifié dans un dossier spécifique de Dropbox. Ensuite, le flux utilise plusieurs nœuds Sticky Note pour documenter les étapes et les décisions prises tout au long du processus. Les nœuds de type Switch sont utilisés pour différencier les fichiers des dossiers, assurant ainsi un traitement approprié selon le type de contenu. Les fichiers sont ensuite récupérés et traités, avec une vérification des fichiers à exclure via NocoDB. Enfin, les nouveaux fichiers sont ajoutés à la base de données, garantissant une gestion centralisée et accessible.
- Les bénéfices business de ce workflow incluent une réduction significative des erreurs humaines, une meilleure traçabilité des fichiers et une automatisation des tâches répétitives, permettant aux équipes de se concentrer sur des activités à plus forte valeur ajoutée. En intégrant cette automatisation n8n, les entreprises peuvent améliorer leur efficacité opérationnelle et optimiser leur gestion documentaire.
Workflow n8n Dropbox, gestion de fichiers, NocoDB : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n Dropbox, gestion de fichiers, NocoDB : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"meta": {
"instanceId": "4e8285376decaea86c34202e3f6f0900c15ccf72a22e44fbb5cd9851bb3fd11f",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "971e1616-af67-4961-9ef4-4b8dd24e392c",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-660,
240
],
"webhookId": "29a6482f-36ac-4c15-8792-450aa32cf5f4",
"parameters": {
"path": "29a6482f-36ac-4c15-8792-450aa32cf5f4",
"options": {},
"httpMethod": [
"POST",
"GET"
],
"responseMode": "responseNode",
"multipleMethods": true
},
"typeVersion": 2
},
{
"id": "22d8dca1-a2fd-474e-a1cd-7f75be1c04a6",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-720,
-220
],
"parameters": {
"color": 6,
"width": 620,
"height": 920,
"content": "## Dropbox\n\nDropbox call me each time a modification is done somewhere in my dropbox."
},
"typeVersion": 1
},
{
"id": "0178e813-ae15-4729-933b-2799ec405863",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
240,
-280
],
"parameters": {
"color": 3,
"width": 840,
"height": 140,
"content": "## Watch Files, 2 ways :\n1. We explore each file in a folder (new and old ones)\n2. We want to filter new files only"
},
"typeVersion": 1
},
{
"id": "229b9a46-5d76-4cb7-b1ac-4b10a6427f66",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
240,
-80
],
"parameters": {
"width": 1040,
"height": 100,
"content": "### Way 1 - We call the subworklow for each file in the specified folder"
},
"typeVersion": 1
},
{
"id": "43a4fa3c-e378-443b-81a1-349201a85056",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
240,
200
],
"parameters": {
"color": 4,
"width": 1240,
"height": 100,
"content": "### Way 2- We filter new/old files then we call the subworkflow only for new files"
},
"typeVersion": 1
},
{
"id": "e9639a07-6672-46ee-a86e-025265e45069",
"name": "Dropbox - List watched folder",
"type": "n8n-nodes-base.dropbox",
"position": [
500,
280
],
"parameters": {
"path": "={{ $json.folder_to_watch }}",
"filters": {
"include_deleted": false,
"include_mounted_folders": false
},
"resource": "folder",
"operation": "list",
"returnAll": true,
"authentication": "oAuth2"
},
"credentials": {
"dropboxOAuth2Api": {
"id": "GocmYXzmqQnUpojt",
"name": "Dropbox BT"
}
},
"typeVersion": 1
},
{
"id": "61707418-fcbb-4b70-ab06-02b9b7060bfb",
"name": "Switch File vs Folder",
"type": "n8n-nodes-base.switch",
"position": [
700,
280
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "file",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f7fda7a2-1961-41aa-a332-f9a8be9b3bfa",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.type }}",
"rightValue": "file"
}
]
},
"renameOutput": true
},
{
"outputKey": "folder",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d8bb9414-ae11-4b8f-ad0e-6bfe0e2f1071",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.type }}",
"rightValue": "folder"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "2670d2d1-acfb-4d0b-9bde-12dbd3806976",
"name": "Switch File vs Folder1",
"type": "n8n-nodes-base.switch",
"position": [
780,
0
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "file",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f7fda7a2-1961-41aa-a332-f9a8be9b3bfa",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.type }}",
"rightValue": "file"
}
]
},
"renameOutput": true
},
{
"outputKey": "folder",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d8bb9414-ae11-4b8f-ad0e-6bfe0e2f1071",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.type }}",
"rightValue": "folder"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "8225e284-b193-4859-891e-2277b2bc004b",
"name": "NocoDB - Get know files to exclude",
"type": "n8n-nodes-base.nocoDb",
"position": [
600,
480
],
"parameters": {
"table": "m0tqa79y2sv4g0j",
"options": {
"where": "=(folder_to_watch,eq,{{ $json.folder_to_watch }})"
},
"operation": "getAll",
"projectId": "p73a23pw65qwwr4",
"returnAll": true,
"authentication": "nocoDbApiToken"
},
"credentials": {
"nocoDbApiToken": {
"id": "GW7a5UwWksviQWb7",
"name": "NocoDB cloudron"
}
},
"typeVersion": 3
},
{
"id": "0b9cb74b-ce02-4ed2-a417-084529a79977",
"name": "Merge - Keep only new items",
"type": "n8n-nodes-base.merge",
"position": [
1000,
280
],
"parameters": {
"mode": "combine",
"options": {},
"advanced": true,
"joinMode": "keepNonMatches",
"mergeByFields": {
"values": [
{
"field1": "id",
"field2": "data.id"
}
]
},
"outputDataFrom": "input1"
},
"typeVersion": 3
},
{
"id": "c1f52687-7b6e-4c69-bcce-cc9bf053c62f",
"name": "Just a quick answer to Dropbox - webhook validation",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
-400,
520
],
"parameters": {
"options": {},
"respondWith": "text",
"responseBody": "={{ $json.query.challenge }}"
},
"typeVersion": 1.1
},
{
"id": "42c84256-cbce-46d6-ab5a-01b1ef0715b0",
"name": "Respond to Dropbox in less than 10sec",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
-400,
0
],
"parameters": {
"options": {},
"respondWith": "text",
"responseBody": "={{ $json.query.challenge }}"
},
"typeVersion": 1.1
},
{
"id": "bb45006e-f12e-4b9d-99fa-ec5003f1c141",
"name": "Dropbox get files",
"type": "n8n-nodes-base.dropbox",
"position": [
500,
0
],
"parameters": {
"path": "={{ $json.folder_to_watch }}",
"filters": {
"include_deleted": false,
"include_mounted_folders": false
},
"resource": "folder",
"operation": "list",
"returnAll": true,
"authentication": "oAuth2"
},
"credentials": {
"dropboxOAuth2Api": {
"id": "GocmYXzmqQnUpojt",
"name": "Dropbox BT"
}
},
"typeVersion": 1
},
{
"id": "b4f8c38c-c674-488d-8c9a-f68e42c702cf",
"name": "NocoDB - Add this file in the table",
"type": "n8n-nodes-base.nocoDb",
"position": [
1200,
280
],
"parameters": {
"table": "m0tqa79y2sv4g0j",
"fieldsUi": {
"fieldValues": [
{
"fieldName": "folder_to_watch",
"fieldValue": "={{ $('set_folder to watch B').item.json.folder_to_watch }}"
},
{
"fieldName": "data",
"fieldValue": "={\n\"id\":\"{{ $json.id }}\",\n\"name\":\"{{ $json.name }}\",\n\"lastModifiedClient\": \"{{ $json.lastModifiedClient }}\",\n\"lastModifiedServer\": \"{{ $json.lastModifiedServer }}\",\n\"rev\": \"{{ $json.rev }}\",\n\"contentSize\": {{ $json.contentSize }},\n\"type\": \"{{ $json.type }}\",\n\"contentHash\": \"{{ $json.contentHash }}\",\n\"pathLower\": \"{{ $json.pathLower }}\",\n\"pathDisplay\": \"{{ $json.pathDisplay }}\",\n\"isDownloadable\": {{ $json.isDownloadable }}\n}"
},
{
"fieldName": "file_id",
"fieldValue": "={{ $json.id }}"
}
]
},
"operation": "create",
"projectId": "p73a23pw65qwwr4",
"authentication": "nocoDbApiToken"
},
"credentials": {
"nocoDbApiToken": {
"id": "GW7a5UwWksviQWb7",
"name": "NocoDB cloudron"
}
},
"typeVersion": 3
},
{
"id": "9d6d2d96-f16f-408d-bc35-0e17da4d4e6d",
"name": "set_folder A",
"type": "n8n-nodes-base.set",
"position": [
260,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "8416f15a-a6a2-47d2-8c15-e1742b323a8f",
"name": "folder_to_watch",
"type": "string",
"value": "/z_Apps/a_iphone/RecUp Memos/"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "aaa1ef55-10ef-4d8f-ae71-d317930229bc",
"name": "set_folder to watch B",
"type": "n8n-nodes-base.set",
"position": [
280,
280
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "8416f15a-a6a2-47d2-8c15-e1742b323a8f",
"name": "folder_to_watch",
"type": "string",
"value": "/z_Apps/auphonic/whisper"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "770b7f54-e85e-4d62-ab2a-60c9a73411e3",
"name": "Execute Workflow - what i want to do for this folder/file A",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
1040,
-20
],
"parameters": {
"mode": "each",
"options": {
"waitForSubWorkflow": false
},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "PRxsqnbMoqY6avr6",
"cachedResultName": "02 JE TRANSMETS > Dropbox RecUp Memos - transcription audio - 2025-01 v1"
},
"workflowInputs": {
"value": {},
"schema": [],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.2
},
{
"id": "d9230834-13b4-420f-9e9a-154176803a66",
"name": "Execute Workflow - Something to do for new files",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
1400,
280
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "NzETudhVA1JruLCl",
"cachedResultName": "210 PODCAST > Dropbox txt - Pré rédige épisode avec transcription - 2025-03 v2"
},
"workflowInputs": {
"value": {},
"schema": [],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.2
},
{
"id": "68d02221-861c-41d6-afe3-3757b272746f",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
120
],
"parameters": {
"color": 2,
"height": 80,
"content": "I duplicate those processes for each folder i want to watch"
},
"typeVersion": 1
},
{
"id": "6befd86e-9a7b-442e-abb2-e1ed535f5166",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
180,
460
],
"parameters": {
"color": 2,
"content": "I define in a \"variable\" the folder to watch to ease the next steps"
},
"typeVersion": 1
}
],
"pinData": {
"set_folder A": [
{
"folder_to_watch": "/z_Apps/a_iphone/RecUp Memos/"
}
],
"Dropbox get files": [
{
"id": "id:m50XjFjkXDsAAAAAAAVw5w",
"name": "done",
"type": "folder",
"pathLower": "/z_apps/a_iphone/recup memos/done",
"pathDisplay": "/z_Apps/a_iphone/RecUp Memos/done"
},
{
"id": "id:m50XjFjkXDsAAAAAAAVxNg",
"name": "txt",
"type": "folder",
"pathLower": "/z_apps/a_iphone/recup memos/txt",
"pathDisplay": "/z_Apps/a_iphone/RecUp Memos/txt"
},
{
"id": "id:m50XjFjkXDsAAAAAAAVxNw",
"name": "notes_md",
"type": "folder",
"pathLower": "/z_apps/a_iphone/recup memos/notes_md",
"pathDisplay": "/z_Apps/a_iphone/RecUp Memos/notes_md"
},
{
"id": "id:m50XjFjkXDsAAAAAAAVxTA",
"name": "done vraiment",
"type": "folder",
"pathLower": "/z_apps/a_iphone/recup memos/done vraiment",
"pathDisplay": "/z_Apps/a_iphone/RecUp Memos/done vraiment"
},
{
"id": "id:m50XjFjkXDsAAAAAAAV1Jg",
"name": "trash",
"type": "folder",
"pathLower": "/z_apps/a_iphone/recup memos/trash",
"pathDisplay": "/z_Apps/a_iphone/RecUp Memos/trash"
},
{
"id": "id:m50XjFjkXDsAAAAAAAV1uQ",
"rev": "63104211ae04e0b4b15a2",
"name": "test DV-2025-02-04-050515.mp3",
"type": "file",
"pathLower": "/z_apps/a_iphone/recup memos/test dv-2025-02-04-050515.mp3",
"contentHash": "feb314cba10772588af3e56bdbc2a1efb693e7174794d660efed188b87ba9398",
"contentSize": 1464900,
"pathDisplay": "/z_Apps/a_iphone/RecUp Memos/test DV-2025-02-04-050515.mp3",
"isDownloadable": true,
"lastModifiedClient": "2025-02-04T04:05:17Z",
"lastModifiedServer": "2025-03-23T15:27:45Z"
}
],
"set_folder to watch B": [
{
"folder_to_watch": "/z_Apps/auphonic/whisper"
}
],
"Dropbox - List watched folder": [
{
"id": "id:lXWFwy5R52AAAAAAAAAIeA",
"rev": "631049fe37ae34f316ea3",
"name": "test btXXX - stabilité émotionnelle-final-auphonic-final-auphonic copie.txt",
"type": "file",
"pathLower": "/z_apps/auphonic/whisper/test btxxx - stabilité émotionnelle-final-auphonic-final-auphonic copie.txt",
"contentHash": "fda114fad56df672588bc1543c869863c81c7e6b843d05158cdc8d1573515587",
"contentSize": 26671,
"pathDisplay": "/z_Apps/auphonic/whisper/test btXXX - stabilité émotionnelle-final-auphonic-final-auphonic copie.txt",
"isDownloadable": true,
"lastModifiedClient": "2025-01-22T13:26:49Z",
"lastModifiedServer": "2025-03-23T16:03:12Z"
},
{
"id": "id:lXWFwy5R52AAAAAAAAAIeQ",
"rev": "63104b143779c4f316ea3",
"name": "test-nospace-normal.txt",
"type": "file",
"pathLower": "/z_apps/auphonic/whisper/test-nospace-normal.txt",
"contentHash": "fda114fad56df672588bc1543c869863c81c7e6b843d05158cdc8d1573515587",
"contentSize": 26671,
"pathDisplay": "/z_Apps/auphonic/whisper/test-nospace-normal.txt",
"isDownloadable": true,
"lastModifiedClient": "2025-01-22T13:26:49Z",
"lastModifiedServer": "2025-03-23T16:08:03Z"
}
],
"Respond to Dropbox in less than 10sec": [
{
"body": {
"delta": {
"users": [
117105590
]
},
"list_folder": {
"accounts": [
"dbid:AAA9MBwnssJK-R5bqnTuKBDTg7UMwOZb8mk"
]
}
},
"query": {},
"params": {},
"headers": {
"host": "n8n.app.businesstemple.co",
"accept": "*/*",
"x-real-ip": "34.194.118.45",
"connection": "close",
"user-agent": "DropboxWebhooks/1.0",
"content-type": "application/json",
"content-length": "108",
"accept-encoding": "gzip,deflate",
"x-forwarded-for": "34.194.118.45",
"x-forwarded-ssl": "on",
"x-forwarded-host": "n8n.app.businesstemple.co",
"x-forwarded-port": "443",
"x-forwarded-proto": "https",
"x-dropbox-signature": "339bfefa3e30feaddaa59cd7a37df9de12ccd490d7aee9b1e055d32ae7d4acee"
},
"webhookUrl": "https://n8n.app.businesstemple.co/webhook-test/dropboxbox-watch-files",
"executionMode": "test"
}
]
},
"connections": {
"Webhook": {
"main": [
[
{
"node": "Respond to Dropbox in less than 10sec",
"type": "main",
"index": 0
}
],
[
{
"node": "Just a quick answer to Dropbox - webhook validation",
"type": "main",
"index": 0
}
]
]
},
"set_folder A": {
"main": [
[
{
"node": "Dropbox get files",
"type": "main",
"index": 0
}
]
]
},
"Dropbox get files": {
"main": [
[
{
"node": "Switch File vs Folder1",
"type": "main",
"index": 0
}
]
]
},
"Switch File vs Folder": {
"main": [
[
{
"node": "Merge - Keep only new items",
"type": "main",
"index": 0
}
]
]
},
"set_folder to watch B": {
"main": [
[
{
"node": "Dropbox - List watched folder",
"type": "main",
"index": 0
},
{
"node": "NocoDB - Get know files to exclude",
"type": "main",
"index": 0
}
]
]
},
"Switch File vs Folder1": {
"main": [
[
{
"node": "Execute Workflow - what i want to do for this folder/file A",
"type": "main",
"index": 0
}
]
]
},
"Merge - Keep only new items": {
"main": [
[
{
"node": "NocoDB - Add this file in the table",
"type": "main",
"index": 0
}
]
]
},
"Dropbox - List watched folder": {
"main": [
[
{
"node": "Switch File vs Folder",
"type": "main",
"index": 0
}
]
]
},
"NocoDB - Get know files to exclude": {
"main": [
[
{
"node": "Merge - Keep only new items",
"type": "main",
"index": 1
}
]
]
},
"NocoDB - Add this file in the table": {
"main": [
[
{
"node": "Execute Workflow - Something to do for new files",
"type": "main",
"index": 0
}
]
]
},
"Respond to Dropbox in less than 10sec": {
"main": [
[
{
"node": "set_folder A",
"type": "main",
"index": 0
},
{
"node": "set_folder to watch B",
"type": "main",
"index": 0
}
]
]
}
}
}Workflow n8n Dropbox, gestion de fichiers, NocoDB : pour qui est ce workflow ?
Ce workflow s'adresse aux entreprises qui utilisent Dropbox pour le stockage et le partage de fichiers, ainsi qu'aux équipes techniques et aux responsables de la gestion documentaire. Il est conçu pour les utilisateurs ayant un niveau technique intermédiaire, souhaitant automatiser leurs processus de gestion de fichiers sans nécessiter de développement complexe.
Workflow n8n Dropbox, gestion de fichiers, NocoDB : problème résolu
Ce workflow résout le problème de la gestion manuelle des fichiers dans Dropbox, qui peut entraîner des erreurs, des pertes de temps et une mauvaise organisation. En automatisant le suivi et le traitement des fichiers, les utilisateurs peuvent éviter les doublons et s'assurer que toutes les informations sont correctement archivées. Après la mise en place de cette automatisation, les utilisateurs bénéficient d'une gestion fluide et efficace de leurs fichiers, avec une traçabilité améliorée et une réduction des risques d'erreurs.
Workflow n8n Dropbox, gestion de fichiers, NocoDB : étapes du workflow
Étape 1 : Le workflow est déclenché par un Webhook qui reçoit une notification de Dropbox lorsqu'un fichier est ajouté ou modifié.
- Étape 1 : Les fichiers sont récupérés à l'aide du nœud 'Dropbox get files', qui permet d'accéder aux nouvelles données.
- Étape 2 : Un nœud 'Switch' détermine si l'élément est un fichier ou un dossier, orientant le flux vers le traitement approprié.
- Étape 3 : Les fichiers sont ensuite vérifiés contre une liste d'exclusion dans NocoDB pour éviter les doublons.
- Étape 4 : Les nouveaux fichiers sont ajoutés à la base de données via le nœud 'NocoDB - Add this file in the table'.
- Étape 5 : Les réponses aux Webhooks sont gérées pour assurer un retour rapide à Dropbox.
Workflow n8n Dropbox, gestion de fichiers, NocoDB : guide de personnalisation
Pour personnaliser ce workflow, vous pouvez modifier l'URL du Webhook pour l'adapter à votre environnement. Il est également possible de changer le dossier surveillé dans Dropbox en ajustant le paramètre 'path' dans le nœud 'Dropbox - List watched folder'. Pour intégrer d'autres outils, vous pouvez ajouter des nœuds supplémentaires pour traiter les fichiers selon vos besoins spécifiques. Assurez-vous de configurer correctement les authentifications pour Dropbox et NocoDB afin de garantir un fonctionnement fluide. Enfin, surveillez les performances du workflow en utilisant des nœuds de journalisation pour suivre les actions effectuées.