88 lines
3.1 KiB
Markdown
88 lines
3.1 KiB
Markdown
|
|
# Обновление workflow 6mxRJ2LLHmQXyaDz: Подтверждение данных контакта
|
|||
|
|
|
|||
|
|
## Изменения в workflow
|
|||
|
|
|
|||
|
|
### 1. После ноды `CreateWebContacКлиентправ`
|
|||
|
|
|
|||
|
|
**Добавить ноду:** `PostgreSQL: Auto Confirm if CRM has data`
|
|||
|
|
|
|||
|
|
**SQL запрос:**
|
|||
|
|
```sql
|
|||
|
|
SELECT clpr_auto_confirm_if_crm_has_data($1, $2::integer);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Параметры:**
|
|||
|
|
- `$1` = `{{ $('user_get').first().json.unified_id }}`
|
|||
|
|
- `$2` = `{{ JSON.parse($node['CreateWebContacКлиентправ'].json.result).contact_id }}`
|
|||
|
|
|
|||
|
|
**Назначение:** Если данные уже есть в CRM (contact_id > 0), автоматически ставим флаг подтверждения.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2. После ноды `Code in JavaScriptКлиентправ`
|
|||
|
|
|
|||
|
|
**Добавить ноду:** `PostgreSQL: Check Contact Data Status`
|
|||
|
|
|
|||
|
|
**SQL запрос:**
|
|||
|
|
```sql
|
|||
|
|
SELECT * FROM clpr_get_contact_data_status($1);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Параметры:**
|
|||
|
|
- `$1` = `{{ $('user_get').first().json.unified_id }}`
|
|||
|
|
|
|||
|
|
**Назначение:** Проверяем, подтверждены ли данные. Результат передаём дальше.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 3. В ответе для фронтенда (нода `Code in JavaScript`)
|
|||
|
|
|
|||
|
|
**Добавить в return:**
|
|||
|
|
```javascript
|
|||
|
|
const contactStatus = $('PostgreSQL: Check Contact Data Status').first().json;
|
|||
|
|
|
|||
|
|
return {
|
|||
|
|
// ... существующие поля ...
|
|||
|
|
contact_data_confirmed: contactStatus.is_confirmed || false,
|
|||
|
|
contact_data_can_edit: contactStatus.can_edit !== false,
|
|||
|
|
contact_data_confirmed_at: contactStatus.confirmed_at || null
|
|||
|
|
};
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 4. После подтверждения формы (workflow для `claim_confirmed`)
|
|||
|
|
|
|||
|
|
**Добавить ноду:** `PostgreSQL: Set Contact Data Confirmed`
|
|||
|
|
|
|||
|
|
**SQL запрос:**
|
|||
|
|
```sql
|
|||
|
|
SELECT clpr_set_contact_data_confirmed($1, NOW());
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Параметры:**
|
|||
|
|
- `$1` = `{{ $json.unified_id }}`
|
|||
|
|
|
|||
|
|
**Назначение:** Устанавливаем флаг подтверждения после успешного сохранения данных.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Порядок выполнения
|
|||
|
|
|
|||
|
|
1. **Создание контакта** → `CreateWebContacКлиентправ`
|
|||
|
|
2. **Автоподтверждение** → Если данные есть в CRM → `clpr_auto_confirm_if_crm_has_data`
|
|||
|
|
3. **Проверка статуса** → `clpr_get_contact_data_status` → передаём фронтенду
|
|||
|
|
4. **Фронтенд** → Если `contact_data_confirmed = true` → блокируем редактирование
|
|||
|
|
5. **После подтверждения** → `clpr_set_contact_data_confirmed` → устанавливаем флаг
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Проверка в n8n
|
|||
|
|
|
|||
|
|
После обновления workflow проверить:
|
|||
|
|
- ✅ Флаг устанавливается при наличии данных в CRM
|
|||
|
|
- ✅ Флаг устанавливается после подтверждения формы
|
|||
|
|
- ✅ Статус передаётся фронтенду
|
|||
|
|
- ✅ Фронтенд блокирует редактирование при `contact_data_confirmed = true`
|
|||
|
|
|