Перейти к основному содержимому
    Все кейсы
    Свой продукт · Личные финансы

    Текстовое сообщение становится размеченной строкой в Notion

    Отправьте «spent $45 on lunch» или «потратил 500 на обед» на английском или русском и укажите, для кого это и в какой валюте: размеченная строка появится в Notion за пять шагов.

    22Категорий
    RU/ENЯзык ввода
    5Шагов: сообщение → сохранено
    1 dayВремя сборки

    Что работает автоматически

    01 / PARSE

    Парсер сообщений

    Регулярки и ключевые слова превращают сообщение вроде «spent $45 on lunch» в сумму, тип, категорию, дату и заметки без обращения к модели. 22 категории определяются по ключевым словам по порядку, а без совпадения трата попадает в Other.

    02 / PREVIEW

    Подтверждение перед сохранением

    Бот отвечает кнопками с тем, для кого записать трату, затем выбором валюты, а после – полным предпросмотром разобранного. Ничего не сохраняется, пока не нажат «Confirm».

    03 / NOTION

    Типизированная строка в Notion

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

    Собрано с Claude Code за 1 день

    Было

    Запись покупки означала открыть приложение и выбрать из меню.

    Стало

    Обычное сообщение становится размеченной строкой в Notion после одного тапа «Confirm».

    Как устроено

    01Контекст

    Учёт расходов вручную означает открывать приложение каждый раз

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

    02Как работает

    Сообщение, три касания, строка в Notion

    Сообщение вроде «spent $45 on lunch» или «потратил 500 на обед» – это всё, что нужно напечатать. В ответ бот показывает кнопки с тем, для кого записать трату, затем выбор валюты между USD и EUR, а после – предпросмотр всего, что он распознал: сумму, тип, категорию, дату и заметки. За этим ответом tools/parse_transaction.py сверяет сообщение с 22 категориями по ключевым словам по порядку, пока не найдётся совпадение, а расход это или доход решает по словам вроде «spent» и «paid» против «received» и «salary».

    03Ограничения

    Разбор по правилам, белый список, два способа запуска

    Определение категории – это правила по ключевым словам, а не вызов модели, поэтому сообщение без совпадения попадает в Other вместо умной догадки, а валюта ограничена USD и EUR. Бот отвечает только тем ID пользователей Telegram, что внесены в белый список, а person и currency повторно проверяет на сервере, хотя они приходят с кнопок. Один и тот же код работает двумя способами: main.py – локальный процесс, и modal_app.py – деплой в облако Modal, где credentials хранятся как секреты Modal, а не в локальном .env.

    ANM SOLUTIONS / СВЯЗАТЬСЯ

    Хотите похожее?

    Первый 30-минутный звонок бесплатный. Мы описываем объём, вы решаете.

    []/Ещё кейсы