Configurazione della chat nell'app: assistenza all'interno della tua app, senza SDK
Un unico URL in una WebView. Nessun pacchetto da installare, nessun build che rischia di bloccarsi e ogni conversazione arriva nella stessa inbox di tutto il resto della tua assistenza.
La chat in-app in inrelay è una pagina chat ospitata al tuo indirizzo del centro assistenza. Punta una WebView su /chat e la tua app iOS, Android o React Native avrà la chat dal vivo, le risposte dell'IA e i tuoi articoli di assistenza al suo interno - senza SDK, senza dipendenze e senza dover rilasciare un aggiornamento negli app store per applicare modifiche.
La pagina mostra la stessa chat usata dai visitatori del tuo sito, a schermo intero anziché in una bolla. Questo significa che eredita tutto ciò che hai già configurato: il tuo brand, i tuoi colori, gli orari di apertura, il chatbot IA con le sue informazioni, il modulo di contatto e la casella di posta su cui lavora già il tuo team. Attivarla non richiede un progetto lungo - l'indirizzo esiste non appena la live chat è attiva.
È incluso in ogni piano. Non esiste un add-on per il mobile, né costi per conversazione o acquisti preliminari per poterlo provare.
Un solo URL, tre dettagli opzionali
La tua pagina di chat si trova su /chat al tuo indirizzo del centro assistenza - il dominio personalizzato se ne hai collegato uno, altrimenti l'indirizzo .inrelay.support che hai richiesto. Troverai l'URL esatto, pronto da copiare, in Impostazioni → Widget di assistenza → Nella tua app mobile.
https://support.yourbrand.com/chatQuel semplice URL costituisce un'integrazione completa: un visitatore può chattare in modo anonimo e la conversazione lo segue ad ogni avvio dell'app su quel dispositivo. Se la tua app conosce l'identità dell'utente, puoi trasmetterla tramite tre parametri di query - tutti opzionali e tralasciabili in sicurezza:
token_id- il tuo identificatore casuale opaco per questo utente. Serve a ripristinare la conversazione su un nuovo dispositivo o dopo una reinstallazione.email- così le risposte possono raggiungerli quando l'app è chiusa.name- così il tuo team sa chi sta aiutando.
https://support.yourbrand.com/chat?token_id=8f2c…&email=ada%40example.com&name=Ada%20LovelaceApplica la codifica URL ai valori. A meno che tu non attivi l'identità verificata (sotto), tratta token_id come un segreto: chiunque ne sia in possesso può riprendere quella conversazione, quindi genera valori casuali lunghi - mai un indirizzo email, un nome utente o un ID sequenziale.
Tre modi per aprirlo
Ciascuna di queste opzioni rappresenta l'intera integrazione. Le due impostazioni fondamentali su ogni piattaforma sono JavaScript e il DOM storage - quest'ultimo è ciò che conserva la conversazione del visitatore tra un avvio e l'altro dell'app.
iOS - WKWebView
import UIKit
import WebKit
final class SupportViewController: UIViewController {
private let webView = WKWebView(frame: .zero, configuration: WKWebViewConfiguration())
override func viewDidLoad() {
super.viewDidLoad()
webView.frame = view.bounds
webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
webView.scrollView.bounces = false
view.addSubview(webView)
var url = URLComponents(string: "https://support.yourbrand.com/chat")!
url.queryItems = [
URLQueryItem(name: "token_id", value: user.supportToken),
URLQueryItem(name: "email", value: user.email),
URLQueryItem(name: "name", value: user.fullName)
]
webView.load(URLRequest(url: url.url!))
}
}Android - WebView
class SupportActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val webView = WebView(this)
setContentView(webView)
webView.settings.javaScriptEnabled = true
webView.settings.domStorageEnabled = true // keeps the conversation across launches
webView.webViewClient = WebViewClient() // keep navigation inside the WebView
val url = Uri.parse("https://support.yourbrand.com/chat")
.buildUpon()
.appendQueryParameter("token_id", user.supportToken)
.appendQueryParameter("email", user.email)
.appendQueryParameter("name", user.fullName)
.build()
webView.loadUrl(url.toString())
}
}React Native - react-native-webview
import { SafeAreaView } from 'react-native'
import { WebView } from 'react-native-webview'
const params = new URLSearchParams({
token_id: user.supportToken,
email: user.email,
name: user.fullName
})
export function SupportScreen() {
return (
<SafeAreaView style={{ flex: 1 }}>
<WebView
source={{ uri: `https://support.yourbrand.com/chat?${params}` }}
javaScriptEnabled
domStorageEnabled
originWhitelist={['https://support.yourbrand.com/*']}
/>
</SafeAreaView>
)
}Concedi alla WebView l'intero schermo e lascia che gestisca lo scorrimento - la pagina è già dimensionata per smartphone, inclusa l'area di sicurezza in basso.
Fissa la lista dei domini consentiti al tuo indirizzo, includendo lo slash finale. Un pattern come https://* consente a qualsiasi sito di integrarsi nella schermata di assistenza, mentre uno senza slash - https://support.yourbrand.com* - corrisponde anche a support.yourbrand.com.example.net. Se verifichi l'URL autonomamente, confronta l'origine analizzata anziché controllare solo il prefisso.
Dimostra che sono proprio loro
Opzionale, disattivata di default e gestita con un semplice interruttore: ogni workspace ha già un segreto di firma pronto in Impostazioni → Widget di assistenza.

