/* ─── Helpers ─────────────────────────────────────────────────────────────── */ const EditorSlot = ({ path, type, required = false, hideable = false, as: As = "div", className = "", children, ...rest }) => ( {children} ); const Static = ({ as: As = "div", className = "", children, ...rest }) => ( {children} ); const Placeholder = ({ label, kind = "mockup", className = "" }) => (
{label}
); const IMAGE_ASSETS = { hero: { url: "https://images.unsplash.com/photo-1504868584819-f8e8b4b6d7e3?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHxzYWxlcyUyMGRhc2hib2FyZCUyMGxhcHRvcHxlbnwwfDB8fHwxNzc5MzA3MzQ0fDA&ixlib=rb-4.1.0&w=1600&auto=format&fit=crop&q=80", thumbUrl: "https://images.unsplash.com/photo-1504868584819-f8e8b4b6d7e3?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHxzYWxlcyUyMGRhc2hib2FyZCUyMGxhcHRvcHxlbnwwfDB8fHwxNzc5MzA3MzQ0fDA&ixlib=rb-4.1.0&w=400&auto=format&fit=crop&q=70", alt: "turned on black and grey laptop computer", source: "unsplash", photographer: "Lukas Blazek", photographerUrl: "https://unsplash.com/@goumbik", queryUsed: "sales dashboard laptop", width: 6144, height: 4069, }, featureInbox: { url: "https://images.unsplash.com/photo-1576267423429-569309b31e84?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHx0ZWFtJTIwc2FsZXMlMjBsYXB0b3B8ZW58MHwwfHx8MTc3OTMwNzM0NXww&ixlib=rb-4.1.0&w=1600&auto=format&fit=crop&q=80", thumbUrl: "https://images.unsplash.com/photo-1576267423429-569309b31e84?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHx0ZWFtJTIwc2FsZXMlMjBsYXB0b3B8ZW58MHwwfHx8MTc3OTMwNzM0NXww&ixlib=rb-4.1.0&w=400&auto=format&fit=crop&q=70", alt: "woman in maroon sweater using laptop", source: "unsplash", photographer: "Windows", photographerUrl: "https://unsplash.com/@windows", queryUsed: "team sales laptop", width: 7952, height: 5304, }, featureFollowup: { url: "https://images.unsplash.com/photo-1542744094-24638eff58bb?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHx3b3JrZmxvdyUyMGF1dG9tYXRpb258ZW58MHwwfHx8MTc3OTMwNzM0Nnww&ixlib=rb-4.1.0&w=1600&auto=format&fit=crop&q=80", thumbUrl: "https://images.unsplash.com/photo-1542744094-24638eff58bb?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHx3b3JrZmxvdyUyMGF1dG9tYXRpb258ZW58MHwwfHx8MTc3OTMwNzM0Nnww&ixlib=rb-4.1.0&w=400&auto=format&fit=crop&q=70", alt: "man writing on white board", source: "unsplash", photographer: "Campaign Creators", photographerUrl: "https://unsplash.com/@campaign_creators", queryUsed: "workflow automation", width: 4353, height: 2901, }, featurePipeline: { url: "https://images.unsplash.com/photo-1608222351212-18fe0ec7b13b?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHxidXNpbmVzcyUyMGFuYWx5dGljcyUyMGRhc2hib2FyZHxlbnwwfDB8fHwxNzc5MzA3MzQ2fDA&ixlib=rb-4.1.0&w=1600&auto=format&fit=crop&q=80", thumbUrl: "https://images.unsplash.com/photo-1608222351212-18fe0ec7b13b?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHxidXNpbmVzcyUyMGFuYWx5dGljcyUyMGRhc2hib2FyZHxlbnwwfDB8fHgxNzc5MzA3MzQ2fDA&ixlib=rb-4.1.0&w=400&auto=format&fit=crop&q=70", alt: "black and silver laptop computer", source: "unsplash", photographer: "path digital", photographerUrl: "https://unsplash.com/@pathdigital", queryUsed: "business analytics dashboard", width: 3370, height: 2527, }, featureOnboarding: { url: "https://images.unsplash.com/photo-1758520144427-ddb02ac74e9d?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHxvZmZpY2UlMjBvbmJvYXJkaW5nfGVufDB8MHx8fDE3NzkzMDczNDd8MA&ixlib=rb-4.1.0&w=1600&auto=format&fit=crop&q=80", thumbUrl: "https://images.unsplash.com/photo-1758520144427-ddb02ac74e9d?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHxvZmZpY2UlMjBvbmJvYXJkaW5nfGVufDB8MHx8fDE3NzkzMDczNDd8MA&ixlib=rb-4.1.0&w=400&auto=format&fit=crop&q=70", alt: "Two women shaking hands across a desk", source: "unsplash", photographer: "Vitaly Gariev", photographerUrl: "https://unsplash.com/@silverkblack", queryUsed: "office onboarding", width: 3840, height: 2160, }, avatar1: { url: "https://images.unsplash.com/photo-1735424080701-d00f5fda5aa6?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHxwcm9mZXNzaW9uYWwlMjB3b21hbiUyMHBvcnRyYWl0fGVufDB8Mnx8fDE3NzkzMDczNDd8MA&ixlib=rb-4.1.0&w=1600&auto=format&fit=crop&q=80", alt: "A woman leaning on a railing looking at her cell phone", source: "unsplash", photographer: "Alex Sheldon", photographerUrl: "https://unsplash.com/@slavewire", queryUsed: "professional woman portrait", }, avatar2: { url: "https://images.unsplash.com/photo-1620837759552-c4347eaa30e8?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHxwcm9mZXNzaW9uYWwlMjBtYW4lMjBwb3J0cmFpdHxlbnwwfDJ8fHwxNzc5MzA3MzQ3fDA&ixlib=rb-4.1.0&w=1600&auto=format&fit=crop&q=80", alt: "woman in purple jacket and brown pants standing on rocky road during daytime", source: "unsplash", photographer: "Bogdan Costin", photographerUrl: "https://unsplash.com/@bcdphotos", queryUsed: "professional man portrait", }, avatar3: { url: "https://images.unsplash.com/photo-1676281161960-c6d1d369b755?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHxidXNpbmVzcyUyMHdvbWFuJTIwcG9ydHJhaXR8ZW58MHwyfHx8MTc3OTMwNzM0OHww&ixlib=rb-4.1.0&w=1600&auto=format&fit=crop&q=80", alt: "a woman standing on the side of a road at night", source: "unsplash", photographer: "Senya Mitin", photographerUrl: "https://unsplash.com/@mediahope", queryUsed: "business woman portrait", }, avatar4: { url: "https://images.unsplash.com/photo-1718209881007-c0ecdfc00f9d?ixid=M3w5NTY3MjB8MHwxfHNlYXJjaHwxfHxidXNpbmVzcyUyMG1hbiUyMHBvcnRyYWl0fGVufDB8Mnx8fDE3NzkzMDczNDh8MA&ixlib=rb-4.1.0&w=1600&auto=format&fit=crop&q=80", alt: "a man in a suit standing with his arms crossed", source: "unsplash", photographer: "Filip Rankovic Grobgaard", photographerUrl: "https://unsplash.com/@filipgrobgaard", queryUsed: "business man portrait", }, }; const StockImage = ({ image, alt, className = "", loading = "lazy" }) => ( {alt ); /* ─── Inline SVG Icons (Lucide-style, 24×24) ─────────────────────────────── */ const IconInbox = () => ( ); const IconZap = () => ( ); const IconEye = () => ( ); const IconRocket = () => ( ); const IconCheck = () => ( ); const IconQuote = () => ( ); const IconChevronDown = () => ( ); const IconShield = () => ( ); const IconClock = () => ( ); const IconServer = () => ( ); const IconUsers = () => ( ); /* ─── Nav (chrome, not in LP_SCHEMA) ────────────────────────────────────── */ function Nav({ showNav }) { if (!showNav) return null; return (
Записаться на демо
); } /* ─── Footer (chrome, not in LP_SCHEMA) ─────────────────────────────────── */ function Footer() { return ( ); } /* ─── 01 Hero ─────────────────────────────────────────────────────────────── */ function HeroSection() { const badges = [ { icon: , label: "Данные в России" }, { icon: , label: "152-ФЗ" }, { icon: , label: "Ответ за 2 часа" }, { icon: , label: "Онбординг 3 дня" }, ]; return (
Для команд продаж от 3 человек Заявки теряются. Follow-up не происходит. Исправим за 3 дня. Ни одна заявка не потеряется. Каждый лид получит follow-up в нужный момент — автоматически. Покажем, как это работает в вашем отделе продаж, за 30 минут в Zoom.
Записаться на демо Посмотреть, как это работает
30 минут. Без презентаций — только ваш процесс продаж.
{badges.map((b, i) => ( {b.label} ))}
); } /* ─── 02 Trust Logos ─────────────────────────────────────────────────────── */ function TrustLogosSection() { const logos = [1, 2, 3, 4, 5, 6]; return (
Нам доверяют команды продаж
{logos.map((n) => (
))}
{"{{N}}+ компаний автоматизируют обработку заявок и follow-up"}
); } /* ─── 03 Problem ──────────────────────────────────────────────────────────── */ function ProblemSection() { const problems = [ { icon: , quote: "«Менеджер не перезвонил лиду. Тот написал конкуренту. Узнал об этом через неделю случайно.»", }, { icon: , quote: "«Заявки приходят в WhatsApp, на почту и через сайт. Нигде нет единой картины — кто уже в работе, кто забыт.»", }, { icon: , quote: "«Follow-up делается, только если менеджер не забыл. Чаще — забывает. Клиент остывает.»", }, { icon: , quote: "«Чтобы понять, где сейчас воронка — нужно или звонить менеджеру, или лезть в таблицу. Ни то ни другое не даёт актуальной картины.»", }, ]; return (
Узнаёте себя?
{problems.map((p, i) => (
{p.quote}
))}
Если хотя бы один сценарий знаком — покажем, как это исправить. 30 минут в Zoom. Записаться на демо
); } /* ─── 04 Features ────────────────────────────────────────────────────────── */ function FeaturesSection() { const features = [ { icon: , headline: "Все заявки — в одном месте", body: "Из WhatsApp, Telegram, сайта и почты. Ни одна не пропадёт между каналами. Менеджер видит всё с одного экрана.", media: "Скриншот: единый inbox со сделками из разных каналов", image: IMAGE_ASSETS.featureInbox, }, { icon: , headline: "Follow-up происходит без участия менеджера", body: "Клиент получает касание в нужный момент — система отправляет напоминание или сообщение автоматически, даже если менеджер отвлёкся.", media: "Скриншот: автоматический follow-up timeline", image: IMAGE_ASSETS.featureFollowup, }, { icon: , headline: "Воронка в реальном времени", body: "Вы видите, на каком этапе каждая сделка — без звонков менеджерам и выгрузок в Excel.", media: "Скриншот: воронка продаж с метриками по этапам", image: IMAGE_ASSETS.featurePipeline, }, { icon: , headline: "Первый процесс — через 3 дня", body: "Настраиваем под ваш отдел продаж, помогаем с онбордингом команды. Не нужен выделенный IT-специалист.", media: "Скриншот: онбординг и настройка сценариев", image: IMAGE_ASSETS.featureOnboarding, }, ]; return (
Ключевые возможности Что конкретно меняется
{features.map((f, i) => (
{f.headline} {f.body}
))}
); } /* ─── 05 Process ─────────────────────────────────────────────────────────── */ function ProcessSection() { const steps = [ { label: "Шаг 1", title: "Оставляете заявку", body: "Заполняете форму. Наш менеджер звонит в течение 2 рабочих часов — уточняет задачу и договаривается о времени демо.", time: "2 часа", }, { label: "Шаг 2", title: "Настраиваем первый сценарий", body: "Вместе определяем ключевой процесс: как приходят заявки, как должен работать follow-up. Настраиваем, тестируем, запускаем.", time: "3 дня", }, { label: "Шаг 3", title: "Команда работает в системе", body: "Менеджеры ведут сделки. Follow-up происходит автоматически. Вы видите воронку в реальном времени.", time: "с 1-го дня", }, { label: "Шаг 4", title: "Мы рядом при запуске", body: "Отвечаем на вопросы, помогаем доработать сценарии, адаптируем систему под изменения в процессе продаж.", time: "постоянно", }, ]; return (
Как это работает Как это работает
    {steps.map((step, i) => (
  1. {step.label} {step.time}
    {step.title} {step.body}
  2. ))}
); } /* ─── 06 Case Studies ────────────────────────────────────────────────────── */ function CaseStudiesSection() { const cases = [ { niche_tag: "Маркетинговое агентство · 6 менеджеров", problem: "Заявки приходили из трёх каналов — сайт, WhatsApp и почта. Часть терялась до первого контакта. Follow-up делался вручную: помнил — позвонил, не помнил — лид остывал.", solution: "Собрали все каналы в единый inbox. Настроили автоматические follow-up-сценарии: касание через 1 день и через 3 дня после первого контакта.", results: [ "Конверсия из заявки в сделку выросла с {{X}}% до {{Y}}% за 6 недель", "Руководитель перестал вручную контролировать, кто кому позвонил", "Первый сценарий запустили за 3 рабочих дня", ], quote: "«Раньше я каждый понедельник разбирал с менеджерами, почему клиент не получил ответ. Теперь система это делает сама.»", speaker: "{{имя_спикера_1}}, {{должность_1}}, {{компания_1}}", }, { niche_tag: "IT-интегратор · 4 менеджера", problem: "После ухода ключевого менеджера база клиентов осталась в его таблицах. Восстанавливали две недели. Входящие заявки обрабатывались в среднем {{Z}} часов — слишком долго для горячего лида.", solution: "Мигрировали базу, настроили воронку под цикл сделки 3–4 недели, добавили автоматические напоминания менеджеру на каждом переходе между этапами.", results: [ "Время обработки входящей заявки сократилось с {{Z}} часов до 35 минут", "База клиентов теперь в системе — уход менеджера не несёт риска для данных", "Онбординг нового менеджера — 1 день вместо недели", ], quote: "«Система сразу показала, где у нас узкое место. Мы фиксировали только входящие — и упускали всех, кто не купил с первого касания.»", speaker: "{{имя_спикера_2}}, {{должность_2}}, {{компания_2}}", }, ]; return (
Как это работает на практике
{cases.map((c, i) => (
{c.niche_tag}
Ситуация {c.problem}
Что сделали {c.solution}
Результаты
    {c.results.map((r, ri) => (
  • {r}
  • ))}
{c.quote} {c.speaker}
Записаться на демо
))}
); } /* ─── 07 Trust Testimonials ──────────────────────────────────────────────── */ function TrustTestimonialsSection() { const testimonials = [ { quote: "«Раньше я лично проверял, кто кому позвонил. Теперь вижу воронку за 20 секунд. Менеджеры сами ведут клиентов — система подсказывает следующий шаг.»", name: "{{имя_1}}", title: "{{должность_1}}", company: "{{компания_1}}", initials: "И", image: IMAGE_ASSETS.avatar1, }, { quote: "«Запустили первый сценарий за 3 дня, как и говорили. Через месяц добавили ещё два. Лиды теперь не теряются между каналами — всё в одном месте.»", name: "{{имя_2}}", title: "{{должность_2}}", company: "{{компания_2}}", initials: "А", image: IMAGE_ASSETS.avatar2, }, { quote: "«Боялся, что менеджеры откажутся работать в новой системе. Оказалось — им самим удобнее. Не нужно помнить, кому звонить сегодня. Система сама напоминает.»", name: "{{имя_3}}", title: "{{должность_3}}", company: "{{компания_3}}", initials: "С", image: IMAGE_ASSETS.avatar3, }, { quote: "«Перешли после того, как Битрикс стал слишком тяжёлым для нашей команды. Здесь — только то, что нужно отделу продаж. Внедрили за неделю, без внешних подрядчиков.»", name: "{{имя_4}}", title: "{{должность_4}}", company: "{{компания_4}}", initials: "М", image: IMAGE_ASSETS.avatar4, }, ]; return (
Команды о системе Что говорят команды, которые уже работают в системе
{testimonials.map((t, i) => (
{t.quote}
{t.name} {t.title} {", "} {t.company}
))}
); } /* ─── 08 FAQ ─────────────────────────────────────────────────────────────── */ function FaqSection() { const [openIdx, setOpenIdx] = React.useState(0); const items = [ { q: "Сколько это стоит?", a: "Стоимость зависит от размера команды и нужных интеграций. Обсудим на демо — рассчитаем за 5 минут. Вы получите конкретные цифры и можете взять время на решение. Никакого давления.", }, { q: "Наши данные в безопасности?", a: "Данные хранятся на серверах в России. Продукт соответствует требованиям 152-ФЗ о персональных данных. Передача данных — по зашифрованному соединению (TLS). Доступ к данным клиента — только у авторизованных пользователей вашей команды.", }, { q: "Как долго занимает внедрение?", a: "Первый сценарий настраиваем за 3 рабочих дня. Команда начинает работать с системой сразу после онбординга. Мы сопровождаем запуск — вам не нужен выделенный IT-специалист.", }, { q: "С чем работает интеграция?", a: "WhatsApp, Telegram, email, телефония (Манго Телеком, Билайн Бизнес, UIS), 1С. Если у вас нестандартный стек — обсудим на демо, скажем честно, что возможно.", }, { q: "Чем вы отличаетесь от Битрикс24 или amoCRM?", a: "Крупные системы подходят для больших команд, готовых тратить время на настройку и обучение. Мы — для отделов продаж от 3 человек, которым нужно начать работать быстро, без лишних модулей. Это не замена — другой подход к задаче.", }, { q: "Что если после демо нам не подойдёт?", a: "Ничего не произойдёт. Демо — без обязательств. Вы решаете сами. Никаких звонков с давлением.", }, { q: "Есть ли поддержка после запуска?", a: "Да. Поддержка включена в подписку. Отвечаем в рабочие часы. Помогаем доработать сценарии под изменения в вашем процессе продаж.", }, ]; const toggle = (i) => setOpenIdx((prev) => (prev === i ? null : i)); return (
Частые вопросы
{items.map((item, i) => { const isOpen = openIdx === i; return (
{item.a}
); })}
); } /* ─── 09 CTA ─────────────────────────────────────────────────────────────── */ function CtaSection() { return (
Следующий шаг — 30 минут Покажем, как это работает в вашем отделе продаж 30 минут в Zoom. Без обязательств. Покажем систему на примере вашего процесса продаж — и вы сами решите, подходит ли это вам. Записаться на демо Позвоним в течение 2 рабочих часов
); } /* ─── 10 Lead Form ───────────────────────────────────────────────────────── */ function LeadFormSection() { const [state, setState] = React.useState("idle"); const [values, setValues] = React.useState({ name: "", phone: "", company: "" }); const [errors, setErrors] = React.useState({}); const validate = () => { const e = {}; if (!values.name.trim()) e.name = "Укажите ваше имя"; if (!values.phone.trim()) e.phone = "Введите номер в формате +7 900 000-00-00"; return e; }; const handleChange = (field) => (ev) => { setValues((v) => ({ ...v, [field]: ev.target.value })); if (errors[field]) setErrors((e) => ({ ...e, [field]: "" })); }; const handleSubmit = (ev) => { ev.preventDefault(); const e = validate(); if (Object.keys(e).length) { setErrors(e); return; } setState("loading"); setTimeout(() => setState("success"), 1500); }; return (
{state === "success" ? (
Готово! Наш менеджер позвонит вам в течение 2 рабочих часов, чтобы согласовать время демо. Демо — 30 минут в Zoom. Покажем продукт на примере вашего процесса продаж.
) : (
Записаться на демо
Ваше имя {errors.name && {errors.name}}
Телефон {errors.phone && {errors.phone}}
Компания
30 минут. Без презентаций. Позвоним в течение 2 рабочих часов

Нажимая кнопку, вы соглашаетесь с{" "} политикой обработки персональных данных

* — обязательное поле
)}
); } /* ─── Exports ────────────────────────────────────────────────────────────── */ Object.assign(window, { Nav, Footer, HeroSection, TrustLogosSection, ProblemSection, FeaturesSection, ProcessSection, CaseStudiesSection, TrustTestimonialsSection, FaqSection, CtaSection, LeadFormSection, });