Из Telegram в таск-трекер: автоматизируем процесс переноса задач с Make (ex-Integromat) и ChatGPT

Работая продактом в IT-компании, я столкнулся с проблемой, которая, уверен, знакома многим: все больше рабочих задач стало приходить в виде сообщений в Telegram. Это могут быть упоминания в групповых чатах с просьбой посмотреть что-то или личные сообщения.

Однако не всегда удается сразу выполнить или даже обдумать задачу, и такие сообщения могут легко затеряться. Я заметил, что стал забывать обрабатывать некоторые из них, поэтому начал переносить сообщения "как есть" в папку "Входящие" своего таск-менеджера (я использую Todoist). Но даже это требовало времени и усилий: необходимо было переключиться на другую задачу, сформулировать название, указать "заказчика".

Когда поток задач значительно увеличился, я решил автоматизировать их перенос в таск-трекер. Эта статья будет полезна всем, кто, как и я, сталкивается с телеграм-менджментом и хочет сделать свои привычные инструменты эффективнее, не обладая особыми технических навыками.

Как выглядит итоговое решение

  1. Я пересылаю сообщение в приватный чат в Telegram с чат-ботом.
  2. Cообщение обрабатывает GPT и формулирует краткое описание.
  3. Задача попадает в папку Входящие в Todoist в следующем виде:
  • Заголовок — формулировка задачи от GPT
  • Описание — автор сообщения и исходный текст
Скриншот одной из задач
Скриншот одной из задач

Для автоматизации я использовал Make.com (бывший Integromat). В бесплатном тарифе там 1000 операций в месяц. Одна задача съедает 3 операции, так что на на бесплатном тарифе это будет порядка 330 задач в месяц — мне хватит.

Шаг 1. Создаем телеграм-бота

Для этого зайдите в специального бота BotFather, нажмите Меню, выберите /newbot и следуйте инструкциям в чате.

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

Сообщение об успешном создании чат-бота
Сообщение об успешном создании чат-бота

Шаг 2. Создаем сценарий в Make

Зайдите на Make и нажмите Create a new scenario.

Начнем с модуля Telegram «Watch Updates». После настройки он будет отлавливать все сообщения, которые "видит" ваш бот.

Модуль Watch Updates в поиске
Модуль Watch Updates в поиске

После добавления:

  1. Создайте вебхук. Для этого нажмите Create a webhook. Вебхук — это способ, с помощью которого одно приложение может автоматически сообщить другому, что что-то произошло, например, кто-то отправил сообщение или обновил данные.
  2. Создайте связку (connection) с вашим ботом. Для этого нажмите кнопку Add и в открывшуюся форму вставьте токен, полученный в Шаге 1.
Создание новой связки «My Telegram Bot connection»
Создание новой связки «My Telegram Bot connection»

Шаг 3. Настраиваем рабочий чат с ботом

Создайте новый чат, добавьте туда чат-бота и выдайте ему админские права. Теперь ваш бот будет обрабатывать все сообщения, поступающие в чат и отправлять их в Make. Нажмите кнопку Run once и попробуйте переслать сообщение в чат.

Рекомендую именно пересылать сообщение: тогда вы сразу увидите нужные поля для следующих шагов.

Успешно пойманное сообщение. Красным выделены поля, которые нам пригодятся дальше.
Успешно пойманное сообщение. Красным выделены поля, которые нам пригодятся дальше.

Шаг 4. Настраиваем автоматическое создание задач в Todoist

Для проверки работы мы пока пропустим часть с GPT, тем более, что не у всех есть возможность его подключить. Поэтому сразу добавим модуль Create a Task для Todoist.

Чтобы создать связку с Todoist вы должны быть залогинены в Todoist в браузере. После нажатия кнопки Add в поле Connection вас перекинет на техническую страничку, а затем вернёт в Make, после чего в поле появится новая связка.

Далее настройте поля:

  • Content. Название задачи. Для теста добавьте туда дату отправки сообщения — {{1.message.date}}
  • Description. Вставьте туда следующий текст:
**Источник:** {{1.message.forward_from.first_name}} {{1.message.forward_from.last_name}} (t.me/{{1.message.forward_from.username}}) **Текст сообщения:** {{1.message.text}}
  • Project. Выберите из выпадающего списка Inbox.

Можно поиграться с тегами, приоритетами и другими полями, но мне хватило минимума.

Заполненные поля модуля Create a Task в Todoist
Заполненные поля модуля Create a Task в Todoist

Примените изменения, снова нажмите Run once, перешлите новое сообщение и проверьте, что новая задача появилась во Входящих.

Шаг 5. Интегрируем ИИ для автоматического создания заголовков задач

Для этого у вас должен быть аккаунт на openai.com и привязана карта.

Зайдите на OpenAI PlatformDashboardAssistants и нажмите Create.

Придумайте имя своему "ассистенту" и напишите инструкцию. Моя выглядит так, но результаты далеки от идеала:

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

Чтобы потестировать работу инструкции, можно перейти в Playground (серая кнопка наверху).

В качестве модели выбирайте gpt-4o-mini — это самая новая и дешевая модель из доступных. Цены копеечные: 0,15$ за миллион токенов на запросы и 0,60$ на ответы.

Ассистент GPT
Ассистент GPT

Далее перейдите на вкладку API Keys, создайте новый ключ и скопируйте токен. Не забудьте сохранить токен в заметки — он будет показан только один раз.

Генерация нового API-токена
Генерация нового API-токена

Шаг 6. Завершаем интеграцию с OpenAI и настраиваем фильтр

Вернитесь в Make и добавьте новый шаг между Telgram и Todoist. Нам нужен модуль Message an Assistant от OpenAI.

Добавьте связку с OpenAI, вставив в поле токен, который вы получили на Шаге 4.

В выпадающем списке должен появится ассистент. Выберите его, Role — User, а в качестве Message — {{1.message.text}} из модуля Telegram.

Настройка модуля OpenAI
Настройка модуля OpenAI

Рекомендую также настроить фильтр, нажав на гаечный ключ на связке Telegram и OpenAI. В настройках Condition выберите {{1.message}} и оператор Exists. Это позволит не ломаться вашей интеграции, если в чат с ботом придёт системное сообщение.

Настройка фильтра
Настройка фильтра

Шаг 7. Финальная настройка Todoist

Теперь в поле Context подставим объект {{3.result}} из модуля Open AI.

Финальная настройка Todoist
Финальная настройка Todoist

Можно сохранять, запускать и эксперементировать.

Итоговый результат
Итоговый результат

В качестве модуля таск-трекера можно выбрать любой другой из доступных на Make. Аналогично и с мессенджером — точно доступны Slack, Mattermost и Rocket.Chat.

В схеме выше есть техническое ограничение: бот не может склеивать несколько пересылаемых сообщений и обрабатывать как одну задачу. Но это мы победим в следующих сериях.

Если есть идеи, как улучшить промпт — пишите в комментах.

88
3 комментария

О! супер, попробую

2
Ответить

Хороший хак, уже потестил и думаю пойти дальше, чтобы решение задачи было так чатомгпт и задачка без меня закрывалась

2
Ответить

Прекрасная инструкция и похожая на мою проблема — забрал, себе сделал, коммент написал, лайк поставил

1
Ответить