Моя CRM — это папка с Markdown-файлами. Сегодня я выложил её код в open source

Евгений Урядов

Моя CRM — это папка с Markdown-файлами. Сегодня я выложил её код в open source

Моя CRM весит пару гигабайт, лежит в папке на моём ноутбуке и состоит из обычных Markdown-файлов. Нет базы данных. Нет веб-интерфейса вендора. Нет экспорта «в CSV, если повезёт». Сегодня я выложил её движок в открытый доступ: github.com/eudigitaldotru/crm.automata.sale. Расскажу, зачем я вообще построил такую штуку и почему решил раздать её бесплатно.

Меня достали SaaS-CRM

Я интегратор 1С-Битрикс, работаю один с 2012 года. Мои клиенты — небольшие B2B-сайты: кровля, сэндвич-панели, медицина. Контур общения выглядит типично: Telegram с десятка чатов, почта в трёх ящиках, мессенджер MAX, звонки. Сделка живёт везде сразу и нигде целиком.

Я пробовал вести это в табличке. Потом в SaaS-CRM. Оба раза упирался в одно и то же: чтобы CRM отражала реальность, данные в неё надо вносить руками. Руками — значит, не вносится. А когда бизнес-контур целиком на русском и наполовину в мессенджерах, готовые CRM начинают странно: поля не те, экспорт кривой, подписка растёт.

И тогда я сделал ход, который в 2012 показался бы странным, а в 2026 оказался самым очевидным: перестал думать о CRM как о программе. CRM — это данные. Значит, данные должны лежать так, чтобы их пережевал любой инструмент, включая ИИ.

CRM, которая живёт в Markdown

Вся моя клиентская база — папка 10_Clients/, в ней по карточке на клиента в Markdown: контакты, договоры, история обслуживания. Счета — 30_Invoices/, тоже файлы. Переписки — 25_Chats/. Задачи, лиды, тикеты — то же самое.

Что это даёт на практике:

  • Данные переживают всё. Файлы читаются через десять лет любым редактором. Я могу найти всех клиентов с просроченным актом одной командой grep. Каждое изменение агента видно как diff в git.
  • Нет вендор-лока. Подписка кончилась, сервис закрылся, цены выросли — папка осталась. Открывается даже в Obsidian: CRM превращается в базу знаний с графиками и связями.
  • ИИ может работать с этим напрямую. И это главное.

ИИ-агенты — операторы CRM

Вот ради чего всё затевалось. Файлы и скрипты — среда, в которой кодинг-агент (ZCode, Claude Code и совместимые CLI) чувствует себя как дома. Мне не нужно встраивать «ИИ-фичи» в интерфейс: агент просто читает и пишет те же файлы, что и я.

Утром я говорю: «Разбери инбокс, по должникам выстави счета, акт за сентябрь напомни». Агент читает карточки, гоняет скрипты, создаёт файлы счетов, прикладывает PDF и отчитывается списком. Я проверяю diff и говорю «ок». Дальше отправка уходит по настроенным каналам.

Важно, что это не фантазия про «скоро». Этот контур ведёт мой реальный бизнес каждый день: заявки из Telegram становятся лидами сами, счета уходят сами, я разбираю только то, что требует человека.

Один инбокс: Telegram, MAX и почта

Коммуникационный контур собран так: маленький шлюз на Telethon заводит в CRM личный Telegram-аккаунт (личный, не бот — видны все чаты, включая те, где боты запрещены). Почта забирается по IMAP из нескольких ящиков. MAX подключается ботом.

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

Деньги: счета, акты, автосверка

Про деньги в CRM я сужу по одному вопросу: сколько действий нужно, чтобы выставить счёт. Здесь — одна команда или одна фраза агенту.

Генератор делает PDF счёта и акта из шаблонов. Интеграция с open-API Точки создаёт счета, следит за статусом оплаты и доставляет документы клиенту. Сверка платежей по выписке происходит сама, каждое утро. Просроченные счета подсвечиваются до того, как становятся проблемой.

Сайты под присмотром

