Dokumentacja API

Przewodnik po integracji

Połącz swoją stronę internetową, aplikacje, przepływy pracy i rozmowy z klientami z Bob za pomocą zarządzanych APIs, widgetów, webhooków i automatyzacji front-office.

Szybki start

Podłącz Bob do swojej strony internetowej lub workflow front-office w kilku prostych krokach.

1

Utwórz lub wybierz najemcę

Wybierz najemcę, który posiada stronę internetową, widget i API dane uwierzytelniające do tej integracji.

2

Generuj dane uwierzytelniające

Utwórz klucz widgetu z zakresem najemcy w Portalu Klienta → Ustawienia Widgetu lub użyj tokena JWT klienta do automatyzacji po stronie serwera.

3

Zainstaluj widget lub zadzwoń do API

Użyj widżetu na stronie do czatu front-end lub API do procesów roboczych po stronie serwera.

4

Test z przeglądarką proof

Zweryfikuj integrację z żywej przeglądarki, a nie tylko z fikcyjnego żądania.

Osadzenie widgetu (z Portalu Klienta)
<!-- Tenant-scoped bundle — replace YOUR_TENANT_UUID after onboarding -->
<script src="https://office16852.com/widget/YOUR_TENANT_UUID/widget.js" async></script>
Gotowe, gdy zweryfikowane: After embed, open your site in a real browser and confirm Bob loads. Use Status systemu jeśli czat nie uda się połączyć.

Konfiguracja

Zrealizuj te wymagania wstępne przed wywołaniem chronionych API lub publikowaniem widgetu na domenach produkcyjnych.

External integrations connect systems outside the platform to Bob. Day-to-day front-office work happens in the Portal klienta.

  • Tenant created
  • Business profile completed
  • Website or channel configured
  • API credentials generated
  • Allowed origins configured
  • Test conversation completed
ŚrodowiskoCel.Gdzie skonfigurować
ProdukcjaRuch klientów na żywoPortal Klienta → Ustawienia Widgetu
Etapowanie / podglądWeryfikacja przed uruchomieniemDozwolone źródła + domena testowa
AutomatyzacjaWebhooki po stronie serwera i APIsJWT klienta z logowania do portalu

Uwierzytelnianie

Chronione API żądania muszą zawierać poświadczenie ograniczone do najemcy. Przechowuj klucze prywatne po stronie serwera i nigdy nie ujawniaj ich w kodzie przeglądarki.

Ważne: Nigdy nie ujawniaj kluczy API najemcy ani tokenów JWT klientów w kodzie po stronie klienta. Używaj wywołań po stronie serwera dla chronionych żądań API.
1

Generuj dane uwierzytelniające

wymagane

Sign in to the Customer Portal and create widget keys in Widget Setup, or obtain a customer JWT via POST /api/customer/auth/login do automatyzacji.

2

Wyślij nagłówek autoryzacji

Server-to-server automation uses Authorization: Bearer <token> z ciałami JSON.

Przykładowe zapytanie
curl https://office16852.com/api/customer-portal/widget-code \
  -H "Authorization: Bearer YOUR_CUSTOMER_JWT" \
  -H "Content-Type: application/json"
3

Obsługuj błędy uwierzytelniania

Zwracaj uporządkowane błędy do swojej warstwy integracji i ponawiaj próbę tylko wtedy, gdy jest to odpowiednie.

StatusZnaczenie
401Brak lub nieprawidłowe dane uwierzytelniające
403Poświadczenie jest ważne, ale brakuje uprawnień.
429Przekroczono limit oceny
POST /api/customer/auth/login

Logowanie do Portalu Klienta. Zwraca JWT dla uwierzytelnionych wywołań integracyjnych.

POST /api/auth/login

Logowanie operatora Mission Control (tylko administracja platformy).

Czat i rozmowy

Bob ujawnia trzy ścieżki czatu w zależności od kontekstu rozmówcy: anonimowy z tej samej domeny, widget międzydomenowy oraz uwierzytelnione Mission Control.

Trzy ścieżki: (1) Public same-origin → POST /api/chat. (2) Cross-origin embed → POST /api/widget/chat con X-Widget-Key. (3) Mission Control → POST /api/chat/message (wymaga chat.manage; nie do anonimowego publicznego pobierania).
POST /api/chat

