- Добавлены логи в frontend (ClaimForm.tsx) для отслеживания unified_id и запросов к API - Добавлены логи в backend (claims.py) для отладки SQL запросов - Создан лог сессии с описанием проблемы и текущего состояния - Проблема: API возвращает 0 черновиков, хотя в БД есть данные
3.8 KiB
3.8 KiB
📎 ИТОГ: API привязки документов готов!
✅ Что сделано
1️⃣ Backend Endpoint
URL: POST https://crm.clientright.ru/api/n8n/documents/attach
Возможности:
- ✅ Batch-обработка массива документов
- ✅ Умный парсинг S3 путей (автоматически добавляет хост)
- ✅ Поддержка двух форматов полей (
file/file_url,filename/file_name) - ✅ Привязка к HelpDesk (заявке) или Project (проекту)
- ✅ Детальная статистика по каждому документу
- ✅ Полное логирование всех операций
2️⃣ PHP Backend
Файл: /var/www/fastuser/data/www/crm.clientright.ru/upload_documents_to_crm.php
Доработки:
- ✅ Поддержка
ticket_idдля привязки к HelpDesk - ✅ Логика: если
ticket_id→ HelpDesk, иначе → Project - ✅ Обновление S3 метаданных в базе vTiger
- ✅ Прямая привязка через
relateEntitiesесли webservice не работает
3️⃣ Документация
- 📄
DOCUMENT_ATTACH_API.md- полная документация API - 📄
QUICK_START_DOCUMENTS.md- краткая шпаргалка - 📄
TEST_ATTACH_DOCUMENT.md- примеры тестирования
4️⃣ Тесты
- 🧪
TEST_REAL_DATA.sh- тест с реальными данными - 🧪
TEST_QUICK.sh- быстрые тесты
🚀 Формат входных данных
[
{
"claim_id": "CLM-2025-11-02-WNRZZZ",
"event_type": "delay_flight",
"contact_id": "320096",
"project_id": "396868",
"ticket_id": "396936",
"filename": "boarding_pass.pdf",
"file_type": "flight_delay_boarding_or_ticket",
"file": "/bucket/path/to/file.pdf"
}
]
Важно:
- Всегда массив
[...](даже для одного документа) - Поле
fileбез хоста → автоматически добавитсяhttps://s3.twcstorage.ru ticket_idопционально (если есть → HelpDesk, иначе → Project)
📊 Формат ответа
{
"success": true,
"total_processed": 1,
"successful": 1,
"failed": 0,
"results": [
{
"document_id": "15x396941",
"document_numeric_id": "396941",
"attached_to": "ticket",
"attached_to_id": "396936",
"file_name": "boarding_pass.pdf",
"file_type": "flight_delay_boarding_or_ticket",
"s3_bucket": "f9825c87-...",
"s3_key": "crm2/CRM_Active_Files/...",
"file_size": 85320,
"message": "Документ создан и привязан..."
}
],
"errors": null
}
🧪 Тестирование
cd /var/www/fastuser/data/www/crm.clientright.ru/erv_platform
./TEST_REAL_DATA.sh
📝 Git коммиты
ec44f43 - docs: Добавлена краткая шпаргалка для быстрого старта
efb0cd6 - feat: Поддержка batch-обработки документов и умного парсинга S3 путей
e27280e - docs: Добавлена полная документация API привязки документов
936cea6 - feat: Добавлен эндпоинт для привязки документов к проекту/заявке
d3b7b3b - feat: Добавлены все N8N webhook URLs в config.py
5f4f992 - feat: Добавлена поддержка привязки документов к HelpDesk (CRM)
🎯 Готово к боевому использованию!
Эндпоинт протестирован и готов к интеграции в n8n workflow! 🚀