Перейти к содержанию

Topics API (v1)

REST API для программной интеграции Hotline CRM с внешними системами.

Получайте информацию о диалогах и отправляйте сообщения в топики бекенд-группы.

Платная функция

Использование Webhooks и REST API доступны только для премиум пользователей Hotline. Для приобретения платной версии системы обратитесь в нашу службу поддержки.

Возможности API

  • Получать информацию о топиках — данные диалога, статус, информация о пользователе или чате
  • Отправлять сообщения в топики — отправлять сообщения в топики для операторов по заданному user_id

Endpoint

https://n8n.production.hotline.tg/webhook/topic_action

Требования:

Описание
Метод запроса POST
HTTP-Header X-API-KEY с токеном доступа владельца подключений (выдается службой поддержки)
Body: JSON с полями instance и api_key конкретного подключения (получаются в сетап-боте)

Метод: Получение информации о топике

Метод info_by_topic возвращает полную информацию о диалоге по идентификаторам топика.

Пример POST запроса
{
  "action": "info_by_topic",
  "group_id": "2101424779",
  "topic_id": 5343,
  "instance": "13209946874612345",
  "api_key": "pQTngMZLh0NmAh"
}

Извлечение ID из ссылки

Ссылка на топик: https://t.me/c/2101424779/5343
group_id: 2101424779
topic_id: 5343

Пример ответа для топика пользователя
{
  "result": "topic_info",

  "group_id": "2101424779",
  "topic_id": 5343,

  "frontend_type": "private",
  "instance_name": "support_bot",
  "instance_frontend_user_id": 123456789,
  "instance_id": "132099468746812345",

  "chat_id": -1002101424779,
  "thread_id": 5602541568,

  "topic_last_date": "2025-10-09 00:24:55",
  "topic_status": "user_answered",
  "topic_title": "John Doe",

  "user_id": 987654321,
  "user_name": "John Doe",
  "user_first_name": "John",
  "user_last_name": "Doe",
  "user_username": "john1991",
  "user_lang": "en",
  "user_phone": "+12125550123"
}
Пример ответа для топика чата
{
  "result": "topic_info",

  "group_id": "2101424779",
  "topic_id": 5344,

  "frontend_type": "group",
  "instance_name": "support_bot",
  "instance_frontend_user_id": 123456789,
  "instance_id": "132099468746812345",

  "frontend_chat_id": -1001234567890,

  "topic_last_date": "2025-10-09 00:30:00",
  "topic_status": "support_answered",
  "topic_title": "Somebiz Proposal Chat"
}

Множественные подключения

  • Если к системе привязано несколько фронтендов, то для получения информации можно использовать любой из них
  • В ответе будет указано, какому подключению принадлежит конкретный топик

Метод: Отправка сообщения в топик

Метод incoming_in_topic создает сообщение для операторов в топике с диалогом указанного пользователя.

Пример запроса
{
  "action": "incoming_in_topic",
  "user_id": 987654321,
  "message": "User status is changed: DEAL CONFIRMED",
  "instance": "13209946874612345",
  "api_key": "pQTngMZLh0NmAh"
}
Пример ответа
{
  "result": "message_sent",
  "topic_link": "https://t.me/c/2101424779/5343",
  "message": "User status is changed: DEAL CONFIRMED",
  "chat_id": "-1002101424779",
  "thread_id": 5602541568
}

Рекомендации

  • Храните x-api-key и api_key в безопасном месте (переменные окружения, secrets)
  • Используйте HTTPS для всех запросов к API
  • Логируйте все запросы к API для аудита
  • Реализуйте retry logic с exponential backoff
  • Устанавливайте timeout запросов не менее 10 секунд
  • Учитывайте частоту запросов rate limiting при массовых операциях
  • Максимальный размер сообщения — 4096 символов (ограничение Telegram)

Получение доступа

Для получения токена x-api-key и подключения Topics API:

  1. Напишите в службу поддержки
  2. Кратко опишите ваш сценарий использования API
  3. Получите токен доступа x-api-key и техническую консультацию