В некоторых сферах бизнеса конвертация лида в сделку может занимать много времени и требует долгой коммуникации с потенциальным покупателем. Если эта обработка осуществляется вручную, возникает риск упустить других заказчиков. Узнайте, как автоматизировать обработку лида в Битрикс24 с помощью отправки разных сообщений через Wazzup с помощью искусственного интеллекта.
1. Долгий цикл конвертации лида в сделку
Проблема
Один из наших заказчиков занимается монтажом строительных объектов. Перечень работ довольно большой, многие объекты строятся "под ключ". У него также есть партнеры, которые занимаются смежными видами деятельности. Обычно сотрудники вручную отправляют клиентам сообщения, чтобы предложить дополнительные услуги по смежным работам на участке. Заказчик работает в Битрикс24, у него подключена платформа Wazzup.
Настройка группового чата WhatsApp (Telegram) с чатом сделки Битрикс24 с отправкой уведомлений, если менеджер не ответил: читайте в нашем блоге.
Входящие заявки поступают в виде лидов из разных источников. Проблема в том, что часто лиды застревают на стадии "Отправка коммерческого предложения". Лид необходимо постоянно "подогревать" и предлагать смежные услуги и дополнительные работы по спецпредложениям от партнеров, чтобы согласовать с потенциальным клиентом план работ и конвертировать лид в сделку.
Если обрабатывать лид вручную, это занимает очень много времени, также сотрудники клиента заняты работой с текущими сделками и могут забыть про свежий лид. При этом, нельзя отправлять ему сообщения сразу, необходимо выждать некоторое время между сообщениями, чтобы дать заказчику подумать.
Искусственный интеллект для переписки в чатах (в том числе групповых) WhatsApp и Telegram в связке с Битрикс24: читайте в статье.
Решение
Совместно с клиентом наши инженеры придумали такое техническое решение:
1.1. В течение недели новый лид (не любой, а тот, в котором был совершен звонок), будет получать автоматические сообщения. Для этого мы создаем списки шаблонных сообщений в универсальных списках Битрикс24.
1.2. Указываем промежутки отправки между сообщениями (также настраивается в списках).
1.3. Как талько лид будет переведен на стадию "Отправка КП", ему начнут отправляться шаблонные сообщения с предложениями.
1.4. В лид добавим 4 пользовательских поля: "Товар", "Сроки реализации", "Время до отправки следующего сообщения (таймер)", "Количество уже отправленных сообщений". Эти поля заполняются интеграцией Пинкит.
1.5. В Пинкит добавим интеграцию с Битрикс24, которая будет заполнять поля времени до отправки и количество отправленных сообщений в лиде.
Искусственный интеллект YandexGPT 2 для разбора писем, сообщений в Wazzup, Авито для интеграции c Битрикс24: подробности здесь.
1.6. Добавим в Пинкит вторую интеграцию с Битрикс24, которая будет получать лиды и, если сейчас рабочее время, то она проверит, дошел ли таймер до 0 в лиде, если нет, то таймер уменьшается, если да, то срабатывает функционал по выбору рандомного варианта сообщения для отправки, если вариант не найден, то берется просто сообщение по порядку, если сообщения закончились, интеграция прерывается. Если сообщение все же найдено, то в нем подставляются товар, менеджер и имя клиента, а в лид записываются новые значения отправленного сообщения и таймера.
1.7. Настроим еще одну техническую интеграцию, которая будет запускать вторую интеграцию по расписанию.
Давайте разберем, как все настроить с помощью Пинкит.
2. Заполняем поля для первичной отправки сообщений
2.1. Шаг 1: Откуда
Добавляем событие создания лида.
2.2. Шаг 2: Инструменты
- Если дело не типа звонок, прерываем транскрибацию
Используем проверку по полю source.TYPE_ID. Условие - ЧислоРавно, Сравниваемое значение = 2, Действие - Продолжить, если проверка пройдена.
- Проверяем, что звонок был совершен из Лида
Используем проверку по полю source.OWNER_TYPE_ID. Условие - ЧислоРавно, Сравниваемое значение = 1, Действие - Продолжить, если проверка пройдена.
2.3. Шаг 3: Куда
Обновляем лид.
2.4. Шаг 4: Сопоставление данных
Сопоставляем лид по ID и добавляем два пользовательских сопоставления.
Таймер до отправки первого сообщения
Тип: Тело
Название параметра: fields.UF_CRM_1739438267
Значение параметра: 2
Количество отправленных сообщений
Тип: Тело
Название параметра: fields.UF_CRM_1739438292
Значение параметра: 0
2.5. Шаг 5: Запуск
Запускаем интеграцию.
3. Отправка сообщений по периоду в 1 неделю
3.1. Шаг 1: Откуда
Указываем событие создания лида.
3.2. Шаг 2: Инструменты
- Получаем текущее время
Используем шаг Если-Иначе по полю source.odifhgoujfdhgjikfdhlg. Условие - существует, Результат при успешной проверке = {{now|date('H','UTC','+3 hour')}}, Результат при неуспешной проверке = {{now|date('H','UTC','+3 hour')}}.
- Проверяем что время после 9 по МСК
Используем проверку по полю step1. Условие - Число больше или равно, Сравниваемое значение = 9, Действие - Продолжить, если проверка пройдена.
- Проверяем что время до 18 по МСК
Используем проверку по полю step1. Условие - Число меньше или равно, Сравниваемое значение = 20, Действие - Продолжить, если проверка пройдена.
- Проверяем что таймер дошел до 0
Используем шаг Если-Иначе по полю source.UF_CRM_1739438267. Условие - Число меньше или равно, Сравниваемое значение = 0, Результат при успешной проверке = 1, Результат при неуспешной проверке = 0.
- Получаем порядковый номер нового сообщения для отправки
Тип шага - математическое действие, Условие выполнения - step4, Название поля - source.UF_CRM_1739438292, Действие - Сложить, второе значение = 1.
- Подбираем цифру для рандома
Используем шаг Если-Иначе по полю source.odifhgoujfdhgjikfdhlg. Условие - существует, Результат при успешной проверке = {{now|date('s')}}, Результат при неуспешной проверке = {{now|date('s')}}.
- Сопоставляем цифру с вариацией сообщения
Настраиваем сопоставление данных. Условие выполнения = step4, Название поля = step11.
- Получаем нужное сообщение из списка
Используем API-запрос методом POST.
Условие выполнения - step4. URL - /lists.element.get. Тело запроса:
{ "IBLOCK_TYPE_ID":"lists", "IBLOCK_ID":"100", "FILTER":{ "=PROPERTY_242": "{{step7}}", "=PROPERTY_266": "{{step12}}" } }
- Проверяем что вариант сообщения существует
Используем шаг Если-иначе по полям step8.result.0.ID. Условие - не существует, Результат при успешной проверке = 1, Результат при неуспешной проверке = 0.
- Получаем нужное сообщение из списка если не нашлась вариация
Используем API-запрос методом POST. Условие выполнения - step13&&step4. URL - /lists.element.get, Тело запроса:
{ "IBLOCK_TYPE_ID":"lists", "IBLOCK_ID":"100", "FILTER":{ "=PROPERTY_242": "{{step7}}" } }
- Если сообщения нету, то прервать интеграцию
Используем проверку по полю step14.result.0.ID. Условие - существует, Действие - продолжить в любом случае.
- Забираем вариант сообщения или просто сообщение
Используем инструмент Если-иначе по полям step13&&step4. Условие - ЧислоРавно, Сравниваемое значение = 1, Результат при успешной проверке = {{step14.result.0}}, Результат при неуспешной проверке = {{step8.result.0}}.
- Получаем из массива строку с таймером
Преобразуем массив в JSON в поле step15.PROPERTY_258. Условие выполнения - step15&&step4.
- Убираем лишнее 1
Преобразуем строку в массив в поле step31. Условие выполнения step15&&step4. Укажем разделитель ":".
- Убираем лишнее 2
Преобразуем строку в массив в поле step32.1. Условие выполнения step15&&step4. Укажем разделитель ""}".
- Проверяем что таймер НЕ дошел до 0
Используем шаг Если-Иначе по полю source.UF_CRM_1739438267. Условие - Число меньше или равно, Сравниваемое значение = 0, Результат при успешной проверке = 0, Результат при неуспешной проверке = {{source.UF_CRM_1739438267}}.
- Отнимаем 1 час из остатка времени
Используем математическое действие, Условие выполнения - step5, Название поля - step5, Действие - вычесть, Второе значение = 60.
- Получаем время в лид до следующего сообщения
Используем шаг Если-Иначе по полю step4. Условие - Число равно, Сравниваемое значение = 1, Результат при успешной проверке = {{step33.0}}, Результат при неуспешной проверке = {{step6}}.
- Получаем порядковый номер сообщения в поле лида
Используем шаг Если-Иначе по полю step4. Условие - Число равно, Сравниваемое значение = 1, Результат при успешной проверке = {{step7}}, Результат при неуспешной проверке = {{source.UF_CRM_1739438292}}.
- Получаем из массива строку
Преобразуем массив в JSON в поле step15.PROPERTY_244. Условие выполнения - step15&&step4.
- Убираем лишнее 1
Преобразовать строку в массив в поле step18. Условие выполнения - step15&&step4.
- Убираем лишнее 2
Преобразуем строку в массив в поле step19.1. Условие выполнения - step15&&step4.
- Убрали код имени
Преобразуем строку в массив в поле step20.0. Условие выполнения - step15&&step4.
- Подставили имя из лида
Используем инструмент Если-иначе в поле step21.1. Условие - ЛогическоеИстина, Результат при успешной проверке = {{step21.0}} {{source.NAME}}{{step21.1}}, Результат при неуспешной проверке = 0.
- Убрали код менеджера
Преобразуем строку в массив в поле step22. Условие выполнения - step15&&step4.
- Получили информацию о менеджере
Используем API-запрос методом POST. Условие выполнения - step23.1. /user.get. Тело запроса:
{ "filter":{ "ID":"{{source.ASSIGNED_BY_ID}}" } }
- Подставили менеджера из лида
Используем шаг Если-Иначе по полю step23.1. Условие - существует, Результат при успешной проверке = {{step23.0}} {{step25.result.0.LAST_NAME}} {{step25.result.0.NAME}}{{step23.1}}, Результат при неуспешной проверке = {{step23.0}}.
- Убрали код товара
Преобразуем строку в массив в поле step24. Условие выполнения - step15&&step4.
- Сопоставляем идентификаторы и текст товара
Используем Сопоставление данных в поле source.UF_CRM_1734954865069. Условие выполнения - step26.1.
- Подставили Товар из лида
Используем шаг Если-Иначе по полю step26.1. Условие - существует, Результат при успешной проверке = {{step26.0}} {{step28}}{{step26.1}}, Результат при неуспешной проверке = {{{step26.0}}.
- Придаем номеру телефона нужный формат
Используем Форматирование номера телефона в поле source.PHONE.0.VALUE. Условие выполнения - step15&&step4. Указываем формат и код страны.
- Отправляем сообщение через Wazzup
Используем API-запрос методом POST. Условие выполнения - step15&&step4. Тело запроса:
{ "channelId": "b549a707-2359-446e-868c-c49b5562dc3d", "chatId": "{{step29}}", "chatType": "whatsapp", "text": "{{step27}}" }
3.3. Шаг 3: Куда
Обновляем лид.
3.4. Шаг 4: Сопоставление данных
Сопоставляем лид по ID. Укажем пользовательское сопоставление:
Заполняем время до отправки следующего сообщения
Тип: Тело
Название параметра: fields.UF_CRM_1739438267
Значение параметра: {{step9}}
Заполняем порядковый номер сообщения
Тип: Тело
Название параметра: fields.UF_CRM_1739438292
Значение параметра: {{step10}}
3.5. Шаг 5: Запуск
Запускаем интеграцию.
4. Запускаем проверку на неделю
4.1. Шаг 1: Откуда
Настройка этого шага произвольная.
4.2. Шаг 2: Инструменты
- Проверка что интеграция запущена инструментом
Используем проверку по полю source.startedFromInstrument. Условие - Существует, Действие - Продолжить, если проверка пройдена.
4.3. Шаг 3: Куда
Запускаем интеграцию, описанную в предыдущем пункте.
Далее можем просто запустить интеграцию и добавить расписание для данной интеграции в разделе Расписание интеграций.
5. Итог
С помощью 3-х интеграций, которые вы можете настроить в Пинкит по данной инструкции, вы получите автоматическую отправку сообщений для лидов, у которых срок реализации - 1 неделя.
Сообщения отправляются по шаблонам, которые хранятся в универсальных списках Битрикс24, с проверкой, что время рабочее, а также что сообщение нужно отправить согласно установленному таймеру.
Остались вопросы? Спросите у нас в Телеграм или WhatsApp.
Если вам нужна интеграция с сервисом, которого в Пинкит нет, или приватное событие/действие, через Пинкитбилдер вы можете самостоятельно добавить авторизацию, необходимые события и действия без разработки. Протестируйте Пинкит, зарегистрировавшись в личном кабинете по ссылке: https://lk.pinkit.io/register.
Алексей Окара, продакт-менеджер Пинкит
#пинол #пинкит #pinall #pinkit #bitrix24 #битрикс24 #amo #amocrm #амо #амоцрм #crm #црм #црмсистема #црм_система #внедрениецрм #интеграция #миграция #обмен #пинкит_whatsapp_битрикс24 #пинкит_wazzup_битрикс24