Se leggi molte fonti ogni giorno, sai quanto tempo bruci nel capire cosa conta davvero. Con openai n8n articoli puoi trasformare feed, link e bookmark in un riassunto automatico di pagine web pronto per Slack, email o Notion. In questa guida costruisci un workflow n8n per sintesi contenuti che: acquisisce articoli (da URL o feed RSS), estrae il testo (estrazione testo da HTML), deduplica e filtra la qualità, usa prompt per riassunti efficaci con l’LLM, gestisce chunking e map‑reduce per testi lunghi, e pubblica una rassegna quotidiana su Slack/Email con output strutturato JSON o Markdown. Vedrai configurazioni esatte dei nodi chiave (OpenAI Chat, Slack, Google Sheets, Notion), snippet di codice e best practice di produzione: gestione token e costi OpenAI, rate limiting e retry nelle API, versioning dei prompt, human‑in‑the‑loop per approvazione e osservabilità e logging delle esecuzioni. Obiettivo: passare da “tab aperti” a insight azionabili, aumentando produttività e qualità decisionale.

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

[IMG: Panoramica del workflow: Trigger → Fetch (HTTP/RSS) → Parse/Extract → Dedup → Chunking → LLM Summarize → Merge → Publish (Slack/Email/Notion) → Log]


Architettura del workflow: dalle fonti al digest

Per costruire un workflow n8n per sintesi contenuti solido, progetta tre layer:

1) Ingestion e normalizzazione

  • Sorgenti: feed RSS a riepilogo (blog/portali), link singoli da form/Slack, segnalazioni via email.
  • Normalizza: porta tutto a uno schema comune (title, url, source, publishedAt, html, textRaw).
  • Deduplicazione articoli e filtraggio qualità: scarta duplicati, snippet molto corti o pagine senza contenuto centrale.

2) Sintesi e arricchimento

  • Estrarre testo da HTML e pulire boilerplate.
  • Prompt per riassunti efficaci, con output strutturato JSON o Markdown.
  • Chunking e map‑reduce per testi lunghi, così controlli token e costo.

3) Distribuzione e audit

  • Rassegna quotidiana su Slack/Email con 5‑10 highlight.
  • Salvataggio su Notion o Google Sheets per archivio e KPI.
  • Log sintetico: conteggio articoli, errori, costi stimati, versione prompt.

Insight operativo: parti da un “MVP giornaliero” e scala a più canali. L’approccio modulare ti permette di riusare lo stesso cuore di sintesi per newsletter interne, recap per il team prodotto e aggiornamenti clienti. Con openai n8n articoli puoi orchestrare fonti diverse mantenendo un flusso coerente e sostenibile nei costi.

[IMG: Mappa logica a blocchi “Ingest → Clean → Summarize → Publish → Log”]


Configurare OpenAI in n8n: nodo chat, prompt e costi sotto controllo

Per la sintesi useremo il nodo chat di OpenAI. Ecco una configurazione testata che rispetta le best practice per output strutturati e budget.

Nodo Chat OpenAI (con campi esatti)

{
  "name": "ChatGPT",
  "type": "n8n-nodes-langchain.lmChatOpenAi",
  "parameters": {
    "model": "gpt-3.5-turbo",
    "temperature": 0.4,
    "maxTokens": 500,
    "systemPrompt": "You are a concise research assistant. Produce faithful, structured summaries.",
    "userPrompt": "Riassumi il seguente testo in 5 bullet, includi 1 citazione chiave e 3 takeaway azionabili. Output in Markdown. Testo:\n\n{{ $json.text }}"
  },
  "credentials": {
    "openAiApi": { "id": "OPENAI_CREDENTIAL_ID" }
  }
}

Linee guida per prompt per riassunti efficaci

  • Imposta systemPrompt con ruolo e stile (conciso, fedele, strutturato).
  • Definisci chiaramente formato e schema: “Output in Markdown”, elenchi puntati, lunghezza massima.
  • Passa solo il testo rilevante (no boilerplate) per ridurre costi e latenza.

