// FAQ accordion + form + tweaks panel + modal const { useState: useStateF, useEffect: useEffectF, useRef: useRefF } = React; const FAQ_ITEMS = [ { q: "Заменит ли Axiomic моих менеджеров?", a: "Нет. Axiomic закрывает первую линию: мгновенно отвечает, квалифицирует лид, отсекает нецелевых, передаёт в Битрикс24 с историей диалога. Менеджеры получают готового к разговору клиента и вместо 80 заявок в день обрабатывают 20 горячих. Живого продавца AI не заменит — он его разгружает.", }, { q: "Сколько это стоит?", a: "20 000 ₽ в месяц. Одна подписка, без доплат за количество диалогов и каналов. Включено: все мессенджеры (Telegram, ВК, Авито, MAX), интеграция с Битрикс24, дашборд с метриками, база знаний без лимитов. Первая неделя — бесплатно, в продакшене, без реквизитов карты. Для сравнения: менеджер с окладом, KPI и налогами выходит в 90–130 тыс ₽/мес и не работает ночью.", }, { q: "Как быстро можно запустить?", a: "7 рабочих дней от договора до первого диалога в продакшене. День 1–2: подключаем мессенджеры и Битрикс24. День 3–4: грузим прайсы, каталоги, договоры в базу знаний. День 5–6: настраиваем воронку и сценарии. День 7: запуск в боевом режиме. Без кода, без ваших разработчиков.", }, { q: "Поймёт ли клиент, что общается с ботом?", a: "Axiomic не притворяется человеком — это против этики и закона. Но тон, темп ответов и стиль неотличимы от хорошего менеджера: печатает с задержкой, уточняет, не отвечает шаблонами. По данным пилотных клиентов, 72% клиентов доходят до звонка, не задав вопроса «это человек?».", }, { q: "Как он учится на моих документах?", a: "Загружаете прайсы, каталоги, договоры, регламенты в любых форматах — PDF, Excel, Word, Google Docs. Мы разбираем их на смысловые фрагменты и индексируем (RAG). Когда клиент спрашивает про цену — AI находит точную строку в вашем прайсе и цитирует её. Не придумывает, не округляет.", }, { q: "Насколько безопасны данные клиентов?", a: "Данные хранятся на серверах в РФ, шифрование TLS + AES-256. Мы включены в реестр операторов ПДн Роскомнадзора (152-ФЗ). Диалоги не используются для обучения моделей. По запросу — соглашение о неразглашении и аудит безопасности перед подписанием.", }, ]; const H1_VARIANTS = [ { // A: speed / loss lines: [ <>Пока вы спите,, <>клиенты пишут, ], sub: "AI-менеджер Axiomic отвечает на заявки за 3 секунды — в Telegram, ВК, Авито и MAX. Неделя бесплатно, дальше — 20 000 ₽/мес.", }, { // B: result / outcome lines: [ <>Отвечайте на заявки, <>за 3 секунды — 24/7, ], sub: "AI-менеджер для строительных компаний. Ведёт клиента по воронке, квалифицирует, создаёт сделку в Битрикс24. Неделя бесплатно, дальше — 20 000 ₽/мес.", }, { // C: technical / engineered lines: [ <>AI-менеджер, <>для стройки, ], sub: "Специализированный AI, заточенный под строительные компании. Цитирует ваши прайсы, знает терминологию, работает в мессенджерах.", }, ]; function FAQ() { return (
{FAQ_ITEMS.map((item, i) => (
0{i + 1} {item.q}
{item.a}
))}
); } function DemoForm({ inline = false, onSuccess, ctaSource }) { const [submitted, setSubmitted] = useStateF(false); const [submitting, setSubmitting] = useStateF(false); const [error, setError] = useStateF(null); const [state, setState] = useStateF({ name: "", contact: "", niche: "", channel: "phone" }); const CHANNELS = [ { id: "phone", label: "Телефон", placeholder: "+7 900 000-00-00" }, { id: "telegram", label: "Telegram", placeholder: "@username" }, { id: "whatsapp", label: "WhatsApp", placeholder: "+7 900 000-00-00" }, { id: "max", label: "MAX", placeholder: "@username или номер" }, { id: "email", label: "Email", placeholder: "you@company.ru" }, ]; const current = CHANNELS.find((c) => c.id === state.channel) || CHANNELS[0]; const handleSubmit = async (e) => { e.preventDefault(); if (submitting) return; setSubmitting(true); setError(null); try { const contactLine = state.contact.trim() ? `${current.label}: ${state.contact.trim()}` : ""; const resp = await fetch("/api/public-lead", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ name: state.name.trim(), contact: contactLine, niche: state.niche.trim(), cta_source: ctaSource || (inline ? "demo-inline" : "demo-modal"), }), }); let body = {}; try { body = await resp.json(); } catch (_) { body = {}; } if (!resp.ok || body.ok === false) { setError(body.error || `Ошибка отправки (HTTP ${resp.status}). Попробуйте позже.`); setSubmitting(false); return; } setSubmitted(true); if (onSuccess) setTimeout(onSuccess, 2400); } catch (err) { setError("Не удалось отправить заявку. Проверьте соединение и попробуйте ещё раз."); setSubmitting(false); } }; if (submitted) { return (
Заявка принята. Свяжемся в течение часа в рабочее время. Спасибо, {state.name.split(" ")[0] || "👋"}.
); } return (
setState({ ...state, name: e.target.value })} />
{CHANNELS.map((c) => ( ))}
setState({ ...state, contact: e.target.value })} />
{error ? ( {error} ) : ( "Свяжемся в течение часа в рабочее время — там, где вам удобно." )}
); } function Tweaks({ open, onClose, theme, setTheme, accent, setAccent, h1, setH1, grid, setGrid, font, setFont }) { return (
Tweaks
); } function Modal({ open, onClose }) { useEffectF(() => { if (!open) return; const onKey = (e) => e.key === "Escape" && onClose(); window.addEventListener("keydown", onKey); return () => window.removeEventListener("keydown", onKey); }, [open, onClose]); return (
e.stopPropagation()}>

Записаться на демо

Покажем продукт на вашем кейсе. 30 минут, без презентаций.

); } Object.assign(window, { FAQ, DemoForm, Tweaks, Modal, H1_VARIANTS });