Files
aiform_dev/docs/N8N_WORKFLOW_6mxRJ2LLHmQXyaDz_CHANGES.md
AI Assistant 080e7ec105 feat: Получение cf_2624 из MySQL и блокировка полей при подтверждении данных
- Добавлен сервис CrmMySQLService для прямого подключения к MySQL CRM
- Обновлён метод get_draft() для получения cf_2624 напрямую из БД
- Реализована блокировка полей (readonly) при contact_data_confirmed = true
- Добавлен выбор банка для СБП выплат с динамической загрузкой из API
- Обновлена документация по работе с cf_2624 и MySQL
- Добавлен network_mode: host в docker-compose для доступа к MySQL
- Обновлены компоненты формы для поддержки блокировки полей
2025-12-04 12:22:23 +03:00

5.5 KiB
Raw Permalink Blame History

Конкретные изменения в workflow 6mxRJ2LLHmQXyaDz

Что менять:

1. После ноды user_get → добавить PostgreSQL ноду (ПЕРВАЯ)

Название ноды: PostgreSQL: Auto Confirm Contact Data

Параметры:

  • Operation: Execute Query
  • Query:
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_getPostgreSQL: Auto Confirm Contact DataExecute a SQL query2

2. После ноды PostgreSQL: Auto Confirm Contact Data → добавить PostgreSQL ноду (ВТОРАЯ)

Название ноды: PostgreSQL: Check Contact Data Status

Параметры:

  • Operation: Execute Query
  • Query:
SELECT * FROM clpr_get_contact_data_status($1);
  • Parameters:
    • $1 = {{ $json.unified_id }} ← unified_id передаётся дальше по цепочке

Подключение:

  • PostgreSQL: Auto Confirm Contact DataPostgreSQL: Check Contact Data StatusExecute a SQL query2

3. В ноде Code in JavaScript (та что перед Respond to Webhook1) → добавить флаг в ответ

Найти эту строку:

// Unified ID из PostgreSQL (обязательно!)
unified_id: userData.unified_id,  // из ноды user_get (PostgreSQL: Find or Create User)

Добавить ПОСЛЕ неё:

// Флаг подтверждения данных контакта
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 должен быть:

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)