Gestione token e costi OpenAI

  • temperature bassa (0–0.4) per stabilità.
  • maxTokens adeguati al formato (300–600 per articolo).
  • Troncamento input su soglia (es. 10k‑15k caratteri) e applica chunking per il resto.
  • Caching: per URL già visti, usa la versione salvata o ricalcola solo se aggiornato.

Monitoraggio e versioning dei prompt

  • Mantieni una variabile “prompt_version” e logga risultati per confronti A/B (es. più o meno bullet).
  • Con openai n8n articoli, versionare i prompt ti permette di ottimizzare la qualità senza sorprese.

[IMG: Nodo OpenAI con system/user prompt e credenziali configurate]


Ingestion: da feed RSS o URL singoli a testo pulito

Opzione A: Feed RSS a riepilogo

  • Recupera il feed con un nodo HTTP Request (GET sull’URL del feed).
  • Con un nodo XML, parsifica il feed in JSON (titolo, link, pubDate, guid).
  • Usa un Item Lists/Code per estrarre i campi chiave e normalizzare.

Opzione B: URL singoli (segnalazioni)

  • Usa un Webhook o form (es. Typeform → Webhook → n8n) per ricevere link.
  • Accoda in una lista giornaliera per sintesi batch.

Estrazione testo da HTML (senza librerie esterne)

  • Esegui HTTP Request sulla pagina per ottenere l’HTML.
  • In un Code node, rimuovi script/style e strip dei tag, mantieni struttura minima:
// Input: $json.html contiene l'HTML della pagina
let html = ($json.html || '').toString();

// Rimuovi script e style
html = html.replace(/<script[\s\S]*?<\/script>/gi, '')
           .replace(/<style[\s\S]*?<\/style>/gi, '');

// Rimpiazza i tag block con nuove righe per preservare struttura
html = html.replace(/<\/(p|div|h[1-6]|li|br|section|article)>/gi, '$&\n');

// Strippa i tag rimanenti
const text = html.replace(/<[^>]+>/g, '')
                 .replace(/\n{3,}/g, '\n\n')
                 .trim();

return [{ json: { ...$json, text } }];

Deduplicazione articoli e filtraggio qualità

  • Mantieni una “fingerprint” per URL (hash) e scarta duplicati della giornata.
  • Filtra articoli troppo corti (es. <500 caratteri di text).
  • Registra i motivi di esclusione per trasparenza.

[IMG: HTTP Request (RSS) → XML → Transform → HTTP Request (HTML) → Code (clean) → Filter/Dedup]


Chunking e map‑reduce: riassumere testi lunghi senza sforare quote

Per articoli oltre una certa lunghezza, adotta uno schema chunk + map‑reduce:

1) Chunking

  • Dividi text in blocchi (es. 2000–3000 caratteri), assicurandoti di spezzare su fine frase/paragrafo quando possibile.
  • Emitti un item per chunk.

2) “Map”: sintetizza ogni chunk

  • Invia ogni chunk al nodo ChatGPT con un prompt breve, stesso schema di output.

3) “Reduce”: unisci le sintesi parziali in una sintesi unica

  • Combina le mini‑sintesi in una “mega‑sintesi” con un secondo passaggio LLM più corto (o una semplice fusione logica).

Split In Batches (per controllo di flusso)

{
  "name": "Batch Loop",
  "type": "n8n-nodes-base.splitInBatches",
  "typeVersion": 1,
  "parameters": { "batchSize": 10 }
}

Merge delle mini‑sintesi

  • Usa il Merge node per “Append” o per sincronizzare rami (mode “Wait”) e poi un Code node “Run Once For All Items” per concatenare:
// Run Once For All Items: combina mini-sintesi in un brief unico
const parts = $input.all().map(i => i.json.summary_md || i.json.text || '');
const combined = parts.filter(Boolean).join('\n\n');
return [{ json: { combinedSummary: combined } }];

