Через неделю после релиза предыдущая статья , где я рассказывал о сборке бота для Telegram, ко мне за консультацией обратился интернет-магазин часов, который к тому времени уже выстроил некоторые процессы под свои нужды.
По мере роста их бизнеса они столкнулись с проблемой обработки большого количества входящих заявок, а быстрый ответ на заявку определяет, купит человек продукт или нет. Здесь я опишу свой кейс по оптимизации процессов интернет-магазина с помощью Corezoid.com и приведу общедоступную ссылку на шаблон процесса, описанный ниже.
Что делать: 1) Добавьте лид в CRM (в данном случае это Битрикс24), заполнив все необходимые дополнительные поля.
2) Уведомлять продавцов о поступлении заявки или ошибке.
3) Уведомить клиента об успешно принятом заказе, а также рассказать о дополнительной акции (постараться разогреть клиента, увеличить средний чек).
На входе имеем: 1) Имя и телефон клиента, заинтересованного в нашем продукте.
2) Город клиента определяется по IP. 3) Часовой пояс клиента.
4) ID партнера (реферальная ссылка в файлах cookie), от которого пришло приложение.
Решением стало подключение API нескольких сервисов через Corezoid.com, а именно: Битрикс24 (CRM-система) + VoxImplant (сервис реализации обратного звонка) + Telegram (мессенджер).
Чтобы отправить лид на обработку в Corezoid, необходимо сделать API-запрос от PHP-скрипта, который получает данные из веб-формы на сайте.
В их примере это выглядит так:
Объект $data формируется из данных, которые необходимо передать в Corezoid для обработки.$data = (object) array('server'=>$_SERVER,'cookies'=>$_COOKIE,'post'=>$_POST ); $full = (object) array('ops'=> array( (object) array( 'ref'=>$ip,'type'=>'create','obj'=>'task','conv_id'=>'31754','data'=> $data)) ); $cmd = ( json_encode( $full ) ); $str = "curl ' https://www.corezoid.com/api/1/json/public/31754/e4203ff8f55f17595a46549d35dbd00d51d0879d ' -H 'Accept: application/json, text/javascript, */*; q=0.01' --data '".
$cmd."' --compressed"; $res = shell_exec($str);
Объект $ops включает параметр ref (reference) — уникальный идентификатор, под которым приложение будет записано в Corezoid. Если на данный момент уже есть запущенная заявка с таким же рефом, то вторая не будет добавлена.
В этом примере они используют IP-адрес клиента в качестве ссылки.
Параметр conv_id отвечает за создание задачи в конкретном процессе (ID Process).
URL-адрес, на который будем отправлять данные и conv_id процесса, берем из свойства в админке:
Обработка заявки
Первым делом приложение попадает на стартовый узел.
Отличается от всех остальных зеленым цветом.
Вы можете просмотреть это приложение и увидеть данные, которые были получены в качестве входных данных.
Поскольку магазин активно использует партнерскую схему продаж, первым делом необходимо определить, от какого партнера поступил заказ.
Через API Битрикс24 мы получаем идентификатор и данные этого партнера.
Для авторизации API мы подставляем в значение параметра «auth» конструкцию, позволяющую динамически получать значение «access_token» в процессе его генерации и обновления.
Подробное описание этого процесса в документации на Corezoid.com В этом примере данные партнерского тега хранятся в объекте cookie в параметре utm_source, который компания отслеживает после перехода по партнерской ссылке.
Мы передаем значение этого параметра в API.
Следующий шаг — логика КОДА, в котором магазин обрабатывает телефон.
Обработка заключается в автоматической замене первой цифры 8 на 7, а если клиент ввел всего 10 цифр и первая начинается с 9, то к началу добавляем 7, чтобы телефон корректно обработался скриптом набора номера.
Следующим шагом будет отправка заявки в отдельный ПКП -процесс «Создание нового лида [RPC]».
Он создает лид в CRM и возвращает идентификатор лида.
В документации Corezoid есть подробное описание этого процесса .
Если лид создан успешно, идентификатор будет возвращен в переменную lead_id.
Следующий шаг — скопировать приложение в процесс, который будет вызывать клиента.
После копирования он сразу же перейдет к следующему шагу, не дожидаясь возврата каких-либо значений из процесса вызова робота VoxImplant. В этом основное отличие от запроса RPC, в котором ожидается возврат данных из другого процесса.
Логика набора номера сначала добавляет переменную с длиной телефона посредством логики КОДА.
Если телефон длиннее 11 цифр, он отправляется на конечный узел, поскольку телефон слишком длинный.
Следующий блок получает в переменную timenow текущее время по MSK.
Это нужно для того, чтобы в случае прихода лида ночью или рано утром магазин не беспокоил клиента ночным звонком, а просто отправлял СМС об успешно принятом заказе и сообщение о том, что вам перезвонят в рабочее время.
часы.
После логики КОДА этот же блок проверяет время суток и факт отправки СМС клиенту.
Если сообщение не было отправлено и время не работает, то запрос переходит в блок «Отправить ночные СМС».
Здесь магазин отправляет клиенту SMS через логику API и получает ответ в переменной описания.
Затем они уходят «спать» в таймаут на 2 часа.
Приложение, зависшее в таймауте, выглядит так:
Если это рабочее время, то нужно позвонить клиенту и сообщить об успешно принятом заказе, а также рассказать о дополнительной акции.
Эта задача была реализована посредством логики API, которая запускает скрипт в сервисе VoxImplant.
VoxImplant звонит клиенту и проигрывает ему подготовленную запись успешно принятого заказа.
Дополнительно в код встроена функция обнаружения автоответчика.
{код сценария} Далее запрос поступает в логику обратного вызова в Corezoid, которая ожидает ответа от VoxImplant с результатами вызова.
Если не дождаться ответа, что-то пошло не так и заявка «падает» в ручную обработку.
Если все ок, и VoxImplant прислал результаты, то вступаем в процесс распространения результатов.
Если номер неправильный, то заявка переходит на конечный узел; звонить или отправлять СМС на этот номер нет смысла.
Если клиент не берет трубку или его телефон сейчас выключен, то наш запрос переходит в статус «Не звонят» и занимает таймаут в полчаса.
Если клиент успешно дозвонился, мы дополнительно уведомляем по СМС об успешном принятии его заказа и закрываем заявку.
Когда VoxImplant обнаруживает автоответчик, магазин также отправляет клиенту СМС, но дальше они не звонят, так как неизвестно, когда клиент возьмет трубку, а магазин будет тратить деньги на каждый звонок.
Дополнительно логика может включать ограничение количества звонков, а также обновление лида в CRM со статусом звонка.
Процесс также предусматривает уведомление в Telegram продавцу, если в основном процессе при получении списка партнеров обнаружен недействительный токен и заявку необходимо обработать вручную.
И уведомление об успешно добавленном лиде.
А в процессе работы дашборда, используя логику IF, заказы распределяются между узлами по критериям, определяющим партнера или площадку и общую сумму заказов от каждого партнера.
В следующих статьях я опишу другие случаи использования Corezoid в интернет-магазине и поделюсь шаблонами: организация партнёрской программы (Битрикс24+Corezoid+Google Таблицы); автоматизация курьерской службы (МойСклад+Corezoid+Telegram); Проверка статуса счета (Cdek+Corezoid+Telegram); Бот – контроллер выполнения бизнес-процессов (Telegram + Corezoid + Bitrix).
О том, что самое интересное, пишите в комментариях.
Шаблон, описанный в статье, доступен связь .
А реализовать свои кейсы объединения разных сервисов в единую экосистему можно на Corezoid.com .
Есть вопросы? Вы можете связаться со мной по адресу Телеграмма или через электронная почта.
Теги: #оптимизация #интернет-магазин #обработка лидов #voximplant #bitrix #corezoid #Telegram #обслуживание клиентов #шаблон #Erlang/OTP #SaaS / S+S #Amazon Web Services