# Moduli in chat: raccogli i dati in un solo passaggio

> Crea brevi moduli fino a 20 campi, come una richiesta di preventivo o un reso, che l'agente mostra sotto la risposta quando servono. Gli invii arrivano in Leads, via email, su Slack, via webhook e a un webhook proprio del modulo.

Un modulo in chat raccoglie più dati in una volta, per esempio per cosa un visitatore vuole un preventivo, oppure un numero d'ordine e il motivo di un reso, invece di far fare all'agente una domanda alla volta. Crei il modulo nella scheda **Actions** (azioni). L'agente decide quando mostrarlo. I campi sono sempre quelli che hai impostato tu.

## Creare un modulo

1. Nella scheda **Actions** vai a **Forms**, sotto le tue azioni, e clicca su **Add form**.
2. Compila i campi:
   - **Name** (nome): mostrato ai visitatori come titolo del modulo. Fino a 60 caratteri.
   - **When to show it** (quando mostrarlo): lo legge l'agente, i visitatori non lo vedono. Descrivi in massimo 1.000 caratteri i momenti in cui il modulo è utile. Per esempio: "Quando il visitatore chiede il prezzo di un ordine personalizzato o vuole un preventivo per più articoli."
   - **Fields** (campi): ciò che chiede il modulo, fino a 20 campi. Ognuno ha un **Label** (etichetta) di massimo 60 caratteri, un **Type** (tipo) e una casella **Required** (obbligatorio). Due campi non possono avere la stessa etichetta. Usa le frecce per cambiare l'ordine.
   - **Button text** (testo del pulsante): facoltativo, fino a 30 caratteri. Se lo lasci vuoto, i visitatori vedono "Invia" nella loro lingua.
   - **Message after sending** (messaggio dopo l'invio): facoltativo, fino a 300 caratteri. Se lo lasci vuoto, i visitatori vedono un breve ringraziamento nella loro lingua.
3. Lascia attivo **Agent can show this form**, controlla la **Preview** (anteprima) e clicca su **Add form**.

| Tipo | Cosa inserisce il visitatore |
|---|---|
| **Short text** | Fino a 200 caratteri |
| **Long text** | Fino a 2.000 caratteri |
| **Email** | Un indirizzo email, controllato prima dell'invio |
| **Phone** | Un numero di telefono di massimo 30 caratteri, controllato prima dell'invio |
| **Number** | Un numero come `12` o `12.5`, anche con la virgola |
| **Date** | Una data, scelta in un campo data |
| **Dropdown** | Una delle tue opzioni. Inserisci un'opzione per riga, fino a 20 opzioni di massimo 60 caratteri ciascuna. |

I visitatori vedono nome, etichette, opzioni, testo del pulsante e messaggio esattamente come li scrivi, quindi scrivili nella lingua dei tuoi visitatori. Il resto del modulo, come "(facoltativo)", i messaggi di errore, l'"Invia" predefinito e il ringraziamento predefinito, segue **Widget language** nella scheda [Appearance](/it/docs/appearance).

## Gestire i moduli

Ogni modulo nell'elenco mostra il badge **Form**, il numero di campi e il numero di invii.

- L'interruttore **Enabled** impedisce all'agente di offrire il modulo, senza eliminarlo. Un modulo già mostrato in una chat indica allora "Questo modulo non è più disponibile."
- **Edit** apre il modulo. Se rinomini o rimuovi un campo, le risposte già inviate dai visitatori restano. Un modulo mostrato di nuovo in una chat, per esempio dopo un ricaricamento, presenta la tua versione attuale.
- Il pulsante del cestino elimina il modulo e tutti i suoi invii. Non si può annullare, quindi esporta prima gli invii dalla scheda **Leads** se vuoi conservarli.

Un agente può avere fino a 10 moduli. I moduli non contano nel limite di 25 azioni.

## Quando l'agente mostra un modulo

L'agente legge **When to show it** per ogni modulo attivo. Quando la conversazione lo richiede, mostra il modulo sotto la sua risposta e lo cita con una breve frase. Non chiede gli stessi dati in chat.

- Il modulo viene costruito da quello che hai salvato. Il modello di IA decide solo quando mostrarlo, mai cosa chiede.
- L'agente mostra al massimo un modulo sotto una risposta.
- Nessun modulo compare sotto una risposta che mostra già il [modulo lead](/it/docs/lead-collection) perché una delle tue regole l'ha attivato.
- I moduli non compaiono nelle chat temporanee, dove non viene salvato nulla. L'agente invita invece il visitatore a tornare alla sua conversazione salvata.

I moduli compaiono nella bolla della chat, nell'iframe incorporato, nel link diretto, nella [pagina di assistenza](/it/docs/help-page) e nel **Playground**. Vengono salvati con la risposta, quindi si vedono anche nelle trascrizioni della scheda **Conversations**, dove **Why this answer** li elenca sotto **Actions called** come "Form".

## Cosa fanno i visitatori

Il visitatore compila il modulo sotto la risposta e clicca sul pulsante. I campi obbligatori e le risposte di tipo email, telefono, numero e data vengono controllati prima dell'invio. Poi il modulo mostra il tuo **Message after sending**.

Ogni modulo si può inviare una volta per conversazione. Dopo risulta inviato, anche se il visitatore ricarica la pagina.

## Gli invii nella scheda Leads

Nella scheda **Leads**, il riquadro **Form submissions** elenca ciò che i visitatori hanno inviato. Scegli un modulo in **Form** per vederne gli invii, dal più recente, 20 per pagina, con le risposte e un link alla conversazione.

- **Refresh** carica i nuovi invii.
- **Export CSV** scarica fino a 10.000 degli invii più recenti del modulo scelto. Il file ha le colonne `Submitted at (UTC)`, una colonna per campo con la sua etichetta attuale, nell'ordine del modulo, e `Conversation ID`. Un campo rimosso riceve una colonna dopo queste quando un invio vi ha risposto. Le risposte che iniziano con `=`, `+`, `-` o `@` ricevono un apostrofo iniziale, così i fogli di calcolo non le leggono come formule.
- Il pulsante del cestino elimina un invio. I webhook e le email già inviati non cambiano.

> Gli invii sono tenuti separati dai lead. Un indirizzo email in un modulo non aggiunge un lead e non genera né una notifica di nuovo lead né un webhook `lead.created`.

## Notifiche

- **Email**: ogni invio arriva via email ai destinatari delle tue [notifiche dei lead](/it/docs/lead-alerts-and-export), ma solo finché **Email when a new lead arrives** è attivo. L'oggetto è `New "` seguito dal nome del modulo, da `" form from` e dal nome dell'agente. L'email elenca le risposte e l'ora, con un pulsante **See the conversation**. Se il modulo ha un campo email, la risposta va all'indirizzo inserito dal visitatore. Ogni agente invia al massimo 30 email di moduli all'ora, separate dalle notifiche dei lead; gli invii oltre questo limite vengono comunque salvati.
- **Slack**: nel riquadro **Slack alerts**, seleziona **Form submission** in **Post a message for**. Vedi [Notifiche Slack](/it/docs/lead-alerts-and-export).
- **Webhook**: iscrivi un webhook a **Form submitted** per ricevere l'evento `form.submitted` con le risposte di tutti i moduli. Vedi [Webhook](/it/docs/webhooks).
- **Il webhook proprio del modulo**: invia solo gli invii di questo modulo a un indirizzo; vedi sotto.

## Un webhook per un solo modulo

Ogni modulo può avere un webhook tutto suo, per esempio per inviare le richieste di preventivo al tuo CRM e le richieste di reso al sistema del tuo negozio. Riceve solo gli invii di questo modulo.

1. Nella scheda **Actions**, clicca su **Edit** su un modulo salvato. **Webhook for this form** si trova in fondo all'editor. Un nuovo modulo lo riceve dopo che l'hai aggiunto.
2. In **Endpoint URL**, incolla l'indirizzo che il tuo server o il tuo strumento fornisce per i webhook in entrata e clicca su **Add webhook**. L'indirizzo deve iniziare con `https://` e puntare a un server pubblico, come per i webhook dell'agente.
3. Copia il segreto di firma che compare, conservalo dove il tuo ricevitore può leggerlo e clicca su **I've saved it**. Viene mostrato per intero solo questa volta.
4. Clicca su **Send test event** per controllare il collegamento.

Il pannello si salva da solo, separatamente dal modulo. Il suo interruttore **Active** mette in pausa gli invii, **Save address** cambia l'indirizzo, **New secret** sostituisce il segreto, **Remove** elimina il webhook e la sua cronologia degli invii, e **Recent deliveries** mostra gli ultimi 20 invii con un pulsante **Resend** per quelli non riusciti. L'elenco dei moduli mostra "own webhook" accanto a un modulo che ne ha uno.

- Invia l'evento `form.submitted`, con lo stesso payload, la stessa firma, gli stessi nuovi tentativi e lo stesso registro degli invii dei [webhook](/it/docs/webhooks) dell'agente. I suoi eventi non si possono cambiare.
- Non conta nei 5 webhook dell'agente e non compare nel riquadro **Webhooks** della scheda **Leads**.
- I webhook dell'agente iscritti a **Form submitted** continuano a ricevere gli invii di tutti i moduli, compreso questo. Per inviare gli invii di un modulo solo al suo webhook, togli la selezione da **Form submitted** nei webhook dell'agente.
- Eliminare il modulo elimina anche il suo webhook. Un [agente duplicato](/it/docs/quick-start) riceve una copia dei moduli senza i loro webhook.
- Aggiungere o rimuovere il webhook, cambiarne l'indirizzo e creare un nuovo segreto richiedono il ruolo **Admin** o il proprietario dell'account; gli editor possono attivarlo o disattivarlo e inviare un evento di prova. Vedi [Membri del team e ruoli](/it/docs/team).

## Duplicare un agente

Un [agente duplicato](/it/docs/quick-start) riceve una copia dei moduli, senza i webhook propri dei moduli. Gli invii restano con l'agente originale.

> L'agente decide soprattutto in base a **When to show it**. Se mostra il modulo troppo spesso o mai, descrivi i momenti in modo più preciso e riprova nel Playground.
