75 lines
2.2 KiB
Markdown
75 lines
2.2 KiB
Markdown
|
|
# Получение данных контакта из MySQL в n8n
|
|||
|
|
|
|||
|
|
## Задача
|
|||
|
|
|
|||
|
|
В n8n workflow нужно получить полные данные контакта из MySQL БД vtiger CRM перед формированием финального ответа.
|
|||
|
|
|
|||
|
|
## SQL запрос
|
|||
|
|
|
|||
|
|
**Файл:** `ticket_form/docs/N8N_POSTGRESQL_GET_CONTACT_DATA.sql` (название файла устарело, но запрос для MySQL)
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
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:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
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.
|
|||
|
|
|
|||
|
|
|