API • Интеграция в любое приложение

Интеграция 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 для продакшн‑интеграций.

REST API (cURL)
Быстрый тест — для терминала, CI или отладки.
# 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>"
  }'
REST API (JavaScript)
Интеграция в desktop/web приложения через fetch().
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‑чат

Что важно для Live Chat

Live Chat работает через WebSocket. После подключения выполните join с chatbotId + sessionId и отправляйте сообщения как client:message. Обрабатывайте только события вашей текущей сессии.

Подключение WebSocket + join
Старт: подключитесь, выполните join сессии, затем отправляйте сообщения.
// 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, а когда WebSocket?
REST идеален для бота. WebSocket обязателен, когда активен human takeover.

Используйте 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‑чат при необходимости. Создано для продакшна: быстро, стабильно и прозрачно.

Создать аккаунт