Создан api_attach_documents.php: ✅ Прямой эндпоинт без backend proxy ✅ URL: https://crm.clientright.ru/api_attach_documents.php ✅ Принимает массив документов из n8n ✅ Умная обработка S3 путей (добавляет хост если нужно) ✅ Поддержка file/file_url, filename/file_name ✅ Привязка к HelpDesk или Project (зависит от ticket_id) ✅ Проксирует к upload_documents_to_crm.php ✅ Полное логирование в logs/api_attach_documents.log Готово к использованию в n8n!
2.0 KiB
2.0 KiB
📎 API для привязки документов
✅ Прямой эндпоинт (готов к использованию!)
POST https://crm.clientright.ru/api_attach_documents.php
🚀 Формат запроса (из n8n)
[
{
"contact_id": "320096",
"project_id": "396868",
"ticket_id": "396936",
"filename": "boarding_pass.pdf",
"file_type": "flight_delay_boarding_or_ticket",
"file": "/f9825c87-4e3558f6-f9b6-405c-ad3d-d1535c49b61c/crm2/CRM_Active_Files/Documents/HelpDesk/ЗАЯВКА_827_396936/flight_delay_boarding_or_ticket.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
}
🧪 Тест
curl -X POST "https://crm.clientright.ru/api_attach_documents.php" \
-H "Content-Type: application/json" \
-d '[
{
"contact_id": "320096",
"project_id": "396868",
"ticket_id": "396936",
"filename": "test.pdf",
"file_type": "flight_delay_boarding_or_ticket",
"file": "/bucket/path/to/file.pdf"
}
]'
🔍 Логи
tail -f /var/www/fastuser/data/www/crm.clientright.ru/logs/api_attach_documents.log