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

2.2 KiB
Raw Blame History

Получение данных контакта из MySQL в n8n

Задача

В n8n workflow нужно получить полные данные контакта из MySQL БД vtiger CRM перед формированием финального ответа.

SQL запрос

Файл: ticket_form/docs/N8N_POSTGRESQL_GET_CONTACT_DATA.sql (название файла устарело, но запрос для MySQL)

SELECT 
    cd.contactid,
    cd.firstname,
    cd.lastname,
    cd.email,
    cd.mobile,
    cd.phone,
    cs.birthday,
    ca.mailingstreet,
    ca.mailingcity,
    ca.mailingstate,
    ca.mailingzip,
    ca.mailingcountry,
    ccf.cf_1157 AS middle_name,
    ccf.cf_1263 AS birthplace,
    ccf.cf_1257 AS inn,
    ccf.cf_1849 AS requisites,
    ccf.cf_1580 AS code,
    ccf.cf_1706 AS sms,
    ccf.cf_2624 AS cf_2624
FROM vtiger_contactdetails cd
LEFT JOIN vtiger_contactscf ccf ON ccf.contactid = cd.contactid
LEFT JOIN vtiger_contactsubdetails cs ON cs.contactsubscriptionid = cd.contactid
LEFT JOIN vtiger_contactaddress ca ON ca.contactaddressid = cd.contactid
LEFT JOIN vtiger_crmentity ce ON ce.crmid = cd.contactid
WHERE cd.contactid = ?
  AND ce.deleted = 0
LIMIT 1;

Настройка ноды MySQL в n8n

  1. Тип ноды: MySQL
  2. Operation: Execute Query
  3. Query: (см. выше)
  4. Parameters:
    • ? = {{ JSON.parse($node["CreateWebContacКлиентправ"].json.result).contact_id }}

Credentials для MySQL

  • Host: localhost
  • Port: 3306
  • Database: ci20465_72new
  • User: ci20465_72new
  • Password: EcY979Rn

Использование в Code node

После выполнения MySQL запроса, данные доступны в Code node:

const pgContactNode = $('MySQL: Get Contact Data')?.first();
if (pgContactNode && pgContactNode.json && pgContactNode.json.length > 0) {
  const contactFromDb = pgContactNode.json[0];
  // Используем contactFromDb.cf_2624, contactFromDb.firstname, и т.д.
}

Примечание: Название файла N8N_POSTGRESQL_GET_CONTACT_DATA.sql устарело, но запрос работает для MySQL.