N8n - открытая альтернатива Zapier

Как автоматически добавить задачу в Todoist из сообщения в Telegram? - этот вопрос не давал мне покоя пару дней, так как я являюсь активным пользователем обоих платформ, а так же сторонником методки GTD.

Известные мне платформы в виде Zapier, IFTTT и других (их оказалось немало) не решали эту задачу. Я уж было думал расчехлить навыки программирования и быстро заколхозить интеграцию, но вспомнил о сервисе n8n, который не попал в мою поисковую выдачу. Вспомнил - потому что как-то мне его предлагал посмотреть ув. тов. Маликов.

Что такое N8n, IFTTT, Zapier?

Суть всех сервисов сводится к тому, чтобы автоматизировать какие-то рутинные операции. И работает это по принципу If This Then That (если это, то сделай то).

Я отношу такие сервисы к классу no code - сервисов. Буквально за несколько минут, без программирования можно настроить для себя бизнес-процессы. Например, отправлять сообщение в телегу если вам на почту пришло письмо. Чтобы все было максимально просто для конечного пользователя все подобные популярные сервисы предлагают подписку на облачную версию (а у большинства другой и нет).

В чем отличие n8n от других?

Для меня ключевым отличием n8n от Zapier (да и других сервисов) оказалось то, что он open source, т.е. вы можете запросто развернуть сервис у себя на хостинге (но так же доступна и облачная версия). А позднее я обнаружил, что в нем можно писать свои обработчики на JavaScript (n8n написан на JS) прям в браузере, что максимально развязывает руки и открывает новые возможности для автоматизации. Так же не стоит забывать про то, что из коробки у n8n есть более 200 интеграций с самыми популярными сервисами и протоколами.

Забавно, но триггером к освоению данного инструмента послужило невозможность создать задачи в Todoist из Telegram во всех популярных платформах подобного типа.

Разворачиваем свой n8n для автоматизации личных нужд

Вот так выглядит мой docker-compose.yml для n8n, с хранением БД в SQLite (можно использовать PostgreSQL, но для личных целей это кажется overhead).

version: '3.1'

services:
n8n:
image: n8nio/n8n
restart: always
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=<PUT_HERE_YOUR_LOGIN>
- N8N_BASIC_AUTH_PASSWORD=<PUT_HERE_YOUR_PASSWORD>
- N8N_VERSION_NOTIFICATIONS_ENABLED=false
- N8N_HOST=<PUT_HERE_YOUR_DOMAIN>
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://<PUT_HERE_YOUR_DOMAIN>/
ports:
- 15678:5678
volumes:
- /PATH/TO/.n8n:/home/node/.n8n

Чтобы все было по красоте на вашем vps - советую сразу настроить nginx и выпустить сертификаты для https.

Как настроить интеграцию Telegram и Todoist?

Для начала нужно добавить 2 интеграции: с Telegram и Todoist. Для этого нажмите на ключик (Credentials) в панели слева и нажмите New. Когда оба доступа зарегистрировано - можно нарисовать сам процесс, от триггера, до целевого действия - для этого нажмите справа большой красный плюс.

Во время настройки флоу - нужно придерживаться следующего принципа - есть входящие данные, в каком-то формате. По ходу флоу их можно использовать и трансформировать. Но возникает вопрос - а в каком формате приходят данные и где их посмотреть? Для этого есть раздел executions, где можно посмотреть “выполнения”. Так можно понять, какой путь использовать в условиях.

В конечном счете, мой воркфлоу принял вот такой вид:

trigger.png

А позднее я настроил автоматизации, которые мне присылали уведомления в телеграм при выполнении Github Actions.

Полезные ссылки