Vantaggi pratici

  • Controllo granulare su costi (paghi per chunk).
  • Robustezza: se un chunk fallisce, puoi ritentare quel pezzo.
  • Con openai n8n articoli, il pattern map‑reduce ti permette di trattare report lunghi con stabilità.

[IMG: Split text → Split In Batches → LLM (map) → Merge/Wait → LLM (reduce) → Output]


Pubblicazione: Slack/Email, Notion e Google Sheets

Slack: rassegna quotidiana

  • Nodo Slack (n8n-nodes-base.slack), invio messaggi:
{
  "name": "Post Slack Digest",
  "type": "n8n-nodes-base.slack",
  "typeVersion": 1,
  "parameters": {
    "resource": "message",
    "operation": "send",
    "channel": "C01234567",
    "text": "Rassegna di oggi: {{ $json.combinedSummary }}"
  },
  "credentials": {
    "slackOAuth2Api": { "name": "Slack OAuth2" }
  }
}

Email

  • Invia il digest come HTML/Markdown, con i link agli articoli originali e i takeaway.

Notion: archivio consultabile

  • Crea una pagina per articolo o per rassegna (titolo, link, riassunto, tag).
  • Esempio di properties (concettuale): Name (title), Status (select), Summary (rich text), URL.

Google Sheets: log e KPI

{
  "name": "Append to Sheet",
  "type": "n8n-nodes-base.googleSheets",
  "typeVersion": 4,
  "parameters": {
    "operation": "append",
    "spreadsheetId": "1A2b3C4D5E6FgHiJkLMnoPQrstu",
    "sheetName": "Sheet1",
    "dataMode": "autoMap",
    "options": { "valueInputMode": "USER_ENTERED" }
  },
  "credentials": {
    "googleSheetsOAuth2Api": { "name": "Google Sheets OAuth2" }
  }
}

Suggerimenti di layout

  • Output strutturato JSON o Markdown coerente, con: titolo, fonte, link, 3‑5 bullet, citazione chiave, tag.
  • Con openai n8n articoli, standardizzare il formato rende la rassegna chiara e riusabile per blog interni o newsletter.

[IMG: Ramo “Publish”: Slack + Email + Notion + Sheets]


Affidabilità e governance: retry, prompt versioning e human‑in‑the‑loop

Rate limiting e retry nelle API

  • Su 429/5xx (fetch o LLM), implementa retry con backoff (2s→5s→10s) in rami alternativi e segnala il fallimento dopo N tentativi.
  • Usa batch costanti (Split In Batches) per evitare picchi.

Human‑in‑the‑loop per approvazione

  • Inserisci una fase di revisione (es. creare una pagina Notion “Bozza” o inviare anteprima via Slack a un canale di approvazione) prima del publish finale.
  • Se la revisione approva entro X ore, pubblica; altrimenti invia fallback (digest minimale).

Osservabilità e logging delle esecuzioni

  • Log sintetico: numero articoli, scartati (motivo), token stimati, latenza media, prompt_version.
  • Error Trigger dedicato per allarmi (es. Slack) quando error rate supera soglie.

Sicurezza e privacy

  • Minimizza dati: conserva testo pulito e metadati essenziali.
  • Segreti sempre in credenziali/variabili d’ambiente.

Con openai n8n articoli, un minimo di governance (prompt versioning, review, log) fa la differenza tra demo e produzione.

[IMG: Pannello “Logs & Alerts”: Sheets + Slack Alerts + Error Trigger]


Esempio end‑to‑end: 10 link al giorno → digest Slack in Markdown

1) Trigger (giornaliero)

  • Programma alle 8:00.

2) Ingest

  • Se RSS: HTTP Request → XML → map a {title,url,source,publishedAt}.
  • Se lista di URL: leggi da Google Sheets “inbox” o payload manuale.

3) Fetch + Clean

  • HTTP Request (HTML) per ogni URL → Code (clean HTML → text).
  • Filtra (<500 char → scarta con motivo).

