Розробка VK-бота з інтеграцією Бітрікс24

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

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

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Розробка VK-бота з інтеграцією Bitrix24

Користувач пише в повідомлення групи ВКонтакте — бот відповідає, кваліфікує ліда та створює угоду в Bitrix24. Це не просто автовідповідач: діалог зберігається в CRM, менеджер бачить переписку в карточці ліда та може відповісти прямо з Б24.

Два способи інтеграції ВКонтакте з Bitrix24

Спосіб 1: Відкриті лінії Bitrix24. Б24 має нативний коннектор для VK. Він підключається в налаштуваннях відкритих ліній (imopenlines) і працює «з коробки» — якщо ваш тариф включає цю функцію. Обмеження: лише текст та вкладення, немає програмованої логіки бота, немає автовідповідей з розгалужуючим сценарієм.

Спосіб 2: Користувацька інтеграція через VK API. Бот на вашому сервері отримує повідомлення від VK через Callback API або Long Poll, обробляє їх за своєю логікою, спілкується з Б24 через REST API. Повний контроль над поведінкою.

Для складних сценаріїв (кваліфікація лідів, меню з кнопками, обробка фото/голосових) — потрібен користувацький бот.

Архітектура користувацького VK-бота

Користувач → VK Group Messages
                   ↓
           VK Callback API (POST на сервер бота)
                   ↓
           Сервер бота (PHP/Node.js)
           ├── Логіка розмови (FSM / сценарій)
           ├── VK API: messages.send, messages.getHistory
           └── Bitrix24 REST API:
               ├── crm.lead.add / crm.deal.add
               ├── crm.activity.add (запис діалогу)
               └── im.message.add (сповіщення менеджера)

Налаштування VK Callback API

В налаштуваннях групи ВКонтакте → «Робота з API» → «Callback API» вказуємо адресу сервера та підписуємося на події message_new, message_reply, message_event (натиск на кнопку).

VK відправляє на сервер POST-запит з JSON:

{
  "type": "message_new",
  "object": {
    "message": {
      "from_id": 123456789,
      "text": "Привіт, як замовити?",
      "id": 987
    }
  },
  "group_id": 111222333
}

Сервер повинен відповісти рядком ok протягом 5 секунд.

Логіка бота: FSM (кінцевий автомат)

Сценарій розмови реалізується через збереження стану діалогу:

// Стан діалогу зберігається в Redis: vk_dialog:{vk_user_id}
$state = $redis->get("vk_dialog:{$userId}");

switch ($state) {
    case null:
        // Новий діалог
        sendVkMessage($userId, "Привіт! Ви хочете:\n1. Дізнатися ціну\n2. Залишити заявку\n3. Зв'язатися з менеджером");
        $redis->set("vk_dialog:{$userId}", 'menu', 3600);
        break;

    case 'menu':
        if ($text === '2' || stripos($text, 'заявк') !== false) {
            sendVkMessage($userId, "Укажіть ваш телефон:");
            $redis->set("vk_dialog:{$userId}", 'await_phone', 3600);
        }
        break;

    case 'await_phone':
        if (isValidPhone($text)) {
            createLeadInB24($userId, $phone);
            sendVkMessage($userId, "Спасибі! Менеджер зв'яжеться з вами протягом години.");
            $redis->del("vk_dialog:{$userId}");
        } else {
            sendVkMessage($userId, "Не можу розпізнати номер. Введіть у форматі +1XXXXXXXXXX");
        }
        break;
}

Створення ліда в Bitrix24

function createLeadInB24(int $vkUserId, string $phone): int {
    // Отримуємо дані користувача VK
    $vkUser = callVkApi('users.get', ['user_ids' => $vkUserId, 'fields' => 'photo_200']);
    $name   = $vkUser[0]['first_name'] . ' ' . $vkUser[0]['last_name'];

    // Створюємо ліда в Б24
    $result = $b24->callMethod('crm.lead.add', [
        'fields' => [
            'TITLE'        => "VK: {$name}",
            'NAME'         => $vkUser[0]['first_name'],
            'LAST_NAME'    => $vkUser[0]['last_name'],
            'PHONE'        => [['VALUE' => $phone, 'VALUE_TYPE' => 'WORK']],
            'SOURCE_ID'    => 'VK',
            'COMMENTS'     => "ВКонтакте ID: {$vkUserId}\nhttps://vk.com/id{$vkUserId}",
            'ASSIGNED_BY_ID' => 5,
        ],
    ]);

    // Прикріплюємо історію переписки як активність
    $b24->callMethod('crm.activity.add', [
        'fields' => [
            'OWNER_TYPE_ID' => 1,
            'OWNER_ID'      => $result['result'],
            'TYPE_ID'       => 4,
            'SUBJECT'       => 'Переписка VK',
            'DESCRIPTION'   => $dialogHistory,
        ],
    ]);

    return $result['result'];
}

Кнопки у VK-повідомленнях

VK підтримує клавіатури з кнопками:

$keyboard = [
    'one_time' => true,
    'buttons'  => [[
        ['action' => ['type' => 'text', 'label' => 'Залишити заявку', 'payload' => '{"action":"lead"}'], 'color' => 'primary'],
        ['action' => ['type' => 'text', 'label' => 'Позвонити нам', 'payload' => '{"action":"call"}'], 'color' => 'secondary'],
    ]],
];

callVkApi('messages.send', [
    'user_id'   => $userId,
    'message'   => 'Виберіть дію:',
    'keyboard'  => json_encode($keyboard),
    'random_id' => time(),
]);

Сповіщення менеджера в Bitrix24

Після створення ліда відправляємо сповіщення відповідальному через im.notify:

$b24->callMethod('im.notify', [
    'to'      => $managerId,
    'message' => "Новий ліда з VK: {$name}, тел. {$phone}. [URL=https://b24.ru/crm/lead/{$leadId}/]Відкрити[/URL]",
    'type'    => 'SYSTEM',
]);

Строки

Етап Строк
Налаштування VK Callback API, базовий прийом повідомлень 1–2 дні
Сценарій бота (FSM, збереження стану) 2–4 дні
Інтеграція з Б24: створення лідів, активностей 2–3 дні
Кнопки, меню, обробка вкладень 1–2 дні
Сповіщення менеджерам 1 день
Тестування 1–2 дні

Разом: 1,5–2 тижні для стандартного сценарію кваліфікації лідів.