Darmowy szablon automatyzacji

Monitoruj foldery Dropbox pod kątem nowych plików za pomocą porównania baz danych

223
27 dni temu
20
bloków

Monitorowanie folderów w Dropbox za pomocą n8n

Jak to działa

Ponieważ n8n nie posiada jeszcze węzła Dropbox do monitorowania nowych plików lub folderów, stworzyłem ten szablon automatyzacji.

Mechanizm działania:

  • Wyzwalacz przez webhook Dropbox
  • Natychmiastowa odpowiedź do Dropbox aby uniknąć wyłączenia webhooka
  • Dodawanie/duplikowanie gałęzi dla każdego monitorowanego folderu

Dwa sposoby monitorowania

Sposób 1: Każdy plik wywołuje pod-workflow

Kroki:

  1. Ustawienie zmiennej folder_to_watch wskazującej folder do monitorowania
  2. Listowanie plików w folderze
  3. Filtrowanie tylko plików (pomijanie folderów)
  4. Wywołanie specjalistycznego pod-workflow

Sposób 2: Wykrywanie tylko nowych plików

Kroki:

  1. Ustawienie zmiennej folder_to_watch
  2. Listowanie plików w folderze
  3. Pobieranie znanych plików z bazy danych (zapytanie do NocoDB)
  4. Porównanie i wykluczenie starych plików
  5. Dodanie nowych plików do bazy danych
  6. Wywołanie pod-workflow

Struktura bazy danych

Kolumny:

  • folder_to_watch
  • data (json/text)
  • timestamp
  • file_id (ID pliku z Dropbox)

Przykłady zastosowań

Ten szablon automatyzacji może być wykorzystany w wielu scenariuszach biznesowych i osobistych. Oto kilka potencjalnych zastosowań:

  • Automatyczne przetwarzanie notatek głosowych - konwersja na tekst
  • Generowanie postów na LinkedIn z transkrypcji audio
  • Dodawanie cytatów do bazy wiedzy
  • Monitorowanie folderu z fakturami i automatyczne księgowanie
  • Przetwarzanie zdjęć produktów dodanych do określonego folderu
  • Automatyczne tworzenie kopii zapasowych ważnych dokumentów
  • Powiadamianie zespołu o nowych plikach w folderze współdzielonym

Wizja rozwiązania

W n8n mamy tylko jeden główny workflow monitorujący foldery Dropbox, który:

  • Wywołuje odpowiednie pod-workflow w zależności od potrzeb
  • Posiada tyle gałęzi ile folderów jest monitorowanych
  • Umożliwia łatwe skalowanie poprzez dodawanie nowych gałęzi

   Skopiuj kod szablonu   
{"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":"## DropboxnnDropbox 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}]]}}}
    Planeta AI 2025 
    magic-wandmenu linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram