Splitters

Qué hace un Splitter

Un Splitter toma un archivo que contiene varios documentos y lo divide en sus partes separadas. Lee cada página, determina dónde termina un documento y empieza el siguiente, clasifica cada segmento según los tipos de documento que describiste y envía cada parte a su destino por separado.

El caso típico es un escáner o un proveedor que envía por correo un solo PDF con una factura, una lista de empaque y una guía de remisión firmada. Extraer eso como un solo documento da resultados sin sentido. Un Splitter lo convierte en tres documentos y cada uno llega al Flow correcto. Los Splitters también aceptan hojas de cálculo, donde cada hoja se convierte en su propio documento.

¿Splitter o Colección?

Una Colección responde “¿a qué Flow pertenece este documento?”. Un Splitter responde “¿cuántos documentos hay en este archivo y a dónde va cada uno?”. Usa una Colección cuando cada archivo contiene un solo documento de tipo desconocido; usa un Splitter cuando un archivo contiene varios.

Cómo funciona la segmentación

Cada página se examina en orden y se asigna a exactamente un segmento. Los segmentos nunca se superponen ni dejan huecos, así que cada página del archivo termina en algún lugar: no se pierden páginas sin aviso.

Las reglas que aplica Tavnit para decidir dónde termina un documento:

SituaciónQué pasa
Los encabezados y logotipos se repiten en cada páginaNo se considera un documento nuevo. Un membrete repetido en una factura de cinco páginas sigue siendo una sola factura.
Cambia el título, el emisor, la contraparte, el número de documento, el formato o la fechaSe considera un límite real: empieza un nuevo segmento.
Anexos, fotos, cotizaciones y capturas de pantallaSiempre forman su propio segmento, aunque estén justo antes o después de un documento identificado.
Un segmento no coincide con ninguno de tus tipos de documentoSe genera de todos modos y aparece en Otros Documentos. Nunca se une a un segmento vecino solo para evitar un resultado sin coincidencia.

No hay puntaje de confianza. Un segmento coincide con un tipo de documento o no coincide con ninguno: el clasificador tiene la instrucción de responder “sin coincidencia” en lugar de adivinar. Los segmentos sin coincidencia son lo primero que debes revisar cuando una división no hace lo que esperabas.

Crea un Splitter

Un Splitter es una lista de tipos de documento. Cada uno tiene un título, una descripción de cómo se ve y un destino opcional. No hay reglas que escribir: la descripción es lo que usa el clasificador para decidir.

  1. 1Abre Splitters, haz clic en Crear Splitter y escribe un Nombre del Splitter según el paquete que recibe, por ejemplo Paquetes de entrega de proveedores en lugar de Splitter 2.
  2. 2Haz clic en Agregar Tipo de Documento por cada tipo de documento del paquete, con un título y una descripción de lo que aparece en la página. Se necesita al menos uno. También puedes hacer clic en Sugerir con IA (ver más abajo) para redactarlos a partir de un ejemplo.
  3. 3En Automatización de salida, elige un destino para cada tipo (ver la tabla más abajo).
  4. 4Haz clic en Dividir y sube un paquete, o envíalo a la dirección de correo del Splitter.
  5. 5Abre la división terminada en el Historial de Divisiones y revisa el rango de páginas y la coincidencia de cada documento.
La página de detalle de un Splitter de Tavnit con dos tipos de documento configurados, uno con la etiqueta Send to flow: Invoice Processor y otro con Send to collection: Second collection, y en el panel izquierdo Doc Types, Split History, Email Trigger y Splitter ID.
Cada tipo de documento tiene su propio destino: un Flow, una Colección, una dirección de correo o ninguno.
Las descripciones hacen el trabajo

La descripción es lo único que distingue un tipo de documento de otro. Escribe lo que una persona miraría para diferenciarlos y di lo que no es: “lista de empaque: muestra cantidades sin precios, recuadro de firma al pie. NO es la factura” funciona mucho mejor que “lista de empaque”.

Deja que la IA sugiera los tipos de documento

Si tienes a mano un paquete real, el asistente puede redactar los tipos de documento por ti. Lee un ejemplo, propone un tipo por cada documento distinto que encuentra y escribe descripciones pensadas para diferenciarlos.

  1. 1Mientras creas el Splitter, haz clic en Sugerir con IA junto a Tipos de Documento.
  2. 2Si quieres, describe qué tipo de paquetes recibirá el Splitter. Ayuda al asistente a nombrar los tipos como lo hace tu equipo.
  3. 3Sube un paquete de ejemplo: un PDF que mezcle varios documentos, de hasta 25 páginas.
  4. 4Revisa las propuestas. Cada una muestra las páginas donde se encontró; desmarca las que no quieras (las páginas marcadas como No es un tipo de documento quedan fuera) y edita los títulos y descripciones en la misma fila.
  5. 5Haz clic en Agregar N documentos (N es la cantidad que conservaste) para añadirlos al Splitter y luego configura sus destinos.

Analizar el ejemplo no ejecuta una división. No se guarda nada hasta que creas el Splitter.

A dónde va cada documento

Los destinos se configuran por tipo de documento, no por Splitter. Eso permite que un solo paquete se reparta: las facturas a un Flow de extracción, las guías de remisión a una Colección y todo lo demás por correo a una persona.

