Минимальный публичный ответ заявки

Назначение

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

Серверное хранение заявки, qualification, technical priority, внутренний UUID и события не меняются.

Единый успешный envelope

Новая заявка возвращает HTTP 201:

{
  "ok": true,
  "success": true,
  "duplicate": false,
  "request_id": "<номер обращения>",
  "notification_status": "sent"
}

Повтор существующей заявки возвращает HTTP 200:

{
  "ok": true,
  "success": true,
  "duplicate": true,
  "request_id": "<тот же номер обращения>",
  "notification_status": "sent"
}

Для restricted, hold или anonymized заявки используется тот же envelope с notification_status: "disabled".

Допустимые значения notification_status:

Поля, запрещённые в публичном success response

Браузеру не возвращаются:

request_id сохраняется: его создаёт браузер до отправки, он уже известен пользователю и используется как номер обращения.

Клиентская совместимость

assets/js/online-application.js считает канал успешным по HTTP-статусу и признакам ok/success. Переход на /spasibo/, локальная 24-часовая сводка и аналитика строятся из исходного payload формы, а не из lead_id, CRM-статуса или qualification ответа.

Поэтому минимизация не меняет:

Ошибочные ответы

Ошибочные ответы сохраняют безопасные технические коды, например:

Они не должны содержать stack trace, SQL-текст, secrets, персональные данные или внутренние строки заявки.

Граница применения

Контракт относится к будущему Supabase Edge Function. На рабочем сайте сохраняются mode: "web3forms" и пустой endpoint до общей приёмки backend.

ЗаявкаПозвонитьВК