untra.dev
Кейс 06: автоматизацияРаботает, открытый код

tg-notion-sync, перенос финансов из Telegram в Notion

Личный проект · Node.js-сервис

Сценарий синхронизации финансовых уведомлений из Telegram в Notion

Задача

Переносить банковские уведомления из личного Telegram-чата в финансовый трекер Notion без ручного копирования.

Моя роль

Единственный разработчик и сопровождающий небольшого Node.js-сервиса автоматизации.

Реализованное решение

MTProto-сервис разбирает транзакции, сопоставляет счета и создаёт структурированные записи в Notion, оставляя неоднозначные категории для ручной проверки.

Банк присылает уведомления об операциях в Telegram, а вручную переносить каждую в Notion — как раз то дело, которое я постоянно откладывал. Обычный Bot API тут не подходит: он не может читать сообщения другого бота в чате, если мой бот не добавлен туда с админ-правами, а для личных банковских уведомлений это не устроить. Поэтому сервис заходит как обычный пользовательский аккаунт Telegram через MTProto, тот же протокол, что у официального приложения, и слушает нужный чат в реальном времени.

  • Читает личный чат через MTProto (GramJS), потому что Bot API не даёт доступа к сообщениям другого бота там
  • Разбирает банковские уведомления регулярными выражениями: сумма, валюта, дата, карта, остаток, место операции
  • Сам создаёт запись в Notion, сопоставляя карту со счётом
  • Не угадывает категорию траты автоматически — это заполняется вручную, угадывание было бы недостоверным

Технологии

Node.jsMTProto (GramJS)Notion APIDockerFly.io

Подходящие услуги