113 lines
3.6 KiB
Markdown
113 lines
3.6 KiB
Markdown
|
|
# Параметры для 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 должен содержать данные во всех этих местах для надёжности.
|
|||
|
|
|