Раз я интегратор, у меня живут чужие сайты, за которые отвечаю. Поэтому в CRM встроен мониторинг: uptime, сроки SSL-сертификатов и доменов, PageSpeed, GEO-аудиты (проверка, что сайт виден не только Google, но и нейросетям, которые теперь отвечают клиентам на вопрос «где купить кровлю»).

Домен клиента истекает через две недели — владелец получает письмо и тикет сам, без моего участия.

Безопасность по умолчанию

Кусок, которым я горжусь отдельно: модуль sec_guard. Каждый исходящий запрос движка проходит через него: только http/https, DNS-резолв с запретом private-адресов и облачных metadata-эндпоинтов, ревалидация каждого прыжка редиректа, файловые операции заперты внутри хранилища.

Это не теория: модуль родился из реального аудита, когда я прогнал свой код через статический анализатор и закрыл всё, что он нашёл. В репозитории тот же подход: ноль жёстко прописанных секретов, всё через переменные окружения, данные в git не попадают.

Если хочется сначала посмотреть, как это выглядит вживую, — страницка Automata CRM с демонстрацией пульта, там же ссылка на репозиторий.

Что внутри и как попробовать

В открытом репозитории — 190 файлов: движок на Python и FastAPI, дашборд на Vite, Telegram-шлюз, миграции, шаблоны документов с плейсхолдерами. Лицензия MIT. Есть README на русском и английском, install-скрипт и обновление одной командой, данные при обновлении не трогаются.

git clone https://github.com/eudigitaldotru/crm.automata.sale.git
cd crm.automata.sale
./install.sh && ./start.sh

Дальше — README: единый инбокс, счета, мониторинг, агенты. Интерфейс дашборда пока на русском, английский в дорожной карте.

Зачем отдавать бесплатно

Честный ответ: потому что мне это выгодно. Я зарабатываю на интеграции и сопровождении, а код, который проверяют чужие глаза, становится лучше моего. Каждая звезда на GitHub — сигнал, что такие системы нужны. Каждая issue — бесплатный аудит.

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

Звезда на GitHub — лучший способ сказать спасибо.


📞 +7 (906) 311-77-69 · ✉ hello@automata.sale · 💬 Telegram: @automatasale · 🌐 automata.sale

ИП Урядов Евгений Евгеньевич · ИНН 645112058391 · ОГРНИП 312645301900058 Работаем по России, Беларуси и Казахстану


Automata может помочь:

Частые вопросы

Кому подходит Automata CRM?

Сольным предпринимателям и микрокомандам до 10-15 человек, у которых клиентский контур уже не влезает в мессенджер, но тянет локальную установку: один компьютер или ноутбук, три команды в терминале. Если у вас сотни менеджеров и колл-центр, вам в SaaS.

Чем это отличается от Битрикс24 или amoCRM?

Тем, где живут данные. У SaaS они на сервере вендора, экспорт всегда ограничен, а доступ заканчивается вместе с подпиской. Здесь вся CRM — папка Markdown-файлов на вашем диске: клиенты, счета, история переписок. Её читает grep, версонирует git, открывает Obsidian, и она переживёт любого вендора, включая меня.

Нужно ли уметь программировать?

Для базового запуска достаточно трёх команд из README. Для полной силы нужны ИИ-агенты: CLI-инструменты вроде ZCode или Claude Code, которые работают с кодом и файлами. Чем комфортнее вам терминал, тем больше отдача, агенты берут рутину на себя.

Это точно бесплатно?

Да, лицензия MIT: используйте, меняйте, встраивайте. Без подписки, платных модулей и телеметрии. Ссылка на репозиторий в статье.

Где хранятся мои данные и кто их видит?

На вашем компьютере. Движок по умолчанию слушает localhost, исходящие запросы проходят через модуль sec_guard с защитой от SSRF и path-traversal. Ни один байт клиентов никуда не уходит, пока вы сами не настроите интеграции.

📞 +7 (906) 311-77-69 · ✉ hello@automata.sale · 💬 Telegram: @automatasale · 🌐 automata.sale

ИП Урядов Евгений Евгеньевич · ИНН 645112058391 · ОГРНИП 312645301900058
Работаем по России, Беларуси и Казахстану