Blu Pantheon
Widget BluBot

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

Configurazione dichiarativa
<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

ParametroTipoObblig.DefaultDescrizione
projectKeystringSì—Chiave del progetto e dell ambiente, nel formato bp_proj_ seguito da 16 caratteri. Senza questo valore il widget non si avvia.
localestringNo—Lingua dell interfaccia e delle risposte: it, en, fr, de, es, ar, ro. Predefinito: lingua del browser, con ripiego su it.
positionstringNo—Angolo di ancoraggio del launcher: bottom-right oppure bottom-left. Predefinito bottom-right.
offsetXnumberNo—Distanza orizzontale dal bordo in pixel. Predefinito 20. Utile per non coprire altri pulsanti flottanti.
offsetYnumberNo—Distanza verticale dal bordo in pixel. Predefinito 20.
primaryColorstringNo—Colore principale in esadecimale. Determina launcher, bolle utente e pulsanti. Predefinito: colore del progetto.
themestringNo—Tema dell interfaccia: light, dark oppure auto. Con auto segue la preferenza di sistema.
avatarUrlstringNo—URL HTTPS dell immagine dell assistente. Sovrascrive l avatar configurato nel progetto.
titlestringNo—Titolo mostrato nell intestazione della finestra. Massimo 32 caratteri.
subtitlestringNo—Sottotitolo sotto il titolo, tipicamente il tempo di risposta atteso. Massimo 48 caratteri.
welcomeMessagestringNo—Primo messaggio mostrato all apertura. Sovrascrive quello dell avatar.
placeholderstringNo—Testo segnaposto del campo di scrittura. Massimo 48 caratteri.
launcherIconstringNo—Icona del pulsante di apertura: chat, message, help, sparkles, oppure un URL HTTPS di immagine.
autoOpenbooleanNo—Apre automaticamente la finestra al caricamento. Predefinito false.
autoOpenDelaynumberNo—Ritardo in millisecondi prima dell apertura automatica. Predefinito 0. Valore consigliato 8000.
zIndexnumberNo—Livello di sovrapposizione del contenitore. Predefinito 2147483000.
userobjectNo—Dati dell utente autenticato: id, name, email, metadata. Vedi la sezione dedicata.
hideOnMobilebooleanNo—Nasconde il widget sotto i 768 pixel di larghezza. Predefinito false.
soundEnabledbooleanNo—Riproduce un suono discreto all arrivo di un messaggio. Predefinito true.
gdprConsentRequiredbooleanNo—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

ParametroTipoObblig.DefaultDescrizione
idstringSì—Identificativo stabile dell utente nel tuo sistema. Non usare valori che cambiano tra le sessioni.
namestringNo—Nome mostrato agli operatori nella Console.
emailstringNo—Indirizzo email usato per la corrispondenza con l anagrafica.
phonestringNo—Numero di telefono in formato internazionale, ad esempio +39 340 1234567.
metadataobjectNo—Coppie chiave-valore aggiuntive. Massimo 20 chiavi, valori di massimo 256 caratteri.
signaturestringNo—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.

Identificazione verificata
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.

VariabileObbligatoriaDefaultDescrizioneEsempio
NEXT_PUBLIC_BLUBOT_PROJECT_KEYSì—Chiave del progetto per l ambiente corrente. È un valore pubblico.bp_proj_7f3a9c21
NEXT_PUBLIC_BLUBOT_SCRIPT_URLNohttps://static.blupantheon.com/blubot/v1/bpblubot.umd.jsURL del bundle. Usa una versione bloccata negli ambienti regolamentati.https://cdn.blupantheon.com/blubot/1.24.0/blubot.umd.js
NEXT_PUBLIC_BLUBOT_LOCALENoitLingua forzata dell interfaccia. Se assente si usa quella del browser.it
NEXT_PUBLIC_BLUBOT_THEMENoautoTema dell interfaccia: light, dark oppure auto.light
BLUBOT_USER_SIGNING_SECRETNo—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

ConsoleConfigurazioneProgettiacme-srlChiavi

Usa chiavi diverse per ambiente in modo che le conversazioni di collaudo non inquinino le statistiche di produzione.

Selezione della chiave in base al dominio
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.

Integrazione con una piattaforma di gestione del consenso
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

OpzioneValore predefinito
localeLingua del browser, ripiego su it
positionbottom-right
offsetX / offsetY20
themeauto
launcherIconchat
autoOpenfalse
autoOpenDelay0
zIndex2147483000
hideOnMobilefalse
soundEnabledtrue
gdprConsentRequiredValore impostato nel progetto

Errori di configurazione

Messaggio in consoleCausaRimedio
BluBot: projectKey is requiredChiave assenteAggiungi data-project-key o il campo in init
BluBot: invalid positionValore non ammessoUsa bottom-right o bottom-left
BluBot: already initialisedDoppia inizializzazioneImposta data-auto-init="false"
BluBot: invalid user signatureFirma errata o scadutaRigenera la firma sul server
BluBot: origin not allowedDominio non autorizzatoAggiungilo in Domini autorizzati

Passi successivi

Sur cette page