Сергей Сорокин · Заказ на сайте и запись в CRM
Зачем передавать заказы сайта в Битрикс24 через очередь
Опубликовано Обновлено
Покупатель оформил заказ, сайт сохранил товары и контакты, но сотрудник не видит обращения в Битрикс24. Прежде чем отправлять заказ заново, нужно выяснить, дошел ли запрос до CRM и какой ответ получил сайт.
Сохранить заказ и поставить задачу передачи
В Unimart24 я отделил обращение к Битрикс24 от сохранения заказа. Сайт ставит задачу в очередь. Она хранит задачи передачи с идентификатором заказа и состоянием. Отдельный обработчик берет задачу, загружает сохраненный заказ и обращается к CRM.
В этой интеграции обработчик находит или создает контакт покупателя, затем создает лид. Лид хранит обращение, с которым работает сотрудник. Сохраненный заказ, контакт и лид являются разными записями. Наличие одной из них не подтверждает создание остальных.
Если обращение к CRM завершилось ошибкой, у сайта уже есть заказ, по которому можно найти покупателя и состав покупки. Для повторной передачи обработчик использует сохраненный заказ. Покупателю не нужно заново заполнять корзину.
Как я реализовал очередь и создание лида для Unimart24

Если заказ есть, а лида нет
Зафиксируйте номер заказа и время оформления. Попросите разработчика найти связанную задачу передачи и посмотреть ее состояние, последнюю ошибку и идентификатор лида, если он сохранен. Сотрудник со своей стороны проверяет Битрикс24. Сверять записи лучше по номеру заказа: один покупатель может оформить несколько покупок.
- Если задачи нет, проверьте постановку заказа в очередь. Настройка повторов не поможет записи, которая туда не попала.
- Если задача ожидает обработки, проверьте запуск обработчика и время его последней работы. Ожидание в очереди еще не означает, что CRM отклонила заказ.
- Если задача содержит ошибку, сохраните ее текст вместе с номером заказа. Он нужен, чтобы отличить недоступность CRM от проблемы в передаваемых данных или правах доступа.
- Если задача отмечена как отправленная, откройте лид по сохраненному идентификатору. Если сотрудник его не видит, проверьте доступ к записи и фильтры списка, прежде чем создавать другую.
Когда повтор поможет
Повтор имеет смысл после временной недоступности CRM, когда причина уже устранена. Если CRM отклоняет поле заказа или запрос выполняется без нужных прав, одинаковая отправка будет получать ту же ошибку. Сначала нужно исправить данные или доступ, затем проверить передачу.
В очереди Unimart24 после 5 неудачных попыток обработчик прекращает автоматические повторы и сохраняет состояние ошибки. Это ограничение конкретной реализации. В своем магазине согласуйте число попыток и сотрудника, который получит сведения об окончательной ошибке.
Проверьте, что обработчик запускается на сервере, и сверьте интервалы между фактическими попытками. Запись времени следующей попытки еще не означает, что обработчик соблюдает эту паузу.
Почему повтор может создать второй лид
CRM могла создать лид, а сайт не получил ответ до окончания времени ожидания. В этом случае отсутствие ответа оставляет результат неизвестным. Если повторить создание, в Битрикс24 может появиться второй лид по тому же заказу.
В Unimart24 перед постановкой задачи я проверяю, есть ли запись очереди с тем же идентификатором заказа. Но при повторной обработке снова вызывается создание лида. Проверка очереди не распознает лид, который CRM уже создала без полученного сайтом подтверждения.
При проектировании интеграции согласуйте с разработчиком, как сайт узнает уже переданный заказ. Например, номер заказа можно сохранять в отдельном поле CRM и использовать для сопоставления. Нужно проверить и ситуацию, когда 2 обработчика одновременно берут одну задачу: один поиск перед созданием сам по себе не исключает дубль.
Найденный контакт не подтверждает передачу заказа
Контакт хранит сведения о покупателе. В обработчике Unimart24 поиск идет сначала по телефону, затем по электронной почте. Если подходящего контакта нет, обработчик создает его и передает идентификатор при создании лида.
Телефон помогает найти покупателя, но не отличает его новый заказ от предыдущего. При проверке повтора нужно сопоставлять сам заказ и лид. Если контакт найден, а создание лида завершилось ошибкой, сотрудник еще не получил запись с составом этой покупки.
Какой состав заказа получит сотрудник
Согласуйте, какие сведения нужны в CRM для работы с заказом. В Unimart24 обработчик собирает текстовое описание товаров, количества, цен и упаковок в отдельном поле лида. Отдельные товарные позиции CRM он не создает. Если сотруднику нужны товарные строки для дальнейших действий, это нужно учесть в задании на интеграцию.
Количество и цены обработчик берет из сохраненной корзины заказа. Название упаковки, единицу и коэффициент пересчета читает из текущих данных каталога. Если каталог изменится, пока задача ожидает передачи, описание может отличаться от того, что покупатель видел при оформлении. При приемке проверьте, какие сведения сохраняются вместе с заказом, а какие обработчик получает позднее.
Для источника обращения сверьте рекламные метки и другие сведения, которые сайт действительно сохранил в заказе. Передача в CRM не восстанавливает отсутствующие данные. Сравните комментарий покупателя и сведения об оплате и доставке в сохраненном заказе и в лиде. Наличие товаров в лиде еще не подтверждает, что переданы все согласованные сведения.
Какие сведения спросить у клиента и что сайт может добавить к обращению
Что проверить до запуска интеграции
Попросите разработчика провести проверку в тестовой среде. Отключите рабочие письма и действия, которые затрагивают покупателей или рабочие данные. Для каждого сценария сохраняйте номер тестового заказа, состояние задачи, результат в CRM и время попыток.
- Оформите заказ нового покупателя, затем еще один заказ с тем же контактом. Проверьте, что обе покупки можно различить в CRM.
- Сделайте CRM недоступной на время тестовой передачи, затем восстановите доступ. Проверьте сохраненный заказ, ошибку и результат следующей попытки.
- Смоделируйте потерю ответа после создания лида. Сверьте поведение повтора и число лидов по одному заказу.
- Передайте данные, которые CRM отклоняет, и проверьте завершение автоматических попыток. Убедитесь, что назначенный сотрудник получает сведения для разбора.
- Оставьте задачу ждать и измените данные тестового товара в каталоге. Сравните состав сохраненного заказа с описанием, которое получила CRM.
