homeUrl URL homepage azienda | expression | si | — {{loop.item}} oppure https://arifin.it | URL della homepage. Il nodo scopre AUTONOMAMENTE le pagine contatti/about/team/impressum. Accetta sia URL fisso che espressione runtime (es. {{loop.item}} dentro un loop, {{$node.search.json.url}} dopo una ricerca). |
maxPages Pagine massime per dominio | number | no | 5 | Hard cap di pagine visitate per dominio. • 3 = veloce, copre homepage + 2 contact pages (basso impatto)
• 5 = default bilanciato — homepage + 4 pagine prioritarie + sitemap
• 10 = approfondito, per siti grandi multi-lingua (es. cantieri internazionali)
• 20 = max raccomandato (oltre = abuse). |
timeoutMs Timeout totale per dominio (ms) | number | no | 30000 | Timeout end-to-end per dominio. Esempi:
• 15000 (15s) — solo siti veloci
• 30000 (30s) — default, copre 95% dei siti business
• 60000 (60s) — per siti lenti (es. cantieri legacy con server vecchi)
Allo scadere ritorna risultati parziali (paths_tried popolato anche se 0 email). |
respectRobots Rispetta robots.txt (raccomandato) | boolean | no | true | Se ON, legge /robots.txt del sito e SKIPPA i path Disallow. ⚠️ Disabilitare SOLO per ragioni legittime (es. sito proprio in fase test). Crawling contro robots.txt è eticamente scorretto e PUÒ causare ban IP + responsabilità GDPR/CCPA. |
ddgFallback Fallback DuckDuckGo (raccomandato) | boolean | no | true | Se ON, quando il crawling del sito non trova email, esegue una search DDG `site:dominio.it contatti email` come ultimo tentativo. Aggiunge ~3s ma aumenta significativamente l'hit rate (+15-20% in test). |
followSitemap Fetch sitemap.xml (raccomandato) | boolean | no | true | Se ON, cerca /sitemap.xml e /sitemap_index.xml. Estrae URL che contengono keyword contatti (contatti, contact, kontakt, ecc.) e li visita. Molti siti enterprise hanno la pagina contatti SOLO via sitemap (non linkata in homepage). |
bypassCache Bypass cache (forza re-fetch) | boolean | no | false | Se ON, ignora la cache LRU 7-giorni e ri-fetcha il dominio. Usare SOLO per:
• Testing / debugging
• Sito appena modificato (azienda ha pubblicato nuova pagina contatti)
• Cron mensile per refresh proattivo
Costo: +3-15s di rete per dominio. |
minEmailConfidence Confidence minima email (avanzato) | number | no | 0 | Filtra email con confidence sotto la soglia. Scala 0-100. Esempi:
• 0 (default) = nessun filtro, accetta tutto
• 70 = solo email da regex pulito + mailto: + Cloudflare decode
• 90 = SOLO email da mailto: links (massima certezza)
Confidence assegnata: mailto=100, Cloudflare=95, HTML-entity=90, plain-text=80, obfuscated=70. |
preferredLocalParts Local-part prioritari (CSV, avanzato) | string | no | commerciale,sales,info,contact,contatti,vendite | Lista CSV di local-part (la parte prima della @) da preferire per primary_email. La prima email trovata che matcha viene scelta. Default copre cold outreach B2B (commerciale/sales/info). Customizza per altri verticali: HR cerca "hr,recruiting,careers"; Tech cerca "tech,support,api". |
maxConcurrentFetchPerHost Richieste parallele per host (avanzato) | number | no | 2 | Rate limit: max richieste parallele verso UN dominio. • 1 = ultra-conservativo (per siti fragili)
• 2 = default bilanciato (good citizen)
• 4 = veloce ma più aggressivo (rischio rate-limit del target)
NON impatta multi-dominio: 100 domini diversi vengono fetchati in parallelo. |