Canale Widget — Panoramica
Il Canale Widget riceve richieste di assistenza e preventivo dal sito web. I visitatori aprono una chat sul sito; i messaggi arrivano in Quoting24 come ticket e gli operatori rispondono dall’interfaccia abituale, con la stessa logica già usata per gli altri canali.
L’interfaccia è in un iframe. Nel sito ospitante bastano uno script e, quando i dati sono già noti, una chiamata a init(). Non servono Angular, un client Supabase o accesso diretto al database di Quoting24.
Quale integrazione serve
Associare un’azienda e recuperare la cronologia sono operazioni distinte. external_id, company_name, name, phone e email non autorizzano l’accesso alle conversazioni di un’altra persona. Un utente già autenticato nel sito resta un ospite del widget finché il sito non passa una credenziale di ripristino valida.
| Caso | Cosa implementare | Continuità | Sezione |
|---|---|---|---|
| Sito pubblico, visitatore sconosciuto | Solo lo script. Il visitatore compila il modulo di contatto. | Sessione ospite nello stesso browser | Widget B2C |
| Sito che conosce già profilo e azienda | Script e init() con il profilo e i dati dell’azienda |
Sessione ospite precompilata e associazione aziendale | Widget B2C |
| Portale con cronologia personale tra dispositivi | Anche un’integrazione backend per external_user_id e restore_id |
Cronologia personale nel canale widget autorizzato | Widget B2B |
| Contratto dei campi, CSP, login/logout, provisioning | Guida per sviluppatori | — | Integrazione tecnica |
Cosa fa il widget
- Mostra un pulsante flottante oppure una chat incorporata in pagina
- Per un nuovo visitatore apre il modulo con le etichette Telefono e Nome. In
init()i campi si chiamanophoneename; l’email, se il sito la conosce, si chiamaemail - Se il sito chiama
init(), usa i dati già disponibili e può collegare il contatto a un’azienda tramiteexternal_id(web_code). Se l’azienda manca e arriva anchecompany_name, può crearla - Apre una conversazione gestita in Quoting24 come gli altri canali
- Accetta allegati PDF, DOC/DOCX, JPG/JPEG e PNG, fino a 10 MiB per file e 100 MiB di allegati referenziati per conversazione
- Mostra saluto, benvenuto e, fuori orario, il banner configurato. La composizione dei messaggi resta disponibile
Il loader conserva la credenziale ospite nel localStorage del sito, separata per chiave widget. Se lo storage è bloccato, la continuità può limitarsi alla pagina corrente. La sessione ospite permette di rileggere la conversazione più recente anche dopo la chiusura, nello stesso browser. Su un altro dispositivo serve il ripristino autenticato.
Dove si configura in Quoting24
- Apri Impostazioni → Canali
- Seleziona il canale di tipo Widget
- Apri la configurazione
Da lì si impostano:
- logo, colore principale, posizione del pulsante
- messaggio di saluto, messaggio di benvenuto, messaggio fuori orario
- domini consentiti
- codice di incorporamento (URL completo dello script e chiave pubblica del widget)
Gli orari del canale determinano il banner fuori orario.
Chiedi all’amministratore il codice di incorporamento e i domini autorizzati, compresi collaudo e sviluppo locale. Usa URL e chiave dello stesso ambiente. Negli esempi, HOST_WIDGET e CHIAVE_PUBBLICA_WIDGET vanno sostituiti con i valori ricevuti.
I domini autorizzati sono nomi host, per esempio shop.example.com o localhost, senza https://, porta, percorso o prefisso *.. example.com autorizza anche i suoi sottodomini. Una lista vuota non applica restrizioni di dominio. Per il collaudo locale servi la pagina via HTTP: aprirla come file non basta.
Logo, colore, posizione e messaggi si configurano in Quoting24. Il company_name passato a init() è la ragione sociale del cliente, non il titolo del widget. Non esiste un parametro pubblico language o locale: l’interfaccia attuale è in italiano.
Due modi di mostrarlo sul sito
Pulsante flottante
Lo script aggiunge il pulsante dopo il caricamento delle impostazioni grafiche. Al click si apre la chat. Su mobile la chat flottante si espande fino a occupare il viewport.
Vedi Widget B2C.
Chat incorporata
La chat occupa un contenitore della pagina, con altezza esplicita. Non c’è pulsante flottante: layout e titolo li fornisce il sito. In questa modalità open(), close() e toggle() non hanno effetto. Il sito controlla altezza e larghezza del contenitore.
Vedi Widget B2C.
Una sola istanza per pagina: il loader espone un unico window.Quoting24Widget. Un secondo script non crea un secondo widget.
Chiave pubblica e segreti
| Valore | Dove sta | A cosa serve |
|---|---|---|
| Chiave pubblica del widget | URL dello script | Seleziona il canale. È pubblica: non è una credenziale personale né un segreto di integrazione backend |
| Segreto privato dell’integrazione | Solo nel backend del sito | Autorizza la creazione e il riutilizzo di restore_id |
restore_id |
Archivio privato per utente, nel backend | Credenziale con cui ripristinare la cronologia di quella persona su quel widget |
| Credenziale sessione ospite | localStorage del sito, gestita dal loader |
Continuità ospite nello stesso browser, per chiave widget |
Flusso per l’operatore
- Il visitatore apre la chat sul sito e invia un messaggio
- In Quoting24 nasce o continua un ticket sul canale Widget
- Se l’inizializzazione ha risolto un
external_id, il contatto risulta collegato all’azienda con quelweb_code. Un’azienda appena creata dal widget ha ragione sociale e, se inviata, email; un’azienda già presente non viene rinominata dainit() - L’operatore gestisce la richiesta e risponde dalla chat
- Il cliente vede le risposte nel widget
I messaggi del widget si eliminano solo per tutti.
Il dato arriva dal browser e il visitatore può modificarlo. Il collegamento all’azienda non dimostra identità e non apre la cronologia degli altri contatti di quell’azienda.
Da dove iniziare
- Configura aspetto, orari e domini in Impostazioni → Canali → Widget
- Sito pubblico o portale che precompila il profilo: Widget B2C
- Cronologia della stessa persona su un altro browser: Widget B2B
- Campi, creazione azienda, CSP e checklist: Integrazione tecnica