Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Долго искал готовое решение, которое позволит решить задачу:
Предупредить, если например на балансе Яндекс.Директ денег осталось меньше, чем 5 000 руб.
Ничего готового не было найдено, поэтому сделал через no-code платформу Make, делюсь инструкцией.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Подойдет, как для клиентских аккаунтов, так и для агентских, созданных, например, через Elama.

Настройка бота займет примерно 1 час. Самое долгое и нудное, это подготовить аккаунты, получить доступы.

Регистрация приложения в API Яндекс.Директ

1. Перейдите по ссылке под вашим аккаунтом Директа. Дайте приложению любое название, иконку прикреплять не обязательно. В списке платформ выберите веб-сервис и нажмите на «Подставить URL для разработки».

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

2. Далее в списке «Какие данные вам нужны?» Отметьте галочкой «Использование API Яндекс.Директа».

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Поля «Дополнительно», «Ссылка на сайт» и «Контактные данные» можно оставить пустыми. Нажмите на кнопку «Создать приложение».

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

3. После этого вы перейдете на страницу вашего приложения, где будут находиться данные для получения токена авторизации.

Справа вы увидите графу ClientID:

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Чтобы получить токен перейдите по ссылке:

https://oauth.yandex.ru/authorize? response_type=token&client_id=идентификатор приложения

Где идентификатор приложения это — ваш ClientID. Авторизуйтесь через ваше приложение под аккаунтом, в котором вы хотите следить за балансом и сохраните полученный токен.

4. Следующим шагом будет подачи заявки на полный доступ к API в интерфейсе Директа.

Откройте доступ к API в Яндекс.Директ, если он еще не открыт. Делается это через меню: Инструменты — API.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу
Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Наше приложение уже появилось в списке под пунктом «Мои приложения», осталось подать заявку на получение доступа к API.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

5. Для этого необходимо перейти в раздел «Мои заявки» и нажать на кнопку «Новая заявка». Заявку подавайте на полный доступ.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

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

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

В дальнейшем можно будет пропускать шаг подачи заявки на получение полного доступа к API для вашего приложения и просто использовать ссылку авторизации из пункта 3, которая автоматически добавит приложение в список.

Переходим к следующим пунктам в анкете. Укажите контактный Email, данные о компании можно не указывать.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Далее выбираете специфику вашей работы.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Технические данные о приложении.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Здесь можно написать «‎не используется».

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Выбираем для чего предназначено приложение.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

И его основные функции.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Указываем возможности, которое дает наше приложение.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

И кратко описываем схему взаимодействия вашего будущего чат-бота с API Яндекс.Директ.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

В качестве скриншота интерфейса можно взять скриншот сценария из самого сервиса Make, в котором мы в дальнейшем зарегистрируемся.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

И добавить описание.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Соглашаемся с правилами разработки и отправляем заявку. Если все поля заполнены корректно, заявку быстро одобрят.

Теперь у нас есть приложение с полным доступом к API Яндекс.Директ, с помощью которого мы сможем вытянуть баланс и отправить в Telegram с помощью конструктора чат-ботов.

Создание бота в Telegram.

7. Введите в поиске Telegram @BotFather и откройте с ним диалог. Выберите пункт Create a new bot.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Выберете имя для вашего бота.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Если имя не занято, добавьте в конце _bot.
В следующем сообщении вы получите ссылку на бота и токен авторизации.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Сохраняем токен и переходим по ссылке, где активируем бота.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Настройка бота в Make

8. Создайте учетную запись на make.com.

Перейдите во вкладку «Сценарии» и нажмите «Создать новый сценарий».

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Добавим первый модуль — HTTP запрос, который будет обращаться к API Яндекс.Директ через созданное ранее приложение.

Нажимаем на крестик и вводим в поиск HTTP.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

В выпавшем списке выбираем Make a request.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

В поле URL прописываем следующий адрес:

Method: POST

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Далее добавляем заголовок в Headers, нажав на кнопку Add a header.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

В открывшемся поле Name прописываем: Authorization.

В поле Value прописываем: Bearer Ваш токен

Напомню, что токен вы получили после авторизации в вашем приложении (пункт 3).

Вот что получилось (не забываем пробел после Bearer) :

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Добавляем второй заголовок (Add a header) , в которых прописываем следующее:

Name: Client-Login

Value: Логин вашего аккаунта

Третий заголовок:

Name: Accept-Language

Value: ru

Четвертый заголовок:

Name: Content-Type

