Модуль 12 · Уведомления
Уведомления о событиях в свой Telegram-бот
Постбек умеет отправлять события не только в трекер. Тем же запросом можно запустить сценарий в Make и получать сообщение в свой Telegram: регистрация, депозит, комиссия — сразу с суммой, кампанией и меткой источника.
01
Как устроен маршрут
Между событием у трейдера и сообщением в чате — три шага. Партнёрская система отправляет постбек, Make принимает его и собирает текст, бот доставляет сообщение вам.
01
Событие у трейдера
Регистрация, депозит, вывод или начисленная комиссия.
02
Запрос приходит в Make
Постбек уходит на адрес вебхука, и сценарий запускается.
03
Фильтр и текст
Сценарий проверяет, что это за событие, и собирает сообщение из параметров запроса.
04
Сообщение от бота
Бот пишет в личный чат, группу или канал — обычно через несколько секунд.
Make ничего не считает и не меняет. Он получает те же данные, что и трекер, и показывает их в читаемом виде.
Постбек для Telegram — отдельный постбек, а не замена трекерному. Уточните у менеджера, можно ли добавить второе назначение на то же событие: если нет, оставьте основным трекер, а в Make передайте запрос дальше модулем HTTP.
02
Что подготовить
Три вещи до начала. На них уходит минут десять, зато дальше сценарий собирается без пауз.
Make
Аккаунт в Make
Для старта хватает бесплатного тарифа: 1 000 операций в месяц. Одно доставленное уведомление тратит две операции — приём запроса и отправку сообщения.
BotFather
Свой бот и токен
Напишите @BotFather команду /newbot, задайте имя и адрес бота — в ответ придёт токен вида 8123456789:AAH… Это пароль от бота: не публикуйте его и не пересылайте в общие чаты.
Chat ID
Идентификатор чата
Личный чат: напишите боту /start и откройте в браузере api.telegram.org/botTOKEN/getUpdates, подставив вместо TOKEN свой токен, — в ответе будет chat id. Группа: сначала добавьте в неё бота, идентификатор группы начинается со знака минус. Канал: сделайте бота администратором.
Бот не может написать первым тому, кто ни разу ему не писал. Если сообщение не приходит в личный чат — откройте бота и нажмите Start.
03
Шаг 1. Вебхук в Make
Вебхук — это адрес, который ждёт запрос. Начинаем с него, потому что без адреса не собрать URL постбека.
- Создайте сценарийВ Make откройте Scenarios и нажмите Create a new scenario.
- Добавьте модуль WebhooksНажмите «+», найдите Webhooks и выберите Custom webhook.
- Создайте вебхукAdd → имя, например PocketPartners Events → Save. Make выдаст адрес приёмника.
- Скопируйте адрес целикомКнопка Copy address to clipboard. Регион в адресе у всех свой — eu1, eu2 или us1, — поэтому берите свой адрес, а не из примера.
- Ничего к нему не дописывайтеСвои параметры добавлять не нужно: все значения придут из постбека.
https://hook.eu2.make.com/9f31c2ad74qz8mvb1kxs
Это адрес приёмника. На следующем шаге он станет началом URL постбека.
04
Шаг 2. Постбек на этот адрес
Теперь в партнёрском кабинете создаём постбек, который будет отправлять события в Make. Правило то же, что и для трекера: одно событие — один постбек.
- Откройте Postbacks → Add New PostbackТип Global отправляет события по всему аккаунту, Campaign — только по выбранной кампании.
- Выберите событиеRegistration, First Deposit, Re-deposit, Withdrawal или Commission. Для каждого нужного события postback создаётся отдельно.
- Соберите URLАдрес вебхука, затем ?event= со своим значением, затем параметры с макросами. Первый параметр всегда через знак ?, каждый следующий — через &.
- Передавайте всё, что хотите видеть в сообщенииЗначение придёт в Make, только если его макрос есть в URL. Если в карточке события параметры включаются переключателями, включите те же, что стоят в URL: выключенный параметр не отправится.
- Сохраните и повторите для остальных событийУ каждого события — своё значение event=. Именно по нему сценарий отличит регистрацию от депозита.
https://hook.eu2.make.com/9f31c2ad74qz8mvb1kxs?event=registration&trader_id={trader_id}&cid={cid}&ac={ac}&country={country}&date_time={date_time}
Слева — адрес вебхука без изменений. event=registration — ваша метка события. Дальше имена параметров и макросы: в момент отправки система подставит в них реальные значения.
Полный список макросов и конструктор URL — на странице Постбеки: зачем нужны и как собрать URL.
05
Шаг 3. Тестовое событие
Make не знает, какие поля придут, пока не увидит первый запрос. Поэтому текст сообщения собирают после теста, а не до него.
- Включите приёмВ сценарии нажмите Run once — вебхук будет ждать один запрос.
- Отправьте событиеБыстрый способ: открыть собранный URL в браузере, заменив макросы на любые значения. Полноценная проверка — тестовая регистрация по своей партнёрской ссылке.
- Посмотрите, что пришлоНа модуле появится счётчик, а в его выводе — список полей: event, trader_id, cid и остальные, которые вы передали.
- После правок определите структуру зановоДобавили параметр в постбек — нажмите Re-determine data structure и отправьте событие ещё раз. Иначе нового поля в списке не будет.
Пустой вывод почти всегда означает одно: в URL постбека не хватает параметров или он собран с ошибкой. Проверьте, что первый параметр отделён знаком ?, а не &.
06
Шаг 4. Фильтр и сообщение
Осталось два модуля: фильтр отсекает чужие события, Telegram отправляет текст. Соберите текст в конструкторе — он подставит поля Make и покажет, как сообщение придёт в чат.
Фильтр между вебхуком и TelegramУсловие ставится на связи между модулями: слева поле event из вебхука, оператор Equals, справа — значение события. Без фильтра в чат полетят все события подряд.
СобытияОтметьте события, по которым нужны уведомления. Для каждого получится свой текст и своё значение фильтра.
Что показывать в сообщенииСлева — значение из постбека, справа — подпись, с которой оно появится в чате. Подпись можно переписать под себя.
Модуль Telegram
- Add a module → Telegram Bot → Send a Text MessageМодуль ставится после фильтра, последним в сценарии.
- Create a connectionВставьте токен от @BotFather. Токен хранится в подключении — в тексте сообщения его быть не должно.
- Chat IDИдентификатор чата, куда писать. Для группы — со знаком минус.
- TextВставьте готовый текст из конструктора выше.
- Сохраните и включите сценарийПереключатель у сценария должен стоять в положении ON: выключенный сценарий не ловит события.
Parse mode оставьте пустым. С Markdown или HTML сообщение не отправится, если в значении окажется _, * или <: Telegram вернёт ошибку 400.
07
Проверка и частые ошибки
Пройдите список до того, как начнёте полагаться на уведомления. Почти все проблемы здесь — из двух источников: неполный URL постбека и выключенный сценарий.
Что ломается чаще всего
| Симптом | Причина | Что сделать |
|---|---|---|
| В Make приходит только event | В URL постбека нет остальных макросов или они выключены переключателями | Добавьте макросы в URL, сохраните и нажмите Re-determine data structure |
| Сообщение не приходит | Бот не может писать первым, неверный chat id или сценарий выключен | Нажмите Start в чате с ботом, сверьте chat id и включите сценарий |
| Telegram отвечает ошибкой 400 | Текст пустой или Parse mode ломается на символах из данных | Оставьте Parse mode пустым и включите заглушку вместо пустых значений |
| В чат летят все события подряд | Между вебхуком и Telegram нет фильтра | Поставьте фильтр по значению event для каждого сценария |
| Вместо кампании пусто | В URL постбека нет макросов {cid} и {ac} | Добавьте оба и определите структуру данных заново |
| Сообщения дублируются | На одно событие настроено два постбека или два сценария | Проверьте список постбеков в кабинете и активные сценарии в Make |
| Уведомления кончились в середине месяца | Израсходованы операции тарифа | Оставьте уведомления только по деньгам: первый депозит, повторный депозит, комиссия |
Что делать с этими событиями дальше — в уроке Аналитика и рост.