Уведомления менеджеру - письмо, чат, эскалация по времени
Настраиваем оповещение команды магазина: письмо о новом заказе, дубль в рабочий чат, назначение ответственного и напоминание о забытых заказах.
Что нужно знать заранее
Штатное письмо о новом заказе уходит на адрес магазина из настроек сайта. Этот адрес часто остаётся с момента установки, и письма годами падают в ящик, который никто не открывает.
Письмо команда замечает заметно медленнее сообщения в рабочем чате. Поэтому в магазинах с потоком заказов письмо остаётся архивом, а рабочим каналом становится чат или уведомление в системе учёта.
Уведомление без назначенного ответственного быстро превращается в общий фоновый шум. Пока у заказа нет конкретного человека, каждый считает, что им займётся кто-то другой из смены.
Шаги
- Проверить, на какой адрес уходит штатное письмо о новом заказе магазина.
- Настроить дубль уведомления в рабочий чат команды с коротким описанием состава заказа.
- Назначать ответственного за заказ автоматически либо понятным правилом распределения смены.
- Настроить напоминание о заказах, которые никто не тронул за отведённое время.
- Договориться о тихих часах, чтобы ночные заказы не будили дежурного сотрудника зря.
Решение
Проверяем адрес получателя штатного письма:
$rs = \Bitrix\Main\Mail\Internal\EventMessageTable::getList(['filter' => [ '=EVENT_NAME' => 'SALE_NEW_ORDER'], 'select' => ['ID', 'LID', 'EMAIL_TO', 'ACTIVE']]);print_r($rs->fetchAll());printf("адрес сайта: %s\n", \Bitrix\Main\Config\Option::get('main', 'email_from'));// пустой или устаревший адрес получателя - самая частая причина «мы не знали о заказе»Адрес получателя проверяют вместе с активностью шаблона письма. Выключенный шаблон и забытый ящик дают одинаковый результат: заказ оформлен, а команда о нём не знает.
Дублируем уведомление в рабочий чат:
\Bitrix\Main\EventManager::getInstance()->addEventHandler('sale', 'OnSaleOrderSaved', static function (\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); if (!$event->getParameter('IS_NEW')) { return; } notifyChat(sprintf('Заказ №%s на %s руб., покупатель %s', $order->getField('ACCOUNT_NUMBER'), $order->getPrice(), $order->getUserId())); });В сообщение кладут только то, что нужно для решения. Номер заказа, сумма и способ доставки помогают понять срочность, а полный состав менеджер откроет в карточке заказа сам.
Назначаем ответственного за заказ:
$props = $order->getPropertyCollection();$responsible = $props->getItemByOrderPropertyCode('RESPONSIBLE_ID');$responsible?->setValue(pickManagerOnDuty()); // правило распределения смены$order->save();// без ответственного заказ висит в общей куче и ждёт, пока кто-нибудь возьмётсяНастраиваем напоминание о забытых заказах:
$stale = \Bitrix\Sale\Internals\OrderTable::getList(['filter' => [ '=STATUS_ID' => 'N', '<DATE_INSERT' => (new \Bitrix\Main\Type\DateTime())->add('-2 hours')], 'select' => ['ID', 'ACCOUNT_NUMBER', 'DATE_INSERT']])->fetchAll();if ($stale) { notifyChat('Не обработано заказов: ' . count($stale)); }// проверку вешают на задание по расписанию с шагом в полчасаНапоминание работает только с понятным порогом. Два часа в рабочее время - разумный старт, а точное число согласуют с командой магазина по её обычному темпу работы.
Соблюдаем тихие часы:
$hour = (int)date('G');if ($hour < 9 || $hour >= 21) { return; } // ночные уведомления копим до утра// исключение делают только для оплаченных заказов с быстрой доставкойТипичные проблемы
Команда узнаёт о заказах от покупателей по телефону.
Письмо о новом заказе уходит на забытый ящик или его шаблон выключен. Адрес получателя и активность шаблона письма проверяют при каждом запуске магазина.
Уведомления идут, но заказы всё равно висят.
У заказа нет ответственного, и каждый считает, что им займётся другой. Ответственного назначают правилом распределения сразу в момент создания заказа.
Менеджеры отключили уведомления в чате.
В чат уходит сообщение на каждое изменение заказа, включая чисто служебные. В чат отправляют только новые заказы и оплаты, остальное оставляют в журнале.
Ночные заказы будят дежурного зря.
Уведомления отправляются круглосуточно, без всякого учёта режима работы магазина. Ночные сообщения копят до утра, кроме заказов со срочной платной доставкой.
Письма магазину попадают в спам.
Отправитель писем не совпадает с подписанным доменом либо адрес получателя вовсе внешний. Обратный адрес приводят к домену сайта, а ящик команды заводят на своём домене.
Частые вопросы
Куда уходит штатное письмо о заказе?
На адрес магазина из настроек сайта либо на адрес, заданный в шаблоне письма. Оба места проверяют при запуске магазина и при смене команды.
Письмо или сообщение в чат?
Чат для срочного оповещения, письмо как архив с полным составом заказа. В магазинах с потоком заказов рабочим каналом становится именно чат.
Как выбрать ответственного?
Правилом распределения: по очереди, по региону или по категории товара. Главное, чтобы у заказа появился конкретный человек сразу после оформления.
Через сколько напоминать о необработанном заказе?
Обычно через один-два часа в рабочее время, но число согласуют с командой. Слишком короткий порог даёт шум, слишком длинный - потерянных покупателей.
Нужно ли уведомлять о каждом изменении заказа?
Нет, иначе уведомления перестают читать вовсе. В канал команды шлют новые заказы, оплаты и отказы, остальное остаётся в журнале.
Смежное
- Заказы магазина - оглавление подтемы
- Уведомления покупателю: письма и SMS по статусам заказа - вторая сторона тех же событий
- Статусы заказов: смена из кода, события и сопоставление с 1С - на какие статусы вешают уведомления
- Свойства заказа: чтение, запись и фильтрация по значению - где хранят ответственного за заказ
- Уведомления команде в мессенджер: вебхук, шаблон, ошибки - как устроена отправка в чат
- Своё письмо с сайта: тип события, шаблон, поля и отправка - как собирают своё письмо
- Роли менеджеров: что видит и что может в админке - кто из команды видит заказы
- Каталог и продажи - устройство продаж целиком