В этом модуле вы узнаете, как проектировать цепочки автоматизации и бизнес-логику без программирования с помощью визуальных инструментов сервиса Integromat.
Integromat — один из самых недооцененных, на мой взгляд, nocode-инструментов. Если вы пользовались ранее Zapier или IFTTT, то Integromat можно назвать «запиром на стероидах». Это клей (как он сам себя называет — The glue of internet) для онлайн-сервисов, которые используете вы и ваша команда.
Это инструмент для автоматизации бэкенда, процесс работы в котором похож на игру Lego. Только вместо кубиков конструктора — пузырьки сервисов. В нем можно настраивать целые группы сложных сценариев с расписанием, обработкой данных, парсингом, переменными, упаковывать сценарии в микросервисы со своим собственным API и многое другое. Integromat существенно дешевле Zapier. Есть бесплатный пробный план.
Ключевые сущности и интерфейс
Рассказывает Леонид Бяков, ex-Tinkoff Bank, ex-Chatfuel

Scenarios (сценарий, цепочка действий)
Сценарий — это алгоритм выполнения какой-либо отдельной функции. Она начинается с входящего сигнала и заканчивается действием. Всегда есть пузырь запуска цепочки (триггер может быть внутренним или внешним), по которому мы запускаем некое действие. По сути, это джобы, изолированные друг от друга и позволяющие гибко подходить к развитию функциональности продукта.
Например, если мы хотим все заявки на сайте заносить в свою гугл-таблицу, нам потребуется сначала назначить триггер — получение заявки, а потом действие — создать строчку в таблице.

Ключевые вкладки для работы со сценарием
- Diagram — рабочее пространство для сбора цепочек из модулей.
- History — история работы сценария (там же будем находить ошибки).
Настройки сценария: Save / Notes / Auto-align / Explain flow / Versions

Сборка сценария
Module (модуль, бабл, «пузырь»).

Настройки модуля
Connection — связь сервиса с вашей учетной записью. Настраивается при создании модуля, хранится в списке Connections.
Мапирование (data- mapping) — это определение соответствия данных между последовательностями элементов в программировании.

Виды отработки сценариев по времени
- Imediately. При поступлении сообщения или изменений. Принцип работы Webhook.
- Scheduling. Периодический запуск «джобиков» (для напоминаний, отчетов и т.д.).

Фильтры
- Есть текстовые, численные, фильтры по дате и по массиву.
- С настороженностью надо работать с фильтрами по дате — потому что надо быть уверенным, с какой тайм-зоной приходит та или иная дата.
- Все остальные фильтры на переходах достаточно простые, а текстовые продублированы чувствительностью к заглавным буквам. Например, ProductSense и productsense это одно и то же только для case insensitive случая.
- Самый мощный фильтр — Match Pattern. Он покрывает функции всех остальных фильтров, но требует знания регулярных выражений.
- Самый частоиспользуемый фильтр — ID exists. Проверяет, вернул ли предыдущий модуль что-либо. Если нет — тогда и не надо продолжать сценарий.
- OR, AND позволяют строить сложные фильтры с логическими операциями. Но с ними надо быть осторожным.
Топ-модули в группе Flow control
Видеоразбор ключевых модулей Flow Control.

Router
- Принцип работы. Рассмотрим детально, как он работает
- Fallback Route. Переходит в какую-то ветку, когда условия на соседних ветках не выполняются. Не рекомендую его использовать: слетает и ломается очень часто. Из-за этого бывают проблемы.
- Как отрабатывает вживую
Iterator
Превращает «детей» из списка в «автобусы» (бандлы), с которыми сценарий может работать как с отдельными юнитами. Например, https://www.integromat.com/scenario/1245410 — отправка уведомлений админам. Полезно, когда внутри есть массив объектов, с каждым из которых надо поработать.

Array Aggregator
Собирает бандлы в массив и что-то с ними делает. Полезно при отправке множественных результатов, например, в телеграм и при подведении итогов обработки.

Ignore
Пропускает ошибку! Часто использую для сервисов, в которых я не уверен.
Integromat – Tools and Text Parser (видео)


Set / Get Variable
Устанавливает новую переменную, которую потом можно удобнее использовать.

Text Aggregator
Полезно, когда надо объединить много данных из множества строк в одно сообщение. Незаменимая штука для работы с ботами, которые высылают отчеты и уведомления.

Топ-модуль в группе Text parser

Match Pattern
Cуперпушка! Используется, чтобы из текста выдирать то, что нужно. Хэштеги, команды, имена, e-mail и т.д. Надо понимать и знать регулярные выражения. Но зато, зная их, становишься просто суперниндзя.
Regex101 поможет писать шаблоны
Пример задачи — заносить в базу Airtable сообщения от пользователей в группе в телеграме с определенным хештегом (например, #отчет).

Дебаггинг: как работать с ошибками


После трех раз настройка Scheduled job останавливается.


Что происходит во время остановки сценариев
- Watch updates. Останавливает после первой же ошибки по дефолту. Все события продолжают ждать обработки в очереди! Это все встроено в Integromat.
- Scheduled Scenarios. Останавливаются после 3 ошибок.
Как читать ошибки
- Гуглить, когда непонятно.
- Догадываться (приходит с опытом).
Вебхуки
Вебхуки — это «пользовательские обратные вызовы по HTTP». Запускаются каким-либо событием. Когда оно происходит, исходный сайт отправляет HTTP-запрос на URL-адрес, указанный для вебхука. Можно настроить их так, чтобы события на одном сайте вызывали действия на другом.

Он будет посылать отчет за день. Сколько минут и на что я потратил.


Вызываем кастомный API
Make a Request (без авторизации)
- Подставляем URL-webhook.
- Делаем GET-запрос без параметров.


Делаем HTTP-запрос к сервису Giphy и отправляем в телеграм гифку с текстом.


Полезные ссылки
Телеграм-сообщество по Integromat, где можно задать вопрос и получить ответ