Automatización de salidaQué pasa con el segmento
Enviar a FlowSe crea un Run de extracción normal para ese segmento, etiquetado con la división y el tipo de documento de donde vino.
Enviar a colecciónLa Colección vuelve a clasificar el segmento y lo envía al Flow que corresponda.
Enviar por emailEl segmento se envía como adjunto (un PDF, o una hoja de cálculo de una sola hoja en el caso de libros) a la dirección que indiques.
NingunoEl segmento se conserva en el resultado de la división, listo para descargar, pero no se envía a ningún lado.

Los segmentos que no coinciden con ningún tipo de documento nunca se envían. Quedan en el resultado de la división, en Otros Documentos, donde puedes descargarlos.

Los ciclos están bloqueados

Un Splitter puede alimentar a una Colección, y una Colección puede enrutar a un Splitter. En el selector de Colecciones, cualquier Colección que enrute de vuelta a este Splitter aparece deshabilitada con la etiqueta enruta a este Splitter, y al ejecutarse un segmento nunca se envía a una Colección que lo devolvería al mismo Splitter. Así, una configuración errónea no puede hacer girar documentos en círculo.

Los Runs creados a partir de un segmento conservan su origen. El payload del webhook de esos Runs incluye la división de la que vinieron y el tipo de documento con el que coincidieron, para que puedas rastrear una fila hasta el paquete original. Consulta los payloads de webhook.

Cuando un Splitter se ejecuta dentro de un Pipeline, las conexiones del Pipeline deciden a dónde va cada tipo de documento y la automatización de salida del Splitter no se ejecuta, así que nada se envía dos veces.

Dividir hojas de cálculo

En un libro de cálculo, las hojas son los límites. Cada hoja visible y no vacía se convierte en su propio documento; la IA solo decide a qué tipo de documento corresponde cada hoja.

  • Formatos aceptados: .xlsx, .xls y .csv. Un CSV es una sola hoja.
  • Las hojas ocultas y vacías se ignoran. Un libro sin ninguna hoja visible y no vacía se rechaza.
  • Cada hoja se envía a su destino como una hoja de cálculo de una sola hoja, así el Flow que la recibe obtiene una hoja de cálculo real.
  • En el resultado de la división, el rango de páginas de una hoja indica su posición en el libro.
  • Las hojas muy grandes se rechazan con un error.

Cómo enviar archivos a un Splitter

Un Splitter acepta archivos de tres formas: subidos en la app, enviados a la API o por correo a su propia dirección. Cada archivo se convierte en su propia división.

VíaCómo funciona
Subida en la appHaz clic en Dividir, elige el Splitter en Dividir Documento y suelta uno o más PDFs u hojas de cálculo. Cada archivo inicia su propia división.
APIEnvía el archivo con el ID del Splitter a /splits/run. La API también acepta imágenes. Copia el ID desde el panel ID del Splitter; consulta la página de la API.
CorreoAbre el panel Disparador por Email, actívalo y reenvía los paquetes a la Dirección de Bandeja. Cada adjunto PDF, imagen u hoja de cálculo se convierte en su propia división. Usa Remitentes Permitidos para limitar quién puede enviar.

Los tipos de adjunto aceptados, los motivos por los que se puede omitir un archivo y la protección contra duplicados son los mismos que en el resto de Tavnit. Consulta integración por correo. Si el disparador está apagado, el correo se acepta y se descarta sin rebote.

Cómo leer el resultado de una división

Abre una división desde el Historial de Divisiones para ver qué decidió el Splitter. La división está en proceso hasta que el aviso la muestra como completada o fallida; una división fallida muestra el error.

  • Páginas y Docs Encontrados del archivo completo
  • De dónde vino el archivo y, si llegó por correo, el remitente
  • Documentos Detectados: cada segmento que coincidió con un tipo, con su rango de páginas, su destino y el estado de su envío
  • Otros Documentos: los segmentos sin coincidencia, lo primero que debes revisar cuando una división sale mal
  • Ver Run en cualquier segmento enviado a un Flow, y Descargar en todos los segmentos
Cómo corregir una mala división

Los límites equivocados suelen significar que dos tipos de documento están descritos de forma demasiado parecida. Las coincidencias equivocadas suelen significar que una descripción es demasiado vaga. En ambos casos la solución está en las descripciones de los tipos de documento, no en el archivo.

Cómo recuperar el archivo original

Tavnit conserva el paquete exactamente como se subió. Descárgalo desde el enlace Archivo Original en los Detalles de División, u obtenlo por la API con el ID de la división.

Shell
curl "https://run.tavnit.io/api/splits/<split_id>/source-file" \
  -H "X-API-Key: tvnt_your_key_here"

# O descarga el archivo directamente
curl "https://run.tavnit.io/api/splits/<split_id>/source-file?download=true" \
  -H "X-API-Key: tvnt_your_key_here" -OJ

La respuesta predeterminada es un JSON con una url firmada y temporal (7 días, salvo que indiques un expires_in menor en segundos); download=true devuelve el archivo directamente. Devuelve el paquete completo, no los segmentos: cada segmento enviado a un Flow es un Run propio, con su propio archivo de origen.