Guide

Leggere File Locali con n8n: Guida Rapida e Operativa per Marketer

Leggere file locali n8n è uno dei modi più rapidi per portare nel tuo workflow dati “del mondo reale” come CSV, Excel o PDF presenti sul tuo computer o sul server dove gira n8n. Per un marketer, significa sbloccare automazioni come import massivi di lead, arricchimento dati da esportazioni CRM, generazione di report su file e distribuzione su Slack o email. In questa guida pratica scoprirai come leggere e scrivere file da disco con n8n in modo affidabile, come configurare il trigger su file locali n8n per monitorare cartelle, e come gestire correttamente percorsi host e container in n8n Docker. Ti mostrerò i nodi, i parametri e le opzioni esatte da usare, oltre a strategie per evitare errori comuni su permessi e path.

📚 Nuovo a n8n? Parti dalla guida completa: cos’è n8n e come funziona.

Cosa imparerai:

  • Il nodo corretto per leggere/scrivere file, con parametri e best practice.
  • Come montare volumi per accesso ai file in n8n e usare il path giusto nel container.
  • Come convertire un file binario in dati JSON lavorabili (CSV/ODS/PDF) e viceversa.
  • Un mini caso d’uso end-to-end pensato per marketer.

Pronto a portare nel tuo workflow i file che già usi ogni giorno? Iniziamo.

Panoramica rapida: i nodi giusti per leggere/scrivere file locali

Per come leggere file da disco con n8n, il nodo di riferimento è “Read/Write Files from Disk” (self-hosted soltanto, non disponibile su n8n Cloud). Questo nodo gestisce sia la lettura che la scrittura.

  • Operazioni disponibili:
  • Read File(s) From Disk: recupera uno o più file dal computer che esegue n8n.
  • Write File to Disk: crea/salva un file sul computer che esegue n8n.

Parametri principali (Read):

  • File(s) Selector: percorso del file o pattern (supporta glob come , , ?, []). Esempio: /data/in//.csv
  • Options:
  • File Extension
  • File Name
  • MIME Type
  • Put Output File in Field (campo di output binario)

Parametri principali (Write):

  • File Path and Name: percorso completo e nome del file di destinazione (es. /data/out/report.csv)
  • Input Binary Field: nome del campo binario in ingresso da scrivere
  • Options: Append (per aggiungere a un file esistente)

Nota importante:

  • Questo nodo funziona sulla macchina dove gira n8n. Se n8n è in Docker, i percorsi riferiscono il filesystem del container. In generale, n8n raccomanda percorsi assoluti per evitare errori.

Per i formati:

  • Per convertire file binari in JSON lavorabile usa “Extract From File” (operazioni come CSV, ODS, PDF, ecc.).
  • Per creare un file a partire da JSON o testo, usa “Convert to File”.

[IMG: Ricerca e selezione del nodo “Read/Write Files from Disk” nel canvas di n8n]

Docker e path: come montare volumi e usare i percorsi corretti

Se usi n8n in Docker, i path nei nodi sono quelli interni al container, non quelli dell’host. Ecco il pattern operativo più solido:

  1. Monta una cartella host nel container.
  • Esempio (Docker run):

docker run -it –rm \

–name n8n \

-p 5678:5678 \

-v /host/data:/data \

-v n8n_data:/home/node/.n8n \

docker.n8n.io/n8nio/n8n

  1. Usa il percorso interno nel nodo.
  • Se hai montato /host/data su /data, nei parametri del nodo usa /data/in/lead.csv, non /host/data/in/lead.csv.
  1. Preferisci percorsi assoluti e cartelle dedicate con permessi chiari.
  • Evita spazi nei path o usa cartelle “sanificate” (es. /data/in invece di /Volumes/SSD drive/in).
  1. n8n Cloud non supporta la lettura/scrittura su disco locale.
  • Questa funzionalità è disponibile solo in self-hosting.

