← Indice
Documento 05

Dipendenze & Contratti

Il sistema si coordina con due sviluppatori esterni e gira su infrastruttura tua. Questi tre punti vanno fissati presto: sono ciò che detta davvero il calendario.

In breve
Contratto webhook WhatsApp · endpoint Tasa · infrastruttura n8n
Data
Maggio 2026

Il contratto webhook WhatsApp

L'agente WhatsApp esterno e n8n si parlano via webhook in entrambe le direzioni. Lo schema esatto va concordato col developer: finché non è scritto, circa nove endpoint restano in sospeso. È il rischio numero uno sulle tempistiche, ed è la cosa più importante da bloccare per iscritto alla prima call utile.

L'agente chiama n8n (in entrata)

n8n chiama l'agente (in uscita)

+ Un'API di lettura

L'agente interroga n8n per numero WhatsApp e riceve tier, situazione, flag upsell e stato — così decide da solo flusso pieno o ridotto (blocco 9). n8n non marca nulla esplicitamente: è l'agente che legge.

Punti da fissare nel contratto

Autenticazione nelle due direzioni (firma HMAC condivisa). Idempotenza: ogni chiamata porta un id evento, i duplicati devono essere innocui. La pratica come unica chiave di join — attenzione al caso capo-famiglia: un numero può avere fino a 4 pratiche, è il suo sistema a dover capire a quale pratica si riferisce un'azione. Semantica degli errori: quali codici significano "riprova" e dove finisce una chiamata morta. Valori esatti degli esiti (le stringhe per ottenuto/rejected).

Il confine

Per chiarezza di responsabilità: n8n è la pipeline dati e la fonte di verità dello stato pratica. Il sistema esterno possiede tutta la logica conversazionale, il numero, l'auth gate, gli orari e i messaggi notturni. Se il suo sistema è giù, n8n logga e riprova e nulla si corrompe. Un problema al lancio dovuto a un webhook non definito o cambiato è una lacuna di contratto, non un bug di n8n.

L'endpoint Tasa 790/012

La parte più difficile tecnicamente — estrarre la Tasa da un sito governativo difeso dai bot via browser automation + proxy — è fuori dal mio scope: la gestisce un developer separato. Io ricevo il PDF dal suo endpoint e lo unisco all'EX-18. Ottima cosa: tiene il rischio più grosso lontano dal mio lavoro.

Resta però sul percorso critico: il blocco 3 non si chiude finché l'endpoint non esiste. Da concordare con lui questa settimana, anche se non è alla call:

Nel frattempo lo simulo con uno stub (vedi Piano), così il resto del blocco 3 non aspetta lui.

Infrastruttura n8n

n8n è self-hosted. "Robusto al lancio" richiede che regga un picco e un riavvio senza perdere eventi. Se gira su una singola VPS in modalità base, un picco il giorno del lancio + un riavvio possono far perdere webhook: Stripe, Tally e Calendly li ripetono, ma l'agente WhatsApp potrebbe non farlo.

Da verificare presto: che n8n giri in queue mode (con persistenza e resistenza ai riavvii). È un'assunzione che, se non vera, può compromettere silenziosamente tutto il resto.

Costi di esercizio da considerare

Oltre alla costruzione, il sistema a regime ha costi ricorrenti: hosting n8n (queue mode = macchina più grande), Supabase, Resend, Tally, il sistema WhatsApp esterno e il proxy della Tasa. Vale la pena stimarli insieme prima del lancio.