Входящие вебхуки
Входящий вебхук позволяет отправлять сообщения в чаты Пачки от имени бота — достаточно одного HTTP POST-запроса. Вам не нужно работать с API, а гибкость обработки данных обеспечивают шаблонизаторы.
Как это работает
Создайте бота
Перейдите в Автоматизации > Интеграции > Чат-боты и Вебхуки и создайте бота. Подробнее — в разделе Боты.
Скопируйте Webhook URL
В настройках бота перейдите на вкладку Входящий Webhook и скопируйте сгенерированный URL.
Вставьте URL в настройки внешнего сервиса
Укажите скопированный URL как адрес для уведомлений (webhook URL) в вашей CRM, CI/CD, мониторинге или другом сервисе.
Сервис отправляет POST-запрос
При наступлении события сервис отправляет POST-запрос с JSON-данными на Webhook URL. Минимальный формат запроса:
Поле message содержит текст, который будет опубликован от имени бота.
Сообщение появляется в чате
Пачка обрабатывает запрос и публикует сообщение от имени бота во все групповые чаты, где он состоит.
Настройки
Настройки входящего вебхука находятся на вкладке Входящий Webhook в настройках бота.
Вкладка Входящий Webhook в настройках бота
Шаблон сообщения
По умолчанию Пачка публикует содержимое поля message из входящего JSON. Если вместо готового текста вы хотите отправлять произвольную JSON-структуру и гибко формировать сообщение из её полей — укажите формат отображения и шаблон.
Пачка поддерживает два шаблонизатора:
- Liquid — условия, циклы, фильтры (Shopify, open source)
- Mustache — простая подстановка без логики (open source)
Шаблонизатор разбирает входящий JSON и подставляет значения полей в шаблон. Для форматирования текста (жирность, курсив, ссылки, блоки кода и пр.) используйте markdown.
| Элемент | Синтаксис | Результат |
|---|---|---|
| Жирный | **это жирный текст** или __это жирный текст__ | это жирный текст |
| Курсив | *это курсивный текст* или _это курсивный текст_ | это курсивный текст |
| Зачеркнутый | ~~это зачеркнутый текст~~ | |
| Ссылка | [текст ссылки](https://www.google.com) | текст ссылки |
| Строчный код | `код в тексте` | код в тексте |
| Блок кода | ``` Блок кода ``` | Блок кода |
Liquid также поддерживает:
- Условия —
if,else,elsif,unless,case/when - Циклы —
forс параметрамиlimit,offset,reversed - Фильтры строк —
downcase,upcase,capitalize,truncate,replace,remove,strip,escape,url_encode - Фильтры чисел —
plus,minus,times,divided_by,round,ceil,floor,abs - Фильтры массивов —
join,first,last,sort,uniq,where,map,size - Фильтры дат —
dateс форматированием (%d.%m.%Y,%H:%Mи пр.)
После отправки вебхука в настройках бота появляется кнопка «Показать последний полученный объект...». Нажмите на неё — откроется модальное окно с содержимым последнего полученного JSON. Используйте его, чтобы определить нужные поля и перенести их в шаблон.
Показывать превью ссылок
Если включено, Пачка будет генерировать превью для ссылок в сообщениях бота — аналогично тому, как это работает для обычных сообщений.
Поле для верификации
Некоторые сервисы (например, monday.com) при настройке вебхука отправляют проверочный запрос и ожидают получить в ответе определённое поле. Укажите название поля проверки — Пачка вернёт его значение в ответе на запрос верификации.
Ограничения
Входящий вебхук не позволяет отправить личное сообщение или указать конкретный чат. Сообщение публикуется во все групповые чаты, где состоит бот. Для отправки в конкретный чат или личное сообщение используйте API-метод POSTНовое сообщение.