Suggerimento pratico per marketer:

  • Crea una struttura semplice: /data/in per i file in ingresso, /data/out per i risultati, /data/archive per l’archiviazione post-processo. Così i tuoi workflow restano leggibili e manutenibili.

[IMG: Esempio di volume mount Docker e mappa concettuale dell’uso dei path interni nel container]

Trigger su file locali: monitorare cartelle e reagire ai cambiamenti

Per avviare un workflow quando un file viene aggiunto, modificato o eliminato, usa il nodo “Local File Trigger” (self-hosted soltanto).

Concetti chiave:

  • Trigger On: seleziona l’evento da osservare (creazione/modifica/cancellazione).
  • Changes to a Specific File: inserisci il percorso nel campo File to Watch per un singolo file.
  • Changes Involving a Specific Folder: controlla un’intera cartella.
  • Options: puoi includere o escludere file/cartelle con pattern di ignore (es. /temp/, */.tmp).

Esempio rapido:

  • Obiettivo: rilevare nuovi CSV in /data/in e avviare l’elaborazione.
  • Local File Trigger:
  • Trigger On: Add
  • Folder to Watch: /data/in
  • Options > Ignore: */.tmp, */~$
  • Read/Write Files from Disk (Read):
  • File(s) Selector: /data/in/*.csv
  • Extract From File:
  • Operation: CSV
  • Input Binary Field: data (default)

[IMG: Configurazione del Local File Trigger per cartella /data/in con ignore pattern]

Vantaggio per marketer:

  • Puoi “buttare” un file CSV nella cartella condivisa (es. un export dal CRM) e far partire automaticamente le tue automazioni: import, enrichment, notifiche Slack, aggiornamento fogli di calcolo.

Dal file ai dati: estrarre CSV/Excel/PDF in JSON lavorabile

Spesso i file sono “binari” e vanno trasformati in JSON per poterli manipolare. Usa “Extract From File” per convertire CSV/ODS/PDF/HTML/JSON binario in dati strutturati.

Parametri utili:

  • Operation: seleziona il formato sorgente (es. CSV, ODS, PDF).
  • Input Binary Field: nome del campo binario di ingresso (di default spesso “data”).
  • Destination Output Field: nome della proprietà di output dove scrivere i dati estratti (quando disponibile).

Esempio step-by-step (CSV import):

  1. Local File Trigger: rileva un nuovo file in /data/in.

  2. Read/Write Files from Disk (Read):

  • File(s) Selector: /data/in/*.csv
  • Options > Put Output File in Field: data
  1. Extract From File:
  • Operation: CSV
  • Input Binary Field: data
  1. Continua con Set/IF/HTTP Request per arricchimenti e routing.

Snippet JSON (estratto dei nodi chiave):

  • Read (usa fileSelector):

{

“parameters”: {

“fileSelector”: “/data/in/*.csv”,

“options”: {

“putOutputFileInField”: “data”

}

},

“name”: “Read/Write Files from Disk”,

“type”: “n8n-nodes-base.readWriteFile”,

“typeVersion”: 1

}

  • Extract (CSV):

{

“parameters”: {

“operation”: “csv”,

“options”: {}

},

“name”: “Extract From File”,

“type”: “n8n-nodes-base.extractFromFile”,

“typeVersion”: 1

}

[IMG: Anteprima dell’output JSON dopo “Extract From File” con colonne CSV mappate come campi]

Insight unico:

  • Se devi passare il file a un’API, molti servizi accettano un body “file” binario: nel nodo “HTTP Request”, scegli “n8n Binary File” e indica l’Input Data Field Name con il nome del campo (es. data).

Scrivere file su disco: report, export e archiviazione

Quando vuoi salvare risultati su file (report CSV, JSON di log, immagini elaborate), usa l’operazione “Write File to Disk”.

Parametri:

  • File Path and Name: percorso completo d’uscita (es. /data/out/report.csv).
  • Input Binary Field: campo binario in ingresso da scrivere (se stai convertendo JSON in file prima, usa “Convert to File”).
  • Options: Append (true per aggiungere a file esistenti, false per sovrascrivere/creare nuovo).

Esempio: generare un report JSON e salvarlo.

  1. Convert to File:
  • Converte JSON in file binario (scegli formato e opzioni).
  1. Read/Write Files from Disk (Write):
  • File Path and Name: /data/out/report.json
  • Input Binary Field: data

JSON di esempio (write):

{

“parameters”: {

“operation”: “write”,

“fileName”: “/data/out/report.json”,

“options”: {}

},

“name”: “Read/Write Files from Disk”,

“type”: “n8n-nodes-base.readWriteFile”,

“typeVersion”: 1

}

[IMG: Configurazione “Write File to Disk” con percorso assoluto e append disattivato]

Tip per marketer:

  • Salva in /data/out e poi usa un nodo “FTP” o “HTTP Request” per inviare il file dove serve (CDN, DAM, drive, API del tuo fornitore).

Permessi, UID/GID e problemi comuni: come evitarli e risolverli

Gli errori più frequenti non dipendono dal nodo, ma dall’ambiente:

  • File non trovato:
  • Path sbagliato (stai usando il percorso host invece del percorso del container).
  • Cartella non montata in Docker o montata su un path diverso da quello usato nel nodo.
  • Soluzione: verifica il mount (-v /host/data:/data) e usa sempre /data/… nel nodo.
  • Permesso negato:
  • L’utente del container non ha permessi sulla cartella montata.
  • Soluzione: assegna permessi di lettura/scrittura alla directory host montata (ad esempio, chown/chmod sulla cartella /host/data). Assicurati che l’utente che esegue n8n nel container possa leggere/scrivere nella directory.
  • Spazi nei nomi:
  • I path con spazi possono creare ambiguità.
  • Soluzione: usa cartelle senza spazi (es. /data/marketing_in) o rinomina le directory.
  • Differenze ambienti (Desktop vs Docker vs server):
  • In ambiente locale (npm) puoi usare path come ~/file.csv.
  • In Docker usa percorsi assoluti interni (es. /tmp o /data) e monta volumi.
  • In Cloud non è disponibile la lettura/scrittura su disco.
  • Code node e filesystem:
  • Il “Code” node non può accedere al filesystem: usa sempre “Read/Write Files from Disk” e “HTTP Request”.

[IMG: Schermata di errore tipico “file not found” con freccia che indica il path errato]

Mini caso d’uso per marketer: import CSV con arricchimento e notifiche

Obiettivo: quando un nuovo file lead.csv arriva nella cartella /data/in, importalo, arricchisci i dati e invia un alert su Slack con il conteggio dei nuovi lead.

Flusso:

  1. Local File Trigger
  • Trigger On: Add
  • Folder to Watch: /data/in
  • Options > Ignore: */.tmp

