# Конкретные изменения в workflow 6mxRJ2LLHmQXyaDz ## Что менять: ### 1. После ноды `user_get` → добавить PostgreSQL ноду (ПЕРВАЯ) **Название ноды:** `PostgreSQL: Auto Confirm Contact Data` **Параметры:** - **Operation:** Execute Query - **Query:** ```sql SELECT clpr_auto_confirm_if_crm_has_data($1, $2::integer); ``` - **Parameters:** - `$1` = `{{ $json.unified_id }}` ← используем данные из предыдущей ноды (user_get) - `$2` = `{{ JSON.parse($node['CreateWebContacКлиентправ'].json.result).contact_id }}` **Подключение:** - `user_get` → `PostgreSQL: Auto Confirm Contact Data` → `Execute a SQL query2` --- ### 2. После ноды `PostgreSQL: Auto Confirm Contact Data` → добавить PostgreSQL ноду (ВТОРАЯ) **Название ноды:** `PostgreSQL: Check Contact Data Status` **Параметры:** - **Operation:** Execute Query - **Query:** ```sql SELECT * FROM clpr_get_contact_data_status($1); ``` - **Parameters:** - `$1` = `{{ $json.unified_id }}` ← unified_id передаётся дальше по цепочке **Подключение:** - `PostgreSQL: Auto Confirm Contact Data` → `PostgreSQL: Check Contact Data Status` → `Execute a SQL query2` --- ### 3. В ноде `Code in JavaScript` (та что перед `Respond to Webhook1`) → добавить флаг в ответ **Найти эту строку:** ```javascript // Unified ID из PostgreSQL (обязательно!) unified_id: userData.unified_id, // из ноды user_get (PostgreSQL: Find or Create User) ``` **Добавить ПОСЛЕ неё:** ```javascript // Флаг подтверждения данных контакта contact_data_confirmed: $('PostgreSQL: Check Contact Data Status').first().json.is_confirmed || false, contact_data_can_edit: $('PostgreSQL: Check Contact Data Status').first().json.can_edit !== false, contact_data_confirmed_at: $('PostgreSQL: Check Contact Data Status').first().json.confirmed_at || null, ``` **Полный return должен быть:** ```javascript return { success: true, result: { session: $('Code in JavaScript3').first().json.session_id, contact_id: sessionData.contact_id || claimResult.contact_id, project_id: sessionData.project_id, // Unified ID из PostgreSQL (обязательно!) unified_id: userData.unified_id, // Флаг подтверждения данных контакта contact_data_confirmed: $('PostgreSQL: Check Contact Data Status').first().json.is_confirmed || false, contact_data_can_edit: $('PostgreSQL: Check Contact Data Status').first().json.can_edit !== false, contact_data_confirmed_at: $('PostgreSQL: Check Contact Data Status').first().json.confirmed_at || null, // Данные заявки ticket_id: claimResult.ticket_id, ticket_number: claimResult.ticket_number, title: claimResult.title, category: claimResult.category, status: claimResult.status, // Метаданные event_type: sessionData.event_type, current_step: sessionData.current_step || 1, updated_at: sessionData.updated_at || new Date().toISOString(), // Дополнительно is_new_contact: claimResult.is_new_contact || false } }; ``` --- ## Итого: 3 изменения 1. ✅ Добавить ноду `PostgreSQL: Auto Confirm Contact Data` после `CreateWebContacКлиентправ` 2. ✅ Добавить ноду `PostgreSQL: Check Contact Data Status` после `user_get` 3. ✅ Добавить 3 строки в `Code in JavaScript` перед `Respond to Webhook1` --- ## Порядок выполнения в workflow: ``` contact → Edit Fields → Get Challenge → ... → Login to CRM → form_id ↓ CreateWebContacКлиентправ ↓ [НОВАЯ] PostgreSQL: Auto Confirm Contact Data ↓ Code in JavaScriptКлиентправ ↓ user_get ↓ [НОВАЯ] PostgreSQL: Check Contact Data Status ↓ Execute a SQL query2 ↓ ... ↓ Code in JavaScript (← ДОБАВИТЬ ФЛАГИ) ↓ Respond to Webhook1 ``` --- ## Проверка: После изменений в ответе n8n должны быть поля: - `contact_data_confirmed` (true/false) - `contact_data_can_edit` (true/false) - `contact_data_confirmed_at` (дата или null)