Skip to main content
Los tipos de ítem personalizados permiten que tu cuenta defina sus propios tipos de documento, cada uno con procesos configurables de clasificación, validación y extracción. Trébol gestiona el ciclo de vida completo a través del endpoint /v2/custom-item-types.

Cuándo usarlos

Usa tipos de ítem personalizados cuando necesites:
  • Procesar un tipo de ítem que Trébol no soporta de forma estándar.
  • Definir reglas de clasificación, validación o extracción específicas para tu negocio.
  • Controlar el esquema de salida (JSON) de la extracción.
Esta funcionalidad complementa las extracciones personalizadas. Las extracciones personalizadas aplican sobre tipos ya soportados; los tipos de ítem personalizados crean un tipo nuevo desde cero.

Conceptos clave

Tipo y procesos

Un tipo de ítem personalizado (custom_item_type) agrupa uno o más procesos. Cada proceso define una tarea que Trébol ejecuta sobre el documento: Al crear un tipo, el proceso de clasificación se crea automáticamente de forma atómica. Solo puede editarse mediante PATCH; no puede añadirse de nuevo ni eliminarse.

Identificadores

Cada tipo y cada proceso exponen dos identificadores:
  • id — generado por Trébol, inmutable. Úsalo en las rutas de la API (ej. cit_abc123, ccp_def456).
  • name (solo en tipos) — identificador que defines tú (no una etiqueta legible; para eso está friendly_name). Debe empezar con el prefijo cit_ y no puede contener espacios (usa _ o - como separador). Único por cuenta entre tipos activos y archivados. Se usa como valor de type al enviar ítems en verificaciones.
  • process_reference (solo en procesos) — etiqueta elegida por ti, única dentro del mismo tipo. Editable vía PATCH.

Ciclo de vida

  • active — el tipo acepta documentos en verificaciones.
  • archived — el tipo está pausado. Sigue apareciendo en el listado y puede reactivarse en cualquier momento con PATCH status: "active". Verificaciones que lo referencien son rechazadas mientras esté archivado.
  • Eliminado (DELETE) — el tipo y todos sus procesos se borran de forma permanente e irreversible. Para pausar un tipo sin perderlo, archívalo en lugar de eliminarlo.

Mejora automática

Al crear o actualizar un proceso puedes incluir auto_improve (por defecto true). Cuando está activo, Trébol mejora automáticamente tus instrucciones con IA en segundo plano para todos los tipos de proceso. Para procesos de extracción, también genera un json_schema.
Al crear un proceso de extracción no puedes enviar json_schema: en la creación el esquema lo genera la mejora automática, por eso auto_improve no se puede desactivar (auto_improve: false devuelve error 400). Si quieres definir o ajustar el esquema manualmente, hazlo después con un PATCH sobre el proceso (campo json_schema).

Autenticación

Todos los endpoints requieren tu API key en el header x-api-key.

Crear un tipo

string
required
Identificador del tipo de documento que defines tú. Debe empezar con cit_ y no puede contener espacios (usa _ o - como separador; ej. "cit_contrato_arrendamiento"). Único por cuenta entre tipos activos y archivados.
string
required
Instrucciones para identificar este tipo de documento.
string
required
Nombre legible para interfaces. Entre 2 y 255 caracteres.
boolean
default:"true"
Cuando es false, Trébol usa tus instrucciones tal cual, sin mejora automática.

Respuesta (201)

boolean
required
Indica si la operación se completó correctamente.
object
required
Tipo de ítem personalizado creado.
Las respuestas de escritura (POST / PATCH) no incluyen user_input ni json_schema en los procesos. Usa GET para leer el contenido completo de cada proceso.
La respuesta incluye un proceso de clasificación que Trébol crea junto con el tipo. Su process_reference se genera automáticamente como <name>_classification (por eso no lo envías al crear): es estable y predecible. No cambia si más adelante renombras el tipo, y —como cualquier proceso— puedes renombrarlo con PATCH, aunque normalmente no hace falta.

Errores


Listar tipos

Devuelve todos los tipos de tu cuenta (activos y archivados) con sus procesos. Ordenados por fecha de creación descendente. Tamaño de página fijo: 10.
string
Token de cursor para obtener la siguiente página. Devuelto en la respuesta cuando hay más resultados.

Respuesta (200)

