Создаём Telegram-бота без кода с помощью сервиса n8n
На днях сделал себе телеграм-бота, который закидывает все записи в Notion. Давно об этом мечтал, т.к. в Saved Messages записи теряются и забываются, а в ноушн я залажу каждый день. Теперь я пишу в бота, запись попадает в таблицу-бэклог в ноушне, а затем раз в неделю я этот бэклог разгребаю.
Сделать такого бота мне помог новый сервис автоматизации n8n. Это аналог Zapier, только более мощный, наглядный и бесплатный. Составляем цепочки действий, подцепляем токены, настраиваем триггеры и всё это без кода. На установку и создание бота у меня ушло меньше часа.
У n8n есть 3 опции:
- Cloud: если не хочется разбираться с установкой, а просто начать пользоваться сервисом. Эта опция платная, от 20$ в месяц.
- Desktop: ты просто устанавливаешь на компьютер приложение и бесплатно пользуешься. Но чтобы ваша автоматизация работала постоянно, компьютер придется всегда держать включенным.
- Self-hosted: бесплатная опция, которая потребует свой сервер, домен и немножко кода.
У меня есть свой сервер на Digital Ocean (вот рефка — по ней вам 100$), поэтому я выбрал третью опцию. На сайте n8n есть инструкция для DO, с помощью которой я установил сервис минут за 15.
Дальше расскажу, как я сделал телеграм-бота-пересыльщика.
1. Создаем нового бота через бота BotFather и сохраняем токен
2. Идём в Notion, создаём новую интеграцию и сохраняем токен. Дальше эту интеграцию цепляем к странице с базой данной, в которую хотим сохранять записи.
3. Перейдём к n8n. Скачиваем мой шаблон, который уже содержит нужную нам автоматизацию. Не буду рассказывать про инструментарий — сами поиграетесь.
4. В левой части экрана, в разделе Workflows, кликаем по Import from file и находим шаблон. Вы увидите уже готовую цепочку действий.
5. Теперь нужно завести ключи для токенов бота и ноушена. Кликаем New в Credentials. В поиске находим Telegram API. В Access Token вставляем токен нашего бота из BotFather. В левом углу можно задать имя. Сохраняем.
6. То же самое теперь делаем для ноушена, только теперь ищем Notion API.
7. Возвращаемся к цепочке. Дважды кликаем на Telegram Trigger. Это узел, который слушает не отправлено ли в бота сообщение. В Credential for Telegram API выбираете ваш токен. Если нажать на Listen For Event и отправить в бота сообщение, то оно уже должно появиться справа, в зоне Output. Там же можно увидеть айди вашего личного Telegram-аккаунта — он понадобится на следующем шаге.
8. Переходим к следующему узлу — If. Здесь мы проверяем, что написавший в бота аккаунт, это ваш аккаунт. В Value 2 нужно вставить ваш айди из прошлого шага. В Value 1 мы получаем айди аккаунта, написавшего в бота, и сравниваем его с Value 2.
9. Если значения не равны, то мы попадаем на узел Telegram Message. Этот узел отправит ответное сообщение любому пользователю, кроме вас. В поле Text можно отредактировать это сообщение.
10. Если в бота написали вы, то сценарий перейдет к узлу Notion Action. Дважды кликаем на Notion Action и в Credential for Notion API выбираем токен, который создавали на шаге 6.
11. В поле Database Name or ID у вас должна появиться БД со страницы, подключенной на шаге 2. В блоке Properties, в поле Key Name or ID выбираем свойство, в которое будет попадать запись, скорее всего это будет Name.
12. Всё настроено! Чтобы проверить, нажимаем на кнопку Execute Workflow и пишем в бота. На узлах цепочки должны появиться зеленые галочки, а в вашем ноушене — новая запись.
13. Чтобы автоматизация работала постоянно, нужно в правом верхнем углу переключить в Active. Если переключатель неактивен, то нужно просто задать имя канваса в левом верхнем углу и сохранить.
Мне прям очень понравился инструментарий: довольно интересные вещи можно творить с ним, почти не прибегая к коду.
Зарегаться в сервисе n8n можно по моей ссылке, за что вам абсолютно ничего не будет! Для него вам вероятно понадобится сервак, и вот тут моя ссылка на Digital Ocean даст вам 100$.