API-documentatie

Integratiehandleiding

Verbind uw website, apps, workflows en klantgesprekken met Bob via beheerde APIs, widgets, webhooks en automatisering van de frontoffice.

Snelle Start

Krijg Bob verbonden met uw website of front-office workflow in een paar begeleide stappen.

1

Maak of selecteer een huurder

Kies de huurder die de website, widget en API inloggegevens voor deze integratie bezit.

2

Genereer inloggegevens

Maak een tenant-specifieke widget-sleutel aan vanuit Customer Portal → Widget Setup, of gebruik een klant-JWT voor server-side automatisering.

3

Installeer de widget of bel de API

Gebruik de website-widget voor front-end chat of de API voor server-side workflows.

4

Test met browserproof

Verifieer de integratie vanuit de live browser, niet alleen een mock-aanroep.

Widget insluiten (van Klantenportaal)
<!-- Tenant-scoped bundle — replace YOUR_TENANT_UUID after onboarding -->
<script src="https://office16852.com/widget/YOUR_TENANT_UUID/widget.js" async></script>
Klaar wanneer geverifieerd: After embed, open your site in a real browser and confirm Bob loads. Use Systeemstatus als de chat niet kan verbinden.

Instelling

Voltooi deze vereisten voordat je protected APIs aanroept of de widget op productiedomeinen publiceert.

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

  • Tenant created
  • Business profile completed
  • Website or channel configured
  • API credentials generated
  • Allowed origins configured
  • Test conversation completed
MilieuDoelWaar te configureren
ProductieLive klantverkeerKlantportaal → Widget Instelling
Staging / previewPre-launch verificatieToegestane oorsprongen + testdomein
AutomatiseringServer-side webhooks & APIsKlant JWT van portal inloggen

Authenticatie

Beschermde API verzoeken moeten een tenant-gebonden referentie bevatten. Houd privésleutels aan de serverzijde en stel ze nooit bloot in browsercode.

Belangrijk: Expose nooit tenant API sleutels of klant JWT's in client-side code. Gebruik server-side aanroepen voor beschermde API verzoeken.
1

Genereer inloggegevens

vereist

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

2

Stuur Autorisatie-header

Server-to-server automation uses Authorization: Bearer <token> met JSON-lichamen.

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

Verwerk authenticatiefouten

Geef gestructureerde fouten terug aan uw integratielaag en probeer alleen opnieuw wanneer dat gepast is.

StatusBetekenis
401Ontbrekende of ongeldige inloggegevens
403Inloggegevens zijn geldig, maar missen toestemming.
429Rate-limiet overschreden
POST /api/customer/auth/login

Klantenportaal inloggen. Retourneert JWT voor geauthenticeerde integratie-aanroepen.

POST /api/auth/login

Mission Control operator inloggen (alleen platformadministratie).

Chat & Gesprekken

Bob biedt drie chatpaden afhankelijk van de context van de beller: same-origin anoniem, cross-origin widget en geauthenticeerde Mission Control.

