Configurazione del widget
Tutte le opzioni di inizializzazione di BluBot, in forma di attributi data e di oggetto JavaScript.
BluBot si configura in due modi equivalenti: attributi data-* sul tag script,
adatti a chi non può scrivere JavaScript, oppure un oggetto di configurazione
passato a BluBot.init, che consente valori dinamici e oggetti annidati.
Precedenza
Se sono presenti entrambi, l'oggetto passato a init sovrascrive gli attributi
data-*. Le impostazioni del progetto nella Console valgono come valori
predefiniti e vengono sovrascritte da entrambi.
Le due forme
<script
src="https://static.blupantheon.com/blubot/v1/bpblubot.umd.js"
data-project-key="bp_proj_7f3a9c21"
data-locale="it"
data-position="bottom-right"
data-offset-x="24"
data-offset-y="24"
data-primary-color="#1e3a8a"
data-theme="auto"
data-title="Assistenza Acme"
data-subtitle="Rispondiamo in pochi secondi"
data-placeholder="Scrivi il tuo messaggio..."
data-auto-open="false"
data-z-index="2147483000"
data-hide-on-mobile="false"
data-sound-enabled="true"
data-gdpr-consent-required="true"
defer
></script>Gli attributi usano la forma con trattini: autoOpenDelay diventa
data-auto-open-delay. I valori booleani sono le stringhe "true" e "false".
Gli oggetti annidati come user non sono esprimibili con gli attributi.
Riferimento delle opzioni
Opzioni di inizializzazione
| Parametro | Tipo | Obblig. | Default | Descrizione |
|---|---|---|---|---|
projectKey | string | Sì | — | Chiave del progetto e dell ambiente, nel formato bp_proj_ seguito da 16 caratteri. Senza questo valore il widget non si avvia. |
locale | string | No | — | Lingua dell interfaccia e delle risposte: it, en, fr, de, es, ar, ro. Predefinito: lingua del browser, con ripiego su it. |
position | string | No | — | Angolo di ancoraggio del launcher: bottom-right oppure bottom-left. Predefinito bottom-right. |
offsetX | number | No | — | Distanza orizzontale dal bordo in pixel. Predefinito 20. Utile per non coprire altri pulsanti flottanti. |
offsetY | number | No | — | Distanza verticale dal bordo in pixel. Predefinito 20. |
primaryColor | string | No | — | Colore principale in esadecimale. Determina launcher, bolle utente e pulsanti. Predefinito: colore del progetto. |
theme | string | No | — | Tema dell interfaccia: light, dark oppure auto. Con auto segue la preferenza di sistema. |
avatarUrl | string | No | — | URL HTTPS dell immagine dell assistente. Sovrascrive l avatar configurato nel progetto. |
title | string | No | — | Titolo mostrato nell intestazione della finestra. Massimo 32 caratteri. |
subtitle | string | No | — | Sottotitolo sotto il titolo, tipicamente il tempo di risposta atteso. Massimo 48 caratteri. |
welcomeMessage | string | No | — | Primo messaggio mostrato all apertura. Sovrascrive quello dell avatar. |
placeholder | string | No | — | Testo segnaposto del campo di scrittura. Massimo 48 caratteri. |
launcherIcon | string | No | — | Icona del pulsante di apertura: chat, message, help, sparkles, oppure un URL HTTPS di immagine. |
autoOpen | boolean | No | — | Apre automaticamente la finestra al caricamento. Predefinito false. |
autoOpenDelay | number | No | — | Ritardo in millisecondi prima dell apertura automatica. Predefinito 0. Valore consigliato 8000. |
zIndex | number | No | — | Livello di sovrapposizione del contenitore. Predefinito 2147483000. |
user | object | No | — | Dati dell utente autenticato: id, name, email, metadata. Vedi la sezione dedicata. |
hideOnMobile | boolean | No | — | Nasconde il widget sotto i 768 pixel di larghezza. Predefinito false. |
soundEnabled | boolean | No | — | Riproduce un suono discreto all arrivo di un messaggio. Predefinito true. |
gdprConsentRequired | boolean | No | — | Blocca ogni chiamata di rete finché l utente non accetta l informativa. Predefinito: valore del progetto. |
Oggetto utente
L'oggetto user identifica la persona che sta scrivendo e alimenta le variabili
usate nei flussi e nei
webhook.
Campi di user
| Parametro | Tipo | Obblig. | Default | Descrizione |
|---|---|---|---|---|
id | string | Sì | — | Identificativo stabile dell utente nel tuo sistema. Non usare valori che cambiano tra le sessioni. |
name | string | No | — | Nome mostrato agli operatori nella Console. |
email | string | No | — | Indirizzo email usato per la corrispondenza con l anagrafica. |
phone | string | No | — | Numero di telefono in formato internazionale, ad esempio +39 340 1234567. |
metadata | object | No | — | Coppie chiave-valore aggiuntive. Massimo 20 chiavi, valori di massimo 256 caratteri. |
signature | string | No | — | Firma HMAC dell id, generata sul tuo server. Obbligatoria se l identificazione verificata è attiva. |
Identificazione verificata
Senza firma, chiunque può dichiarare un id arbitrario dalla console del browser
e leggere lo storico di un altro utente. Attiva Identificazione verificata
nel progetto e calcola la firma sul server, mai nel browser.
Vedi Firma HMAC.
window.BluBot.setUser({
id: 'usr_88213',
name: 'Marco Rossi',
email: 'marco.rossi@example.it',
signature: 'a3f1c9d2e7b4508612f0ac93d5e781b4c0629f3a8d47e1b05c9f2a6d8e310b74'
});Variabili di ambiente per il tuo build
Se generi lo snippet dal tuo processo di build, definisci queste variabili.
| Variabile | Obbligatoria | Default | Descrizione | Esempio |
|---|---|---|---|---|
NEXT_PUBLIC_BLUBOT_PROJECT_KEY | Sì | — | Chiave del progetto per l ambiente corrente. È un valore pubblico. | bp_proj_7f3a9c21 |
NEXT_PUBLIC_BLUBOT_SCRIPT_URL | No | https://static.blupantheon.com/blubot/v1/bpblubot.umd.js | URL del bundle. Usa una versione bloccata negli ambienti regolamentati. | https://cdn.blupantheon.com/blubot/1.24.0/blubot.umd.js |
NEXT_PUBLIC_BLUBOT_LOCALE | No | it | Lingua forzata dell interfaccia. Se assente si usa quella del browser. | it |
NEXT_PUBLIC_BLUBOT_THEME | No | auto | Tema dell interfaccia: light, dark oppure auto. | light |
BLUBOT_USER_SIGNING_SECRET | No | — | Segreto lato server per firmare l id utente. Non esporlo mai al browser. | whsec_xxxxxxxxxxxxxxxx |
Segreto per la firma dell identificativo utente
whsec_xx••••••••••••••Da usare solo sul server. Ruotalo almeno una volta all anno.
Configurazione per ambiente
Usa chiavi diverse per ambiente in modo che le conversazioni di collaudo non inquinino le statistiche di produzione.
const KEYS = {
'www.acme.it': 'bp_proj_7f3a9c21',
'staging.acme.it': 'bp_proj_stg_2b48ef60',
localhost: 'bp_proj_dev_9c07da13'
};
window.BluBot.init({
projectKey: KEYS[window.location.hostname] ?? KEYS.localhost,
locale: document.documentElement.lang || 'it'
});Consenso e privacy
Con gdprConsentRequired attivo il widget mostra il launcher ma non contatta
l'API finché l'utente non accetta. Se usi una piattaforma di gestione del consenso,
inizializza il widget solo dopo l'accettazione.
window.addEventListener('consent:updated', function (event) {
if (event.detail.categories.includes('functional')) {
window.BluBot.init({ projectKey: 'bp_proj_7f3a9c21' });
} else {
window.BluBot.destroy();
}
});Valori predefiniti
| Opzione | Valore predefinito |
|---|---|
locale | Lingua del browser, ripiego su it |
position | bottom-right |
offsetX / offsetY | 20 |
theme | auto |
launcherIcon | chat |
autoOpen | false |
autoOpenDelay | 0 |
zIndex | 2147483000 |
hideOnMobile | false |
soundEnabled | true |
gdprConsentRequired | Valore impostato nel progetto |
Errori di configurazione
| Messaggio in console | Causa | Rimedio |
|---|---|---|
BluBot: projectKey is required | Chiave assente | Aggiungi data-project-key o il campo in init |
BluBot: invalid position | Valore non ammesso | Usa bottom-right o bottom-left |
BluBot: already initialised | Doppia inizializzazione | Imposta data-auto-init="false" |
BluBot: invalid user signature | Firma errata o scaduta | Rigenera la firma sul server |
BluBot: origin not allowed | Dominio non autorizzato | Aggiungilo in Domini autorizzati |
Passi successivi
- API JavaScript — controlla il widget a runtime.
- Personalizzazione — variabili CSS e launcher su misura.
- Eventi — reagisci a ciò che accade nella chat.