Modulo 07 · Fase VENDI

Automazioni & Agenti

Il sistema inizia a lavorare da solo: 7 email, 2 SMS, un agente che qualifica e un mini CRM. Tutto costruito con Claude.

Risultato: richiami automatici + agente + CRMDurata: 6 lezioni
Mappa del modulo

Sei lezioni, un sistema che risponde

  1. L01 · ArchitetturaDal form alla notifica: il flusso completo.
  2. L02 · Sequenza email 7 giorniClaude scrive, Resend spedisce.
  3. L03 · SMS e WhatsApp con TwilioSolo con consenso. Massimo 2.
  4. L04 · Agente filtra-leadClaude API: 4 domande, punteggio 0-100.
  5. L05 · Mini CRMNotion/Airtable oppure Node + Postgres su Railway.
  6. L06 · Test e GDPRCompili il form e guardi tutto scattare.
M07.L01 · Lezione 1 di 6

Architettura

Obiettivo: sapere cosa succede a un contatto dal secondo in cui compila il form.

Il flusso del contatto

Dal form alla tua notifica

01Formlanding · consenso GDPR
02Resendsequenza 7 giorni
03SMS / WhatsAppsolo con consenso
04Agente AI4 domande · punteggio
05Mini CRMstato del contatto
06Notifica a teZoom o chiamata

ogni nodo si accende con →

M07.L02 · Lezione 2 di 6

Sequenza email 7 giorni

Obiettivo: 7 email scritte da Claude e caricate su Resend, che partono da sole.

Due modi per spedire

Resend: pannello o codice

  1. Economico · Resend Broadcasts + AutomationsIncolli le 7 email nel pannello, un giorno di distanza fra una e l'altra. Zero codice.
  2. Completo · invio via API con cron su RailwayUn file sequenza.js che ogni mattina alle 9 manda l'email giusta a chi è al giorno giusto.
  3. In entrambi i casi: dominio verificatoSPF + DKIM su Resend, altrimenti finisci nello spam.
  4. In entrambi i casi: link di disiscrizioneObbligatorio in ogni email. Nei Broadcasts lo aggiunge Resend.
Prompt · copia in Claude

Le 7 email in un prompt

Sei il mio copywriter email per il network marketing in Italia.
Azienda: [nome azienda] · Prodotto: [prodotto, es. sostituto pasto proteico]
Cliente: [descrizione del cliente ideale] · Risorsa consegnata: [nome guida/quiz]
La persona ha appena lasciato email e consenso sulla mia landing.

Scrivi una sequenza di 7 email, una al giorno:
1. Benvenuto + consegna della guida
2. La mia storia e il problema che avevo
3. Come funziona il prodotto, in parole semplici
4. Il prodotto descritto SOLO secondo etichetta e policy aziendale
5. Le 3 obiezioni più comuni e la mia risposta onesta
6. Prova sociale con disclaimer "esperienza personale, risultati non rappresentativi della media"
7. Invito: prenota lo Zoom settimanale oppure vai al checkout [link]

Vincoli: oggetto max 45 caratteri · 120-180 parole per email · tono diretto,
prima persona, "tu" · niente claim medici (nessun "cura", "dimagrisci", "guarisce") ·
niente promesse di guadagno · in fondo a ogni email: "sono un distributore
indipendente di [nome azienda]" + link disiscrizione {{{RESEND_UNSUBSCRIBE_URL}}}.
Formato: per ogni email → Giorno, Oggetto, Testo, CTA (una sola).
Demo a schermo

Ora lo facciamo davvero rec

genera le emailcaricale su Resendtorna qui

M07.L03 · Lezione 3 di 6

SMS e WhatsApp

Obiettivo: 2 SMS che partono solo a chi ha dato il consenso, con lo STOP e gli orari giusti.

Le regole prima del testo

Cinque regole non negoziabili

  1. Consenso esplicito e separatoUna casella solo per SMS/WhatsApp, non quella della privacy.
  2. Orari: 9:00 – 20:00, mai la domenicaIl cron controlla l'ora prima di spedire.
  3. STOP in ogni messaggio"Rispondi STOP per non ricevere più messaggi". E lo rispetti subito.
  4. Massimo 2 SMS a personaGiorno 2, promemoria della guida. Giorno 6, invito allo Zoom.
  5. Costo indicativo: 0,08 € a SMS in Italia100 contatti × 2 SMS = circa 16 €. Twilio si paga a consumo.