[IMG: Local File Trigger attivo su /data/in]

  1. Read/Write Files from Disk (Read)
  • File(s) Selector: /data/in/*.csv
  • Options > Put Output File in Field: data

[IMG: Config del nodo read con glob pattern *.csv]

  1. Extract From File
  • Operation: CSV
  • Input Binary Field: data
  1. Set (mapping campi + normalizzazione)
  • Esempio: normalizza email in minuscolo, calcola “source” da colonne UTM.
  1. Slack (Send Message)
  • Text:

Nuovi lead importati: {{ $json.length || $items().length }} elementi

File: {{ $node[“Read/Write Files from Disk”].json.fileName || “batch” }}

[IMG: Slack node con messaggio dinamico]

Estensioni:

  • Salva JSON su disco con Write File to Disk per audit (/data/out/leads_YYYYMMDD.json).
  • Sposta il CSV originale in /data/archive con un ulteriore step (copy/move via shell esterna o integrazione storage).

Quick Takeaways

  • Usa “Read/Write Files from Disk” per leggere/scrivere file locali; in Docker i path sono interni al container.
  • Monta volumi: -v /host/data:/data e usa /data/… nei parametri del nodo.
  • “Local File Trigger” avvia i workflow su cambiamenti di file/cartelle; sfrutta gli ignore pattern.
  • Converti file in JSON con “Extract From File” (CSV/ODS/PDF) per lavorare i dati.
  • “Convert to File” crea file a partire da JSON/testo; poi “Write File to Disk” li salva.
  • Evita spazi nei path, usa permessi corretti e percorsi assoluti per ridurre errori.
  • Il “Code” node non accede al filesystem: usa i nodi dedicati per file.

Conclusione

Portare i file locali in n8n sblocca una miriade di automazioni utili ai marketer: import batch di CSV, arricchimenti e normalizzazioni, generazione di report e notifiche operative. Il cuore è “Read/Write Files from Disk” con i parametri giusti: File(s) Selector per leggere anche più file con globbing, File Path and Name per scrivere in percorsi assoluti, e l’accoppiata “Extract From File”/“Convert to File” per muoversi in modo fluido tra binario e JSON. Se usi Docker, ricorda che i percorsi sono interni al container: monta una cartella dell’host su /data e usa sempre /data/… nei nodi. Per attivare i flussi all’arrivo di nuovi file, il “Local File Trigger” ti consente di osservare cartelle e reagire in tempo reale con pattern di ignore per mantenere puliti i processi.

Il prossimo passo? Scegli una cartella condivisa, crea una struttura /data/in e /data/out, configura “Local File Trigger” e un flusso Read → Extract → Set → Slack. In pochi minuti avrai una pipeline affidabile che trasforma i tuoi file in insight azionabili, migliorando la tua produttività e la qualità dei dati che alimentano campagne e report.

FAQ

  • Come leggere file da disco con n8n in modo affidabile?

Usa il nodo “Read/Write Files from Disk” con l’operazione “Read File(s) From Disk” e un percorso assoluto nel parametro File(s) Selector. In Docker, monta la cartella host (-v /host/data:/data) e usa /data/… nel nodo.

  • Esiste un “nodo Read Binary File in n8n”?

Nelle versioni attuali la lettura è gestita dal nodo “Read/Write Files from Disk” con l’operazione di lettura. Imposta File(s) Selector e, se necessario, Put Output File in Field per nominare il campo binario.

  • Come attivo un trigger su file locali n8n?

Usa “Local File Trigger”. Imposta Trigger On (es. Add), indica File to Watch o Folder to Watch e configura gli ignore pattern. È disponibile solo in self-hosting.

  • Come gestire percorsi host e container in n8n Docker?

Monta volumi (es. -v /host/data:/data) e usa path interni del container nei nodi. Evita path dell’host. Preferisci percorsi assoluti per ridurre errori.

  • Permessi file e UID/GID per n8n: cosa considerare?

Assicurati che l’utente del container abbia lettura/scrittura sulla cartella montata. Se ricevi “Permission denied”, regola i permessi/chown sulla directory dell’host montata. Evita spazi nei path e verifica che la cartella esista.


Hai messo in produzione una pipeline per leggere file locali n8n? Raccontaci il tuo caso d’uso nei commenti: che file importi e qual è il passo più utile per la tua automazione? Se la guida ti è stata utile, condividila con il tuo team per standardizzare i flussi basati su file!

Articoli correlati

Vuoi automazioni AI su misura per la tua azienda?
Scopri la consulenza →

Partiamo da un processo che oggi vi costa ore

Su WhatsApp risponde una persona, di solito in giornata. Se preferisci scrivere con calma, c’è il modulo qui sotto.

Scrivici su WhatsApp

Raccontaci cosa vuoi automatizzare

Ti rispondiamo noi, di solito in giornata.

Raccontaci cosa vi fa perdere tempo

Due righe bastano. Vi diciamo se si automatizza, come, e quanto costa. Se non conviene, lo diciamo.