Files
aiform_prod/docs/N8N_PROFILE_CONTACT_WEBHOOK_RESPONSE.md

32 lines
2.1 KiB
Markdown
Raw Normal View History

# Профиль: ответ N8N_CONTACT_WEBHOOK из SQL
## Цепочка в n8n
1. **Webhook** (POST) — получает от бэкенда `unified_id`, `entry_channel`, `chat_id`, `session_token`, `contact_id`, `phone`.
2. **SQL** — по `unified_id`/`contact_id` выбирает контакт из БД. Возвращает массив строк в формате:
- `contactid`, `firstname`, `lastname`, `email`, `mobile`, `phone`, `birthday`, `mailingstreet`, `middle_name`, `birthplace`, `inn`, `verification`, `bank`
3. **Code** — преобразует строки в JSON для ответа вебхука (см. `N8N_CODE_PROFILE_CONTACT_RESPONSE.js`).
4. **Respond to Webhook** — отдаёт ответ клиенту (тело = вывод Code).
## Формат ответа
- **Ничего не нашли:** вернуть **HTTP 200** и тело `{ "items": [] }`.
- **Нашли контакт(ы):** **HTTP 200** и тело `{ "items": [ { ...поля в snake_case... } ] }`.
Поля контакта (уже в формате мини-апа после Code):
- `last_name`, `first_name`, `middle_name`
- `birth_date`, `birth_place`
- `inn`, `email`, `phone`
- `registration_address` (в SQL: `mailingstreet` — адрес регистрации)
- `mailing_address`, `bank_for_compensation`
## Подстановка Code-ноды
- Скопировать код из `aiform_prod/docs/N8N_CODE_PROFILE_CONTACT_RESPONSE.js` в ноду **Code**.
- Вход Code — вывод SQL (один item с массивом в `json` или несколько items по одному контакту).
- Выход Code — один item с `{ "items": [ ... ] }`.
- В **Respond to Webhook** указать: ответить телом из предыдущей ноды (всё из Code), чтобы в ответ ушёл именно `{ "items": [...] }`.
Если SQL не нашёл строк — перед Code добавьте условие (IF): при пустом результате отдавать в Respond to Webhook тело `{ "items": [] }` и статус 200.