Monitor Dropbox Folders for New Files with DB Comparison

Go to Workflow
892 views
Built by David Levesque David Levesque
Created on June 16, 2026

Description

Here's the corrected English text:

Dropbox Folder Monitoring Workflow

As we don't have (yet?) a Dropbox node "Watching new files" or "Watching folder", I created this central workflow to do it.

How it works
Triggered by Dropbox webhook
I respond immediately to Dropbox to avoid webhook disabling
Then I add/duplicate one branch per monitored folder, according to my needs

In my case, I need to monitor several folders, like "vocal notes to process", "transcriptions to LinkedIn posts" or "quotes to add".

This workflow shows 2 types of folder monitoring:
Way #1: Each file in the monitored folder calls a sub-workflow
Way #2: We get all files from the monitored folder and compare them to a database. If the file is not listed in DB, i supposed it's new one.

Way #1 - We get all files from the monitored folder
I set a variable folder_to_watch to indicate which folder to monitor. This step is here just to be homogeneous and allow setting the folder path only once in this branch.
I list the folder files
We keep only files (exclude folders)
Then I call the specialized sub-workflow

Way #2 - We want only new files from the monitored folder
I set a variable folder_to_watch to indicate which folder to monitor
I list the folder files and keep only files
Meanwhile, I query my DB to get known files about this folder (I send the query to NocoDB (folder_to_watch,eq,{{ $json.folder_to_watch }}))
Now I can exclude old files and keep only new ones by merging (I compare from Dropbox file id - as the file could be renamed by the user)
I add the new file in DB to be sure to recognize it next time - I save the JSON Dropbox data:
{
"id":"{{ $json.id }}",
"name":"{{ $json.name }}",
"lastModifiedClient": "{{ $json.lastModifiedClient }}",
"lastModifiedServer": "{{ $json.lastModifiedServer }}",
"rev": "{{ $json.rev }}",
"contentSize": {{ $json.contentSize }},
"type": "{{ $json.type }}",
"contentHash": "{{ $json.contentHash }}",
"pathLower": "{{ $json.pathLower }}",
"pathDisplay": "{{ $json.pathDisplay }}",
"isDownloadable": {{ $json.isDownloadable }}
}
And now I can call my sub-workflow :)

My DB
Columns details:
folder_to_watch
data (json/text)
timestamp
file_id (Dropbox file ID, to ease future searches)

My vision:
I have only one workflow in my n8n that monitors Dropbox folders/files
This workflow calls the required sub-workflow specialized for the tasks required
I will have as many branches as I have folders to monitor (if I have 5 different folders to watch, I will get 5 branches and 5 sub-workflows)

Nodes Used (2)

Dropbox
n8n-nodes-base.dropbox
NocoDB
n8n-nodes-base.nocoDb