# Добавление ноды 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 напрямую для скорости.