Разработка бота для автоматического ответа на FAQ Битрикс24

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка бота для автоматического ответа на FAQ Битрикс24
Средний
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1321
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    914
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    810
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    709
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1043

Разработка бота для автоматического ответа на FAQ Битрикс24

Половина входящих обращений в чат поддержки — это одни и те же вопросы: «Как вернуть товар?», «Где мой заказ?», «Какие условия доставки?». Оператор тратит время на рутину, а бизнес теряет деньги на необработанных сложных запросах. Интернет-магазин с 500 заказами в день получал 200 обращений, из которых 80% были типовыми. После внедрения бота время ответа сократилось с 5 минут до мгновенного, а операторы сосредоточились на сложных кейсах. Экономия на поддержке составила 40% в первый месяц — без потери качества.

Мы разрабатываем бота, который автоматически отвечает на типовые вопросы и передаёт нестандартные живому оператору. Решение работает прямо в открытых линиях Битрикс24 — без сторонних сервисов. В основе — либо быстрый ключевой поиск, либо семантический RAG на эмбеддингах.

Как бот подключается к открытым линиям?

Открытые линии Битрикс24 — основная точка входа. Бот регистрируется как первый оператор линии. Когда клиент пишет в онлайн-чат, Telegram или VK, обращение попадает боту. Если бот отвечает — оператор не беспокоится. Если нет — передаёт человеку.

Регистрация бота в открытых линиях выполняется через REST API Битрикс24:

POST /rest/imopenlines.bot.register
{
  "CODE": "faq_bot",
  "EVENT_HANDLER": "https://your-server.com/openline/event",
  "OPENLINE": "Y"
}

— источник: документация REST API

Как бот определяет, что ответить? Два подхода к сопоставлению вопросов

Подход 1: Поиск по ключевым словам

Вопросы и ключевые слова хранятся в базе, бот ищет совпадения в тексте сообщения. Просто в реализации, понятно в обслуживании. Идеально для 50–200 типовых вопросов.

CREATE TABLE custom_faq_entries (
    id          SERIAL PRIMARY KEY,
    question    TEXT NOT NULL,
    answer      TEXT NOT NULL,
    keywords    TEXT NOT NULL,
    category    VARCHAR(100),
    hits        INT DEFAULT 0,
    is_active   TINYINT DEFAULT 1
);
function findFaqAnswer(string $userMessage): ?array {
    $words = array_filter(explode(' ', mb_strtolower($userMessage)));
    $results = [];

    $faqs = getFaqEntries();
    foreach ($faqs as $faq) {
        $keywords = explode(',', mb_strtolower($faq['keywords']));
        $score = 0;
        foreach ($keywords as $kw) {
            $kw = trim($kw);
            if ($kw && (mb_stripos($userMessage, $kw) !== false)) {
                $score += mb_strlen($kw);
            }
        }
        if ($score > 0) {
            $results[] = ['faq' => $faq, 'score' => $score];
        }
    }

    if (empty($results)) return null;
    usort($results, fn($a, $b) => $b['score'] <=> $a['score']);
    return $results[0]['faq'];
}

Подход 2: Векторный поиск (RAG)

Вопросы индексируются как эмбеддинги (OpenAI text-embedding-3-small, Yandex GPT Embeddings). При новом вопросе — поиск ближайших соседей в векторной БД (pgvector, Qdrant). Работает на семантически похожих формулировках без точного совпадения слов.

Критерий Ключевой поиск Векторный поиск (RAG)
Объём базы До 200 вопросов От 200 вопросов
Точность на синонимах Низкая Высокая — RAG лучше в 3–4 раза на перефразированных запросах
Сложность реализации Низкая Средняя (нужна модель и векторная БД)
Скорость Мгновенно <1 сек для баз до 10 000
Обслуживание Правка ключевых слов Добавление вопросов без правки кода

Выбор: для 50–200 FAQ хватает ключевых слов. Для большой базы знаний с вариативными формулировками — RAG. RAG лучше справляется с синонимами и опечатками, но требует настройки модели.

Примеры типовых вопросов и ответов бота

Реальные сценарии из практики интернет-магазина:

Вопрос клиента Ответ бота Результат
"Как вернуть товар?" "Возврат возможен в течение 14 дней. Товар должен быть неиспользованным, в оригинальной упаковке. Заполните форму возврата в личном кабинете." Автозакрыто
"Сколько стоит доставка в Москву?" "Стандартная доставка в Москву — 300 руб., срок 3–5 рабочих дней. Бесплатная доставка от 5000 руб." Автозакрыто
"Где отследить заказ?" "Ссылка на отслеживание отправлена на email. Трек-номер: {номер}. Приблизительная дата доставки: {дата}." Автозакрыто
"Принимаете ли карты?" "Мы принимаем Visa, MasterCard, Maestro, платежи через ЯндексКассу и альтернативные способы оплаты." Автозакрыто

Бот успешно закрывает 60–70% обращений без участия оператора.

Требования к интеграции и предварительная настройка

Для успешного запуска FAQ-бота нужны:

  • Доступ к REST API Битрикс24 — требуется Admin-аккаунт и генерация OAuth-токена.
  • HTTPS-сервер для приёма вебхуков от открытых линий (очень важно, Б24 работает только по защищённому протоколу).
  • Хранилище FAQ — SQL-база (PostgreSQL, MySQL) или CMS-специфичное (например, модуль в 1С-Битрикс).
  • В случае RAG — подписка на OpenAI API, Yandex GPT Embeddings или локальная модель (например, nomic-embed-text).
  • Система мониторинга — логирование ошибок обработки сообщений, отслеживание упущенных вопросов.

Обработка события в открытой линии

$event = json_decode(file_get_contents('php://input'), true);

