Мониторинг работы почтовых форм
На любом коммерческом сайте присутствуют контакты и формы сбора лидов. Если утрировать и отбросить всю мишуру, то можно сказать, что сайты создаются только ради сбора обращений. Формы могут быть разными: обратная связь, перезвонить/заказать звонок, чат с поддержкой, оформление заказа и т.д. Но важно одно, формы всегда должны быть в рабочем состоянии.
Если с контактами все понятно, достаточно поддерживать их актуальность, то с формами сложней. Не понятно, как быстро отследить, что форма перестала работать. Можно навесить цели метрики и сравнивать достижения целей с количеством обращений. Но это сложно и требует ресурсов, к тому же не всегда получится быстро среагировать на поломку – каждый день никто не будет сверять метрику и заявки.
Формы могут быть достаточно разные по функционалу и сбор лидов с них тоже разный. Начиная от простого письма на почту, заканчивая заявкой в CRM. Серьезные интеграции не всегда оправданы и зачастую даже большие организации останавливаются на классическом приеме заявок, на email. Это не столько экономия, сколько проблема отладки и доработки процессов – не просто встроить новый поток лидов в существующую систему. Проще отправить письмо менеджеру на почту, чтобы он разобрался, что дальше делать с заявкой и куда добавить контакты. Понятно, что это отнимает ресурсы и нужно автоматизировать. Так же всем понятно, что на дальней дистанции, интеграция со встраиванием заявок во все отлаженные процессы, окупится и даже принесет профит за счет разгрузки сотрудника, которому нужно разгребать почту. Но мы живем в реальном мире, где интеграции с CRM-ками встречаются на много реже, простой отправки на почту или записи в гугл таблицу.
В итоге мы имеем большое количество сайтов, где по разным страницам и разделам разнесены формы сбора пользовательских контактов, уведомления с которых отправляются на email. Почтовые отправки не стабильные, есть ряд причин, по которым письма могут перестать отправляться на почты менеджеров: сервер/хостинг попадают в бан, smtp начинает сбоить или меняются настройки, банально не оплачен smtp или обновлен от него пароль и тд. Все эти проблемы решаемы, но их сложно вовремя заметить. Проверки статуса отправки в коде не дают стопроцентную гарантию. Иногда почтовый сервер может без ошибок принимать письма, но не отправлять их или слать в спам. Поэтому просто обработки статуса отправки недостаточно, это может сыграть злую шутку – в логах все в порядке, а письма не доходят до менеджера.
Поэтому, чтобы своевременно реагировать на проблему с отправками писем, мы написали скрипт, который смотрит наш проверочный почтовый ящик наличие писем. Сам же почтовый ящик-мониторинг добавляем в копию получателей для каждой формы, нуждающейся в проверке. То есть мы не надеемся на условия ответа smtp или простого mail. И ложный статус «успеха» от почтового сервера уже никак не повлияет на проверку работоспособности форм. Письмо либо пришло, либо нет, по-другому трактовать не получится. Скрипт мониторинга каждый час подключается к почтовому сервису по IMAP-протоколу, проверяет наличие новых писем и делает их выборку по маске в теме: «Название сайта – название формы». Дальше дело техники – посчитать письма и записать данные в базу данных с разбивкой по доменам и названиям форм. А чтобы держать руку на пульсе, каждое утро собирается отчет, который отправляет бот в телеграм. Трафик на клиентских сайтах такой, что нам достаточно двух уведомлений для оперативного реагирования с минимальными потерями в случае поломок: отчет по всем формам за вчерашний день и сводка по сайтам/формам, с которых уже три дня не приходили письма, это повод проверить форму на работоспособность. Ну и конечно, кроме отправки писем, все данные дублируются в базе данных, чтобы в случаи аварии и ее обнаружении, можно было сделать выгрузку всех потерянных лидов.
Кроме того, имея все данные по формам, можно вести учет лидов и сверять показания с целями метрики. Или просто оперативно сделать срез количества обращений по каждому проекту или конкретным формам. Для этого собрали простенькую админку, со списком всех сайтов, где настроен мониторинг. И отдельную страницу с детальным просмотром заявок с каждой формы, а для большей детализации добавлена фильтрациа по датам с выбором диапазона.
Спасибо за внимание) Если есть идеи, как упростить проверку или наоборот доработать наш вариант реализации, то пишите в комментарии или присылайте в телеграм: мне в ЛС или в группу БАГодельня, где я делюсь подобными наработками нашей команды, кейсами, кодом и другими разработческими штуками.