Value: application/json; charset=utf-8

В параметре Body type выбираем значение Raw:

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

В появившемся поле Content type выбираем значение Text:

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

В поле Request content вставляем следующий запрос:

{ "token": "Ваш токен", "method": "AccountManagement", "param": { "SelectionCriteria": {}, "Action": "Get" } }
Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Нажимаем «Ок» и проверяем, правильно ли мы заполнили поля. Для этого нажимаем на кнопку Run once и принудительно запускаем сценарий.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Если поля заполнены корректно, в ответ на запрос мы получим следующие параметры:

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Баланс аккаунта можно увидеть после значения Amount. Осталось вытащить это значение и назначить переменной, для того чтобы в Telegram приходили актуальные цифры.

Для этого мы будем использовать модуль JSON. Ищем его в поиске.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Из выпавшего списка выбираем Parse JSON.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Добавляем модуль и добавляем Data structure. В открывшемся поле раскрываем строчку Specification. В поле Name вводим любое название, в поле Specification выбираем text.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Нажимаем на JSON string, слева появляются переменные HTTP запроса. Выбираем переменную Data и нажимаем OK.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу
Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Принудительно запускаем сценарий. Появится предупреждение о том, что модуль JSON не должен быть последним в сценарии, игнорируем предупреждение и нажимаем Run anyway.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Разворачиваем то, что у нас получилось на выходе и видим, что значение Amount перешло в отдельную переменную, которую мы можем использовать для Telegram-бота.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Теперь мы можем подключить к сценарию Telegram-бота. Для этого добавляем новый модуль, ищем в поиске Telegram и из выпавшего списка выбираем Send a Text Message or Reply.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

В открывшемся окне вводим любое название для нового соединения, а в строке Token вводим токен вашего Telegram-бота, который мы скопировали в пункте 7.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Далее заполним поле Chat ID.

Для этого создайте группу в Telegram и добавьте в нее вашего бота.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Перейдите в настройки группы и выберите пункт Group Type. Выбираем значение Public Group и прописываем название ссылки для нашей группы.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Сохраняем изменения и копируем ссылку группы. Вставляем ссылку группы в Chat ID, убираем https://t.me и ставим перед названием значок @.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Бот готов, осталось настроить его на ваше усмотрение.

Для того, чтобы уведомление в Telegram поступало тогда, когда баланс в Яндекс.Директ, например, меньше 5000 рублей, настроим фильтрацию.

Нажимаем на пунктирную линию между модулями JSON и Telegram.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Задаем название фильтра в поле Label.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

В первой строке поля Condition укажите переменную Amount, которая содержится в Data в теле JSON.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Далее выбираем условия фильтрации: Numeric operators => Less than.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Устанавливаем значение меньше 5000 и подтверждаем условия фильтрации.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Далее выбираем какое сообщение наш бот будет отправлять в группу.

Для этого переходим к настройкам бота и полю Text.

Пишем текст по своему желанию, также можно добавить переменную Amount, чтобы получить актуальные данные о балансе.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Сохраняем настройки, запускаем сценарий и смотрим, что у нас получилось.

Бот сработал, отфильтровал значение и прислал уведомление в Telegram-чат о том, что баланс меньше 5000 рублей.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

В конце настроим триггер по времени, когда мы ходим получать уведомление о балансе в Telegram. Для этого перейдите к первому модулю HTTP запроса и нажмите на циферблат.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

Откроется меню с настройками времени. Укажите нужное вам время, учтите параметр Time zone.

Уведомление о балансе Яндекс.Директ в Telegram через no-code платформу

✅ Готово.

Через Make можно делать и другие интересные автоматизации например с amoCRM, Trello, Asana. Позже расскажу про личного бота «Посудомойка».

33
6 комментариев

А как сделать для множества аккаунтов Яндекс Директа

1
Ответить

Крутой гайд. Отличная работа

Ответить

Михаил, спасибо за полезный гайд! У меня вопрос. Делаю все так же по инструкции, но почему то выдает следующее. Не знаешь в чем может быть причина?

Ответить

В статье была ошибка «https://api. direct. yandex. ru/live/v4/json» нужно без пробелов, проверьте – возможно поможет. Самое сложное, именно как раз авторизоваться в API Яндекса.

Плюс немного интерфейс Яндекса поменялся, на днях актуализирую статью.

Ответить

Вот у меня тоже ошибка. Может ли это быть потому, что токен указала агентский, а логин клиентский на этом агентском аккаунте?

Ответить