Schnellstart
Verbinden Sie Bob in wenigen einfachen Schritten mit Ihrer Website oder Ihrem Front-Office-Workflow.
Erstellen oder wählen Sie einen Mandanten aus
Wählen Sie den Mandanten aus, der die Website, das Widget und die API-Anmeldeinformationen für diese Integration besitzt.
Zugangsdaten generieren
Erstellen Sie einen tenant-spezifischen Widget-Schlüssel im Customer Portal → Widget Setup oder verwenden Sie ein Kunden-JWT für serverseitige Automatisierung.
Installieren Sie das Widget oder rufen Sie die API an.
Verwenden Sie das Website-Widget für Front-End-Chat oder die API für serverseitige Workflows.
Test mit browserproof
Überprüfen Sie die Integration im Live-Browser, nicht nur mit einer Mock-Anfrage.
<!-- Tenant-scoped bundle — replace YOUR_TENANT_UUID after onboarding -->
<script src="https://office16852.com/widget/YOUR_TENANT_UUID/widget.js" async></script>
Einrichtung
Erfüllen Sie diese Voraussetzungen, bevor Sie geschützte APIs anrufen oder das Widget auf Produktionsdomänen veröffentlichen.
External integrations connect systems outside the platform to Bob. Day-to-day front-office work happens in the Kundenportal.
- Tenant created
- Business profile completed
- Website or channel configured
- API credentials generated
- Allowed origins configured
- Test conversation completed
| Umwelt | Zweck | Wo man konfigurieren kann |
|---|---|---|
| Produktion | Echtzeit-Kundenverkehr | Kundenportal → Widget-Einrichtung |
| Bühne / Vorschau | Vorab-Überprüfung | Erlaubte Ursprünge + Testdomain |
| Automatisierung | Server-seitige Webhooks & APIs | Kunden-JWT vom Portal-Login |
Authentifizierung
Geschützte API-Anfragen müssen ein mandantenbezogenes Credential enthalten. Halten Sie private Schlüssel serverseitig und geben Sie sie niemals im Browser-Code preis.
Zugangsdaten generieren
erforderlichSign in to the Customer Portal and create widget keys in Widget Setup, or obtain a customer JWT via POST /api/customer/auth/login für Automatisierung.
Senden Sie den Autorisierungsheader
Server-to-server automation uses Authorization: Bearer <token> mit JSON-Körpern.
curl https://office16852.com/api/customer-portal/widget-code \
-H "Authorization: Bearer YOUR_CUSTOMER_JWT" \
-H "Content-Type: application/json"
Authentifizierungsfehler behandeln
Geben Sie strukturierte Fehler an Ihre Integrationsschicht zurück und versuchen Sie es nur dann erneut, wenn es angemessen ist.
| Status | Bedeutung |
|---|---|
| 401 | Fehlende oder ungültige Anmeldeinformationen |
| 403 | Die Anmeldeinformationen sind gültig, aber es fehlt die Berechtigung. |
| 429 | Rate-Limit überschritten |
/api/customer/auth/login
Kundenportal-Login. Gibt JWT für authentifizierte Integrationsaufrufe zurück.
/api/auth/login
Mission Control Betreiberanmeldung (nur Plattformadministration).
Chat & Gespräche
Bob bietet drei Chat-Pfade je nach Kontext des Anrufers: anonym mit derselben Herkunft, Cross-Origin-Widget und authentifiziertes Mission Control.
POST /api/chat. (2) Cross-origin embed → POST /api/widget/chat con X-Widget-Key. (3) Mission Control → POST /api/chat/message (erfordert chat.manage; nicht für anonyme öffentliche Abrufe)./api/chat
Öffentlicher anonymer Chat auf Ihrer eigenen Domain. Body: Nachricht, Sitzungs-ID, optional Geschäfts-ID.
/api/widget/chat
Cross-Origin-Widget-Chat. Header: X-Widget-Key, Content-Type. Der Ursprung muss auf der erlaubten Liste stehen.
/api/widget/chat/audio
Spracherkennung für Widget-Sprachinput. Dieselben Schlüssel- und Ursprungsregeln wie im Chat.
/api/chat/session
Erstellen Sie eine Sitzung, wenn Sie in Mission Control angemeldet sind (RBAC + CSRF für Cookies).
/api/chat/message
Authentifizierte Admin-Benutzeroberfläche senden (chat.manage). Gibt 401 zurück, wenn anonym aufgerufen.
/api/chat/history/:session_id
Konversationsverlauf (authentifiziert).
const response = await fetch('/api/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
session_id: sessionId,
message: userMessage,
business_id: 'your-tenant-slug'
})
});
const data = await response.json();
Widget-Installation
Installieren Sie das Widget auf Ihrer Website, wenn Sie Bob direkt für Besucher verfügbar machen möchten. Verwenden Sie die tenant-spezifische Konfiguration im Customer Portal → Widget Setup.
After onboarding, your embed code is in the Customer Portal under Widget-Einrichtung. The publishable widget key (pk_live_…) ist dort konfiguriert—nicht in statischem HTML eingebettet.
<!-- Tenant-scoped bundle from Customer Portal → Widget Setup -->
<script src="https://office16852.com/widget/YOUR_TENANT_UUID/widget.js" async></script>
| Artikel | Zweck | Beispiel |
|---|---|---|
| Mieter-UUID im Skriptpfad | Identifiziert Ihr Widget-Bundle | Von der Widget-Einrichtung |
| Veröffentlichbarer Widget-Schlüssel | Authentifiziert plattformübergreifenden Chat | pk_live_… (im Portal konfiguriert, nicht in HTML) |
| Erlaubte Ursprünge | Domains, die berechtigt sind, das Widget-Chat zu nutzen | https://your-site.com |
/api/customer-portal/widget-code
Gibt bereit zum Einfügen markierte Einbettung zurück. Erfordert Kunden-JWT (config.read).
Dashboard Webhooks
Verwenden Sie ausgehende Webhooks, um Updates zu erhalten, wenn sich Gespräche, Übergaben, Leads oder Workflow-Ereignisse in Ihrem Mandanten ändern.
| Ereignis | Beschreibung |
|---|---|
| conversation.escalated | Menschliche Übergabe angefordert |
| conversation.takeover.started | Agent übernahm Live-Kontrolle |
| conversation.takeover.released | An Bob zurückgegeben |
| lead.created | Neue Intake-Erfassung |
| appointment.booked | Terminbestätigung |
| billing.payment_failed | Kontorisikosignal |
| billing.payment_recovered | Zahlung wiederhergestellt |
| webhook.test | Verbindungsprüfung vom Portal |
| * | Alle obigen Ereignisse |
Ein Abonnement erstellen
Verwenden Sie ein Customer Portal Admin JWT. POST-URL, Ereignisse und Beschreibung an /api/webhooks/subscriptions.
{
"url": "https://your-app.com/webhooks/bob",
"events": ["lead.created", "conversation.escalated"],
"description": "CRM intake"
}
Signaturen überprüfen
Überprüfen Sie die Webhook-Signaturen serverseitig, bevor Sie das Payload vertrauen.
{
"event": "lead.created",
"tenantId": "tenant_...",
"conversationId": "conv_...",
"createdAt": "2026-06-19T12:00:00Z",
"data": {}
}
/api/webhooks/subscriptions
Abonnements auflisten (Geheimnisse werden nie zurückgegeben).
/api/webhooks/subscriptions
Abonnement erstellen. Der Anmeldeschlüssel wird einmal in der Antwort angezeigt.
/api/webhooks/subscriptions/:id
Abonnement entfernen.
/api/webhooks/subscriptions/:id/test
Webhook.test-Zustellung in die Warteschlange stellen.
/api/webhooks/deliveries
Zustellungslog inkl. Dead-Letter-Zeilen.
Persona Automation
Die Persona-Automatisierung steuert, wie Bob Ihr Unternehmen repräsentiert, wann eskaliert werden soll und wie mit Grenzen umgegangen wird.
persona.manage.Geschäftliche Stimme
Ton, Begrüßungsstil und markenkonforme Antworten.
Eskalationsverhalten
Wenn Bob an Menschen übergibt oder Aufgaben erstellt.
Themengrenzen
Genehmigte Themen und sichere Ablehnungsmuster.
Workflow-Einstellungen
Abteilungsrouting und Automatisierungs-Hooks.
/api/personas
Liste der Personas für den authentifizierten Mandanten.
/api/personas/:id
Eine Persona per ID abrufen.
/api/personas
Erstellen Sie eine Persona mit Namen, Tonfeldern, Systemaufforderung usw.
/api/personas/:id
Bestehende Persona aktualisieren.
Pläne & Preise APIs
Veröffentlichte Preisbuch-Endpunkte unterstützen Marketing-Oberflächen und den Checkout. Die Abrechnungsmanagement APIs sind nicht öffentlich.
| Funktion | Starter | Pro | Plan Enterprise |
|---|---|---|---|
| Listenpreis (USD/Monat) | $79 | $249 | $899 |
| Enthaltene KI-Credits / Monat | 15,000 | 75,000 | 250,000 |
| Team-Sitze | Bis zu 3 | Bis zu 10 | Unbegrenzt |
| Standard-Integrationen | 1 | 3 | 10 |
| Support | Priorität | Dediziert |
/api/pricing/marketing-cards
Plankarten für Marketing und Checkout (öffentlich, ohne Auth).
/api/pricing/snapshot
Öffentlich sicherer Preisbuch-Snapshot (ohne Provider-Kostenfelder).
Health & Status
Verwenden Sie Gesundheits- und Statusinformationen, um die Verfügbarkeit zu überprüfen, upstream-Abhängigkeiten zu überwachen und Integrationsprobleme zu beheben.
/api/health
Leichtgewichtiger Health-Probe für Monitore und Load Balancer.
/api/health/public
Öffentliche Statusdaten, die von der Systemstatusseite verarbeitet werden.
Integrationsbeispiele
Praktische Ausgangspunkte für gängige Integrationsmuster.
Website-Chat-Widget
Fügen Sie Bob zu einer Marketing-Website oder einem Kundenportal hinzu.
Beispiel ansehen →Server-seitige Konversation API
Anonymer Chat mit derselben Herkunft aus Ihrer App.
Beispiel ansehen →Webhook-Listener
Überprüfen Sie Unterschriften und verarbeiten Sie lead.created.
Beispiel ansehen →CRM Übergabefluss
Reagieren Sie auf eskalierte Ereignisse.
Beispiel ansehen →Lead-Erfassungs-Workflow
Abonnieren Sie lead.created für die Aufnahme.
Beispiel ansehen →Support-Eskalation
Überwachen Sie Eskalationen und Übernahmeereignisse.
Beispiel ansehen →const response = await fetch('https://office16852.com/api/widget/chat', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Widget-Key': 'pk_live_...',
'Origin': 'https://your-customer-site.com'
},
body: JSON.stringify({ session_id: sessionId, message: userMessage })
});
Architekturübersicht
Office 168/52 ist ein browserbasiertes, verwaltetes Front Office: Kundenportal für Betreiber, Mission Control für die Plattformverwaltung und öffentliche Integrationsoberflächen für Ihren Stack.
Customer Portal and Mission Control APIs are session-backed UI routes—not published here. For a concise platform diagram, see Architekturüberblick und Proof Center.