Drie paden: (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 (vereist chat.manage; niet voor anonieme openbare ophalen).
POST /api/chat

Publieke anonieme chat op je eigen domein. Lichaam: bericht, sessie_id, optionele business_id.

POST /api/widget/chat

Cross-origin widget chat. Headers: X-Widget-Key, Content-Type. De oorsprong moet op de toegestane lijst staan.

POST /api/widget/chat/audio

Spraak-naar-tekst voor widget spraakinvoer. Dezelfde sleutel- en oorsprongsregels als chat.

POST /api/chat/session

Maak een sessie aan wanneer ingelogd in Mission Control (RBAC + CSRF voor cookies).

POST /api/chat/message

Geauthenticeerde admin UI verzenden (chat.manage). Geeft 401 terug als het anoniem wordt aangeroepen.

GET /api/chat/history/:session_id

Gespreksgeschiedenis (geauthenticeerd).

Publiek same-origin (anoniem)
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 Installatie

Installeer de widget op uw site wanneer u Bob direct beschikbaar wilt maken voor bezoekers. Gebruik tenant-specifieke configuratie vanuit het Klantenportaal → Widget Instellingen.

After onboarding, your embed code is in the Customer Portal under Widget-instellingen. The publishable widget key (pk_live_…) is daar geconfigureerd—niet ingebed in statische HTML.

HTML
<!-- Tenant-scoped bundle from Customer Portal → Widget Setup -->
<script src="https://office16852.com/widget/YOUR_TENANT_UUID/widget.js" async></script>
ArtikelDoelVoorbeeld
Huurder UUID in script padIdentificeert uw widgetbundelVan Widget Setup
Publiceerbare widget sleutelAuthenticeert cross-origin chatpk_live_… (geconfigureerd in portal, niet in HTML)
Toegestane oorsprongenDomeinen die zijn toegestaan om widget chat aan te roepenhttps://your-site.com
Browser proof: Verifieer de widget in een echte browser op elke toegestane oorsprong voordat je de productie lanceert.
GET /api/customer-portal/widget-code

Geeft kant-en-klare in te voegen markup terug. Vereist klant JWT (config.read).

Dashboard Webhooks

Gebruik outbound webhooks om updates te ontvangen wanneer gesprekken, overdrachten, leads of workflow-evenementen veranderen in jouw tenant.

Inkomende provider-webhooks (Stripe, telephony carriers, etc.) are platform infrastructure—not covered here. This section documents uw alleen uitgaande abonnements-eindpunten.
GebeurtenisBeschrijving
conversation.escalatedMenselijke overdracht aangevraagd
conversation.takeover.startedAgent nam live controle over
conversation.takeover.releasedTeruggegeven aan Bob
lead.createdNieuwe intake vastgelegd
appointment.bookedPlanningsbevestiging
billing.payment_failedAccountrisicosignaal
billing.payment_recoveredBetaling hersteld
webhook.testConnectiviteitscontrole vanuit het portaal
*Alle bovenstaande gebeurtenissen
1

Maak een abonnement aan

Gebruik een Customer Portal admin JWT. POST url, evenementen en beschrijving naar /api/webhooks/subscriptions.

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

Handtekeningen verifiëren

Verifieer webhook-handtekeningen serverzijde voordat je de payload vertrouwt.

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

Abonnementen weergeven (geheimen worden nooit teruggegeven).

POST /api/webhooks/subscriptions

Maak abonnement aan. Handtekening geheim wordt eenmaal in de reactie weergegeven.

DELETE /api/webhooks/subscriptions/:id

Abonnement verwijderen.

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

Queue webhook.test levering.

GET /api/webhooks/deliveries

Leveringslog inclusief dead-letter rijen.

Persona Automatisering

Persona-automatisering controleert hoe Bob uw bedrijf vertegenwoordigt, wanneer te escaleren en hoe om te gaan met grenzen.

De meeste klanten configureren Bobs stem en toon in het Klantenportaal. API routes below require an authenticated token with persona.manage.

Zakelijke stem

Toon, begroetingsstijl en merkgebonden reacties.

Escalatiegedrag

Wanneer Bob taken overhandigt aan mensen of taken aanmaakt.

Onderwerp grenzen

Goedgekeurde onderwerpen en veilige afwijspatronen.

Workflow voorkeuren

Afdelingsroutering en automatiseringshooks.

GET /api/personas

Lijst persona's voor de geauthenticeerde huurder.

GET /api/personas/:id

Eén persona op id ophalen.

POST /api/personas

Maak persona met naam, toonvelden, systeemPrompt, enz.

PUT /api/personas/:id

Bestaande persona bijwerken.

Persona-instellingen moeten worden getest voordat er wijzigingen in de productie worden aangebracht. Gebruik browserproof en beoordeelde gesprekken om gedrag te valideren.

Plannen & Prijzen APIs

Gepubliceerde prijsboek-eindpunten versterken marketingoppervlakken en de kassa. Factuurbeheer APIs zijn niet openbaar.

FunctieStarterProPlan Enterprise
Catalogusprijs (USD/maand)$79$249$899
Inbegrepen AI-credits / maand15,00075,000250,000
TeamplaatsenTot 3Tot 10Onbeperkt
Standaardintegraties1310
SupportE-mailPrioriteitDedicated
GET /api/pricing/marketing-cards

Plankaarten voor marketing en checkout (publiek, geen auth).

GET /api/pricing/snapshot

Publiek-veilige pricebook-snapshot (geen provider-kostenvelden).

Plan- en factureringbeheer APIs zijn privé en alleen beschikbaar via goedgekeurde integraties - niet gedocumenteerd in deze openbare gids.

Health & Status

Gebruik gezondheids- en statusinformatie om beschikbaarheid te verifiëren, upstream afhankelijkheden te monitoren en integratieproblemen op te lossen.

GET /api/health

Lichte health-probe voor monitors en load balancers.

GET /api/health/public

Openbare statuspayload geconsumeerd door de Systeemstatuspagina.

Bekijk systeemstatus →

Integratie Voorbeelden

Praktische startpunten voor veelvoorkomende integratiepatronen.

HTML

Website chat widget

Voeg Bob toe aan een marketingwebsite of klantenportaal.

Bekijk voorbeeld →
JavaScript

Server-side conversatie API

Same-origin anonieme chat vanuit je app.

Bekijk voorbeeld →
Workflow

CRM overdrachtstroom

Reageer op gesprekken met escalatie-incidenten.

Bekijk voorbeeld →
Automatisering

Lead capture workflow

Abonneer je op lead.created voor intake.

Bekijk voorbeeld →
Support

Ondersteuning escalatie

Houd escalaties en overname-evenementen in de gaten.

Bekijk voorbeeld →
Cross-origin widget ophalen
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 })
});

Architectuur Overzicht

Office 168/52 is een browsergebaseerde beheerde frontoffice: Klantenportaal voor operators, Missiecentrum voor platformadministratie en openbare integratieoppervlakken voor jouw stack.

Website / App
Widget of API Klant
Office 168/52 Gateway
Huurder Context
Bob Agent Runtime
Kennis & Training
Menselijke Overdracht / Dashboard
Webhooks / Externe Systemen

Customer Portal and Mission Control APIs are session-backed UI routes—not published here. For a concise platform diagram, see architectuuroverzicht en proofcentrum.