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