Интеграция Chatbot API
Встраивайте WebChatAgent в desktop‑приложения, терминалы и внутренние инструменты через REST API — и переходите на WebSocket для настоящего live‑чата.
Добавьте чат в ваш продукт, а не только на сайт.
Не везде есть браузер. С нашей Chatbot API вы строите conversational UX прямо в вашем ПО — от desktop‑клиентов до CLI и внутренних порталов.
Какие проблемы решает Chatbot API?
Типичные сложности интеграции — и как API решает их аккуратно.
Виджет сайта не подходит
Desktop‑приложения, внутренние инструменты и терминалы требуют нативной интеграции — а не встроенного веб‑виджета.
Непоследовательный опыт чата
Без четкого API чат становится «особым случаем». С выделенными эндпоинтами вы сохраняете единый UX в ваших сценариях и компонентах.
Live‑чат требует реального времени
Когда подключается человек, важен realtime: статусы, сообщения и файлы должны приходить мгновенно — для этого нужен WebSocket.
Как API решает эти проблемы?
Начните с REST для бота — и плавно переключайтесь на WebSocket для human takeover.
REST API для любого фронтенда
Отправляйте сообщения POST на /api/chat и отображайте ответ в вашем UI. Отлично подходит для desktop, mobile, backoffice и CLI.
WebSocket для Live Chat (human takeover)
Когда mode переключается на human, подключайтесь по WebSocket и обменивайтесь сообщениями в реальном времени — с session guard.
Примеры кода
Старт за минуты: cURL для быстрых тестов, JavaScript для продакшн‑интеграций.
# 1) First request (no session id). Use -i to see response headers.
curl -i -X POST https://webchatagent.com/api/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Hello, how can you help me?",
"chatbotId": "<your-chatbot-id>"
}'
# 2) Reuse the X-Chat-Session-Id from the response header for the conversation.
curl -X POST https://webchatagent.com/api/chat \
-H "Content-Type: application/json" \
-H "X-Chat-Session-Id: <session-id-from-response>" \
-d '{
"message": "Continue the conversation.",
"chatbotId": "<your-chatbot-id>"
}'async function sendChatMessage({ baseUrl, chatbotId, message, sessionId }) {
const res = await fetch(`${baseUrl}/api/chat`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Chat-Session-Id': sessionId || ''
},
body: JSON.stringify({ message, chatbotId })
});
const nextSessionId = res.headers.get('X-Chat-Session-Id') || sessionId || '';
if (!res.ok) throw new Error(await res.text());
const data = await res.json();
// data: { reply, sources, mode, status }
// If mode === 'human' and status === 'waiting' or 'open', switch to WebSocket
if (data.mode === 'human' && (data.status === 'waiting' || data.status === 'open')) {
// Switch to WebSocket for live chat
connectToLiveChat(nextSessionId, chatbotId);
}
return { data, sessionId: nextSessionId };
}Управление сессией: если вы не отправляете X-Chat-Session-Id, сервер создаёт новую сессию и возвращает session id в response header. Сохраните её и отправляйте в последующих запросах.
Пример ответа при переходе на live chat: [ "reply": "...", "sources": [], "mode": "human", "status": "waiting" ] — затем переключитесь на WebSocket.
Что важно для Live Chat
Live Chat работает через WebSocket. После подключения выполните join с chatbotId + sessionId и отправляйте сообщения как client:message. Обрабатывайте только события вашей текущей сессии.
// Use the same base URL as your REST calls (WebChatAgent domain).
const ws = new WebSocket('wss://webchatagent.com/api/livechat');
ws.onopen = () => {
ws.send(JSON.stringify({
type: 'client:join',
chatbotId: '<your-chatbot-id>',
sessionId: '<your-session-id>',
as: 'user'
}));
};
function sendLiveChatMessage(text) {
ws.send(JSON.stringify({
type: 'client:message',
chatbotId: '<your-chatbot-id>',
sessionId: '<your-session-id>',
sender: 'user',
content: text
}));
}
ws.onmessage = (event) => {
const data = JSON.parse(event.data || '{}');
// data.type === 'livechat:message'
// data.sessionId guard recommended (handle only current session)
};Используйте REST (/api/chat), пока чат в режиме bot.
Проверьте ответ: Если mode='human' и status='waiting' или 'open' возвращается, переключайтесь на WebSocket (/api/livechat).
Сделайте session guard: игнорируйте события без sessionId или с другой sessionId.
Типичные сценарии
Примеры того, как команды встраивают поддержку и процессы прямо в свое ПО.
Поддержка в desktop‑приложении
Помощь в приложении, troubleshooting и onboarding — без перехода в браузер.
Помощник в терминале / CLI
Ответы и инструкции прямо в терминале — для DevOps, IT и внутренних инструментов.
Внутренние порталы и backoffice
Self‑service для сотрудников: политики, процессы и знания — прямо в интранете.
Эскалация в live‑чат
Автоматизируйте ботом — и при необходимости передавайте человеку (WebSocket).
Встраивайте чат там, где ваши пользователи.
Начните с REST и добавляйте live‑чат при необходимости. Создано для продакшна: быстро, стабильно и прозрачно.
Создать аккаунт