Unified auth and sessions: POST /api/v1/auth, session by channel:id and token, need_contact fix, n8n parsing, TTL 24h
This commit is contained in:
31
docs/N8N_PROFILE_CONTACT_WEBHOOK_RESPONSE.md
Normal file
31
docs/N8N_PROFILE_CONTACT_WEBHOOK_RESPONSE.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Профиль: ответ 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.
|
||||
Reference in New Issue
Block a user