if ($event['event'] === 'ONIMBOTMESSAGEADD') {
    $sessionId = $event['data']['PARAMS']['SESSION_ID'];
    $dialogId  = $event['data']['PARAMS']['DIALOG_ID'];
    $text      = $event['data']['PARAMS']['MESSAGE'];
    $chatId    = $event['data']['PARAMS']['CHAT_ID'];

    $faq = findFaqAnswer($text);

    if ($faq) {
        $b24->callMethod('imopenlines.session.message.send', [
            'SESSION_ID' => $sessionId,
            'MESSAGE'    => $faq['answer'],
        ]);
        incrementFaqHits($faq['id']);
        $b24->callMethod('imopenlines.session.close', ['SESSION_ID' => $sessionId]);
    } else {
        $b24->callMethod('imopenlines.session.transfer', [
            'SESSION_ID' => $sessionId,
            'QUEUE_ID'   => 1,
        ]);
        $b24->callMethod('imopenlines.session.message.send', [
            'SESSION_ID' => $sessionId,
            'MESSAGE'    => 'Соединяю с менеджером, пожалуйста, подождите...',
        ]);
    }
}

Логика эскалации и передачи оператору

Бот передаёт обращение оператору по нескольким критериям:

  • Низкая уверенность — оценка совпадения < порога (например, <0.7 для RAG или <5 для ключевых слов).
  • Явный запрос жалобы — если клиент использует слова "жалоба", "претензия", "не сработало".
  • Комплексный вопрос — обращение содержит несколько тем одновременно.
  • Личные данные — запрос о пароле, реквизитах банка (бот должен отказать и передать оператору).
  • Timeout — если конверсация с клиентом длится > 3 оборотов, бот предлагает менеджера.

Уточняющие вопросы

Если совпадений несколько — бот показывает варианты:

if (count($topResults) > 1 && $topResults[0]['score'] < 10) {
    $options = array_slice($topResults, 0, 3);
    $message = "Уточните, пожалуйста, что вас интересует:\n";
    foreach ($options as $i => $r) {
        $message .= ($i + 1) . ". {$r['faq']['question']}\n";
    }
    $message .= "0. Другое (подключить менеджера)";
    $redis->set("faq_choice:{$sessionId}", json_encode($options), 300);
}

Административный интерфейс для управления базой FAQ

Контент-менеджер должен управлять FAQ без правки кода. Разрабатываем административный раздел в /bitrix/admin/ или как приложение в Б24:

  • CRUD для вопросов и ответов.
  • Категории (Доставка, Оплата, Возврат, Технические вопросы).
  • Статистика: сколько раз вопрос был закрыт ботом (hits), сколько передано операторам.
  • Просмотр сессий, где бот не нашёл ответ — это приоритет для пополнения базы.

Хотите сократить нагрузку на поддержку? Получите консультацию по вашему проекту — оценим архитектуру и предложим оптимальный подход.

Почему важна аналитика эффективности?

Аналитика показывает реальную отдачу от бота. Без неё невозможно понять, какие вопросы бот обрабатывает хорошо, а какие нужно дорабатывать.

Для оценки эффективности мы считаем процент автоматически закрытых сессий. Целевой показатель автозакрытия для зрелой базы FAQ — 60–70%. Наши клиенты достигают этого за 2–3 недели после запуска.

Мониторинг и постоянное улучшение бота

После запуска бот требует регулярного обслуживания:

  • Еженедельный анализ пропущенных вопросов — просмотр сессий, которые были передачи оператору, выявление гэпов в базе FAQ.
  • Обновление ключевых слов (при ключевом поиске) или переобучение эмбеддингов (при RAG) на основе новых вопросов.
  • A/B-тестирование ответов — какие формулировки приводят к меньшему числу повторных вопросов от клиентов.
  • Мониторинг времени отклика — анализ задержек при передаче сообщений и выявление bottleneck'ов.

Инструмент автоматически предлагает контент-менеджеру варианты для добавления в FAQ, если одно и то же нераспознанное слово повторяется более 10 раз в неделю.

Пример сессии с ботом
  • Клиент: "Где мой заказ?"
  • Бот: "Ваш заказ находится в статусе 'В пути'. Ожидаемая дата доставки — 5 декабря."
  • Оператор не привлекался.

Что входит в работу

  • Регистрация и настройка бота в открытых линиях Битрикс24.
  • Проектирование структуры базы FAQ (ключевые слова или эмбеддинги).
  • Разработка логики: поиск ответа, передача оператору, уточняющие вопросы.
  • Создание административного интерфейса для управления базой.
  • Реализация аналитики и отчётов (автозакрытие, популярные вопросы).
  • Наполнение базы типовыми вопросами (до 100 записей) и тестирование.
  • Документация по эксплуатации и обучение контент-менеджера.

Сроки и опыт

Мы на рынке уже более 5 лет, разработали 50+ проектов на Битрикс24. Работаем с 1С-Битрикс и Битрикс24 с момента основания.

Этап Срок
Регистрация бота в открытых линиях, базовая интеграция 1–2 дня
Структура БД FAQ, поиск по ключевым словам 2–3 дня
Логика передачи оператору, уточняющие вопросы 2–3 дня
Административный интерфейс (CRUD FAQ) 2–3 дня
Аналитика и отчёты 1–2 дня
Наполнение базы + тестирование 2–3 дня

Итого: 1.5–2.5 недели без учёта наполнения базы. Наполнение — отдельная работа, зависит от объёма документации.

Закажите разработку сейчас

Оценим ваш проект за 1 день. Расскажите о ваших типовых вопросах — подберём оптимальный подход. Свяжитесь с нами через форму на сайте или напишите в Telegram. Получите консультацию прямо сейчас.