boolean
required
Indica si la operación se completó correctamente.
array
required
Lista de tipos de ítem personalizados de la cuenta (activos y archivados).
string
Token de cursor para la siguiente página. Solo presente cuando hay más resultados.
Las respuestas de lectura (GET) incluyen user_input y json_schema en cada proceso.

Obtener un tipo

Devuelve un tipo con todos sus procesos. Misma estructura que un elemento individual del listado. Los tipos archivados se devuelven normalmente.

Actualizar un tipo

Actualiza campos del tipo. Debes enviar al menos un campo.
string
Renombra el tipo. No puede contener espacios. Única por cuenta entre tipos activos y archivados.
string
Actualiza el nombre legible. Entre 2 y 255 caracteres.
string
Estado del tipo. Valores permitidos:
  • "archived": pausa el tipo. Sigue apareciendo en el listado y puede reactivarse en cualquier momento.
  • "active": reactiva un tipo archivado.
Para pausar un tipo temporalmente usa status: "archived" (es reversible). Para borrarlo de forma permanente, usa Eliminar un tipo.

Respuesta (200)

Devuelve solo los campos del tipo, sin procesos.
boolean
required
Indica si la operación se completó correctamente.
object
required
Tipo actualizado (sin procesos).

Errores

Si los valores enviados ya coinciden con los actuales, el recurso no cambia y updated_at se mantiene.

Eliminar un tipo

Elimina el tipo de forma permanente e irreversible, junto con todos sus procesos.
Esta operación no se puede deshacer. Para pausar un tipo sin perderlo (y poder reactivarlo después), archívalo con PATCH status: "archived" en lugar de eliminarlo.

Respuesta (200)

boolean
required
Indica si la operación se completó correctamente.
object
required
Contiene el identificador del tipo eliminado.

Agregar un proceso

Agrega un proceso de validación o extracción a un tipo existente. Hasta 5 procesos de extracción y 20 de validación por tipo.
string
required
"validation" o "extraction".
string
required
Etiqueta del proceso. Única dentro del mismo tipo.
string
required
Instrucciones escritas por ti para este proceso.
boolean
Para procesos de extracción, debe enviarse como true (enviar false devuelve error 400: en la creación el json_schema lo genera la mejora automática y no se acepta enviarlo en esta petición; para definirlo manualmente, usa un PATCH posterior). Para procesos de validación, es opcional (por defecto true).
string | null
Solo para validación. "warning": el ítem se pausa hasta que se revise el resultado. "hard_stop": si la regla no se cumple, el ítem se da por finalizado. null: el ítem continúa procesándose aunque la regla falle. Se rechaza si se envía en otro tipo de proceso.

Respuesta (201)

boolean
required
Indica si la operación se completó correctamente.
object
required
Proceso creado.

Errores

Ejemplo: proceso de validación con failure_policy

Ejemplo de respuesta de error

Cuando ocurre un conflicto (por ejemplo, process_reference duplicado), la respuesta sigue esta estructura:

Obtener un proceso

Devuelve un proceso con su versión activa, incluyendo user_input y json_schema.

Respuesta (200)

boolean
required
Indica si la operación se completó correctamente.
object
required
Proceso con su versión activa.

Resolución

Para que el GET responda correctamente:
  1. La clasificación existe y no está archivado.
  2. El proceso existe y no está eliminado.
  3. La versión activa del proceso tiene user_input no nulo.
Si alguna condición falla, Trébol devuelve 404.
Tipos archivados (status: "archived") devuelven 404 al consultar sus procesos, aunque el tipo en sí siga siendo consultable via GET /v2/custom-item-types/{id}.

Actualizar un proceso

Actualiza un proceso. Debes enviar al menos un campo. process_type y id no se pueden cambiar.
string
Renombra la etiqueta. Única dentro del mismo tipo.
boolean
Activa o pausa el proceso sin eliminarlo. El proceso de clasificación no se puede pausar.
string
Nuevas instrucciones. Si el texto difiere del valor activo, se crea una nueva versión del proceso que pasa a ser la activa.
object
Solo para procesos de extracción. Define el esquema JSON de salida. Enviarlo crea una nueva versión del proceso. Enviarlo en un proceso que no es de extracción devuelve 400.
boolean
default:"true"
Solo aplica cuando cambias user_input. Si es false, Trébol no ejecuta mejora automática y conserva tus instrucciones tal cual.
string | null
Solo para validación. "warning": el ítem se pausa hasta que se revise el resultado. "hard_stop": si la regla no se cumple, el ítem se da por finalizado. null: el ítem continúa procesándose aunque la regla falle.
El proceso de clasificación se edita igual que cualquier otro: obtén su id con Obtener un tipo (es el proceso con process_type: "classification") y haz PATCH sobre /processes/{processId} cambiando su user_input.

