🎉 Как «Подружить» Мессенджер MAX с Битрикс24: Пошаговая Инструкция от Новичка до Гуру API!
Привет! Если вы читаете это, значит, вы — владелец бизнеса или менеджер, который хочет навести порядок в общении с клиентами. Вы используете отличный мессенджер MAX (или любой другой внешний канал) и любите мощь Битрикс24. Наша задача — научить эти две системы говорить на одном языке, чтобы ни одно сообщение не потерялось, а каждый клиент моментально попадал в CRM!
Забудьте о ручном копировании контактов! Давайте разберемся, как настроить интеграцию — от самой простой **»нажал и заработало»** до кастомной разработки.
1. 💌 Простой способ: Интеграция через Открытые линии (Для новичков)
Это самый лёгкий и быстрый путь. Если ваш сервис MAX поддерживает отправку данных на Webhook (а большинство современных чат-платформ это умеют), этот метод — для вас! Он позволяет Битрикс24 автоматически создавать диалоги, **Лиды** и **Контакты**.
Шаг А: Где взять «волшебную» ссылку в Битрикс24
- Зайдите в ваш **Битрикс24** под правами администратора.
- Перейдите в раздел **Контакт-центр** → **Открытые линии**.
- Создайте новую линию или выберите существующую.
- В настройках найдите раздел **»Прочие»** или **»Подключение внешних каналов»**.
- **Скопируйте уникальный Webhook URL.** Этот URL — ваш ключ к интеграции!
Шаг Б: Пример запроса на стороне MAX (Технический взгляд)
Ваш сервис MAX (или ваш разработчик) должен настроить отправку **POST-запроса** на эту ссылку. Это простое сообщение в формате JSON.
# ИСПОЛЬЗУЙТЕ ССЫЛКУ ИЗ ШАГА А!
curl -X POST \
"https://yourdomain.bitrix24.ru/rest/1/xxxxxxxxxxxx/" \
-H "Content-Type: application/json" \
-d '{
"method": "message.add",
"user": {
"external_id": "max_user_555",
"name": "Андрей Максимов",
"channel_id": "MAX_MESSENGER"
},
"message": {
"text": "Здравствуйте, хотел бы узнать о ваших услугах.",
"chat_id": "max_chat_id_777"
}
}'
message.add) от пользователя (user) из канала MAX. Создай диалог!». Битрикс24 обрабатывает этот запрос и открывает диалог в Открытых линиях.
2. 🧠 Продвинутый способ: Контролируем Лиды через REST API
А что, если вам нужно не просто создать диалог, а ещё и сразу заполнить уникальное поле в Лиде или проверить, не является ли клиент VIP-персоной? Здесь нам понадобится **REST API**.
Вместо универсального шлюза Открытых линий мы используем **Входящий веб-хук** — это даёт нам право напрямую вызывать любые методы CRM.
Шаг А: Получение REST API URL
- В Битрикс24 перейдите в **Разработчикам** → **Входящие веб-хуки**.
- Создайте Webhook и получите **REST API URL**.
- **Важно:** Ограничьте права доступа только теми методами, которые вам нужны (например,
crm.lead.add).
Шаг Б: PHP-код для создания Лида (С полным контролем)
Ваш скрипт-посредник MAX, получив сообщение, использует REST API для создания нового Лида.
<?php
// 1. Данные, полученные из MAX
$data_from_max = [
'user_name' => 'Андрей Максимов',
'message_text' => 'Нужна консультация по API.',
'phone' => '+79998887766'
];
// 2. URL вашего Входящего веб-хука
$webhookUrl = 'https://yourdomain.bitrix24.ru/rest/1/token/';
// 3. Подготовка полей Лида (обратите внимание на массив PHONE)
$fields = [
"TITLE" => "Лид из MAX: Консультация",
"NAME" => $data_from_max['user_name'],
"PHONE" => [
["VALUE" => $data_from_max['phone'], "VALUE_TYPE" => "WORK"]
],
"SOURCE_ID" => "OTHER",
"COMMENTS" => "Сообщение из MAX: " . $data_from_max['message_text']
];
// 4. Отправляем запрос на метод crm.lead.add
$url = $webhookUrl . 'crm.lead.add';
$ch = curl_init();
// Параметры отправки (CURL)
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_POST => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POSTFIELDS => http_build_query(['fields' => $fields]) // Данные передаются как POST-поля
]);
$result = curl_exec($ch);
curl_close($ch);
$resultData = json_decode($result, true);
if (isset($resultData['result'])) {
echo "Успех! Лид создан. ID: " . $resultData['result'];
} else {
echo "Ой! Ошибка создания Лида: " . $resultData['error_description'];
}
3. 🎩 Уровень «Гуру»: Проверка на Дубли и Обновление Контактов
Настоящая CRM-работа начинается, когда вы избегаете дубликатов. Если клиент писал вам год назад, не нужно создавать новый Лид; нужно найти старый **Контакт** и привязать к нему новое сообщение!
Логика «Сначала ищи, потом действуй»:
- **Поиск:** Ищем Контакт по номеру телефона (
crm.contact.list). - **Действие:** Если найден — вызываем
crm.contact.update. Если не найден — создаём новый Лид (crm.lead.add).
PHP-код: Поиск Контакта и Условное Обновление
<?php
$phone_number = '+79998887766';
$webhookUrl = 'https://yourdomain.bitrix24.ru/rest/1/token/';
$message_from_max = "Клиент снова написал из MAX: " . date('Y-m-d H:i:s');
// 1. ПОИСК КОНТАКТА ПО НОМЕРУ ТЕЛЕФОНА
$search_url = $webhookUrl . 'crm.contact.list';
$search_query = http_build_query([
'filter' => [
'PHONE' => $phone_number
],
'select' => ['ID'] // Запрашиваем только ID
]);
$ch = curl_init();
curl_setopt_array($ch, [CURLOPT_URL => $search_url . '?' . $search_query, CURLOPT_RETURNTRANSFER => 1]);
$search_result = json_decode(curl_exec($ch), true);
$contactId = null;
if (!empty($search_result['result'])) {
$contactId = $search_result['result'][0]['ID'];
echo "Ура! Старый Контакт найден. ID: " . $contactId . "\n";
}
// 2. УСЛОВНОЕ ДЕЙСТВИЕ
if ($contactId) {
// Если контакт найден: ОБНОВЛЯЕМ КОММЕНТАРИЙ
$update_url = $webhookUrl . 'crm.contact.update';
$update_fields = [
'ID' => $contactId,
// Добавляем новое сообщение в комментарии, чтобы менеджер увидел
'COMMENTS' => $message_from_max
];
// ... Вызов curl для обновления ...
// (Этот запрос аналогичен crm.lead.add, но использует метод crm.contact.update)
echo "Контакт обновлен новым комментарием.";
} else {
// Если контакт не найден: СОЗДАЕМ НОВЫЙ ЛИД
// ... (Здесь вызывается crm.lead.add, как в примере №2)
echo "Контакт не найден, создан новый Лид для обработки.";
}
curl_close($ch);
🎯 Резюме и Ваш Следующий Шаг
Интеграция с мессенджером MAX может быть как максимально простой (через Открытые линии), так и сложной (через API) — всё зависит от требований вашего бизнеса.
Комментарии (0)
Оставить комментарий