# Параметры для SQL при пропуске документа ## Входные данные n8n Массив с объектом: ```json [ { "propertyName": { "session_id": "sess_f47c9f47-a727-4176-bf3d-26a02bb2fe24", "phone": "79262306381", "unified_id": "usr_90599ff2-ac79-4236-b950-0df85395096c", "contact_id": "320096", "claim_id": "bddb6815-8e17-4d54-a721-5e94382942c7", "description": "...", "email": "help@clientright.ru", ... }, "body": { "form_id": "ticket_form", "stage": "document_skip", "session_id": "sess_f47c9f47-a727-4176-bf3d-26a02bb2fe24", "claim_id": "bddb6815-8e17-4d54-a721-5e94382942c7", "unified_id": "usr_90599ff2-ac79-4236-b950-0df85395096c", "contact_id": "320096", "phone": "79262306381", "document_type": "correspondence", "document_name": "Переписка", "skipped": "true", "action": "skip", "skip_timestamp": "2025-11-27T12:35:46.915646", "group_index": "2" } } ] ``` ## Параметры для SQL ### $1 (JSONB payload) Структура payload должна содержать данные в разных местах для совместимости с SQL: ```json { // В корне (для быстрого доступа) "session_id": "sess_f47c9f47-a727-4176-bf3d-26a02bb2fe24", "claim_id": "bddb6815-8e17-4d54-a721-5e94382942c7", "unified_id": "usr_90599ff2-ac79-4236-b950-0df85395096c", "contact_id": "320096", "phone": "79262306381", "document_type": "correspondence", "document_name": "Переписка", "group_index": 2, // В body (SQL ищет здесь: p->'body'->>'document_type') "body": { "document_type": "correspondence", "document_name": "Переписка", "group_index": 2, "session_id": "sess_f47c9f47-a727-4176-bf3d-26a02bb2fe24", "claim_id": "bddb6815-8e17-4d54-a721-5e94382942c7", "unified_id": "usr_90599ff2-ac79-4236-b950-0df85395096c", "contact_id": "320096", "phone": "79262306381" }, // В edit_fields_raw (SQL ищет здесь: p->'edit_fields_raw'->'body'->>'document_type') "edit_fields_raw": { "propertyName": { ... }, "body": { ... } }, // В edit_fields_parsed (SQL ищет здесь: p->'edit_fields_parsed'->'body'->>'document_type') "edit_fields_parsed": { "propertyName": { ... }, "body": { ... } }, // Дополнительные поля "problem_description": "...", "email": "help@clientright.ru", "skipped": "true", "action": "skip", "skip_timestamp": "2025-11-27T12:35:46.915646" } ``` ### $2 (TEXT claim_id) Просто строка с claim_id: ``` "bddb6815-8e17-4d54-a721-5e94382942c7" ``` ## Использование в n8n 1. **Code Node** (`N8N_CODE_PREPARE_DOCUMENT_SKIP_SQL.js`) - подготавливает параметры 2. **PostgreSQL Node** - выполняет SQL запрос `SQL_CLAIMSAVE_DOCUMENT_SKIP.sql` с параметрами: - Parameter Name: `$1`, Value: `={{ $json.$1 }}` (JSON) - Parameter Name: `$2`, Value: `={{ $json.$2 }}` (String) ## Важно SQL запрос ищет данные в следующем порядке: 1. `partial.p->>'document_type'` - в корне payload 2. `partial.p->'body'->>'document_type'` - в body 3. `partial.p->'edit_fields_raw'->'body'->>'document_type'` - в edit_fields_raw.body 4. `partial.p->'edit_fields_parsed'->'body'->>'document_type'` - в edit_fields_parsed.body Поэтому payload должен содержать данные во всех этих местах для надёжности.