5.2 KiB
5.2 KiB
Documentación de Webhook - n8n
Endpoint
El endpoint configurado en .env:
NOTIFICACION_ENDPOINT=https://n8nw.comercialarmin.com.py/webhook/53284540-edc4-418f-b1bf-a70a805f8212
Evento: Inspección Completada
Cuándo se envía
Cuando se completa una inspección (endpoint: POST /api/inspections/{id}/complete)
Estructura del JSON
{
"tipo": "inspeccion_completada",
"inspeccion": {
"id": 123,
"estado": "completed",
"or_number": "OR-001",
"work_order_number": "WO-123",
"vehiculo": {
"placa": "ABC-123",
"marca": "Toyota",
"modelo": "Corolla 2020",
"kilometraje": 50000
},
"cliente": "Juan Pérez",
"mecanico": {
"id": 5,
"nombre": "Carlos Méndez",
"email": "carlos@example.com",
"codigo_operario": "OPR-001"
},
"checklist": {
"id": 1,
"nombre": "Inspección Vehicular Completa"
},
"puntuacion": {
"obtenida": 85,
"maxima": 100,
"porcentaje": 85.0,
"items_criticos": 2
},
"fechas": {
"inicio": "2025-11-26T10:30:00",
"completado": "2025-11-26T11:45:00"
},
"pdf_url": "https://minioapi.ayutec.es/pdfs/2025/11/inspeccion_123_ABC-123.pdf",
"firma": "data:image/png;base64,..."
},
"respuestas": [
{
"id": 1,
"pregunta": {
"id": 10,
"texto": "¿Estado de los neumáticos?",
"seccion": "Neumáticos",
"orden": 1
},
"respuesta": "ok",
"estado": "ok",
"comentario": "Neumáticos en buen estado",
"observaciones": "Presión correcta en las 4 ruedas",
"puntos_obtenidos": 1,
"es_critico": false,
"imagenes": [
{
"id": 100,
"url": "https://minioapi.ayutec.es/images/2025/11/foto1.jpg",
"filename": "neumatico_delantero.jpg"
},
{
"id": 101,
"url": "https://minioapi.ayutec.es/images/2025/11/foto2.jpg",
"filename": "neumatico_trasero.jpg"
}
],
"ai_analysis": {
"status": "ok",
"observations": "Los neumáticos presentan un desgaste uniforme...",
"recommendation": "Continuar con el mantenimiento preventivo",
"confidence": 0.95
}
},
{
"id": 2,
"pregunta": {
"id": 11,
"texto": "¿Luces delanteras funcionan?",
"seccion": "Iluminación",
"orden": 2
},
"respuesta": "warning",
"estado": "warning",
"comentario": "Faro izquierdo opaco",
"observaciones": "Requiere restauración de faro",
"puntos_obtenidos": 0.5,
"es_critico": true,
"imagenes": [
{
"id": 102,
"url": "https://minioapi.ayutec.es/images/2025/11/foto3.jpg",
"filename": "faro_izquierdo.jpg"
}
],
"ai_analysis": {
"status": "minor",
"observations": "Se detecta opacidad en el faro izquierdo...",
"recommendation": "Pulir o restaurar el lente del faro",
"confidence": 0.9
}
}
],
"timestamp": "2025-11-26T11:45:30.123456"
}
Campos Importantes
Imágenes
- Cada respuesta incluye un array
imagenescon:id: ID del archivo en la base de datosurl: URL directa de la imagen en MinIO (lista para descargar/mostrar)filename: Nombre original del archivo
AI Analysis
- Si la pregunta fue analizada por IA, incluye:
status: ok/minor/criticalobservations: Observaciones del análisisrecommendation: Recomendacionesconfidence: Nivel de confianza (0-1)
Código de Operario
- Se incluye en
inspeccion.mecanico.codigo_operario - Se copia automáticamente del perfil del mecánico al crear la inspección
- URL del PDF generado en
inspeccion.pdf_url - Incluye miniaturas de todas las imágenes
Uso en n8n
1. Webhook Trigger
Configura un nodo Webhook con la URL del archivo .env
2. Filtrar por tipo
// Verificar si es una inspección completada
{{ $json.tipo === "inspeccion_completada" }}
3. Acceder a las imágenes
// Obtener todas las URLs de imágenes
{{ $json.respuestas.map(r => r.imagenes.map(i => i.url)).flat() }}
// Primera imagen de cada respuesta
{{ $json.respuestas.map(r => r.imagenes[0]?.url) }}
// Imágenes de respuestas críticas
{{ $json.respuestas.filter(r => r.es_critico).map(r => r.imagenes).flat() }}
4. Descargar imágenes
Las URLs son públicas y directas, se pueden:
- Descargar con HTTP Request
- Enviar por email como adjuntos
- Procesar con Computer Vision
- Subir a otro servicio (Google Drive, Dropbox, etc.)
5. Ejemplo: Enviar por email
// En un nodo Email
To: {{ $json.inspeccion.cliente_email }}
Subject: Inspección Completada - {{ $json.inspeccion.vehiculo.placa }}
Attachments: {{ $json.inspeccion.pdf_url }}
Logs
El backend imprime logs detallados:
🚀 Enviando inspección #123 a n8n...
📤 Enviando 15 respuestas con imágenes a n8n...
✅ Inspección #123 enviada exitosamente a n8n
- 15 respuestas
- 23 imágenes
Seguridad
- El webhook es HTTPS
- Las URLs de imágenes son públicas en MinIO
- No se envían passwords ni tokens
- Se incluyen solo datos relevantes de la inspección