Контракт контекста подготовки заявки
Назначение
Необязательный объект preparation передаёт сведения о том, с какого этапа клиент продолжает сложный ипотечный разбор.
Контекст используется для маршрутов:
- отказ банка;
- плохая кредитная история;
- нестандартный доход;
- отсутствие первоначального взноса.
Он не является оценкой вероятности одобрения, не заменяет проверку ипотечного брокера и не меняет окончательное решение банка.
Совместимость
Публичный контракт остаётся schema_version: 1.
Объект preparation необязателен. Старые и обычные заявки без него должны продолжать приниматься.
Версия структуры контекста хранится в preparation.context_version и сейчас равна 1.
JSON
{
"preparation": {
"context_version": 1,
"active": true,
"journey_type": "Сложный региональный маршрут",
"journey_stage": "После изучения маршрута подготовки",
"scenario_slug": "otkazali-v-ipoteke",
"completed_checks": ["diagnosis", "finances"],
"completed_labels": [
"Зафиксировал(а) банк, дату и этап отказа",
"Проверил(а) кредиты, карты и ежемесячные платежи"
],
"remaining_questions": "Нужно понять, связан ли отказ с объектом"
}
}
Поля
| Поле | Тип | Ограничение | Назначение |
|---|---|---|---|
context_version |
number | сейчас 1 |
Версия структуры контекста |
active |
boolean | true только для подтверждённого сложного входа |
Отличает обычную короткую заявку |
journey_type |
string | до 160 символов | Человекочитаемый тип маршрута |
journey_stage |
string | до 200 символов | Этап, с которого продолжается разбор |
scenario_slug |
string | до 160 символов | Стабильный машинный ключ сценария |
completed_checks |
string[] | до 4 элементов | Стабильные ключи выполненных проверок |
completed_labels |
string[] | до 4 элементов, каждый до 180 символов | Подписи, которые видел клиент |
remaining_questions |
string | до 700 символов | Что осталось непонятно или требует проверки |
Допустимые ключи completed_checks:
diagnosis;finances;documents;next_step.
Web3Forms
В email-запрос передаются отдельные поля:
journey_type;journey_stage;journey_scenario_slug;preparation_completed_keys;preparation_completed;remaining_questions;preparation_json.
fields_json также содержит объект preparation.
Контекст добавляется отдельным разделом ПОДГОТОВКА ДО ОБРАЩЕНИЯ в поле message. Он не записывается в mortgage.comment и не изменяет исходный комментарий клиента.
Supabase
Дополнительная миграция:
supabase/migrations/202607130003_broker_lead_preparation.sql
Edge Function сохраняет исходный raw_payload. Серверный trigger sync_broker_lead_preparation извлекает объект в поля:
journey_type;journey_stage;journey_scenario_slug;preparation;preparation_completed;remaining_questions.
Такой подход сохраняет обратную совместимость Edge Function с schema_version=1 и позволяет CRM фильтровать заявки без разбора полного raw_payload.
Безопасность
В контексте запрещено передавать:
- паспортные данные;
- СНИЛС;
- номера документов;
- банковские реквизиты;
- коды подтверждения;
- фотографии документов;
- полный кредитный отчёт.
Пользовательские подписи и вопросы считаются недоверенным текстом. Серверная миграция ограничивает длину полей, а интерфейс ограничивает remaining_questions 700 символами.
Аналитика
События:
online_application_complex_prefill— форма распознала сложный маршрут;online_application_preparation_check— пользователь впервые изменил отметку подготовки.
Эти события не означают отправку заявки. Фактическая техническая отправка фиксируется отдельным lead_submit.