Versiones del proceso

Cuando el PATCH modifica user_input (y el texto difiere del valor activo), Trébol crea una nueva versión del proceso, que pasa a ser la activa. Si auto_improve es true y cambias user_input, Trébol lanza la mejora automática en segundo plano.

Errores


Eliminar un proceso

Elimina permanentemente un proceso de validación o extracción. El proceso de clasificación no puede eliminarse; intentarlo devuelve error 409. Para cambiar sus instrucciones, usa PATCH sobre el proceso.

Respuesta (200)

boolean
required
Indica si la operación se completó correctamente.
object
required
Contiene el identificador del proceso eliminado.
El proceso de clasificación no puede eliminarse. Usa PATCH para actualizar sus instrucciones.

Procesamiento asíncrono

Cuando creas o actualizas un proceso con auto_improve = true, Trébol no bloquea la respuesta. En su lugar:
1

Respuesta inmediata

El endpoint devuelve 201 (creación) o 200 (actualización). La respuesta de escritura no incluye user_input ni json_schema.
2

Mejora en segundo plano

Trébol mejora tus instrucciones con IA para todos los tipos de proceso. Para procesos de extracción, también genera un json_schema.
3

Resultado disponible vía GET (extracción)

Para procesos de extracción, consulta el proceso con GET hasta que json_schema esté poblado. Para clasificación y validación, el proceso es funcional de inmediato con tus instrucciones originales.

Cómo saber cuándo terminó la mejora

El mecanismo varía según el tipo de proceso:
Normalmente el json_schema lo genera la mejora automática, pero también puedes definirlo tú con el campo json_schema en el PATCH del proceso (solo extracción). Otra opción para regenerarlo es cambiar el user_input con auto_improve: true para que Trébol produzca uno nuevo.

Interacción con verificaciones

Envío de ítems

Al enviar un ítem de verificación que referencia un tipo de ítem personalizado:
  1. El name debe corresponder a un tipo existente en tu cuenta (activo o archivado).
  2. El tipo debe tener status = 'active'.

Ejemplo completo

Este ejemplo crea un tipo de ítem personalizado para contratos de arrendamiento, le agrega una extracción y luego envía un documento para procesar.
1

Crear el tipo

2

Agregar un proceso de extracción

Usa el id del tipo devuelto en el paso 1 (aquí cit_abc123).
La respuesta incluye el id del proceso creado (por ejemplo, ccp_ghi789). Lo necesitas en el siguiente paso.
3

Esperar la mejora automática

Como se trata de un proceso de extracción, consulta el proceso con GET usando el id del paso 2 hasta que json_schema esté poblado. Para clasificación y validación, Trébol usa tus instrucciones originales de inmediato y las reemplaza internamente por las mejoradas cuando la mejora termina.
4

Enviar un documento para procesar

Crea una verificación usando el name del tipo como type del ítem.
5

Consultar los resultados

Una vez que la verificación termine de procesarse (puedes saberlo vía webhook), consulta los resultados de extracción con los endpoints v2 de lectura:Cada fuente incluye tus datos extraídos en el campo custom_user_prompts. Ese objeto usa el process_reference del proceso como clave. Ejemplo de fragmento en data.sources:
La clave (extraer_datos_contrato) es el process_reference que asignaste al proceso de extracción en el paso 2. Como cada ítem de verificación pertenece a un solo tipo, las claves de custom_user_prompts de una fuente provienen siempre de ese único tipo; por eso basta con que el process_reference sea único dentro del tipo para que no haya colisiones.

Siguientes pasos

Extracciones personalizadas

Personaliza la extracción para tipos de documento que Trébol ya soporta.

Reglas de validación

Reglas predefinidas y personalizadas para validar documentos.

Tipos de documentos

Lista completa de tipos de documento soportados.

Webhooks

Recibe notificaciones cuando una verificación termine de procesarse.