Files
aiform_dev/docs/N8N_WORKFLOW_UPDATE_CONTACT_DATA_CONFIRMED.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

3.1 KiB
Raw Blame History

Обновление workflow 6mxRJ2LLHmQXyaDz: Подтверждение данных контакта

Изменения в workflow

1. После ноды CreateWebContacКлиентправ

Добавить ноду: PostgreSQL: Auto Confirm if CRM has data

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 запрос:

SELECT * FROM clpr_get_contact_data_status($1);

Параметры:

  • $1 = {{ $('user_get').first().json.unified_id }}

Назначение: Проверяем, подтверждены ли данные. Результат передаём дальше.


3. В ответе для фронтенда (нода Code in JavaScript)

Добавить в return:

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 запрос:

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