Complete API Reference and Integration Guide
{
"email": "admin@office16852.com",
"password": "your_password"
}
{
"email": "customer@business.com",
"password": "customer_password"
}
{
"session_id": "session_123",
"message": "Hello, I need help with my order"
}
Add Bob to any website with a single script tag. After onboarding, your widget embed code is available in the Customer Portal under Widget Setup.
<!-- Paste before </body> --> <script src="https://your-domain.com/widget/loader.js" data-widget-key="YOUR_WIDGET_KEY" data-position="bottom-right" async> </script>
Personas control how Bob communicates — tone, name, and system instructions. Every tenant gets a default persona on signup; you can customize it from the Admin Dashboard or the API.
{ name, description, tone, systemPrompt }| Feature | Starter | Professional | Enterprise |
|---|---|---|---|
| Monthly messages | 1,000 | 10,000 | Unlimited |
| Knowledge items | 100 | 1,000 | Unlimited |
| Custom personas | 1 | 5 | Unlimited |
| Integrations | Web widget | + Slack, Email | All channels |
| Support | Community | Priority email | Dedicated CSM |
// JavaScript fetch example
const response = await fetch('/api/chat/message', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token
},
body: JSON.stringify({
session_id: sessionId,
message: userMessage
})
});
const data = await response.json();
// Python requests example
import requests
response = requests.post(
'/api/chat/message',
headers={
'Content-Type': 'application/json',
'Authorization': f'Bearer {token}'
},
json={
'session_id': session_id,
'message': user_message
}
)