Le richieste clienti arrivano via email e finiscono in thread infiniti? Con ticket email n8n notion puoi trasformare la tua inbox in un sistema di help desk su Notion: ogni messaggio diventa un ticket tracciabile con stato, priorità, assegnatario e scadenze. In questa guida costruisci un flusso end‑to‑end: cattura email da Gmail/IMAP, crea o aggiorna ticket in un database Notion per supporto clienti, notifica il team su Slack e opzionalmente invia risposte automatiche al mittente. Affronteremo deduplica (ID thread e deduplica email), instradamento con etichette Gmail per instradare ticket, pipeline di assegnazione ticket, SLA e priorità su Notion, gestione allegati email in Notion e triage automatico con intelligenza artificiale “light”. Vedrai configurazioni esatte dei nodi chiave, snippet pronti all’uso e accorgimenti per resilienza e rispetto dei limiti API. Obiettivo: ridurre i tempi di risposta, migliorare la produttività e dare visibilità al team con un flusso di lavoro n8n per customer support semplice da mantenere.
[IMG: Panoramica flusso: Email Trigger (IMAP) → Normalizza/Decidi → Notion (create page) → Slack (send message) → (facoltativo) Gmail (auto‑reply)]
Panoramica del flusso: inbox → n8n → Notion → notifiche/risposte
-
Ingressi
-
Email in arrivo: usa “Email Trigger (IMAP)” per ascoltare la casella o una cartella/label specifica. Con etichette Gmail per instradare ticket puoi separare le richieste “Support”, “Billing”, “Priority”.
-
Dati allegati (binary): l’Email Trigger fornisce allegati che puoi archiviare o linkare.
-
Elaborazione
-
Normalizzazione e deduplica: estrai un identificatore univoco (Message‑ID quando disponibile o hash composto), definisci priorità e categoria.
-
Upsert ticket su Notion: se il thread esiste già, non creare duplicati; altrimenti, genera una nuova pagina. Organizza il database Notion per supporto clienti con campi chiave: Titolo, Stato, Priorità, Richiedente, Email/Thread ID, Assegnatario, SLA, Tag, Link al thread, Creato/Aggiornato, Allegati.
-
Uscite
-
Notifiche Slack da n8n: invia un messaggio nel canale “#support” con dettagli e link.
-
Risposta automatica (facoltativa): conferma ricezione e stima tempi (SLA).
-
Governance
-
Priorità e SLA: calcola la scadenza in base alla categoria e all’orario di arrivo; inserisci automaticamente “Due by” e “Next action”.
-
Sicurezza e PII: limita i dati personali in Notion, gestisci allegati in storage controllato, applica retry/backoff e rate limit.
Vantaggi, limiti e quando preferire soluzioni dedicate (Zendesk/Jira)
- Pro: rapida messa in opera, costo contenuto, forte flessibilità.
- Limiti: reporting avanzato, multi‑canale complesso, SLA formali.
- Se servono workflow ITSM/CS avanzati, considera tool dedicati; ma per molte PMI, questo setup è ideale.
Progettare il database Notion per ticket: schema minimo e proprietà
Crea un database Notion con le seguenti proprietà (nomi esatti da usare nelle “properties” del nodo Notion):
- Name (Title): titolo del ticket, es. “Errore checkout – ordine #123”.
- Status (Select): “New”, “In Progress”, “Waiting”, “Resolved”.
- Priority (Select): “Low”, “Medium”, “High”, “Urgent”.
- Requester (Text): email del richiedente.
- Thread ID (Text): identificatore univoco per idempotenza (Message‑ID/Thread hash).
- Assignee (People o Text): persona responsabile.
- SLA Due (Date): scadenza automatica calcolata.
- Channel (Select): “Email”.
- Link (URL): link al thread (se disponibile).
- Last Update (Date): aggiornato da n8n.
- Attachments (Files & media) o un campo “Attachments Link” (URL) se archivi esternamente.
Linee guida:
- Usa nomi di proprietà stabili: i nomi devono combaciare esattamente nella mappatura del nodo Notion.
- Mantieni Status e Priority come Select per garantire consistenza.
- Conserva il Thread ID per evitare duplicati: è la chiave per l’upsert logico.
[IMG: Vista del database Notion con colonne Name, Status, Priority, Requester, Thread ID, SLA Due]
Acquisire le email: Gmail/IMAP Trigger, label/route e idempotenza
Per compatibilità ampia usa “Email Trigger (IMAP)”:
- Parametri principali
- mailbox: la cartella da monitorare, es. “INBOX” o una cartella/label dedicata (es. “Support”).
- criteria: usa “UNSEEN” per processare solo messaggi non letti.
- credentials: credenziali IMAP del tuo account/support mailbox.
Esempio di routing con etichette Gmail
- In Gmail, applica automaticamente la label “Support” alle email di assistenza (via filtri Gmail).
- In IMAP, questa label può essere esposta come cartella: imposta mailbox sulla label corrispondente per instradare i ticket.
Idempotenza su Message‑ID/Thread ID
- Se il trigger fornisce il Message‑ID/Thread‑ID, usalo come Thread ID. In alternativa, genera un hash stabile:
// Mode: Run Once For Each Item (Code): genera un ThreadID fallback
const j = $json;
const base = `${j.from || ''}|${j.subject || ''}|${j.date || ''}`;
const threadId = require('crypto').createHash('md5').update(base).digest('hex');
return { json: { ...j, threadId } };
- Conserva threadId in Notion per deduplica: se esiste già, aggiorna il ticket invece di crearne uno nuovo (vedi sezione upsert logico).
Suggerimenti:
- Se lavori con più code (Support, Billing), duplica il flusso con mailbox separati o usa IF per ramificare per etichetta.
- Archiviazione degli allegati: il trigger espone binary; decidi se salvare in Notion (Files) o su storage esterno e inserire il link.
Creare il ticket in Notion: mapping campi e create page
Per creare una pagina in un database Notion, usa il Notion node con le proprietà mappate esattamente ai nomi del tuo database.
Configurazione esatta (create in database):
{
"name": "Create Notion DB Item",
"type": "n8n-nodes-base.notion",
"typeVersion": 2,
"parameters": {
"resource": "databasePage",
"operation": "create",
"databaseId": "YOUR_NOTION_DATABASE_ID",
"properties": {
"Name": { "title": [ { "text": { "content": "={{$json.subject || 'Nuovo ticket'}}" } } ] },
"Status": { "select": { "name": "New" } },
"Priority": { "select": { "name": "={{$json.priority || 'Medium'}}" } },
"Requester": { "rich_text": [ { "text": { "content": "={{$json.from || ''}}" } } ] },
"Thread ID": { "rich_text": [ { "text": { "content": "={{$json.threadId}}" } } ] },
"Channel": { "select": { "name": "Email" } },
"Last Update": { "date": { "start": "={{new Date().toISOString()}}" } }
}
},
"credentials": { "notionApi": { "name": "Notion API" } }
}
Note:
- Sostituisci i nomi delle proprietà (Name, Status, Priority, Requester, Thread ID, Channel, Last Update) con quelli esatti del tuo database.
- Per allegati: valuta un passo successivo che aggiunge file/link alla pagina (oppure salva su Drive/S3 e inserisci l’URL in un campo “Attachments Link”).
[IMG: Pannello del nodo Notion configurato con databaseId e properties mappate]
Upsert logico: evita duplicati, aggiorna quando serve
Pattern consigliato:
1) Cerca pagina esistente per Thread ID
- Esegui una query (Get All + filtro per proprietà “Thread ID” == threadId) per verificare se esiste un ticket. Se la pagina esiste, salta la creazione.
2) Aggiorna “Last Update” e aggiungi nota - Se il ticket esiste, aggiorna “Last Update” e, se vuoi, appendi un riassunto dell’email in una sezione della pagina (commento/nota).
3) Se non esiste, crea (vedi JSON sopra)
Heuristics di priorità
- Imposta Priority in base a subject/keywords (“urgent”, “refund”, “payment”) o mittente (VIP).
- Assegna a round‑robin o skill‑based (es. billing → team Finance): implementa con un IF e una mappa utente→area.
Calcolo SLA
- In un nodo “Code”, calcola SLA Due in base alla Priority (es. Urgent: +8h, High: +24h).
- Salva “SLA Due” nel create/update di Notion.
Notifiche al team: Slack e risposta automatica
Invia un avviso Slack con i dettagli del ticket.
Configurazione esatta (Slack Send Message):
{
"name": "Send Slack Message",
"type": "n8n-nodes-base.slack",
"typeVersion": 1,
"parameters": {
"resource": "message",
"operation": "send",
"channel": "C01234567",
"text": "Nuovo ticket: ={{$json.subject}} — Richiedente: ={{$json.from}}"
},
"credentials": {
"slackApi": { "name": "Slack OAuth2" }
}
}
Best practice:
- Includi link alla pagina Notion (campo “Link”): aggiungi l’URL quando disponibile.
- Per i ticket esistenti, invia un messaggio diverso (“Aggiornato ticket …”).
Risposta automatica (facoltativa)
- Dopo la creazione/aggiornamento, invia un’email di conferma al mittente (es. “Abbiamo ricevuto la tua richiesta, SLA: 1 giorno lavorativo”). Usa il nodo di invio email preferito (Gmail o altro SMTP), mantenendo un tono coerente e includendo l’ID o il link del ticket.
Allegati, privacy e prestazioni
Gestione allegati email in Notion
- Opzione A: allega direttamente alla pagina (se volume contenuto).
- Opzione B: carica su Google Drive/S3 e salva nel campo “Attachments Link”. Questa scelta riduce peso in Notion e semplifica la retention.
PII e sicurezza
- Minimizza contenuti sensibili: evita di salvare interi body se non serve; estrai un riassunto rilevante.
- Applica retention period su Notion/Drive; limita condivisione del database ai soli membri del team.
- Log separati: evita di inviare PII non necessarie nei messaggi Slack.
Retry/backoff e limiti
- Se la creazione su Notion fallisce, implementa un retry con breve attesa; logga gli errori e invia un alert.
- Valuta “Split In Batches” per picchi (es. molte email simultanee) per stabilizzare il throughput.
Triage automatico “light” e reporting
Classificazione intent/priorità e riassunti con LLM (opzionale)
- Per volumi moderati, una semplice regola con parole chiave copre l’80% dei casi.
- Se vuoi più accuratezza, aggiungi un nodo di inferenza (o un servizio esterno) per classificare categoria e generare un riassunto da salvare nella pagina Notion.
Report operativo
- Crea una vista Kanban su Notion per “Status” e una vista per “Priority”.
- Programma un riepilogo giornaliero su Slack: nuovi ticket, tempo medio alla prima risposta, scadenze SLA imminenti.
[IMG: Vista Kanban su Notion con colonne per stato e indicatori di SLA]
Esempio di flusso completo: passi e collegamenti
1) Email Trigger (IMAP)
- mailbox: “Support”
- criteria: “UNSEEN”
2) Code (threadId, priority, SLA Due)
3) IF (esiste il ticket?) - Se sì: aggiorna Last Update e invia Slack “Aggiornato”
- Se no: Notion (create page) e Slack “Nuovo”
4) Allegati (opzionale): carica su Drive/S3 e scrivi “Attachments Link”
5) Auto‑reply (opzionale): invia conferma al mittente
6) Log & Metrics: aggiorna contatori, invia report giornaliero
Collega il ramo “errori” a un workflow con “Error Trigger” per alert centralizzati.
Quick Takeaways
- Progetta il database Notion con proprietà stabili (Name, Status, Priority, Requester, Thread ID, SLA Due).
- Usa Email Trigger (IMAP) con criteria=UNSEEN e instrada per label/cartella per priorità e team.
- Implementa idempotenza con Thread ID e upsert logico per evitare duplicati.
- Mappa esattamente le proprietà nel Notion node (databasePage → create) e invia notifiche mirate su Slack.
- Gestisci allegati su storage esterno per performance e governance; limita PII e applica retention.
- Aggiungi regole di triage e un report giornaliero per migliorare visibilità e tempi di risposta.
Conclusione
Con ticket email n8n notion trasformi la tua inbox in un sistema di help desk su Notion flessibile e trasparente. Definendo uno schema chiaro del database, catturando le email con IMAP, applicando deduplica su Thread ID e mappando correttamente le proprietà nel nodo Notion, eviti duplicati e garantisci tracciabilità. Le notifiche Slack assicurano allineamento del team, mentre allegati, PII e retry vengono gestiti con buone pratiche operative. Il risultato è un flusso prevedibile, misurabile e facilmente estendibile con triage automatico e report. Per i marketer, questo significa più tempo per clienti e campagne, meno tempo a rincorrere thread. Parti dal flusso base (create + Slack), aggiungi l’upsert logico, poi estendi con assegnazione e SLA: in poche iterazioni avrai un help desk operativo e su misura del tuo team.
FAQ
1) Come imposto un sistema di help desk su Notion con n8n senza tool dedicati?
Crea un database Notion per ticket con proprietà standard, usa automazione email con n8n tramite Email Trigger (IMAP) per catturare messaggi, esegui dedup con Thread ID e crea/aggiorna pagine Notion. Completa con notifiche Slack e (opzionale) auto‑reply.
2) Posso usare etichette Gmail per instradare ticket?
Sì. Applica etichette Gmail per instradare ticket (es. “Support”, “Billing”) e monitora la relativa cartella/label via IMAP. Così separi code diverse in flussi dedicati.
3) Come evito ticket duplicati quando arrivano più email sullo stesso thread?
Salva un ID thread e deduplica: se il Thread ID esiste nel database Notion per supporto clienti, aggiorna il ticket esistente (Last Update, note); altrimenti crea un nuovo record.
4) Come gestisco allegati e dati sensibili?
Per gestione allegati email in Notion, allega file leggeri o salva su Drive/S3 e inserisci il link. Minimizza PII nei campi, limita gli accessi al database e applica politiche di retention.
5) Come definire SLA e priorità in Notion?
Aggiungi proprietà Priority (Select) e SLA Due (Date). Calcola la scadenza in n8n in base alla priorità e salva in Notion. Invia alert Slack per scadenze imminenti e monitora con viste Kanban/Calendar.
Ci dai una mano?
Qual è la prima automazione che aggiungerai al tuo flusso di ticket su Notion: upsert con Thread ID, assegnazione automatica o alert SLA su Slack? Condividi la tua scelta e questo articolo con il team: costruiamo insieme un support più veloce e trasparente!
Scopri la consulenza →

