Files
aiform_dev/docs/N8N_WORKFLOW_ADD_POSTGRESQL_CONTACT.md

101 lines
3.3 KiB
Markdown
Raw Normal View History

# Добавление ноды PostgreSQL для получения данных контакта
## Задача
Добавить ноду PostgreSQL перед "Code in JavaScriptКлиентправ" для получения полных данных контакта из CRM.
## Шаги
### 1. Добавить ноду PostgreSQL
**Название ноды:** `PostgreSQL: Get Contact Data`
**Параметры:**
- **Operation:** Execute Query
- **Query:** (см. файл `N8N_POSTGRESQL_GET_CONTACT_DATA.sql`)
**SQL запрос:**
```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 = $1
AND ce.deleted = 0
LIMIT 1;
```
**Параметры запроса:**
- `$1` = `{{ JSON.parse($node["CreateWebContacКлиентправ"].json.result).contact_id }}`
---
### 2. Порядок нод в workflow
1. **CreateWebContacКлиентправ** → создаёт/находит контакт
2. **PostgreSQL: Get Contact Data** → получает полные данные контакта
3. **Code in JavaScriptКлиентправ** → использует данные из обеих нод
---
### 3. Что получает Code node
После добавления ноды PostgreSQL, Code node получит доступ к:
- `$('PostgreSQL: Get Contact Data').first().json` - полные данные контакта
**Доступные поля:**
- `contactid` - ID контакта
- `firstname`, `lastname` - ФИО
- `email`, `mobile`, `phone` - Контакты
- `birthday` - Дата рождения
- `mailingstreet`, `mailingcity`, etc. - Адрес
- `middle_name` (cf_1157) - Отчество
- `birthplace` (cf_1263) - Место рождения
- `inn` (cf_1257) - ИНН
- `requisites` (cf_1849) - Реквизиты
- `code` (cf_1580) - Код
- `sms` (cf_1706) - SMS
- `cf_2624` - Данные подтверждены
---
### 4. Использование в Code node
Код в "Code in JavaScriptКлиентправ" автоматически найдёт данные из PostgreSQL ноды и добавит их в `sessionData.contact_from_db`.
---
## Альтернатива: если нет доступа к PostgreSQL
Если нет прямого доступа к PostgreSQL, можно использовать HTTP Request к backend API:
**Название ноды:** `HTTP Request: Get Contact Data`
**Метод:** GET
**URL:** `{{ $env.BACKEND_URL }}/api/v1/contacts/{{ JSON.parse($node["CreateWebContacКлиентправ"].json.result).contact_id }}`
Но лучше использовать PostgreSQL напрямую для скорости.