Eine URL in einer WebView. Kein Paket zu installieren, kein Build, der fehlschlagen kann, und jede Unterhaltung landet in derselben Inbox wie der Rest deines Supports.
In-App-Chat in inrelay ist eine gehostete Chat-Seite unter deiner eigenen Help-Center-Adresse. Richte eine WebView auf /chat aus, und deine App für iOS, Android oder React Native bietet direkt Live-Chat, KI-Antworten und deine Hilfeartikel — ganz ohne SDK, ohne Abhängigkeiten und ohne App-Store-Release bei Änderungen.
Die Seite ist genau derselbe Chat, den deine Website-Besucher nutzen, nur als Vollbild statt in einem Chat-Fenster. Sie übernimmt alles, was du bereits eingerichtet hast: deine Marke und Akzentfarbe, deine Geschäftszeiten, den KI-Chatbot und sein Wissen, das Lead-Formular sowie die Inbox, in der dein Team arbeitet. Das Aktivieren ist kein Riesenprojekt — die Adresse ist verfügbar, sobald der Live-Chat aktiv ist.
In jedem Tarif enthalten. Es gibt kein Mobil-Add-on, keine Gebühr pro Unterhaltung und du musst nichts kaufen, um es auszuprobieren.
Deine Chat-Seite liegt unter /chat auf deiner Help-Center-Adresse — der eigenen Domain, falls verknüpft, oder der gesicherten .inrelay.support-Adresse. Die exakte URL zum Kopieren findest du unter Einstellungen → Help-Widget → In deiner mobilen App.
https://support.yourbrand.com/chatDiese URL allein reicht für eine vollständige Integration: Besucher können anonym chatten und die Unterhaltung bleibt über App-Starts hinweg auf dem Gerät erhalten. Wenn deine App den Nutzer kennt, kannst du das über drei Abfrageparameter übergeben — alle optional, alle können bedenkenlos weggelassen werden:
token_id — deine eigene zufällige ID für diesen Nutzer. Sie stellt die Unterhaltung auf einem neuen Gerät oder nach einer Neuinstallation wieder her.email — damit Antworten ankommen, wenn die App geschlossen ist.name — damit dein Team weiß, wem es hilft.https://support.yourbrand.com/chat?token_id=8f2c…&email=ada%40example.com&name=Ada%20LovelaceCodiere die Werte URL-konform. Sofern du die verifizierte Identität (siehe unten) nicht aktivierst, behandle token_id als Geheimnis: Wer ein Token besitzt, kann diese Unterhaltung fortsetzen. Generiere daher lange Zufallswerte — niemals eine E-Mail-Adresse, einen Benutzernamen oder eine fortlaufende ID.
Jedes davon ist bereits die vollständige Integration. Die zwei wichtigsten Einstellungen auf jeder Plattform sind JavaScript und DOM-Storage — DOM-Storage sorgt dafür, dass die Unterhaltung eines Besuchers auch nach Neustarts der App erhalten bleibt.
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!))
}
}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())
}
}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>
)
}Gib der WebView den gesamten Bildschirm und lass sie das Scrollen selbst übernehmen — die Seite ist bereits für Smartphones optimiert, einschließlich des Safe-Area-Bereichs am unteren Rand.
Beschränke die Erlaubnisliste auf deine eigene Adresse samt abschließendem Schrägstrich. Ein Muster wie https://* erlaubt jeder Website die Darstellung in deinem Support-Fenster, und eines ohne Schrägstrich — https://support.deinebrand.de* — passt auch auf support.deinebrand.de.example.net. Wenn du die URL selbst prüfst, vergleiche den geparsten Origin statt eines Präfix-Tests.
Optional, standardmäßig deaktiviert und einfach per Schalter aktivierbar: Jeder Workspace verfügt bereits über ein Signatur-Geheimnis unter Einstellungen → Help-Widget.

Bei aktivierter Verifizierung müssen die von deiner App übergebenen Daten mit einer Signatur deines Servers versehen sein. Unsignierte Daten oder solche für einen anderen Nutzer werden ignoriert: Der Chat öffnet sich trotzdem, ist aber anonym. Es kommt nie zu einem harten Fehler, denn eine Support-Ansicht, die gar nicht lädt, ist schlimmer als eine, die deinen Namen nicht kennt.
Signiere genau diese Zeichenkette, indem du die drei Werte durch Zeilenumbrüche verbindest und für weggelassene Werte eine leere Zeichenkette verwendest:
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')Häng es als &signature=… an. Signiere die Werte exakt so, wie du sie in die URL einfügst — ohne Entfernen von Leerzeichen oder Umwandlung in Kleinbuchstaben — und signiere alle drei: Eine Signatur, die nur das Token abdeckt, validiert keine Anfrage mit abweichender E-Mail-Adresse. Werte mit Zeilenumbrüchen werden abgelehnt.
Jemand stellt eine Frage, schließt die App und dein Team antwortet zehn Minuten später. Die Antwort geht per E-Mail an die Adresse der Unterhaltung — aus den Identitätsparametern der App oder aus der im Chat angegebenen E-Mail-Adresse. Wird der Support erneut geöffnet, ist der gesamte Verlauf noch da.
Ganz offen gesagt: In dieser Version gibt es keine In-App-Push-Benachrichtigungen. Es gibt kein SDK, um ein Geräte-Token zu registrieren, sodass eine Antwort das Badge deiner App nicht aufleuchten lassen kann. Der Zustellweg ist E-Mail — und Kunden, die eine Adresse hinterlassen haben, erhalten garantiert eine Antwort.
token_id auf ein neues Gerät.Einstellungen → Help-Widget. Wenn dein Website-Widget bereits Chat unterstützt, ist dieser Schritt erledigt.
Der Block „In deiner mobilen App“ enthält die URL mitsamt Kopier-Button. Sichere dir zuerst eine Help-Center-Adresse, wenn du eine eigene Domain nutzen möchtest.
Füge eine der obigen Anleitungen in deinen Support-Bildschirm ein. Aktiviere JavaScript und DOM-Speicher.
Übergebe Token, E-Mail und Name — und aktiviere die Verifizierung mit der Signatur, sobald du bereit bist.
In-App-Chat ist ein Zugang zu den Funktionen von inrelay — das sind diejenigen, auf die er aufbaut.
Dein Website-Widget und deine App öffnen dieselben Unterhaltungen im selben Postfach.
Zum Live-Chat → WISSENSDATENBANKDeine Hilfe-Artikel sind in der App durchsuchbar und dienen als Grundlage für die Antworten der KI.
Zur Wissensdatenbank → MOBILE APPDie inrelay-Begleit-App für iOS und Android, um auch unterwegs zu antworten.
Mobile App ansehen →Kostenlos starten mit dem eigenen Posteingang — alle Funktionen, keine Kreditkarte, niemals pro Nutzer.
token_id diese Unterhaltung fortsetzen — weshalb Tokens lang und zufällig sein müssen und warum es die Option zur Verifizierung gibt. Wenn sie aktiviert ist, wird ein nicht signiertes Token vollständig ignoriert.Gib deinen Kunden schnellere Antworten und deinem Team den Feierabend zurück.
Desktop und mobil. Kostenlos für Solo-Nutzer.