Documentazione

Email

Email in entrata (IMAP) e in uscita. Preservazione dei thread, parsing degli allegati.

Il canale email ingerisce le tue email in entrata e permette a una pipeline di rispondere, inoltrare o creare attività a valle.

Modello

Due moduli complementari:

  • email_inbound — ricezione (IMAP)
  • email_outbound — invio (operatore configurato, o relay tramite il tuo SMTP)

Sono indipendenti: puoi usare solo il modulo inbound (per smistare senza rispondere), oppure solo il modulo outbound (per inviare notifiche da una pipeline innescata in altro modo).

Configurazione

  1. Impostazioni → Servizi → Email, scheda Account — collega una casella IMAP con le sue credenziali.
  2. Associa la casella a una pipeline di destinazione.
  3. (Facoltativo) Configura un mittente (SMTP) per rispondere.

Per le architetture che devono mantenere il controllo dei propri server di posta, betool non sostituisce il tuo MTA: leggiamo e scriviamo tramite IMAP / SMTP standard.

Cosa riceve la pipeline

Per ogni email in entrata, viene creato un nuovo exchange con:

  • exchange.user_message — corpo dell'email (HTML → testo normalizzato)
  • exchange.email.subject — oggetto
  • exchange.email.from — mittente normalizzato
  • exchange.email.thread_id — identificatore del thread (utile per il contesto multi-turno)
  • exchange.email.attachments — elenco di FileMetadata (allegati elaborati)

Allegati

Gli allegati possono essere passati al nodo file_transform: testo selezionabile di un PDF (pdf_extract_text, senza OCR — un PDF scansionato non restituisce testo), lettura di una cartella di lavoro Excel in righe (xlsx_to_json, xls_to_json), divisione o rendering in immagini di un PDF, estrazione di un archivio. Da lì, il tuo agent può usarli come testo o come dati strutturati.

Thread e contesto multi-turno

Quando un cliente risponde a una risposta precedente, betool riconosce il thread_id e ripristina la cronologia del thread nel contesto dell'agent. Questo è trasparente per la progettazione della pipeline.

Qualità degli indirizzi e mancati recapiti

Tre nodi proteggono la tua reputazione di mittente:

  • email_check — verifica uno o più indirizzi prima di un invio: lista di soppressione dell'organizzazione, sintassi, poi DNS del dominio (MX, in mancanza A/AAAA; un « null MX » vale come rifiuto). Segnala anche, senza cambiare il verdetto, gli indirizzi usa e getta, le caselle generiche (info@…) e i rischi (errore di battitura su un grande provider, estensione duplicata, server « catch-all »). Non blocca nulla da solo: pubblica i verdetti e l'elenco degli indirizzi recapitabili. Non viene effettuata alcuna sonda SMTP.
  • email_list_clean — qualifica un intero elenco (ad esempio proveniente da un file importato) in tre fogli: puliti, da rivedere, rifiutati, pronti da esportare con data_to_file. Deduplicazione, stessi controlli di email_check e analisi della forma dell'indirizzo. Fatturato in crediti per indirizzo distinto, saldo verificato prima dell'elaborazione.
  • email_bounce_parse — legge un avviso di mancato recapito ricevuto in una casella in entrata. Gli indirizzi vengono presi solo dai campi strutturati dell'avviso, mai dal testo libero. Vengono aggiunti alla lista di soppressione: un errore permanente blocca dalla prima occorrenza; un errore temporaneo blocca dopo 3 occorrenze, per 72 ore.

Gli invii successivi (nodo email_outbound e tool email.send) rimuovono automaticamente gli indirizzi soppressi; se non rimane alcun destinatario, non parte nulla. Solo un amministratore può revocare un blocco permanente.

Limitazioni note

  • Nessun supporto nativo per MS Exchange EWS ancora (puoi esporre Exchange tramite IMAP).
  • Nessun supporto Microsoft Graph per Office 365 (nella roadmap).
  • Il parsing di email molto vecchie (RTF Outlook 2003 annidato) può perdere parte della formattazione.