Darmowy szablon automatyzacji

Ładowanie i agregowanie plików z folderu Google Drive do słownika klucz-wartość

253
26 dni temu
8
bloków


Opis funkcjonalności

Ten szablon automatyzuje proces pobierania wszystkich dokumentów Google Docs z określonego folderu w Google Drive, wyodrębniania ich zawartości oraz strukturyzowania danych w ujednolicony słownik klucz-wartość, gdzie:

  • Klucz = Nazwa pliku
  • Wartość = Zawartość dokumentu (ze znormalizowanymi znakami nowej linii)

Rozwiązanie idealnie nadaje się do zastosowań takich jak przygotowanie kontekstu dla promptów, uzupełnianie systemów RAG (Retrieval-Augmented Generation) lub przetwarzanie wiedzy.

Przykłady zastosowań

Ten szablon automatyzacji jest szczególnie przydatny dla zespołów lub osób, które przechowują materiały referencyjne, prompty lub treści w Google Docs i chcą dynamicznie integrować te dane z automatyzacjami lub workflow AI. Oto kilka praktycznych zastosowań:

  • Zarządzanie promptami dla workflow AI
  • Ładowanie bazy wiedzy dla systemów RAG
  • Dynamiczne generowanie formularzy lub zestawów pytań
  • Konfiguracja specyficzna dla klienta lub szablony skryptów
  • Przetwarzanie treści do tłumaczeń, podsumowań lub analizy sentymentu
  • Import dokumentów do bazy danych
  • Automatyzacja generowania dokumentów dla klientów

Działanie workflow

  • ⚡ Wyzwalany przez Execute Workflow Trigger z innego workflow
  • 📁 Pobiera wszystkie pliki z określonego folderu w Google Drive
  • 📄 Pobiera pełną zawartość każdego pliku Google Docs
  • 🧩 Mapuje nazwę każdego pliku do jego zawartości przy użyciu węzła Set
  • 🧠 Agreguje wszystkie wpisy w jeden słownik przy użyciu węzła Code
  • 🧾 Zwraca obiekt JSON w formacie:
    {
      "Doc1": "zawartość dokumentu 1",
      "Doc2": "zawartość dokumentu 2"
    }

Wykorzystywane aplikacje i usługi

  • Google Drive
  • Google Docs
  • Węzeł Code w n8n

Wymagania wstępne

  • Podłączone konto Google z dostępem do docelowego folderu w Drive
  • Dane uwierzytelniające OAuth2 dla:
    • Google Drive
    • Google Docs

Porady dotyczące dostosowywania

  • Zmiana folderu: Zaktualizuj węzeł Google Drive, aby wybrać konkretny folder zamiast głównego
  • Obsługa innych typów plików: Zamień lub uzupełnij węzeł Google Docs, aby obsługiwał inne formaty (np. PDF lub pliki tekstowe)
  • Czyszczenie danych: Zmodyfikuj węzeł Code, aby dostosować normalizację tekstu do swoich potrzeb


   Skopiuj kod szablonu   
{"name":"Google Drive Files Loader","nodes":[{"id":"3d066626-a87d-4e7b-bc16-9f47e1277dde","name":"When Executed by Another Workflow","type":"n8n-nodes-base.executeWorkflowTrigger","position":[0,0],"parameters":{"inputSource":"jsonExample","jsonExample":"{n}"},"typeVersion":1.1},{"id":"cb0e5563-1550-4121-9fd5-b1cbd9810476","name":"Code","type":"n8n-nodes-base.code","position":[960,0],"parameters":{"jsCode":"// n8n Code Nodenn// Initialize an empty object to store the aggregated resultsnconst aggregatedDict = {};nn// Get all input items passed to this nodenconst inputItems = $input.all();nn// Loop through each input itemnfor (const item of inputItems) {n // Get the JSON data from the current itemn const itemJson = item.json;nn // Check if item.json is actually an object and not null/undefinedn // Also ensure it's not an array, as we expect key-value pairsn if (itemJson && typeof itemJson === 'object' && !Array.isArray(itemJson)) {nn // Iterate over all the keys within the current item's JSON objectn for (const key of Object.keys(itemJson)) {n // Add/overwrite the key-value pair to our aggregated dictionaryn aggregatedDict[key] = itemJson[key].replaceAll(/\n+/g, "\n");n // console.log(`Adding/Updating key: ${key}`); // Optional: for debuggingn }nn } else {n // Optional: Log a warning if an item doesn't have the expected formatn console.warn(`Skipping item - 'json' property is not a valid object:`, itemJson);n }n}nn// n8n expects an array of items as output.n// We return a single item containing the final aggregated dictionary in its 'json' property.nreturn [{ json: aggregatedDict }];"},"typeVersion":2},{"id":"1b90ca95-7251-4573-9b0b-4af3622721ba","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[140,-140],"parameters":{"height":300,"content":"## Step1nDefine folder you want to search all files in."},"typeVersion":1},{"id":"d26c2f27-0095-4dd6-9aa5-94c68f58bda3","name":"Get files from folder","type":"n8n-nodes-base.googleDrive","position":[220,0],"parameters":{"filter":{"folderId":{"mode":"list","value":"root","cachedResultName":"/ (Root folder)"}},"options":{},"resource":"fileFolder"},"credentials":{"googleDriveOAuth2Api":{"id":"Ng83G9mU8KtY3wu6","name":"Google Drive account"}},"typeVersion":3},{"id":"938c8f7c-84b1-4eeb-a7c8-894ae5fbc275","name":"Download Google Docs","type":"n8n-nodes-base.googleDocs","position":[500,0],"parameters":{"operation":"get","documentURL":"={{ $json.id }}"},"credentials":{"googleDocsOAuth2Api":{"id":"bbAywBJpCuYeRX89","name":"Google Docs account"}},"typeVersion":2},{"id":"caa075a2-2e85-47e5-a829-425a1177e5be","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[420,-140],"parameters":{"height":300,"content":"## Step2nIf you have files other than google docs change node here."},"typeVersion":1},{"id":"05db5439-584e-40aa-9c1d-101618f66fdc","name":"Mapping","type":"n8n-nodes-base.set","position":[780,0],"parameters":{"options":{},"assignments":{"assignments":[{"id":"b33e9355-659a-4b71-ba5c-00c90b7ed792","name":"={{ $('Get files from folder').item.json.name }}","type":"string","value":"={{ $json.content }}"}]}},"typeVersion":3.4},{"id":"85dc7e65-7d50-4b13-b114-88b4020865e8","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[720,-140],"parameters":{"color":3,"width":400,"height":300,"content":"## MappingnThis mapping part will output a dictionary with key:value where key if file name and value is file content"},"typeVersion":1}],"pinData":{},"connections":{"Mapping":{"main":[[{"node":"Code","type":"main","index":0}]]},"Download Google Docs":{"main":[[{"node":"Mapping","type":"main","index":0}]]},"Get files from folder":{"main":[[{"node":"Download Google Docs","type":"main","index":0}]]},"When Executed by Another Workflow":{"main":[[{"node":"Get files from folder","type":"main","index":0}]]}}}
  • cpde
  • Javascript
  • JS
  • Python
  • Script
  • Custom Code
  • Function
Planeta AI 2025 
magic-wandmenu linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram