- Добавлен сервис CrmMySQLService для подключения к MySQL БД vtiger CRM - Обновлён get_draft() для прямого SQL запроса к MySQL вместо webservice API - Получение cf_2624 и всех данных контакта из MySQL - Обновлена документация и SQL файлы для n8n - Добавлено логирование для отладки Преимущества: - Проще: один SQL запрос вместо цепочки HTTP запросов - Быстрее: прямой запрос к БД - Надёжнее: не зависит от webservice API - Актуальнее: всегда свежие данные из БД
2.2 KiB
2.2 KiB
Получение данных контакта из 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
- Тип ноды: MySQL
- Operation: Execute Query
- Query: (см. выше)
- 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.