Con la verifica attiva, i dettagli trasmessi dall'app devono arrivare con una firma generata dal tuo server. Tutto ciò che non è firmato - o firmato per un utente diverso - viene ignorato: la chat si apre comunque, semplicemente in modo anonimo. Non si blocca mai, perché una schermata di assistenza che non si carica è peggio di una che non conosce il tuo nome.
Firma esattamente questa stringa, unendo i tre valori con interruzioni di riga e usando una stringa vuota per qualsiasi elemento omesso:
token_id + "\n" + email + "\n" + name// on your server, never in the app binary
import { createHmac } from 'node:crypto'
const payload = [tokenId, email ?? '', name ?? ''].join('\n')
const signature = createHmac('sha256', INRELAY_EMBED_SECRET)
.update(payload)
.digest('hex')Aggiungilo come &signature=…. Firma i valori esattamente come li inserisci nell'URL - senza rimuovere spazi o convertire in minuscolo - e firmali tutti e tre: una firma che copre solo il token non convaliderà una richiesta con un'email diversa. I valori che contengono interruzioni di riga verranno rifiutati.
- Il segreto risiede sul tuo server e viene letto dal nostro. Non deve mai trovarsi nel binario dell'app, dove chiunque potrebbe estrarlo.
- Recupera la firma dal tuo endpoint autenticato quando l'utente apre l'assistenza, quindi costruisci l'URL.
- Attiva la verifica prima del rilascio, se intendi usarla. Aggiungerla a posteriori quando gli utenti stanno già chattando significa dover riemettere ogni token.
Le risposte arrivano via email
Un utente fa una domanda, chiude l'app e il tuo team risponde dieci minuti dopo. La risposta viene inviata via email all'indirizzo associato alla conversazione - dai parametri di identità dell'app o dall'email richiesta nella chat - e quando apre di nuovo l'assistenza, l'intera conversazione è ancora lì.
Parlando chiaro: non ci sono notifiche push in-app in questa versione. Non c'è alcun SDK con cui registrare un token del dispositivo, quindi una risposta non può aggiornare il badge dell'app. L'email è il canale di consegna, e un cliente che ha lasciato un indirizzo riceverà sempre una risposta.
- La conversazione rimane sul dispositivo e segue un
token_idsu un nuovo dispositivo. - Tutto ciò che il visitatore vede è la chat integrata: risposte dell'IA, i tuoi articoli della guida, i tuoi orari di apertura.
- Le notifiche push nell'app sono in fase di sviluppo - le risposte arrivano via email quando l'app è chiusa.
- Questa è una pagina ospitata in una WebView, volutamente - non c'è alcun SDK.
Attivo in quattro passaggi
Attiva la chat dal vivo
Impostazioni → Widget di assistenza. Se il widget del tuo sito web offre già la chat, questo passaggio è fatto.
Copia l'URL della tua chat
Il blocco “Utenti autenticati (app e sito web)” lo contiene, completo di pulsante di copia. Rivendica prima un indirizzo per il centro assistenza se ne desideri uno personalizzato.
Aprilo in una WebView
Incolla uno dei codici qui sopra nella tua schermata di supporto. Abilita JavaScript e lo storage DOM.
Aggiungi l'identità, se vuoi
Passa un token, e-mail e nome - e attiva la verifica con la firma quando sei pronto.
Il resto dell'inbox.
La chat in-app è una delle porte d'accesso alle funzionalità di inrelay - queste sono quelle su cui si appoggia.
La stessa chat
Il widget del tuo sito web e la tua app aprono le stesse conversazioni, nella stessa inbox.
Scopri la live chat → KNOWLEDGE BASERisposte integrate
I tuoi articoli di supporto sono consultabili nell'app e guidano le risposte dell'IA.
Vedi il centro assistenza → APP MOBILEDal tuo lato
L'app mobile inrelay per iOS e Android, per rispondere anche fuori ufficio.
Scopri l'app mobile →La tua app, con l'assistenza integrata.
Inizia gratis con la tua inbox - tutte le funzionalità, nessuna carta di credito, mai a utente.
Domande e risposte.
Devo aggiungere una dipendenza alla mia app?
Cosa succede se non passo alcun parametro?
Qualcun altro può leggere una conversazione se indovina un token?
token_id valido può riprendere quella conversazione - motivo per cui i token devono essere lunghi e casuali, ed è per questo che esiste l'opzione di verifica. Con la verifica attiva, un token non firmato viene del tutto ignorato.