Prompt · copia in Claude

Tre SMS, 160 caratteri

Sei il mio copywriter SMS per il network marketing in Italia.
Azienda: [nome azienda] · Prodotto: [prodotto] · La persona ha dato consenso
esplicito agli SMS e ha ricevuto la guida [nome guida].

Scrivi 3 SMS (ne userò solo 2, scelgo io):
A. Giorno 2 — promemoria della guida + una domanda semplice
B. Giorno 6 — invito allo Zoom di [giorno] alle [ora] con link [link]
C. Riserva — risposta a chi scrive "info" (una frase + link landing)

Vincoli: max 160 caratteri ciascuno, spazi inclusi · inizia con il mio nome
"[nome]:" · chiudi sempre con "Rispondi STOP per non ricevere più msg" ·
niente claim medici · niente promesse di guadagno · niente maiuscole urlate.
Formato: tabella con SMS, testo, conteggio caratteri.
Demo a schermo

Ora lo facciamo davvero rec

crea il numerocarica i 2 SMSmanda il test a te

M07.L04 · Lezione 4 di 6

L'agente filtra-lead

Obiettivo: un agente su Claude API che fa 4 domande e restituisce un punteggio da 0 a 100.

Prompt di sistema

Il cervello dell'agente

Sei l'assistente di [nome], distributore indipendente di [nome azienda].
Parli con persone che hanno lasciato i dati sulla landing [URL] per [nome guida].
Rispondi in italiano, frasi corte, tono caldo e diretto. Mai più di 3 righe a messaggio.

OBIETTIVO: qualificare la persona con 4 domande, UNA per volta, in quest'ordine:
1. Esigenza — cosa vorrebbe cambiare o ottenere (parole sue)
2. Tempi — quando vorrebbe iniziare (subito / entro un mese / solo curioso)
3. Budget o uso — ha già usato prodotti simili? quanto spende oggi per [categoria]?
4. Canale — preferisce Zoom di gruppo, chiamata, o WhatsApp

REGOLE NON NEGOZIABILI:
- Nessun claim medico: non dire mai che il prodotto cura, guarisce, fa dimagrire.
  Il prodotto si descrive solo secondo etichetta: [descrizione da etichetta].
- Nessuna promessa di guadagno. Se chiedono cifre sul piano compensi, rispondi:
  "Non posso promettere nulla: [nome] ti spiega come funziona il piano, senza numeri."
- Passa all'umano (scrivi HANDOFF) quando: chiedono un prezzo preciso, parlano di
  una condizione di salute, sono arrabbiati, oppure hanno risposto a tutte e 4 le domande.
- Non inventare informazioni su [nome azienda]. Se non sai, dì che chiederai a [nome].

FORMATO: dopo ogni risposta aggiungi una riga JSON su una sola riga:
{"score": 0-100, "motivo": "max 15 parole", "prossimo_passo": "zoom|chiamata|whatsapp|attendi", "handoff": true|false}
Score: esigenza chiara +30 · tempi "subito" +30 · uso/budget coerente +20 · canale scelto +20.
Codice · Node.js

La chiamata all'API di Claude

// agent.js — qualifica un contatto con Claude (Node 18+, fetch nativo)
const SYSTEM = require("fs").readFileSync("./system.txt", "utf8");

async function qualifica(conversazione) {
  const res = await fetch("https://api.anthropic.com/v1/messages", {
    method: "POST",
    headers: {
      "x-api-key": process.env.ANTHROPIC_API_KEY,
      "anthropic-version": "2023-06-01",
      "content-type": "application/json"
    },
    body: JSON.stringify({
      model: "claude-sonnet-4-5",
      max_tokens: 1024,
      system: SYSTEM,
      messages: conversazione   // [{ role: "user", content: "Ciao, ho scaricato la guida" }, ...]
    })
  });
  const data = await res.json();
  const testo = data.content[0].text;               // risposta + riga JSON finale
  const json = JSON.parse(testo.split("\n").pop()); // { score, motivo, prossimo_passo, handoff }
  return { risposta: testo, ...json };
}

module.exports = { qualifica };
Demo a schermo

Ora lo facciamo davvero rec

Claude Code scrive il restodeploy su Railwayprova la chat

M07.L05 · Lezione 5 di 6

Il mini CRM

Obiettivo: ogni contatto ha una riga, uno stato e un punteggio. Apri il CRM e sai chi chiamare.

Due strade

Tabella senza codice o database vero

