Перейти к содержимому

История успеха · B2B SaaS, входящие заявки

LeadPendingДвое сделали сервис заявок за 24 часа: ответ на заявку за 10 минут, а в среднем по рынку 40+ часов

LeadPending собирает заявки со всех сайтов в одну очередь, присылает их владельцу в Telegram, пишет черновик ответа на языке клиента и показывает, как читают отправленное КП. Заявка получает ответ за 10 минут, когда в среднем по рынку это больше 40 часов, больше 90% заявок получают ответ в первый же час, и через сервис уже прошло 12 000 заявок. Архитектуру, безопасность и работу с персональными данными построил я, а в команде всего два человека. Сервис заработал через день после первого коммита, с проверками безопасности и покрытием тестами, до которых большинство команд доходит за месяцы.

Клиент
LeadPending
Продукт
Очередь заявок, AI-ответы, документы с аналитикой
Обработано заявок
12 000
Моя роль
CTO по подписке
Команда
2 человека
Интерфейс
Английский и русский
LeadPending: продукт

В цифрах

до ответа на заявку, когда в среднем по рынку это 40+ часов
10 мин
от первого коммита до продакшена, когда обычно уходят недели
24 ч
заявок получают ответ в первый же час
90%+
заявок обработано, каждая принята ровно один раз
12 000
работающих сайтов перевели формы с Telegram на LeadPending за 9 дней
13
автотестов, и двое выпускают релизы без отдела QA
2 100+

Продукт

Одна очередь для всех сайтов, ответ из одной строки, уведомление в Telegram и отчёт о том, как читали отправленное КП. Экраны с leadpending.com, данные на них демонстрационные.

  • Очередь заявок со всех сайтов и сколько ждёт каждый клиент
  • Указание для AI в одну строку и черновик ответа, который по нему написан
  • Отправленное КП: визиты людей, время чтения по страницам и отдельная ссылка для каждого получателя
01

С чего начинали

Контактные формы сайтов слали каждую заявку прямо в чат Telegram. Никто не видел, кто ещё ждёт ответа, а чтобы ответить, текст копировали между Telegram, AI-чатом и почтой. По КП, отправленному ссылкой на PDF, нельзя было понять, открыли его или нет.

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

02

Что мы сделали

  1. Один сервис на Go и PostgreSQL, ничего лишнего

    Я спроектировал один сервис на Go для API, почты, Telegram и аналитики документов, два приложения на React (кабинет клиента и админку), сайт на Next.js, отдельный вьювер документов и PostgreSQL. Redis и брокера сообщений нет: повторы и идемпотентность живут в базе. Проект вырос из моей собственной заготовки, поэтому аккаунты, организации, passkeys и админка работали с первого дня. Чем меньше частей, тем меньше приходится хостить, мониторить и оплачивать.

  2. 12 000 заявок, каждая пришла ровно один раз, без потерь и дублей

    Сайт отправляет заявку одним вызовом со своего сервера или через npm-пакет leadpending-web. Повторный вызов с тем же ключом возвращает первую заявку, и повторная отправка формы не создаёт дубль. Пакет передаёт путь посетителя по сайту, UTM-метки и устройство, а сервер оценивает каждую заявку на спам и всё равно её сохраняет.

  3. Ответ за 10 минут с телефона, когда рынок отвечает за 40+ часов

    Каждая новая заявка приходит владельцу в Telegram с контактами и текстом целиком. Он отвечает одной строкой, голосом или текстом, а модель пишет черновик на языке клиента и с подписью сайта. Заявка получает ответ за 10 минут, когда в среднем по рынку на это уходит больше 40 часов, и больше 90% заявок получают ответ в первый же час. Send на каждом ответе нажимает человек, а текст заявки попадает к модели как содержание и никогда как инструкция.

  4. КП, по которому видно, кто его читал, за два дня

    Documents отдаёт PDF по персональной или публичной ссылке или встроенным в сайт клиента и показывает, кто открыл, откуда, с какого устройства и сколько читал каждую страницу. Превью ссылок, почтовые сканеры, облачные сети и headless-браузеры считаются роботами, собственные просмотры владельца не учитываются. От утверждённого ТЗ до продакшена эта функция дошла за два дня.

  5. Персональные данные под жёсткими правилами с первой версии ТЗ

    Каждая строка в базе принадлежит одной организации, и каждый запрос это проверяет. Вьювер документов не ставит cookies и ничего не грузит со сторонних сайтов, а сырые события просмотров хранятся 180 дней. Удаление сайта или аккаунта открывает 30-дневное окно восстановления, после него данные удаляются окончательно, а подключённый сайт может стереть заявку по своему ID через API. На заявках модели не обучаются, и политика конфиденциальности называет каждого провайдера, которому уходят данные.

  6. Безопасность проверяется на каждом релизе без отдела безопасности

    Код охраняют больше 2 100 автотестов, серверные идут на настоящем PostgreSQL. API-ключи и инвайт-токены хранятся только как хэши, сессии лежат в базе как случайные токены, в админку входят только по passkey, и каждый её запрос подписан. Каждый релиз проходит поиск секретов по всей истории git и проверку уязвимостей Go и npm; образы несут SBOM и provenance, контейнеры работают не от root, а релиз, не прошедший проверки в продакшене, откатывается сам. Такую дисциплину релизов обычно держат компании намного крупнее.

  7. Продакшен за 24 часа, 13 сайтов за девять дней

    На следующий день после первого коммита продукт уже работал в продакшене, а такого темпа большинство штатных команд не достигает. Через девять дней после этого коммита 13 работающих сайтов перевели контактные формы с Telegram на LeadPending, каждый со своим API-ключом, и настоящую заявку проверили от формы до очереди. Этот сайт, oleg.is, тоже отправляет через LeadPending свою контактную форму и мои КП.