Publiczny anonimowy czat na własnej domenie. Treść: wiadomość, session_id, opcjonalnie business_id.

POST /api/widget/chat

Czat widgetu z różnych źródeł. Nagłówki: X-Widget-Key, Content-Type. Pochodzenie musi być na liście dozwolonych.

POST /api/widget/chat/audio

Przetwarzanie mowy na tekst dla wejścia głosowego widgetu. Te same zasady klucza i pochodzenia co czat.

POST /api/chat/session

Utwórz sesję po zalogowaniu się do Mission Control (RBAC + CSRF dla ciasteczek).

POST /api/chat/message

Uwierzytelniony interfejs administracyjny wysyła (chat.manage). Zwraca 401, jeśli jest wywoływany anonimowo.

GET /api/chat/history/:session_id

Historia rozmów (uwierzytelniona).

Publiczne same-origin (anonim)
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();

Instalacja Widgetu

Zainstaluj widget na swojej stronie, gdy chcesz, aby Bob był dostępny bezpośrednio dla odwiedzających. Użyj konfiguracji specyficznej dla najemcy z Portalu Klienta → Ustawienia widgetu.

After onboarding, your embed code is in the Customer Portal under Konfiguracja widżetu. The publishable widget key (pk_live_…) jest skonfigurowane tam—nie osadzone w statycznym HTML.

HTML
<!-- Tenant-scoped bundle from Customer Portal → Widget Setup -->
<script src="https://office16852.com/widget/YOUR_TENANT_UUID/widget.js" async></script>
PrzedmiotCel.Przykład
UUID najemcy w ścieżce skryptuIdentyfikuje Twój zestaw widgetówZ ustawienia widgetu
Klucz widgetu do publikacjiUwierzytelnia czat między różnymi źródłamipk_live_… (skonfigurowane w portalu, a nie w HTML)
Dozwolone źródłaDomeny dozwolone do wywoływania czatu widgetuhttps://your-site.com
Dowód przeglądarki: Zweryfikuj widget w prawdziwej przeglądarce na każdym dozwolonym pochodzeniu przed uruchomieniem produkcyjnym.
GET /api/customer-portal/widget-code

Zwraca gotowy do wklejenia kod osadzenia. Wymaga JWT klienta (config.read).

Webhooki pulpitu

Użyj webhooków wychodzących, aby otrzymywać aktualizacje, gdy rozmowy, przekazania, leady lub zdarzenia w przepływie pracy zmieniają się w Twoim tenant.

Przychodzące webhooki dostawców (Stripe, telephony carriers, etc.) are platform infrastructure—not covered here. This section documents Twój tylko końcówki subskrypcyjne outbound.
ZdarzenieOpis
conversation.escalatedŻądanie przekazania do człowieka
conversation.takeover.startedAgent przejął kontrolę na żywo
conversation.takeover.releasedZwrócono do Boba
lead.createdNowy intake przechwycony
appointment.bookedPotwierdzenie harmonogramu
billing.payment_failedSygnał ryzyka konta
billing.payment_recoveredPłatność przywrócona
webhook.testSprawdzenie łączności z portalu
*Wszystkie powyższe zdarzenia
1

Utwórz subskrypcję

Użyj JWT administratora Portalu Klienta. Wyślij metodą POST url, zdarzenia i opis do /api/webhooks/subscriptions.

Ciało JSON
{
  "url": "https://your-app.com/webhooks/bob",
  "events": ["lead.created", "conversation.escalated"],
  "description": "CRM intake"
}
2

Weryfikuj podpisy

Weryfikuj podpisy webhooków po stronie serwera, zanim zaufasz ładunkowi.

Payload dostawy (ilustracyjne)
{
  "event": "lead.created",
  "tenantId": "tenant_...",
  "conversationId": "conv_...",
  "createdAt": "2026-06-19T12:00:00Z",
  "data": {}
}
GET /api/webhooks/subscriptions

Lista subskrypcji (sekrety nigdy nie są zwracane).

POST /api/webhooks/subscriptions

