Inspectores
¿Qué es un Inspector?
Un Inspector es un checklist de cumplimiento para un conjunto de documentos relacionados. Listas los documentos que esperas, cada uno extraído por un flow, y armas un checklist de checks sobre sus valores. Cada inspección termina en un veredicto: mismas entradas, mismo veredicto, siempre.
Un ejemplo típico es un embarque de importación: factura comercial, lista de empaque y conocimiento de embarque. El Inspector verifica que los totales cuadren, que el número de factura coincida entre documentos, que las fechas estén en orden y que nada esté vencido. Las reglas las evalúa un motor determinista, no una IA leyendo los documentos, así que el veredicto es reproducible y cada resultado se puede rastrear hasta los valores que lo produjeron.
Los Inspectores están en beta. Están disponibles para todas las organizaciones y su funcionamiento todavía puede cambiar.
Cuándo usar un Inspector
- Verificaciones entre documentos antes de pagar o liberar algo: factura contra orden de compra y nota de entrega
- Revisión de expedientes de importación y exportación: las mismas referencias, cantidades y totales en todos los documentos
- Reglas de fechas y vencimientos: certificados vigentes hoy, documentos emitidos en el mes actual
- Formato de valores individuales: RUC o identificación fiscal, números de factura, monedas permitidas
Si lo que necesitas es comparar precios línea por línea entre varias versiones del mismo tipo de documento, como cotizaciones de proveedores, usa un Matcher.
Crear un Inspector
- 1Ve a Inspectores y haz clic en Nuevo inspector. Ponle un nombre (al menos 3 caracteres) y una descripción opcional, y haz clic en Crear. Para partir de un inspector existente, usa Desde plantilla.
- 2En Documentos esperados, haz clic en Agregar documento por cada documento que requiere el proceso: un Nombre del documento y el Flow de extracción que lo lee.
- 3Arma el Checklist con Agregar check, Agregar rama o Sugerir checks.
- 4Pruébalo en el panel Prueba en seco y haz clic en Guardar en el encabezado.
- 5Asegúrate de que el inspector esté Activo (el switch del encabezado). Los inspectores inactivos no pueden iniciar nuevas inspecciones.
Cada documento esperado tiene estas opciones:
| Opción | Qué hace |
|---|---|
| Requerido / Opcional | Los documentos requeridos deben llegar antes de que corra el checklist. Cuando falta un documento opcional, los checks que lo leen se omiten, nunca fallan. |
| Flow de extracción | El flow que extrae el documento. Sus campos quedan disponibles para el checklist. Debe ser un flow activo. |
| Pista de enrutamiento | Cómo se ve el documento. Ayuda a la IA a poner los archivos subidos en el slot correcto. |
| Aceptar múltiples documentos | Permite que varios archivos llenen el mismo slot, por ejemplo varias notas de entrega. |
Si el flow de un documento tiene un Cleaner vinculado, el checklist lee las columnas de salida del Cleaner, no los campos extraídos en bruto. Así puedes verificar una fecha normalizada, un monto convertido o un valor buscado.
Checks
Un check lee los valores que extraen los flows de documentos y aprueba o falla de forma determinista. Los checks corren de arriba hacia abajo; arrástralos para reordenarlos, y el reporte sigue el mismo orden.
| Parte del check | Qué hace |
|---|---|
| Nombre del check | Aparece en el reporte, por ejemplo “Los totales cuadran con la lista de empaque”. |
| Verifica que | Una o más condiciones. Usa Agregar condición y Agregar grupo para combinarlas con AND / OR. |
| Severidad | Bloqueante, Advertencia o Info. Un bloqueante que falla rechaza toda la inspección; las advertencias la degradan a “aprobado con advertencias”; info nunca afecta el veredicto. |
| Solo ejecutar este check cuando… | Una condición de guarda opcional. Cuando no se cumple (o lee un documento opcional ausente) el check se omite, nunca falla. |
| Si este check falla | Acciones: Solicitar revisión (elige revisores), Enviar email (destinatarios separados por comas) o Llamar webhook. |
Ramas
Una rama divide el checklist según una condición. Su condición Cuando decide qué carril corre: Entonces verifica si se cumple, De lo contrario si no. Si la condición no puede evaluarse (documento ausente, valor inválido), corre el carril De lo contrario. Cada carril puede tener checks y otras ramas, y el nombre de la rama aparece en el reporte. Los checks del carril que no corrió se reportan como omitidos.
Un bloqueante que lee un documento opcional se omite cuando falta el documento, así que nunca puede rechazar la inspección. El builder lo marca; considera la severidad Advertencia o hacer el documento requerido.
Condiciones y operadores
Cada condición elige un Documento y un Campo, un operador y un valor. En una columna que se repite (de tabla) se compara el primer valor. En los campos de fecha puedes comparar solo un elemento de la fecha: Fecha completa, Solo fecha, Mes y año o Año.
Los nombres de los operadores aparecen en inglés en la app:
| Tipo de campo | Operadores |
|---|---|
| Número | Equals, Not equals, Greater than, Less than, Greater or equal, Less or equal, Is one of, Is not one of, Is empty, Is not empty |
| Fecha | Equals, After, On or after, Before, On or before, Within range, Is empty, Is not empty |
| Texto | Equals, Not equals, Contains, Does not contain, Starts with, Ends with, Matches pattern, Does not match pattern, Is one of, Is not one of, Is empty, Is not empty, además de los operadores de fecha y, en los checks, AI match y AI check |
El valor puede ser de cuatro tipos, que eliges con el selector que está al lado:
| Valor | Úsalo para |
|---|---|
Valor literal (# / Abc) | Un valor fijo, como 0, USD o 2026-12-31. Las fechas se escriben AAAA-MM-DD (AAAA-MM o AAAA al comparar un mes o un año). |
Campo de otro documento (f(x)) | Verificaciones entre documentos, como que el total de la factura sea igual al de la orden de compra. Equals / Not equals numéricos aceptan una tolerancia en %, medida contra el valor de la derecha. |
Porcentaje del campo de otro documento (%) | Solo números, como que el flete sea menor que el 10 % del total de la factura. |
| Fecha dinámica | Hoy, Mes actual o Año actual, resueltos en la zona horaria de tu organización al ejecutar la inspección. Una fecha completa contra Mes actual se compara por mes y año. |
- Los números ignoran separadores de miles, espacios y símbolos de moneda. El texto se recorta y se compara sin distinguir mayúsculas.
- Dos valores que se leen como fechas se comparan como fechas, así que 09-05-1989 es igual a 09/05/1989. Por eso los campos de texto también pueden usar los operadores de fecha.
- On or after y On or before incluyen la fecha límite; After y Before no.
- Cuando un lado de una comparación entre campos está vacío, el check no da error: Equals solo se cumple si ambos están vacíos, y los operadores de orden como Greater than resultan falsos.
- Matches pattern usa una expresión regular, sin distinguir mayúsculas, en cualquier parte del valor; agrega
^y$para exigir el valor completo (^INV-\d+$). Is one of recibe una lista separada por comas y compara los números como números.
Condiciones con IA
Algunos criterios no se pueden escribir como una regla. Los campos de texto ofrecen dos operadores con IA, disponibles solo en las condiciones de los checks (nunca en guardas ni en condiciones de rama):
- AI match compara un valor con el campo de otro documento según tus instrucciones, por ejemplo “¿Son la misma persona? Los nombres pueden omitir un apellido u ordenarse distinto.”
- AI check evalúa un solo valor, por ejemplo “¿Esta dirección está dentro de Panamá?”
Defines las respuestas posibles (al menos dos) y marcas cuáles aprueban; se ven en verde. El modelo responde con exactamente una opción, y la opción elegida y su razonamiento quedan en el reporte. La respuesta queda fija en la inspección, así que el veredicto sigue siendo reproducible.
Sugerir checks
Cuando ya tengas los documentos esperados, haz clic en Sugerir checks en el checklist. Si quieres, describe qué debe verificar el inspector (por ejemplo “Verifica que el total de la factura coincida con la orden de compra”) y haz clic en Sugerir checks. El asistente lee los campos de cada documento, con valores de muestra del último run completado del flow, y propone checks con su severidad y sus condiciones.
Desmarca lo que no necesites, edita cualquier check con el lápiz y haz clic en Agregar checks. Todo queda editable.
Prueba en seco
El panel Prueba en seco prueba el checklist contra runs completados: elige un run de muestra para cada documento, o Sin documento (ausente), y el veredicto se reevalúa al instante mientras editas. Usa el mismo motor de reglas que las inspecciones reales. Nada se guarda, y las condiciones con IA se asumen aprobadas porque el modelo solo corre durante inspecciones reales.
Ejecutar una inspección
- 1Abre la pestaña Inspecciones del inspector y haz clic en Nueva inspección.
- 2Suelta los documentos de una inspección (PDF, PNG, JPG, JPEG, JFIF) y haz clic en Iniciar inspección.
- 3La IA dirige cada archivo al slot de documento correcto, usando su primera página, el nombre del documento, la pista de enrutamiento y el flow, y ejecuta el flow de extracción de ese slot.
- 4Cuando cada documento requerido tiene un run completado, el checklist se evalúa y la página de la inspección muestra el veredicto y el reporte.
En la página de la inspección puedes seguir agregando documentos mientras está recolectando. Un archivo que la IA no pudo ubicar queda como Sin emparejar: elige un slot en Assign to document… y haz clic en Assign. Cancel detiene una inspección sin evaluarla. (Esta página aún aparece en inglés en la app.)
En Ajustes decides cuándo corre el checklist: Automático evalúa en cuanto cada documento requerido tiene un run completado; Manual sigue recolectando hasta que alguien hace clic en Fire now.
| Estado | Significado |
|---|---|
| Recolectando | Acepta documentos. Los archivos se enrutan y sus runs extraen. |
| Esperando runs | Ya se disparó y espera a que terminen los últimos runs. |
| En cola / En ejecución | El checklist se está evaluando. |
| Esperando aprobación | Un revisor debe aprobar antes de que el veredicto sea final. |
| Completado | El veredicto y el reporte están listos. |
| Fallido | Por ejemplo, el run de un documento requerido falló después de disparar la inspección. |
| Cancelado | La canceló un usuario o se rechazó en la revisión. |
También puedes ejecutar inspecciones:
- Desde un caso de Subject. Un inspector vinculado a un Subject aparece en Checks en la página del caso. Run reutiliza los runs completados del caso, sin volver a subir ni extraer nada. Cada documento requerido necesita un run completado en el caso.
- En un Pipeline, como un nodo después de los flows. Consulta Pipelines.
- Por API, como se explica más abajo.
Una inspección conserva los documentos y el checklist con los que empezó. Los cambios al inspector aplican solo a las inspecciones nuevas.
Veredicto y reporte
| Veredicto | Cuándo |
|---|---|
| Rechazado | Algún bloqueante falló o no pudo evaluarse (error). |
| Aprobado con advertencias | Ningún bloqueante falló, pero al menos una advertencia falló o dio error. |
| Aprobado | Ningún bloqueante ni advertencia falló. Los checks Info nunca cambian el veredicto. |
El Reporte del checklist lista cada check en orden con su resultado (Aprobado, Fallido, Omitido o Error), los valores que se compararon y una breve explicación. Los checks omitidos dicen por qué: no se tomó la rama, no se cumplió la guarda o no se entregó el documento. Una inspección completada se puede descargar como reporte en PDF (PDF report).
Revisión humana
En Revisores y HITL, activa Revisión humana y elige a los revisores para pausar cada inspección antes de que el veredicto sea final. Un check que falla también puede pausar la inspección por su cuenta con la acción Solicitar revisión. Los revisores reciben un aviso por correo.
- 1Abre la inspección pausada. El panel de revisión muestra los checks fallidos y una Vista previa del veredicto.
- 2Exonera los checks fallidos que sean aceptables, con un motivo (obligatorio). Los checks exonerados ya no cuentan para el veredicto.
- 3Haz clic en Aprobar para finalizar el veredicto y enviar las salidas, o en Rechazar para cancelar la inspección sin veredicto.
Todos los roles, incluido Solo HITL, pueden revisar. Si hay revisores configurados, solo ellos pueden aprobar o rechazar. Consulta Revisión Humana.
Salidas
- Notificación en la app con el veredicto para quien inició la inspección.
- Salida por Email: recibe el veredicto y el resultado de cada check, con el reporte en PDF adjunto.
- Webhook: envía por POST un JSON con
inspection_id,inspector_id,verdicty el reporte completo enoutput_json. Consulta Webhooks. - Las acciones Enviar email y Llamar webhook de cada check se disparan por cada check fallido que no se exoneró.
Con revisión humana, las salidas se envían después de aprobar.
API
Envía documentos a un inspector con tu API key. Copia el ID desde ID del Inspector en la página del inspector. Cada solicitud agrega un archivo; omite inspection_id en la primera para abrir una inspección nueva y luego envía el ID que recibes con las demás.
curl -X POST https://run.tavnit.io/api/inspectors/<inspector_id>/process \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@commercial_invoice.pdf"
curl -X POST https://run.tavnit.io/api/inspectors/<inspector_id>/process \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@packing_list.pdf" \
-F "inspection_id=<inspection_id>"- La respuesta es
202coninspection_ideinspection_file_id. Un402significa que tu organización no puede iniciar trabajo nuevo en este momento; contacta al equipo de Tavnit. - Con la política Manual, termina con
POST https://run.tavnit.io/api/inspections/<inspection_id>/fire. Devuelve400conmissing_inputssi falta algún documento requerido. - Configura un Webhook en el inspector para recibir el veredicto y el reporte.
La autenticación está en API.
Permisos
- Los Administradores y Propietarios crean inspectores. Los Administradores, los Propietarios y quien creó el inspector pueden editarlo o eliminarlo.
- Todos los miembros, excepto Solo HITL, pueden ejecutar inspecciones.
- Todos los roles pueden revisar inspecciones pausadas.
- Eliminar un inspector también elimina sus inspecciones y sus reportes.
Solución de problemas
| Problema | Qué hacer |
|---|---|
| Nueva inspección no está disponible | El inspector está inactivo. Actívalo con el switch de Activo en el encabezado, o pídeselo a un administrador. |
| No puedes agregar documentos | Los documentos necesitan un flow de extracción activo. Crea un flow primero y luego regresa. |
| Un archivo queda Sin emparejar | La IA no pudo ubicarlo o su slot ya está lleno. Asígnalo a mano y agrega una pista de enrutamiento al documento para que los próximos archivos se dirijan bien. |
| La inspección nunca se evalúa | Falta un documento requerido, su run todavía se está procesando o la política es Manual. Sube el archivo que falta o haz clic en Fire now. |
| Un check muestra Error | No se pudo leer un valor (campo faltante, número o fecha que no se puede interpretar, patrón inválido). El reporte muestra los valores; corrige el campo en el flow o la condición. |
| Un bloqueante se omitió en vez de fallar | Lee un documento opcional que no llegó, o su guarda no se cumplió. Haz el documento requerido si el check siempre debe correr. |
| Hay checks que referencian un documento eliminado | Apunta las condiciones a otro documento; mientras tanto esos checks no corren. |
| Un check de fecha contra Hoy da un resultado inesperado | Hoy se toma en la zona horaria de tu organización al momento de evaluar. Revisa el elemento de fecha y el operador (After frente a On or after). |
