systemAccountId Account email (Settings → Email Accounts) | email-account-picker | no | — | Account SMTP preconfigurato dal tab "Email Accounts" di Settings. Credentials cifrate, share tra tutti i workflow del tenant. Se selezionato, i 5 campi SMTP sotto vengono IGNORATI. Raccomandato vs configurazione manuale. |
host SMTP host (override) | string | no | — smtp.gmail.com / smtp.sendgrid.net / smtp.example.com | Hostname del server SMTP. Tipici: smtp.gmail.com:465, smtp.sendgrid.net:587, smtp.office365.com:587, smtp-mail.outlook.com:587. Solo se NON usi un account preconfigurato. |
port SMTP port | number | no | 465 | 465 = SMTPS (TLS implicito, default). 587 = STARTTLS (upgrade da plain). 25 = plain (sconsigliato, spesso bloccato dai provider cloud). Verifica nella doc del tuo provider quale supporta. |
security Security | enumtlsstarttlsplain
| no | tls | tls = TLS immediato all'handshake (port 465, default). starttls = upgrade da connessione plain via comando STARTTLS (port 587). plain = nessuna cifratura (port 25, INSICURO — solo per server locali in rete fidata). |
username SMTP username | string | no | — [email protected] / apikey (SendGrid) / postmaster (Mailgun) | Utente per l'autenticazione SMTP. Per Gmail: indirizzo completo. Per SendGrid: stringa letterale "apikey" (poi password = API key). Per Postmark: lo stesso token serve come user + password. |
password SMTP password / API key | string (encrypted) | no | — | Password account o API key del provider. NON la metti qui in chiaro: usa {{secrets.SMTP_PASSWORD}} con valore configurato in Credentials. Gmail richiede App Password (no password account dal 2022 per la sicurezza). |
from From (override account) | string | no | — Mario Rossi <[email protected]> | Mittente visibile al destinatario. Lascia vuoto per usare il from dell'account selezionato. Formato: "Nome <email@dominio>" oppure solo email. ATTENZIONE: il dominio in "from" deve essere autorizzato dall'SMTP (SPF) — altrimenti rifiutato o spam. |
replyTo Reply-To | string | no | — [email protected] | Indirizzo a cui il destinatario risponderà cliccando "Rispondi". Diverso da From — utile per inviare da un service account (noreply@) e ricevere risposte su una casella reale (support@, info@). |
to To (separati da virgola) | string | yes | — [email protected], [email protected], {{$node.trigger.json.email}} | Destinatari principali (campo To). Separati da virgola. Supporta espressioni {{$node.X.json.field}} per destinatari dinamici. Max 50 destinatari per messaggio (limite Gmail/Outlook anti-spam). |
cc CC (separati da virgola) | string | no | — [email protected] | Destinatari in copia carbone (visibili a tutti). Tipicamente per "knowledge sharing" o approvazione. NON usare per liste grandi — preferisci BCC per privacy. |
bcc BCC (separati da virgola) | string | no | — [email protected] | Destinatari in copia nascosta (invisibili agli altri destinatari). Usa per archiviazione/audit o mailing list. NIENTE leak di indirizzi tra destinatari (GDPR-safe). |
inReplyTo In-Reply-To (Message-ID originale) | string | no | — <[email protected]> | Per rispondere ad un'email esistente. Mette il messaggio nello stesso thread per il destinatario (in Gmail compare nella stessa conversazione). MANTIENI le parentesi angolari < >. Esempio: <[email protected]>. |
references References (Message-ID separati da spazio) | string | no | — <[email protected]> <[email protected]> | Catena cronologica di Message-ID precedenti del thread. Tipicamente: il References originale + spazio + il Message-ID a cui rispondi. Mantiene la conversazione intera nei client che supportano threading (Gmail/Outlook/Thunderbird). |
subject Subject | string | yes | — Conferma ordine #{{input.orderId}} | Oggetto del messaggio. Supporta espressioni {{...}}. Mantieni 30-60 caratteri per leggibilità su mobile. EVITA: ALL CAPS, troppi punti esclamativi, parole spam-trigger (gratis/win/click). Limite 998 char (RFC). |
bodyType Body type | enumtexthtmlmarkdown
| yes | html | text = plain text puro (massima deliverability, nessuna formattazione). html = formattato (link/grassetto/colori, default). markdown = scrivi in markdown, l'engine converte in HTML server-side (per template AI-generated). |
body Body | rich-text | yes | — Ciao {{input.name}}, il tuo ordine #{{input.orderId}} è in elaborazione… | Editor visuale (grassetto/corsivo/liste/link/img). Switcha "HTML" nella barra per editare il sorgente HTML. Supporta espressioni {{...}} per contenuto dinamico. Se Body type = "text", il contenuto viene inviato come plain text strippato. |
priority Priorità | enumnormalhighlow
| no | normal | high = X-Priority: 1 + Importance: High (icona "!" in alcuni client). low = X-Priority: 5 + Importance: Low. normal = nessuno header (default). NON è un canale prioritario reale — i server SMTP non accelerano per priorità. |
headersJson Header personalizzati | key-value | no | — | Header custom da aggiungere al messaggio. Esempi tipici: X-Mailer=FlowForge (identifica origine), List-Unsubscribe=<mailto:[email protected]> (CAN-SPAM + Gmail bulk-sender 2026 obbligatorio), Auto-Submitted=auto-generated (RFC 3834 per bot reply). |
deliverabilityCheck Pre-flight deliverability (SPF/DKIM/DMARC) | enumoffwarnstrict
| no | off | Verifica i record DNS del dominio mittente PRIMA di inviare. Senza autenticazione DKIM/SPF, ~60% delle email finisce in spam (Gmail/Outlook bulk-sender 2026).
• off (default): nessun check, back-compat.
• warn: esegue check, logga warning + lo include nei result.warnings, MA invia comunque.
• strict: esegue check, FALLISCE il nodo se SPF/DKIM/DMARC mancanti. CONSIGLIATO per cold outreach + workflow lead-gen dove deliverability è critica.
Cache 1h sul fromAddress → costo DNS ~0 in produzione. Output del nodo include sempre il report quando il check è attivo (visibile nel RunInspector). |
attachmentsJson Allegati | attachments | no | — | File allegati. 3 modalità: upload (base64 inline, max 10MB consigliato), URL pubblico (l'engine scarica e allega), path filesystem server. File > 10MB → preferisci URL per evitare timeout SMTP. |
inlineImagesJson Immagini inline (CID) | attachments | no | — | Immagini referenziate nel body HTML con src="cid:<nome>". Esempio: carichi qui un file "logo.png", poi nel body usi <img src="cid:logo.png" />. A differenza degli allegati normali NON appaiono come file scaricabili ma sono renderizzate dentro il messaggio (loghi email branded, signature, banner promo). |
dkimDomain DKIM domain (opzionale) | string | no | — example.com | Se valorizzato: firma il messaggio con DKIM (header DKIM-Signature). Devi anche compilare selector + private key sotto. Lascia VUOTO se il provider SMTP firma per te (SendGrid, Postmark, Amazon SES, Mailgun, Gmail con DKIM key pubblicata). Doppia firma = quasi sempre inutile. |
dkimSelector DKIM selector | string | no | default default / s1 / mail / dkim2024 | Stringa "label" del record DNS DKIM. Deve corrispondere al record DNS pubblico <selector>._domainkey.<domain> TXT. Default convenzionale è "default" ma molti usano "s1", "mail", "dkim2024". Verifica con `dig TXT default._domainkey.tuodominio.com`. |
dkimPrivateKey DKIM private key (PEM) | string (encrypted) | no | — | Chiave privata RSA in formato PEM. Tipicamente -----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----. La chiave PUBBLICA corrispondente deve essere pubblicata in <selector>._domainkey.<domain> TXT del DNS. Usa {{secrets.DKIM_PRIVATE_KEY}} per non leak in plain text. |