Перейти к содержимому

Уведомления менеджеру - письмо, чат, эскалация по времени

Настраиваем оповещение команды магазина: письмо о новом заказе, дубль в рабочий чат, назначение ответственного и напоминание о забытых заказах.

Что нужно знать заранее

Штатное письмо о новом заказе уходит на адрес магазина из настроек сайта. Этот адрес часто остаётся с момента установки, и письма годами падают в ящик, который никто не открывает.

Письмо команда замечает заметно медленнее сообщения в рабочем чате. Поэтому в магазинах с потоком заказов письмо остаётся архивом, а рабочим каналом становится чат или уведомление в системе учёта.

Уведомление без назначенного ответственного быстро превращается в общий фоновый шум. Пока у заказа нет конкретного человека, каждый считает, что им займётся кто-то другой из смены.

Шаги

  1. Проверить, на какой адрес уходит штатное письмо о новом заказе магазина.
  2. Настроить дубль уведомления в рабочий чат команды с коротким описанием состава заказа.
  3. Назначать ответственного за заказ автоматически либо понятным правилом распределения смены.
  4. Настроить напоминание о заказах, которые никто не тронул за отведённое время.
  5. Договориться о тихих часах, чтобы ночные заказы не будили дежурного сотрудника зря.

Решение

Проверяем адрес получателя штатного письма:

$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; } // ночные уведомления копим до утра
// исключение делают только для оплаченных заказов с быстрой доставкой

Типичные проблемы

Команда узнаёт о заказах от покупателей по телефону.

Письмо о новом заказе уходит на забытый ящик или его шаблон выключен. Адрес получателя и активность шаблона письма проверяют при каждом запуске магазина.

Уведомления идут, но заказы всё равно висят.

У заказа нет ответственного, и каждый считает, что им займётся другой. Ответственного назначают правилом распределения сразу в момент создания заказа.

Менеджеры отключили уведомления в чате.

В чат уходит сообщение на каждое изменение заказа, включая чисто служебные. В чат отправляют только новые заказы и оплаты, остальное оставляют в журнале.

Ночные заказы будят дежурного зря.

Уведомления отправляются круглосуточно, без всякого учёта режима работы магазина. Ночные сообщения копят до утра, кроме заказов со срочной платной доставкой.

Письма магазину попадают в спам.

Отправитель писем не совпадает с подписанным доменом либо адрес получателя вовсе внешний. Обратный адрес приводят к домену сайта, а ящик команды заводят на своём домене.

Частые вопросы

Куда уходит штатное письмо о заказе?

На адрес магазина из настроек сайта либо на адрес, заданный в шаблоне письма. Оба места проверяют при запуске магазина и при смене команды.

Письмо или сообщение в чат?

Чат для срочного оповещения, письмо как архив с полным составом заказа. В магазинах с потоком заказов рабочим каналом становится именно чат.

Как выбрать ответственного?

Правилом распределения: по очереди, по региону или по категории товара. Главное, чтобы у заказа появился конкретный человек сразу после оформления.

Через сколько напоминать о необработанном заказе?

Обычно через один-два часа в рабочее время, но число согласуют с командой. Слишком короткий порог даёт шум, слишком длинный - потерянных покупателей.

Нужно ли уведомлять о каждом изменении заказа?

Нет, иначе уведомления перестают читать вовсе. В канал команды шлют новые заказы, оплаты и отказы, остальное остаётся в журнале.

Смежное

Первоисточник