Economico · senza codice
Notion o Airtable + Claude

Una tabella con nome, email, telefono, consenso SMS, stato, punteggio e note. Claude legge la conversazione e compila i campi. Lo stato lo aggiorni tu.

Stati: nuovo → contattato → qualificato → cliente → distributore

Completo · Claude Code
Node + Postgres su Railway

Tabella leads in Postgres, API che riceve il form, l'agente scrive il punteggio, una pagina protetta da password con i filtri per stato.

Stessi 5 stati. In più: log delle conversazioni e notifica via Resend sopra 70.

Cosa dici a Claude · scheda Code · versione completa

Postgres, chiavi, deploy

permesso "Claude vuole usare Railway: aggiungi database" → Consenti Postgres aggiunto al progetto · variabile DATABASE_URL creata da sola
.env.example creato · le chiavi vere: Railway → servizio nmos-crm → Variables → incolla → Deploy. Mai in chat.
dietro le quinte: npm init · npm install express pg resend package.json pronto · 3 librerie: server, database, email
Railway riparte da solo · Build in corso Deploy completato → https://nmos-crm.up.railway.app
Cosa dici a Claude · scheda Code

Claude costruisce il CRM

Costruisci un mini CRM in Node.js (Express) con Postgres, pronto per Railway.
Usa DATABASE_URL, ANTHROPIC_API_KEY, RESEND_API_KEY e CRM_PASSWORD dalle variabili d'ambiente.

1. Tabella leads: id, nome, email, telefono, consenso_email (bool), consenso_sms (bool),
   stato (nuovo|contattato|qualificato|cliente|distributore), score (0-100),
   motivo, note, creato_il, aggiornato_il. Crea la tabella all'avvio se non esiste.
2. POST /api/lead: riceve il form della landing, salva il lead con stato "nuovo",
   aggiunge il contatto a Resend (audience [ID audience]) solo se consenso_email è true.
3. POST /api/chat: riceve {lead_id, messaggi}, chiama qualifica() da ./agent.js,
   aggiorna score e motivo; se score ≥ 70 o handoff è true → stato "qualificato"
   e invia a [mia email] un'email via Resend con nome, score, motivo e link al lead.
4. GET /crm: pagina protetta da CRM_PASSWORD (basic auth) con tabella dei lead,
   filtro per stato, bottone per cambiare stato, ricerca per nome/email.
5. DELETE /api/lead/:id: cancella il lead (diritto di cancellazione GDPR) e
   lo rimuove dall'audience Resend.
Stile: dark, font Inter, accento #C8FF00. Niente framework front-end.
Alla fine: README con i comandi per Railway e un file .env.example.
M07.L06 · Lezione 6 di 6

Test end-to-end

Obiettivo: compilare il tuo form come un cliente e vedere ogni pezzo scattare. Poi la checklist GDPR.

Checklist · test dal vivo

Compila il form. Poi spunta.

Attenzione compliance

Non dire

  • "Accetto la privacy e ricevo SMS" (una sola casella)
  • "Il nostro frullato ti fa perdere 5 kg in un mese"

Di' invece

  • Due caselle: "Voglio ricevere le email" / "Voglio ricevere SMS"
  • "Sostituzione di un pasto nel contesto di una dieta ipocalorica"
Economico vs completo

Due strade. Stesse automazioni.

FunzioneEconomicoCompleto
AIClaude Pro 20 €/meseClaude Max + Claude Code + API a consumo da 100 €/mese
EmailResend Free · Automations 0 €3.000 email/meseResend Pro + dominio verificato + API 20 $/mese
SMSTwilio a consumo ~0,08 €/SMS100 contatti ≈ 16 €Twilio + WhatsApp Business API ~0,08 €/SMS + conversazioni WA
AgenteClaude Projects + risposte semi-manuali inclusoAgente su Railway Hobby 5 $/mese+ API Claude a consumo
CRMNotion / Airtable Free 0 €Railway Pro + Postgres 20 $/mese
Totale≈ 36 €/mese≈ 165 €/mese
Fine modulo

Cosa hai costruito

  • Sequenza di 7 email su Resend, con disiscrizione
  • 2 SMS con Twilio, solo a chi ha dato il consenso
  • Agente filtra-lead su Claude API, punteggio 0-100
  • Mini CRM con 5 stati, da nuovo a distributore
  • Notifica a te quando il contatto è pronto
  • Prova completa superata e checklist GDPR
M07
completato