4) Summarize

  • Se text > soglia → chunking + map‑reduce; altrimenti una sola chiamata a “ChatGPT” (n8n-nodes-langchain.lmChatOpenAi).
  • Salva summary_md in item.

5) Merge

  • Code “Run Once For All Items” concatena i migliori 5‑10 in un digest Markdown.

6) Publish

  • Slack: “Rassegna di oggi” + digest.
  • Notion/Sheets: salva per archivio e metriche.

7) Log

  • Append KPI (articoli processati, token stimati, prompt_version).

Con openai n8n articoli ottieni un recap leggibile in pochi minuti ogni mattina.

[IMG: Canvas completo con i nodi principali collegati]


Quick Takeaways

  • Usa HTTP Request + XML per leggere feed e HTTP Request + Code per pulire HTML in testo.
  • Configura n8n-nodes-langchain.lmChatOpenAi con system/user prompt chiari e maxTokens contenuti.
  • Applica chunking e un pattern map‑reduce per testi lunghi, unendo mini‑sintesi con un pass “reduce”.
  • Pubblica una rassegna quotidiana su Slack/Email e archivia in Notion/Google Sheets.
  • Implementa dedup, filtri di qualità e log sintetici (KPI, prompt_version, errori).
  • Progetta retry/backoff su 429/5xx e integra una review human‑in‑the‑loop dove serve.

Conclusione

Riassumere il web in modo affidabile richiede pipeline sobrie e misurabili. Con openai n8n articoli puoi creare un flusso che parte da feed o link, pulisce il contenuto, produce un riassunto strutturato e consegna un digest chiaro dove serve. Standardizzando prompt e output, controllando token e applicando chunking quando il testo è lungo, mantieni qualità e costi sotto controllo. L’archiviazione su Notion o Sheets e un logging essenziale rendono il processo osservabile e migliorabile. Inizia da un canale (es. Slack) e un set di fonti prioritarie, testa due varianti di prompt, misura tempo/accuratezza e itera. In poche settimane avrai un “radar” informativo che libera ore al tuo team marketing, trasformando letture sparse in insight pronti all’azione. Porta questo schema anche in newsletter interne o recap per sales: la stessa base scalda più use case con minima manutenzione.


FAQ

1) Come faccio un riassunto automatico di pagine web partendo da RSS?
Recupera il feed con HTTP Request, parsifica con un nodo XML, poi per ogni item fetch dell’HTML e Code per pulizia testo. Passa il campo text al nodo OpenAI chat e genera un output strutturato JSON o Markdown. Infine, pubblica via Slack/Email e archivia in Notion o Google Sheets.

2) Come gestire testi molto lunghi senza sforare i token?
Usa chunking e map‑reduce: dividi il testo in blocchi, sintetizza ogni blocco (map), poi combina le mini‑sintesi in un digest (reduce). Con Split In Batches regoli il throughput e con un Code “Run Once For All Items” unisci i risultati.

3) Come ridurre costi e latenza?
Controlla maxTokens, riduci il testo con pulizia HTML e troncamento, imposta temperature basse per stabilità e implementa caching dei link già riassunti. Aggiungi retry/backoff su 429/5xx e monitora tempi/token.

4) Come implemento la deduplicazione articoli e filtraggio qualità?
Crea una fingerprint per URL (hash) e mantieni una lista giornaliera dei visti; scarta se già presente. Applica filtri minimi di lunghezza e segnala motivi nei log. Salva le decisioni in Sheets/Notion per audit.

5) Posso far approvare i riassunti prima dell’invio?
Sì: invia bozza su Notion (status “Review”) o in un canale Slack di approvazione. Se approvato entro una finestra, pubblica il digest finale; in caso contrario, invia un riepilogo minimale o rimanda al giorno successivo.


Hai trovato utile questa guida?

Qual è la prima fonte che inserirai nel tuo digest: il blog di settore o il feed delle news di mercato? Condividi la tua scelta (e l’articolo) con il team: confrontiamo i prompt migliori e costruiamo una rassegna che taglia davvero il rumore!

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