tg-notion-sync, перенос финансов из Telegram в Notion
Личный проект · Node.js-сервис

Задача
Переносить банковские уведомления из личного Telegram-чата в финансовый трекер Notion без ручного копирования.
Моя роль
Единственный разработчик и сопровождающий небольшого Node.js-сервиса автоматизации.
Реализованное решение
MTProto-сервис разбирает транзакции, сопоставляет счета и создаёт структурированные записи в Notion, оставляя неоднозначные категории для ручной проверки.
Банк присылает уведомления об операциях в Telegram, а вручную переносить каждую в Notion — как раз то дело, которое я постоянно откладывал. Обычный Bot API тут не подходит: он не может читать сообщения другого бота в чате, если мой бот не добавлен туда с админ-правами, а для личных банковских уведомлений это не устроить. Поэтому сервис заходит как обычный пользовательский аккаунт Telegram через MTProto, тот же протокол, что у официального приложения, и слушает нужный чат в реальном времени.
- Читает личный чат через MTProto (GramJS), потому что Bot API не даёт доступа к сообщениям другого бота там
- Разбирает банковские уведомления регулярными выражениями: сумма, валюта, дата, карта, остаток, место операции
- Сам создаёт запись в Notion, сопоставляя карту со счётом
- Не угадывает категорию траты автоматически — это заполняется вручную, угадывание было бы недостоверным