Входящие вебхуки

Входящий вебхук позволяет отправлять сообщения в чаты Пачки от имени бота — достаточно одного HTTP POST-запроса. Вам не нужно работать с API, а гибкость обработки данных обеспечивают шаблонизаторы.

Как это работает

Создайте бота

Перейдите в Автоматизации > Интеграции > Чат-боты и Вебхуки и создайте бота. Подробнее — в разделе Боты.

Скопируйте Webhook URL

В настройках бота перейдите на вкладку Входящий Webhook и скопируйте сгенерированный URL.

Вставьте URL в настройки внешнего сервиса

Укажите скопированный URL как адрес для уведомлений (webhook URL) в вашей CRM, CI/CD, мониторинге или другом сервисе.

Сервис отправляет POST-запрос

При наступлении события сервис отправляет POST-запрос с JSON-данными на Webhook URL. Минимальный формат запроса:

{  "message": "Текст сообщения"}

Поле message содержит текст, который будет опубликован от имени бота.

Сообщение появляется в чате

Пачка обрабатывает запрос и публикует сообщение от имени бота во все групповые чаты, где он состоит.

Настройки

Настройки входящего вебхука находятся на вкладке Входящий Webhook в настройках бота.

Вкладка Входящий Webhook в настройках бота

Шаблон сообщения

По умолчанию Пачка публикует содержимое поля message из входящего JSON. Если вместо готового текста вы хотите отправлять произвольную JSON-структуру и гибко формировать сообщение из её полей — укажите формат отображения и шаблон.

Пачка поддерживает два шаблонизатора:

  • Liquid — условия, циклы, фильтры (Shopify, open source)
  • Mustache — простая подстановка без логики (open source)

Шаблонизатор разбирает входящий JSON и подставляет значения полей в шаблон. Для форматирования текста (жирность, курсив, ссылки, блоки кода и пр.) используйте markdown.

ЭлементСинтаксисРезультат
Жирный**это жирный текст** или __это жирный текст__это жирный текст
Курсив*это курсивный текст* или _это курсивный текст_это курсивный текст
Зачеркнутый~~это зачеркнутый текст~~это зачеркнутый текст
Ссылка[текст ссылки](https://www.google.com)текст ссылки
Строчный код`код в тексте`код в тексте
Блок кода``` Блок кода ```Блок кода
Входящий JSON
{  "client": "Иван Петров",  "amount": 15000,  "status": "оплачен",  "project": { "name": "Pachca" }}
Шаблон Liquid (точечная нотация для вложенных объектов)
Заказ от {{ client }} на сумму {{ amount }} ₽ — {{ status }}Проект: {{ project.name }}
Шаблон Mustache (секции для вложенных объектов)
Заказ от {{ client }} на сумму {{ amount }} ₽ — {{ status }}{{#project}}Проект: {{ name }}{{/project}}
Результат в чате
Заказ от Иван Петров на сумму 15000 ₽ — оплаченПроект: Pachca

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Новое сообщение.

Входящие вебхуки
Лимит
10
Период
1 сек
Сущность
webhook_url