CRM и операционный центр
CRM на Vue 3 + webedge-db: лиды из всех источников, затем триаж, назначение и follow-up в одном пайплайне.
Dev-storyЗадача
Лиды приходят из очень разных мест — партнёрские API, email-алерты, RSS/sitemap, спарсенные объявления, таблицы — и оказываются разбросаны вместо единого потока.
Что делали
CRM на webedge-db, принимающий лиды через восемь типов источников (официальный API, парсер email-алертов, RSS/Atom/sitemap, HTML-фетч, профиль браузера Playwright, webhooks, импорт CSV/Excel/Sheets, браузерное расширение), с каталогом источников, сохранёнными профилями поиска, инбоксом лидов и здоровьем каждого источника. Вырос из радара объявлений недвижимости в общий инструмент сбора.
Результат
Новые источники добавляются как настраиваемые коннекторы; всё падает в один real-time инбокс со здоровьем каждого источника, а затем drag-and-drop пайплайн со скорингом-триажем лидов, слиянием дублей, массовыми CSV-действиями и авто-напоминаниями follow-up ведёт каждый лид дальше.
Dev-story статья
CRM и операционный центр: как создавался проект
Всё началось с монитора одного портала: браузерный воркер пробивался сквозь антибот-челлендж, парсил один литовский сайт недвижимости и слал новые находки на почту. Беда была в том, что каждый новый источник лидов означал ещё один разовый скрипт и ещё один почтовый ящик. Поэтому проект развернулся внутрь и стал настоящей CRM: одно место, куда стекаются лиды из множества типов источников, получают оценку и обрабатываются, а экран обновляется вживую, а не после передеплоя.
Разделы
05
Модули
05
Стек
Vue 3 + webedge-db
Почему появился проект
Лиды приходят из очень разных мест — партнёрские API, email-алерты, RSS/sitemap, спарсенные объявления, таблицы — и оказываются разбросаны вместо единого потока.
Всё началось с монитора одного портала: браузерный воркер пробивался сквозь антибот-челлендж, парсил один литовский сайт недвижимости и слал новые находки на почту. Беда была в том, что каждый новый источник лидов означал ещё один разовый скрипт и ещё один почтовый ящик. Поэтому проект развернулся внутрь и стал настоящей CRM: одно место, куда стекаются лиды из множества типов источников, получают оценку и обрабатываются, а экран обновляется вживую, а не после передеплоя.
Что было создано
CRM на webedge-db, принимающий лиды через восемь типов источников (официальный API, парсер email-алертов, RSS/Atom/sitemap, HTML-фетч, профиль браузера Playwright, webhooks, импорт CSV/Excel/Sheets, браузерное расширение), с каталогом источников, сохранёнными профилями поиска, инбоксом лидов и здоровьем каждого источника. Вырос из радара объявлений недвижимости в общий инструмент сбора.
Рабочее пространство на Vue 3 + Tailwind поверх реактивного бэкенда, где каталог источников моделирует двенадцать режимов сбора: партнёрские API, парсеры email-оповещений, RSS/sitemap-ленты, краулеры публичного HTML, браузерный профиль Playwright с сохранёнными куками, вебхуки, импорт CSV/Sheets и группы Telegram/Messenger. Сырые события приходят через HTTP-эндпоинты приёма, защищённые секретом, превращаются в лиды без дублей и появляются на drag-drop доске воронки. Общая очередь воркеров запускает подключаемые HTML-, RSS- и API-коннекторы, так что новый источник — это профиль поиска, а не новая кодовая база.
Основные модули и путь пользователя
Каталог источников + приём: двенадцать смоделированных режимов, питающих два HTTP-эндпоинта (входящая почта, общий ingest) под общим секретом, плюс очередь воркеров с подключаемыми коннекторами публичного HTML, RSS/Atom и JSON-API
Drag-drop доска воронки с настраиваемыми стадиями, статистикой нагрузки, выдвижной панелью контактов, массовыми действиями и импортом/экспортом CSV
Умная оценка триажа лидов вместе с дедупликацией по точному и кросс-источниковому отпечатку, слиянием дублей лидов и нормализацией записи телефонов и email
Движок фоллоу-апов: назначение владельца, журнал активности и email-напоминания, намеренно ограниченные только недавно наступившими задачами, чтобы ящик оставался осмысленным
Automation Studio: конструктор рецептов (триггеры lead_created/email_received/manual, фильтры по источнику и цене, действия — задать приоритет, назначить владельца, создать задачу, поставить задание в очередь), логирующий результат, длительность и ошибки каждого запуска
Архитектура и технологические решения
Сделано на Vue 3, webedge-db, Integrations.
SPA на Vue 3 + Tailwind, подписанная на реактивный бэкенд, чьи TypeScript-мутации и запросы отвечают за дедупликацию, историю цен и upsert-ы; вход работает через Better Auth OTP под контекстом бэкенда, а свободный текст из чат-источников разбирает Claude-экстрактор.
Результат и выводы
Новые источники добавляются как настраиваемые коннекторы; всё падает в один real-time инбокс со здоровьем каждого источника, а затем drag-and-drop пайплайн со скорингом-триажем лидов, слиянием дублей, массовыми CSV-действиями и авто-напоминаниями follow-up ведёт каждый лид дальше.
То, что было email-радаром одного портала, теперь рабочее пространство сбора из многих источников, где новый источник лидов — это сохранённый профиль поиска, а не новый скрипт; честно говоря, всё ещё инструмент одной команды, но полноценная CRM, а не скрапер с рассылкой.
Связанные статьи
Читать дальше
Связанные истории проектов
Эти проекты близки по техническим или продуктовым решениям и показывают, как тот же принцип работает в другом контексте.
Dev-storyCMS
Динамический headless-CMS на webedge-db — типы контента, медиа, роли и публичный read-API, питающий наши сайты и статьи.
Dev-storyПлатформа календарных бронирований
Бронирование на Vue 3 — слоты, записи, письма и Meet-видеозвонки в один клик.
Dev-storyFableVita
FableVita — AI-фитнес-тренер с лигами, квестами и защищённой от фрода экономикой наград.
Есть похожая идея?
Обсудить проект