Skip to main content
Questa guida è per lo sviluppatore che incorpora il widget di chat di Switchbord su un sito web. L’installazione è un singolo tag script asincrono; tutto il resto di questa pagina è approfondimento opzionale — ricette per SPA, l’SDK JavaScript, l’identità firmata per gli utenti autenticati e la risoluzione dei problemi.

Prerequisiti

Dall’operatore dell’area di lavoro (o da Impostazioni → Integrazioni → Canali → Widget per sito web se sei tu):
  • Lo snippet di installazione (o anche solo lo slug del widget e l’URL base dell’API).
  • La conferma che l’origine del tuo sito sia nell’elenco delle origini consentite del widget — lo schema + host esatti, ad es. https://www.example.com. www e apex sono origini diverse; aggiungile entrambe se entrambe servono il sito.
La base API ospitata è https://api.switchbord.ai. Le istanze self-hosted sostituiscono il proprio dominio API ovunque appaia qui sotto.

Lo snippet

Incolla questo prima del tag di chiusura </body> in ogni pagina che deve mostrare il widget:
Questa è l’intera installazione. Lo script inietta una bolla launcher e un iframe isolato; aspetto, testi e comportamento AI sono tutti controllati dalle Impostazioni di Switchbord e vengono pubblicati senza modifiche allo snippet.
Se vuoi chiamare l’SDK prima che lo script sia stato caricato (ad esempio setVisitor in codice inline), aggiungi prima lo stub della coda di comandi — le chiamate effettuate prima del caricamento vengono accodate e riprodotte:

Ricette per framework

Incolla lo snippet prima di </body> nel tuo layout/template di base così che appaia su ogni pagina. Fatto.
Usa next/script nel layout radice così che il widget si carichi una volta per sessione di navigazione, solo lato client:
Non renderizzare lo script all’interno di pagine che si rimontano alla navigazione — il loader è idempotente (non creerà un secondo iframe), ma caricarlo una sola volta nel layout è più pulito.
Caricalo una volta in un effect di primo livello:
Crea un tag Custom HTML contenente lo snippet, attivalo su All Pages (o con un trigger basato sul percorso della pagina se lo vuoi solo su alcune pagine) e pubblica. Ricorda che GTM viene eseguito dall’origine del tuo sito, quindi il requisito dell’allowlist delle origini rimane invariato.
Puoi incollare lo snippet nel footer.php del tuo tema prima di </body>, oppure usare un qualsiasi plugin “insert headers and footers” e posizionarlo nella sezione footer. Le piattaforme site-builder (Webflow, Squarespace, Shopify) hanno tutte un’impostazione equivalente di “codice personalizzato prima di </body>”.

Content-Security-Policy

Se il tuo sito applica una CSP, consenti l’origine dell’API di Switchbord in queste direttive:
L’interfaccia del widget viene eseguita all’interno di un iframe servito dall’origine dell’API, quindi la tua pagina deve solo caricare lo script loader e incorporare il frame — non sono richieste autorizzazioni per script o stili inline dal tuo sito.

SDK JavaScript

Il loader espone window.SwitchbordWidget: Eventi per on(event, fn):

Identità firmata (Secure Mode)

Se il tuo sito ha utenti autenticati, genera un JWT HS256 a breve scadenza sul tuo server e passalo a login() così che Switchbord sappia in modo verificabile chi è il visitatore. I visitatori verificati riprendono la conversazione tra dispositivi, e gli operatori vedono i dettagli di contatto verificati invece di sessioni anonime. Configurazione:
  1. In Switchbord, genera il segreto di firma dell’identità del widget sotto Impostazioni → Integrazioni → Segreti dei provider (widget-identity-secret). Viene memorizzato nel Vault dell’area di lavoro; il browser non lo vede mai.
  2. Imposta la modalità di identità del widget nelle impostazioni del widget (e opzionalmente Richiedi identità per bloccare la messaggistica fino al login).
  3. Genera i token lato server con questi claim:
Poi, nella pagina per gli utenti autenticati:
Il segreto di firma non deve mai raggiungere il browser. Genera i token in un endpoint server o iniettali nella pagina lato server. Funziona anche qualsiasi libreria JWT standard (jsonwebtoken, firebase/php-jwt, PyJWT) — gli esempi scritti a mano qui sopra servono solo a evitare una dipendenza.

Verifica dell’installazione

  1. Apri il tuo sito — la bolla launcher appare in basso a destra (o in basso a sinistra a seconda del tema) entro un secondo o due.
  2. curl https://api.switchbord.ai/api/v1/widgets/YOUR_WIDGET_SLUG/config restituisce 200 con il JSON di configurazione del widget.
  3. Invia un messaggio di prova dal widget — appare nella posta in arrivo di Switchbord in tempo reale.
  4. Rispondi dalla posta in arrivo — il visitatore la vede (con il nome dell’operatore) entro pochi secondi; se il pannello è chiuso, appare un badge di non letto sul launcher.
  5. Se la modalità AI è bozza o invio automatico, il messaggio di prova produce una bozza GBCA (o una risposta autonoma) dopo un breve debounce.

Risoluzione dei problemi

Prompt di installazione per agenti di coding AI

Consegna questo prompt a Cursor, Claude Code, Copilot o a qualsiasi agente di coding che lavora sul tuo sito web. Sostituisci i due segnaposto, incollalo e lascialo lavorare. Il prompt è volutamente in inglese, perché è pensato per essere incollato così com’è negli agenti di coding.
Test in localhost: aggiungi http://localhost:3000 (o la tua porta di sviluppo) alle origini consentite del widget durante lo sviluppo, e rimuovilo prima del go-live. Un’allowlist vuota consente tutte le origini — va bene per un primo smoke test, non per la produzione.