Files
aiform_dev/docs/N8N_WORKFLOW_6mxRJ2LLHmQXyaDz_CHANGES.md

136 lines
5.5 KiB
Markdown
Raw Normal View History

# Конкретные изменения в 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)