ВЫСОКИЙ · потерянные заявки
Одна ошибка выключала весь сценарий
Настройка «Allow storing of incomplete executions» (хранить незавершённые запуски) была выключена. Если Google Sheets, Slack или Gmail давали сбой, запуск останавливался с ошибкой и повторить его было уже нельзя: сайт форму заново не отправляет. Хуже того, при настройках ошибок по умолчанию Make выключает сценарий с запуском от webhook сразу после первой ошибки, и все следующие заявки пропадали, пока кто-нибудь этого не замечал.
Исправление: незавершённые запуски включены, а на шагах Sheets, Slack и Gmail стоят обработчики Break с автоматическим повтором. Теперь шаг со сбоем ждёт и пробует снова, а не останавливает всё.
ВЫСОКИЙ · пустые поля
Ошибки API принимались за ответы
В поиске зоны по индексу (старый модуль HTTP) была выключена настройка «Evaluate all states as errors». Когда API отвечал ошибкой 401 или 500, Make шёл дальше и принимал текст ошибки за зону обслуживания, а поле «Area:» в уведомлениях оставалось пустым.
Исправление: переход на актуальный модуль HTTP «Make a request» с включённой настройкой «Return error if HTTP request fails» и обработчик Resume, который пишет «area lookup failed, check ZIP» (зону найти не удалось, проверьте индекс). Заявка всё равно доходит до продаж с понятной пометкой.
ВЫСОКИЙ · безопасность
Рабочий ключ API лежал прямо в адресе модуля
Ключ получал каждый, к кому попадала выгрузка сценария (blueprint): фрилансер или тот, с кем поделились шаблоном.
Исправление: ключ перенесён в хранилище ключей Make (keychain, вход по ключу API в модуле HTTP) и в выгрузку больше не попадает, а старый ключ заменён на новый.
ВЫСОКИЙ · пустые поля
Два поля брали данные из шагов, которые не выполнялись
Уведомление в Slack брало «Quote #» (номер заявки) из модуля Gmail на другом маршруте, а письмо в отдел продаж брало поле из модуля, который уже удалили. Оба поля всегда были пустыми.
Исправление: оба поля теперь берут номер строки Google Sheets из шага «Log request» (запись заявки), который на любом пути выполняется до развилки.
СРЕДНИЙ · лишние письма и пропуски
Продажи получали письмо на каждую услугу или ни одного
Iterator по списку услуг передавал данные прямо в Gmail. Клиент отмечал три услуги, и приходили три почти одинаковых письма. При ручном разборе нашлось ещё: если клиент не отметил ни одной услуги, письма не было вовсе, потому что из пустого списка iterator ничего дальше не передаёт.
Исправление: iterator убран. Письмо перечисляет услуги через join(), а при пустом списке пишет «не указано»: одна заявка, всегда одно письмо.
ВЫСОКИЙ · найдено при ручном разборе
«Urgent» не совпадало с «urgent»
Фильтры развилки сравнивали «urgent» и «standard» точно, с учётом регистра букв. Если форма присылала «Urgent» или пустое значение, не подходил ни один маршрут. Строка в таблицу уже записалась, но запасного маршрута не было, и о заявке никто не узнавал.
Исправление: «urgent» сравнивается без учёта регистра, а маршрут продаж стал запасным (fallback): всё, что не срочно, доходит до продаж.
НИЗКИЙ · мелочи
Настройки помельче
Строки в Sheets записывались как простой текст, поэтому даты и числа не сортировались и не фильтровались.
Исправление: valueInputOption: USER_ENTERED.