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:
- Напишите в службу поддержки
- Кратко опишите ваш сценарий использования API
- Получите токен доступа
x-api-keyи техническую консультацию