Saltar al contenido
Ztract

Diseñar tu esquema

Un esquema es tu declaración de lo que quieres extraer de cada documento. Tres formas de definirlo — elige la que mejor encaje con cómo ya piensas los datos.

Actualizado:

¿Qué es un esquema?

Un esquema en Ztract es la forma de los datos que quieres recibir de vuelta. Es una lista de campos con nombres, tipos y estructura opcional (por ejemplo, «líneas» es un array de objetos, cada uno con descripción, cantidad y precio unitario). El motor lee cada documento subido contra el esquema y devuelve los valores correspondientes, anclados al lugar donde aparecieron en la página de origen.

Los esquemas viven dentro de los proyectos. Un proyecto = un esquema = una forma de salida consistente para todos los documentos de ese proyecto. Si tienes varios tipos de documento, lo habitual es crear un proyecto por tipo.

Diseña el esquema

Tipos de campos y estructura

Cada campo tiene uno de seis tipos:

  • string — texto libre. Nombres, direcciones, descripciones en forma libre.
  • number — valores decimales. Importes, porcentajes, dimensiones.
  • integer — números enteros. Cantidades, recuentos.
  • enum — un string que debe venir de una lista fija que tú defines. Úsalo para valores con un vocabulario acotado — estado del pedido, método de pago, código de moneda.
  • object — un grupo de campos anidados. Úsalo cuando algo tiene de forma natural subpropiedades (una address con street / city / zip).
  • array — una lista repetida. Los elementos pueden ser primitivos («skills» en un CV) u objetos («líneas» en una factura).

Las estructuras de tipo object y array pueden anidarse, hasta tres niveles de profundidad. Para la mayoría de los documentos reales, dos niveles son suficientes — las líneas de una factura, los firmantes de un contrato — y tres es el tope para los casos puntuales en los que de verdad lo necesitas.

Método 1 — Empezar desde una plantilla

Ztract incluye plantillas listas para tipos de documento habituales como facturas, recibos, contratos y documentos de identidad. Cada plantilla es un esquema funcional con nombres de campos, tipos y (si aplica) estructuras anidadas. Están construidas a partir de ejemplos reales, no de ideales de manual. El catálogo exacto está localizado — cuando el idioma de tu dashboard está en inglés ves plantillas con nombres en inglés; cámbialo a chino, japonés, etc. y la lista se actualiza en consecuencia.

Cuándo funciona mejor. Cuando tu tipo de documento encaja con una categoría bien definida y tu herramienta posterior espera la forma estándar — por ejemplo, «facturas a NetSuite» o «recibos de gastos a Concur». Obtienes un esquema funcional en dos clics.

Cómo personalizarlo. Abre la plantilla, renombra cualquier campo para que coincida con la terminología de tu equipo, elimina los campos que no necesites y añade los campos a medida específicos de tu flujo de trabajo. Guarda el esquema y queda listo para subir documentos.

Plantilla de esquema

Método 2 — Describirlo en lenguaje natural

Si ninguna plantilla encaja, escribe lo que quieres. Teclea una o dos frases describiendo los campos. Ztract redacta un esquema completo a partir de tu descripción. Tú lo confirmas o lo retocas antes de guardar.

Ejemplo de prompt. «Por cada orden de compra, extrae el número de PO, el nombre y la dirección del proveedor, la fecha de emisión, la fecha de entrega, las líneas con SKU, descripción, cantidad y precio unitario, y el total del pedido. Además, marca si la PO está señalada como pedido urgente.»

El motor produce algo como:

  • po_number — string
  • vendor{ name, address }
  • issue_date — date
  • delivery_date — date
  • line_items — array de { sku, description, quantity, unit_price }
  • order_total — number
  • rush_order — boolean

Cuándo funciona mejor. Cuando tienes un modelo mental claro de lo que necesitas pero no hay un ejemplo canónico que subir. O cuando tu tipo de documento es lo bastante específico como para que ninguna plantilla encaje.

Método 3 — Inferir a partir de un documento de ejemplo

Sube un documento de ejemplo; el motor lo lee y propone un esquema con los nombres de campos, tipos y anidación que encontró. Tú ajustas después: quita los campos que no te importen, añade los que el ejemplo no incluía y afina los tipos.

Cuándo funciona mejor. Cuando no sabes qué campos hay hasta que ves uno — habitual en informes médicos (cada laboratorio imprime sus paneles de forma distinta), contratos redactados a medida y formularios puntuales de proveedores. También es útil cuando el nombre de un campo en el documento es poco habitual y quieres que el motor te sugiera un nombre normalizado.

Ajustar un esquema después de crearlo

Puedes editar un esquema en cualquier momento — renombrar campos, añadir nuevos, cambiar tipos, reestructurar la anidación. Los cambios no afectan a los documentos que ya hayas procesado; tendrías que volver a ejecutarlos bajo el nuevo esquema para obtener la forma actualizada. Las reejecuciones se facturan (consulta Facturación, paquetes y reembolsos), así que la mayoría de los equipos cierran su esquema con un lote pequeño antes de procesar volumen.

Plantilla de esquema

Consejos para campos complicados

  • Fechas. Sea cual sea el formato impreso en el documento — DD/MM/AAAA, 5 jun 2026, «Q2 2026» — Ztract lo convierte al formato de fecha que indiques en tu esquema. Si no se especifica formato, la fecha se devuelve tal cual aparece impresa.
  • Importes y monedas. La moneda se mantiene en su forma original (€, $, ¥, ₩, etc.); no hacemos conversiones silenciosas. Las tasas de impuestos por línea se mantienen pegadas a la fila a la que pertenecen.
  • Estructuras anidadas. Si el documento tiene de forma natural subobjetos (partes en un contrato, condiciones de pago dentro de un acuerdo con un proveedor), usa anidación en el esquema. El JSON de salida reflejará la anidación; CSV / Excel la aplanarán con rutas separadas por puntos.
  • Arrays de strings simples. Campos como «skills» en un CV o «endosos» en un pasaporte se devuelven como arrays de strings. El dashboard renderiza el array como una tabla en el visor lado a lado — una fila por elemento, enlazada a su zona de origen.
  • Campos enum. Los campos con vocabulario acotado (estado, código de moneda, clase de documento) funcionan mejor como enum — tú proporcionas los valores permitidos una vez y el motor se ciñe a ellos en lugar de inventar variantes como «Pagado», «pagado», «PAGADO» o «Liquidado».

← Volver a la documentación