# Passare i dati dell'utente alla chat

> Passa alla chat nome, email e altri dati dei clienti registrati sul tuo sito: la chat li riconosce e il cliente non deve riscriverli.

Pagina: https://supportfast.ai/it/guida/sito-web/dati-utente/ · Sezione: Sviluppatori · Aggiornata il 30 ottobre 2026

Quando un cliente è collegato al tuo sito, sai già chi è. Con poche righe di codice nelle pagine del sito puoi passare questi dati alla chat. Le istruzioni qui sotto sono per chi sviluppa il sito.

## Cosa ottieni

- **Contatti completi.** Nome, email e telefono arrivano nella scheda del contatto, in [Contatti](https://supportfast.ai/it/guida/contatti/scheda.md), legati alla conversazione.
- **Meno domande al cliente.** I moduli della chat sono già compilati con i dati che passi. Se i dati coprono tutti i campi, la chat non chiede né il modulo contatti né quello della [live chat (scheda Chat Operatore)](https://supportfast.ai/it/guida/agente-testuale/chat-operatore.md), che il visitatore compila quando chiede di parlare con una persona del team. Il modulo di un nodo Form del Playground compare comunque, già compilato: il cliente lo controlla e lo invia.
- **Dati tuoi.** Puoi passare anche dati come il codice cliente o il livello di fedeltà, nelle variabili del workspace.

> **Prima di iniziare**
>
> - Il widget installato sul sito (vedi [Installare il widget](https://supportfast.ai/it/guida/sito-web/installa-widget.md)) e l'accesso ai modelli (template) del sito, o uno sviluppatore che li modifichi.
> - Per i dati personalizzati, le variabili create in Workspace › Impostazioni › Contatti, riquadro Variabili.

## Come si passano i dati

Prima del codice del widget aggiungi uno script che crea l'oggetto `window.chatbotUserData` con i dati del cliente collegato. Il widget lo legge quando parte.

**HTML · i dati del cliente e il codice del widget (dati d'esempio)**

```
<script>
  window.chatbotUserData = {
    firstName: "Mario",
    lastName: "Rossi",
    email: "mario.rossi@esempio.it",
    phone: "+390212345678",
    company: "Officina Rossi",
    metadata: {
      codice_cliente: "C-1234"
    }
  };
</script>
<script defer id="supportfast-script" src="https://cdn.supportfast.ai/chatbot.js" data-chatbot-id="bot-a1b2c3d4e5"></script>
```

Nelle pagine vere i valori non si scrivono a mano: li stampa il tuo sito, solo quando il cliente è collegato. Gli esempi per WordPress, Shopify e PrestaShop sono [più sotto](https://supportfast.ai/it/guida/sito-web/dati-utente.md#esempi).

> **Attenzione**
>
> **Prepara i valori per JavaScript.** Un nome con le virgolette o con una barra rovesciata rompe lo script, se lo stampi così com'è. Usa la funzione della tua piattaforma che prepara il testo per JavaScript, come negli esempi.

## I campi accettati

| Campo | Cosa contiene |
| --- | --- |
| `firstName` | Nome |
| `lastName` | Cognome |
| `fullName` | Nome e cognome insieme |
| `company` | Azienda |
| `email` | Indirizzo email |
| `phone` | Numero di telefono, meglio in formato internazionale con il `+` |
| `metadata` | Le variabili personalizzate del workspace |

- Scrivi i nomi dei campi esattamente così, con maiuscole e minuscole.
- Passa solo i campi che hai: nessuno è obbligatorio. I campi che non sono in tabella non partono.

## Le variabili personalizzate (metadata)

In `metadata` metti i dati che non rientrano nei campi standard, come un codice cliente. Ogni chiave deve corrispondere a una variabile del workspace.

1. **Crea la variabile**
   In Workspace › Impostazioni › Contatti, riquadro Variabili, premi Aggiungi variabile. Per esempio: Nome visibile «Codice cliente», Tipo di dato Testo.

2. **Usa l'identificativo come chiave**
   In `metadata` scrivi come chiave l'Identificativo (ID) per l'AI della variabile, per esempio `codice_cliente`. Il widget riconosce anche il Nome visibile, ma quello si può cambiare in console: da quel momento il dato non arriverebbe più.

Il valore deve rispettare il tipo della variabile:

| Tipo di dato | Valore da passare | Esempio |
| --- | --- | --- |
| Testo | Un testo, entro la lunghezza della variabile | `"C-1234"` |
| Numero | Un numero, anche scritto come testo, con il punto per i decimali. Un testo con altre parole, come `"3 auto"`, non parte | `3` |
| Si/No | `true` o `false`, anche scritti come testo | `true` |
| Data | Un testo nel formato AAAA-MM-GG, lo stesso dei moduli della chat | `"2026-10-19"` |
| Scelta singola | Uno dei valori possibili della variabile, scritto uguale | `"Gold"` |
| Scelta multipla | Un elenco di valori possibili | `["newsletter", "promozioni"]` |

Come si usano poi le variabili lo spieghiamo in [Variabili e profilazione automatica](https://supportfast.ai/it/guida/contatti/variabili-profilazione.md).

## Quando partono i dati

Il widget legge `window.chatbotUserData` al caricamento della pagina. I dati arrivano a SupportFast quando il cliente scrive: al primo messaggio, all'invio di un modulo o di un allegato. Finché non scrive, in Contatti non compare nulla.

## Se i dati arrivano dopo il caricamento

In alcuni siti il cliente accede senza che la pagina si ricarichi, per esempio nelle applicazioni a pagina singola. In quel caso passa i dati con `window.SupportFast.identify()`. I dati nuovi sostituiscono i precedenti, non si sommano.

**JavaScript · dopo l'accesso del cliente (dati d'esempio)**

```
// passa i dati direttamente
window.SupportFast.identify({
  firstName: "Mario",
  email: "mario.rossi@esempio.it"
});

// oppure aggiorna window.chatbotUserData e falli rileggere
window.chatbotUserData = { firstName: "Mario", email: "mario.rossi@esempio.it" };
window.SupportFast.identify();
```

## Esempi per piattaforma

Negli esempi lo script parte solo se il cliente è collegato. Mettilo prima del codice del widget, nell'intestazione delle pagine.

### WordPress

Le righe qui sotto vanno in uno di questi due posti:

- **in fondo al file `functions.php` del tema figlio**, se il sito ne ha uno;
- **in un plugin per gli snippet di codice**, come [Code Snippets](https://wordpress.org/plugins/code-snippets/), se il sito non ha un tema figlio. Crea uno snippet PHP nuovo, incolla le righe e scegli di eseguirlo su tutto il sito.

Non scriverle nel `functions.php` del tema principale: il prossimo aggiornamento del tema le cancellerebbe.

**PHP · functions.php del tema figlio, o uno snippet**

```
// Chat SupportFast: i dati del cliente collegato
add_action( 'wp_head', function () {
	if ( ! is_user_logged_in() ) {
		return;
	}
	$utente = wp_get_current_user();
	$dati   = array(
		'firstName' => $utente->user_firstname,
		'lastName'  => $utente->user_lastname,
		'email'     => $utente->user_email,
		// con WooCommerce puoi aggiungere il telefono di fatturazione:
		// 'phone' => get_user_meta( $utente->ID, 'billing_phone', true ),
	);
	echo '<script>window.chatbotUserData = ' . wp_json_encode( $dati, JSON_HEX_TAG | JSON_HEX_AMP ) . ';</script>' . "\n";
}, 1 );
```

### Shopify

In `theme.liquid`, prima del codice del widget, incolla queste righe. Se un dato manca, per esempio il telefono, il widget lo ignora.

**Liquid · theme.liquid**

```
{% if customer %}
<script>
  window.chatbotUserData = {
    firstName: {{ customer.first_name | json }},
    lastName: {{ customer.last_name | json }},
    email: {{ customer.email | json }},
    phone: {{ customer.phone | json }}
  };
</script>
{% endif %}
```

### PrestaShop

Nei temi di PrestaShop 1.7 e 8 aggiungi queste righe in fondo al file dell'intestazione: nel tema Classic è `templates/_partials/head.tpl`. Lavora su un tema figlio o su una copia del tema, per non perdere le righe al prossimo aggiornamento. Se il widget non è ancora installato, incolla il suo codice nello stesso file, dopo queste righe, come spiegato in [HTML e altri siti](https://supportfast.ai/it/guida/sito-web/altri-siti.md#prestashop). Poi svuota la cache di PrestaShop.

**Smarty · templates/_partials/head.tpl**

```
{if $customer.is_logged}
<script>
  window.chatbotUserData = {
    firstName: "{$customer.firstname|escape:'javascript' nofilter}",
    lastName: "{$customer.lastname|escape:'javascript' nofilter}",
    email: "{$customer.email|escape:'javascript' nofilter}"
  };
</script>
{/if}
```

## Con l'iframe

Nella chat dentro un iframe `window.chatbotUserData` non arriva, perché la chat sta su un altro dominio. I dati si mandano con un messaggio fra la tua pagina e l'iframe.

1. **Dai un id all'iframe**
   Aggiungi un attributo `id` all'iframe copiato dalla console, per esempio `id="chat-supportfast"`.

2. **Aggiungi lo script**
   Lo script qui sotto aspetta che la chat sia pronta e le manda i dati, negli stessi campi di `window.chatbotUserData`.

**HTML · iframe con i dati del cliente (dati d'esempio)**

```
<iframe id="chat-supportfast" src="https://app.supportfast.ai/chatbot-iframe/bot-a1b2c3d4e5" title="Chat" width="100%" height="600" style="border: 0" allow="microphone"></iframe>
<script>
  (function () {
    var frame = document.getElementById("chat-supportfast");
    var dati = {
      firstName: "Mario",
      lastName: "Rossi",
      email: "mario.rossi@esempio.it"
    };
    window.addEventListener("message", function (event) {
      if (event.source !== frame.contentWindow) return;
      if (event.data && event.data.type === "CHATBOT_READY") {
        // i dati partono solo verso l'indirizzo della chat
        frame.contentWindow.postMessage(
          { type: "CHATBOT_USER_DATA", data: dati },
          new URL(frame.src).origin
        );
      }
    });
  })();
</script>
```

- Incolla lo script subito dopo l'iframe: deve partire prima che la chat sia pronta, altrimenti il messaggio `CHATBOT_READY` va perso.
- Per i clienti registrati riempi l'oggetto `dati` come negli esempi sopra.

I messaggi fra la chat e la pagina sono questi:

| Messaggio | Direzione | Quando |
| --- | --- | --- |
| `{ type: "CHATBOT_READY" }` | Dalla chat alla pagina | Quando la chat è pronta. |
| `"chatbot_new_conversation"` (un testo, non un oggetto) | Dalla chat alla pagina | Quando nasce una conversazione. |
| `{ type: "CHATBOT_USER_DATA", data: { … } }` | Dalla pagina alla chat | Quando passi i dati del cliente collegato. |

## Come verificare

1. **Entra nel sito come cliente**
   Usa un account di prova, in una finestra anonima.

2. **Scrivi un messaggio nella chat**
   Va bene un messaggio qualsiasi, per esempio «Buongiorno».

3. **Apri il contatto**
   In Contatti apri la scheda del contatto: nome, email e variabili sono quelli che hai passato.

## Privacy e sicurezza

- Passa solo i dati del cliente collegato, e solo quelli che servono all'assistenza. Mai password, dati di pagamento o dati sanitari.
- I dati stanno nella pagina che il sito manda a quel cliente, nel suo browser. Se il sito usa una cache delle pagine (un plugin di cache, la cache dell'hosting o un CDN), controlla che le pagine dei clienti collegati non vengano salvate: altrimenti la pagina con i dati di un cliente può arrivare a un altro. Molti plugin di cache le escludono già di serie.
- `window.chatbotUserData` si può leggere e modificare dal browser di chi visita il sito. Per SupportFast sono dati dichiarati, non un'identità verificata: non usarli per dare accesso a informazioni riservate.
- Questo passaggio di dati va indicato nella tua informativa: vedi [Privacy e sicurezza](https://supportfast.ai/it/guida/aiuto/privacy-sicurezza.md).

## Domande frequenti

**I dati valgono anche per WhatsApp e i social?**

No. Valgono solo per la chat del sito: il widget e la chat nell'iframe.

**Ho passato i dati ma il contatto è vuoto. Perché?**

Di solito lo script parte dopo il widget, un nome di campo è scritto male o un valore è troppo lungo. I controlli sono in [Problemi con il widget sul sito](https://supportfast.ai/it/guida/aiuto/problemi-widget.md#non-riconosce).

## Leggi anche

- [API JavaScript del widget](https://supportfast.ai/it/guida/sviluppatori/widget-api.md): Tutti i metodi, gli eventi e le opzioni del widget.

- [Variabili e profilazione automatica](https://supportfast.ai/it/guida/contatti/variabili-profilazione.md): Creare le variabili del workspace e usarle.

- [Profilo Agente: Contatti](https://supportfast.ai/it/guida/agente-testuale/modulo-contatti.md): Il modulo con cui la chat chiede i dati.