03

Результат

Команда из двух человек вывела LeadPending в продакшен через день после первого коммита, а ещё через восемь дней через него шли контактные формы 13 сайтов. С тех пор он обработал 12 000 заявок: ответ приходит за 10 минут, когда в среднем по рынку это больше 40 часов, а больше 90% заявок получают его в первый же час, и всё это без отдельных людей на эксплуатацию, QA и безопасность.

РезультатДоПосле
Ответ на заявкуВ среднем по рынку 40+ часов10 минут, 90%+ в первый же час
Заявки с сайтовСразу в чат TelegramОдна очередь, у каждой заявки таймер ожидания
ОтветВручную, копированием между чатом, AI и почтойЧерновик из одной строки, на языке клиента
КПСсылка на PDF, неизвестно, прочитали лиОткрытия, страницы и время чтения, без роботов

Стек

  • Go
  • PostgreSQL
  • React
  • Next.js
  • pdf.js
  • OpenAI
  • AWS SES
  • Telegram Bot API
  • Docker
  • GitLab CI
  • Sentry
  • Cloudflare
oleg.isОтправляется по запросу

Полный кейс · PDF

LeadPending

Двое сделали сервис заявок за 24 часа: ответ на заявку за 10 минут, а в среднем по рынку 40+ часов

  1. 01Архитектура: один сервис на Go, три веб-приложения и вьювер документов
  2. 02Персональные данные: что хранится, сколько и как удаляется
  3. 03Как заявка принимается ровно один раз: API-ключи, идемпотентность, оценка спама
  4. 04Путь ответа: Telegram, голос, черновик и Send, который нажимает человек
  5. 05Documents: как в аналитике чтения отличить людей от роботов
  6. 06Конвейер релиза: проверки безопасности, приёмка в продакшене, автоматический откат
Подготовил Олег СотниковPDF

Полный кейс LeadPending

Открытая часть истории на этом заканчивается. Остальное в PDF: архитектура до и после, план переезда, как команда работает с AI-агентами, сколько всё это стоит в эксплуатации и откуда взялась экономия.

Каждый кейс я отправляю сам, а ваш email нужен только для этого.

Другие истории

Все истории
01AulaЖКХ · КазахстанCTO по подпискеТри релиза в день вместо одного в четыре месяца: 3 человека делают работу 16, а счёт за облако меньше на 70%Aula — одно приложение для жителей многоквартирных домов и 109 управляющих компаний, в нём 247 000 аккаунтов. Как CTO по подписке я перестроил то, как продукт делают и на чём он работает: команда разработки и тестирования сократилась с 16 человек до 3, серверов стало 3 вместо 18, счёт за облако упал на 70%, а ошибок в мобильном приложении стало на 97% меньше. Задача теперь доходит до продакшена за день, а не за две-три недели, и продукт выходит три раза в день при аптайме 99,99%. Такого темпа большинство штатных команд не достигает никогда.Читать историю02МетизПромСервисМеталлообработка и изготовление деталей · КазахстанCTO по подпискеЗавод экономит $300 000+ в год и тратит на IT вдвое меньше: подрядчиков заменили два инженера, которых я нанялМетизПромСервис изготавливает детали по чертежам заказчиков в Казахстане. Когда я пришёл, IT, учёт, бухгалтерию, производственные системы и управление токарными станками вели подрядчики, а за внешний софт и лицензии компания платила. Я построил собственную инфраструктуру, нанял и обучил двух инженеров, и мы заменили весь платный производственный софт своими ERP и CRM, причём ERP заработала за 3 месяца. Теперь компания экономит больше $300 000 в год на софте, тратит на IT вместе с зарплатами команды больше чем на 50% меньше, чем платила подрядчикам, а её станки с ЧПУ простаивают на 23% меньше, и внеплановых ремонтов стало вдвое меньше.Читать историю03CV RocketПоиск работы и AI-резюме · США и весь мирCTO по подпискеОдин инженер и CTO по подписке довели CV Rocket с нуля до продаж за пять недель и до 1 000+ клиентовCV Rocket автоматически пишет резюме под каждую вакансию, на одно уходит от 15 до 50 минут, и собирает рынок вакансий США и мира в одном месте: больше 1,5 млн вакансий с 89 000+ сайтов. Архитектура, облачные сервисы и интеграция с платёжными сервисами на мне, а сам продукт мы вдвоём с инженером сделали за четыре недели. Обычно на такой запуск у полноценной команды уходят кварталы. Продажи пошли с пятой недели, и сейчас у CV Rocket больше 1 000 клиентов.Читать историю

Хотите, чтобы следующая история была про вашу компанию?

За 30 минут созвона выберем первую задачу, которую стоит отдать AI, и прикинем, сколько она сэкономит.

Обсудить мою задачуЗвонок бесплатный. На связи я сам.