Utwórz subskrypcję. Sekret podpisu wyświetlany tylko raz w odpowiedzi.

DELETE /api/webhooks/subscriptions/:id

Usuń subskrypcję.

POST /api/webhooks/subscriptions/:id/test

Kolejkuj dostawę webhook.test.

GET /api/webhooks/deliveries

Dziennik dostaw z wierszami dead-letter.

Automatyzacja Persony

Automatyzacja person kontroluje, jak Bob reprezentuje Twoją firmę, kiedy eskalować i jak radzić sobie z granicami.

Większość klientów konfiguruje głos i ton Boba w Portal klienta. API routes below require an authenticated token with persona.manage.

Głos biznesowy

Ton, styl powitania i odpowiedzi zgodne z marką.

Zachowanie eskalacji

Kiedy Bob przekazuje zadania ludziom lub tworzy zadania.

Granice tematyczne

Zatwierdzone tematy i bezpieczne wzorce odmowy.

Preferencje dotyczące przepływu pracy

Routing działów i automatyzacja.

GET /api/personas

Lista person dla uwierzytelnionego najemcy.

GET /api/personas/:id

Pobierz jedną personę po id.

POST /api/personas

Utwórz personę z imieniem, tonem, polami, systemPrompt itp.

PUT /api/personas/:id

Zaktualizuj istniejącą personę.

Ustawienia person powinny być testowane przed wprowadzeniem zmian produkcyjnych. Użyj dowodów z przeglądarki i przeglądniętych rozmów, aby zweryfikować zachowanie.

Plany i Cenniki APIs

Opublikowane punkty końcowe cennika zasilają powierzchnie marketingowe i proces zakupu. Zarządzanie fakturowaniem API nie jest publiczne.

FunkcjaStarterProPlan Enterprise
Cena katalogowa (USD/mies.)$79$249$899
Dołączone kredyty AI / mies.15,00075,000250,000
Miejsca w zespoleDo 3Do 10Bez limitu
Standardowe integracje1310
WsparcieE-mailPriorytetDedykowany
GET /api/pricing/marketing-cards

Karty planów dla marketingu i checkout (publiczne, bez auth).

GET /api/pricing/snapshot

Publiczny bezpieczny snapshot cennika (bez pól kosztu dostawcy).

Zarządzanie planami i fakturowaniem API jest prywatne i dostępne tylko przez zatwierdzone integracje — nieudokumentowane w tym publicznym przewodniku.

Health & Status

Użyj informacji o zdrowiu i statusie, aby zweryfikować dostępność, monitorować zależności upstream i rozwiązywać problemy z integracją.

GET /api/health

Lekka sonda zdrowia dla monitorów i load balancerów.

GET /api/health/public

Publiczny ładunek statusu konsumowany przez stronę statusu systemu.

Zobacz status systemu →

Przykłady integracji

Praktyczne punkty wyjścia dla powszechnych wzorców integracji.

HTML

Widget czatu na stronie internetowej

Dodaj Bob do strony marketingowej lub portalu klienta.

Zobacz przykład →
JavaScript

Rozmowa po stronie serwera API

Czat anonimowy z tej samej domeny z Twojej aplikacji.

Zobacz przykład →
Przepływ pracy

CRM przepływ przekazania

Reaguj na wydarzenia, które zostały eskalowane.

Zobacz przykład →
Automatyzacja

Workflow pozyskiwania leadów

Subskrybuj lead.created dla przyjęcia.

Zobacz przykład →
Pobieranie widgetu z innego źródła
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 })
});

Przegląd architektury

Office 168/52 to oparte na przeglądarce zarządzane front office: Portal Klienta dla operatorów, Centrum Dowodzenia dla administracji platformy oraz publiczne powierzchnie integracyjne dla Twojego stosu.

Strona internetowa / Aplikacja
Widget lub API Klient
Office 168/52 Brama
Kontekst Najemcy
Bob Czas działania agenta
Wiedza i Szkolenia
Przekazanie człowieka / Panel sterowania
Webhooks / Systemy Zewnętrzne

Customer Portal and Mission Control APIs are session-backed UI routes—not published here. For a concise platform diagram, see przegląd architektury i centrum dowodów.