Entidades personalizadas
Aprende a crear y gestionar objetos de datos personalizados más allá de la entidad Usuarios integrada.
¿Qué son las entidades personalizadas?
Las entidades personalizadas (también llamadas objetos personalizados) te permiten definir y almacenar cualquier tipo de datos estructurados en Joryio. Piensa en ellas como tablas de base de datos personalizadas que puedes crear desde la interfaz.
Casos de uso habituales:
- Productos: almacena catálogos de productos con precios, SKU y descripciones.
- Pedidos: registra el historial de pedidos y los datos de compra.
- Inventario: gestiona niveles de existencias y datos de almacén.
- Contenido: almacena artículos, vídeos u otro contenido.
- Ubicaciones: almacena ubicaciones de tiendas u oficinas.
- Oportunidades: registra oportunidades de ventas.
- Suscripciones: gestiona planes y niveles de suscripción.
Funciones principales
Definición flexible de esquemas
- Define campos personalizados con más de 18 tipos de campo.
- Configura reglas de validación para cada campo.
- Añade índices para mejorar el rendimiento de las búsquedas.
- Controla la visibilidad y el orden de presentación de los campos.
Operaciones CRUD completas
- Crea, lee, actualiza y elimina registros.
- Importa datos en bloque.
- Busca y filtra registros.
- Exporta datos.
Funciones avanzadas
- Registro de auditoría: registra todos los cambios de los registros.
- Control de versiones: conserva el historial de modificaciones de registros.
- Eliminación lógica: marca registros como eliminados en vez de quitarlos.
- Relaciones: vincula entidades entre sí (función futura).
Primeros pasos
Crear tu primera entidad
-
Ve a Entidades desde el menú principal.
-
Haz clic en Crear entidad.
-
Configura los ajustes básicos:
- Nombre de presentación (por ejemplo, «Productos»).
- Nombre interno (por ejemplo, «products»): solo minúsculas y guiones bajos.
- Descripción.
- Campo de presentación: el campo que se muestra en las listas.
-
Añade campos para tu estructura de datos.
-
Configura los ajustes (opcional).
-
Haz clic en Crear.
Ejemplo: entidad Productos
Vamos a crear una entidad Productos para almacenar tu catálogo de productos:
Ajustes de la entidad:
- Nombre de presentación:
Products - Nombre interno:
products - Campo de presentación:
name - Descripción:
Catálogo de productos con precios e inventario
Campos:
-
SKU (cadena)
- Obligatorio: Sí
- Único: Sí
- Indexado: Sí
-
Nombre (cadena)
- Obligatorio: Sí
- Longitud máxima: 255
-
Descripción (Markdown)
- Obligatorio: No
-
Precio (moneda)
- Obligatorio: Sí
- Mínimo: 0
-
Cantidad en stock (entero)
- Obligatorio: Sí
- Mínimo: 0
-
URL de imagen (URL de imagen)
- Obligatorio: No
-
Categoría (cadena)
- Indexado: Sí
-
Activo (booleano)
- Predeterminado: true
Tipos de campo
Joryio admite más de 18 tipos de campo:
Tipos de texto
- Cadena: texto corto (nombres, títulos).
- Email: direcciones de email con validación.
- Teléfono: números de teléfono.
- URL: direcciones web con validación.
- Markdown: texto enriquecido compatible con Markdown.
- HTML: contenido HTML sin procesar.
- JSON: datos JSON estructurados.
Tipos numéricos
- Número: números decimales.
- Entero: solo números enteros.
- Moneda: valores monetarios con precisión decimal.
- Porcentaje: valores porcentuales.
Tipos de fecha/hora
- Fecha: solo fecha (sin hora).
- Fecha y hora: fecha y hora.
Otros tipos
- Booleano: valores verdadero/falso.
- URL de imagen: URL de imágenes (muestra una miniatura).
- URL de archivo: URL de archivos.
Tipos futuros
- Referencia: vínculo a otra entidad (próximamente).
- Matriz: varios valores (próximamente).
Validación de campos
Configura reglas de validación para cada campo:
Validaciones habituales
- Obligatorio: el campo debe tener un valor.
- Único: no se permiten valores duplicados.
- Mín./máx.: para números (por ejemplo, precio >= 0).
- Longitud mín./máx.: para cadenas (por ejemplo, SKU entre 5 y 20 caracteres).
- Patrón: validación mediante expresión regular.
- Enum: limita a valores específicos.
Ejemplos
Campo de email:
Tipo: Email
Obligatorio: Sí
Validación: el formato de email se valida automáticamente
Campo de precio:
Tipo: Moneda
Obligatorio: Sí
Mínimo: 0
Máximo: 999999
Campo SKU:
Tipo: Cadena
Obligatorio: Sí
Único: Sí
Longitud mínima: 5
Longitud máxima: 20
Indexado: Sí
Gestionar registros
Añadir registros
- Abre tu entidad desde la lista de Entidades.
- Haz clic en Añadir registro.
- Completa el formulario (se genera automáticamente a partir de tu esquema).
- Haz clic en Crear.
El formulario se adapta automáticamente a tus tipos de campo:
- Campos de cadena → entradas de texto.
- Campos numéricos → entradas numéricas.
- Campos de fecha → selectores de fecha.
- Campos booleanos → casillas de verificación.
- Y más.
Ver registros
Los registros se muestran en una tabla dinámica con columnas para cada campo:
- Ordena por cualquier columna.
- Busca en todos los campos.
- Pagina conjuntos de datos grandes.
- Consulta la visualización específica por tipo (fechas, moneda, imágenes).
Editar registros
- Haz clic en el icono de edición de cualquier registro.
- Modifica los campos.
- Haz clic en Actualizar.
Se registran todos los cambios si el registro de auditoría está activado.
Eliminar registros
- Haz clic en el icono de eliminación de cualquier registro.
- Confirma la eliminación.
Si la eliminación lógica está activada, los registros se marcan como eliminados pero no se quitan de la base de datos.
Historial de cambios
Cada entidad conserva un registro de auditoría por registro que puedes consultar en la interfaz. El botón Historial de la página de registros (y de cada registro individual) abre un panel con cada creación, actualización y eliminación: qué campos cambiaron, quién hizo el cambio, cuándo y los valores antes/después. Úsalo para ver cómo evolucionó un registro o investigar un valor inesperado.
Ajustes de la entidad
Registro de auditoría
Cuando está activado, Joryio registra:
- Quién creó o modificó cada registro.
- Qué cambió.
- Cuándo ocurrieron los cambios.
Accede a los registros de auditoría mediante la API o la interfaz de administración.
Control de versiones
Conserva el historial completo de todos los cambios de registros:
- Revierte a versiones anteriores.
- Compara versiones.
- Registra la evolución de los datos con el tiempo.
Eliminación lógica
En vez de eliminar registros permanentemente:
- Márcalos como eliminados mediante una marca.
- Conserva los datos para cumplimiento.
- Restaura los registros eliminados si es necesario.
Permitir duplicados
De forma predeterminada, se impiden los registros duplicados. Desactívalo para permitir:
- Varios registros con los mismos valores.
- Casos útiles como registros de eventos o transacciones.
Buscar y filtrar
Búsqueda
Busca en todos los campos indexados:
- Búsqueda de texto completo.
- Sin distinción de mayúsculas y minúsculas.
- Coincidencias parciales admitidas.
Operadores de filtro de selección
Las selecciones filtran registros con condiciones por campo: igual / distinto, mayor/menor que (o igual), contiene, existe y el par de varios valores Es uno de / No es uno de. Introduce varios valores separados por comas (por ejemplo, ER, ICU, NICU) y el registro coincide si su campo es igual a cualquiera de ellos. Los valores numéricos coinciden tanto si el registro los almacena como número como cadena. Combina condiciones con AND/OR.
Filtros (mediante API)
Aplica filtros complejos mediante la API:
{
filter: {
price: { $gte: 10, $lte: 100 },
category: "Electronics",
active: true
},
sort: { price: -1 },
limit: 20
}
Rendimiento de selecciones y recomendaciones de índices
La vista Selecciones incluye un panel de rendimiento que enumera tus selecciones principales por uso y recomienda índices de base de datos para acelerar las que ejecutas con más frecuencia. Cada recomendación tiene una prioridad; el botón Crear índices recomendados los aplica para que las selecciones más usadas se resuelvan antes.
Recomendaciones de rendimiento
Indexación
Añade índices a los campos por los que con frecuencia:
- Buscas.
- Filtras.
- Ordenas.
Ejemplo: si buscas a menudo por SKU o filtras por categoría, indexa esos campos.
Orden de los campos
Configura displayOrder para controlar:
- El orden de los campos del formulario.
- El orden de las columnas de la tabla.
- La optimización de la experiencia de usuario.
Campos ocultos
Marca campos como ocultos si son:
- Solo internos.
- Innecesarios en las vistas predeterminadas.
- Metadatos técnicos.
Casos de uso
E-commerce
Entidades:
- Productos (SKU, nombre, precio, imágenes).
- Pedidos (ID de pedido, artículos, total, estado).
- Inventario (almacén, cantidad, ubicación).
- Categorías (nombre, descripción, principal).
Flujo de trabajo:
- Importa el catálogo de productos.
- Activa campañas según el bajo inventario.
- Envía confirmaciones de pedido.
- Personaliza recomendaciones de productos.
Gestión de contenido
Entidades:
- Artículos (título, contenido, autor, etiquetas).
- Vídeos (título, URL, duración, categoría).
- Autores (nombre, biografía, foto).
Flujo de trabajo:
- Almacena la biblioteca de contenido.
- Haz referencia a ella en campañas de email.
- Personaliza recomendaciones de contenido.
- Registra el rendimiento del contenido.
Plataforma SaaS
Entidades:
- Suscripciones (plan, precio, funciones).
- Funciones (nombre, descripción, nivel).
- Métricas de uso (métrica, valor, período).
Flujo de trabajo:
- Registra el estado de suscripción.
- Activa campañas de mejora.
- Supervisa el uso de funciones.
- Calcula la facturación.
Integración
Con campañas
Haz referencia a datos de entidades en plantillas de email con el filtro catalog:
Obtener todos los registros de una entidad:
{% assign products = 'products' | catalog %}
{% for product in products %}
<h3>{{ product.name }}</h3>
<p>Price: ${{ product.price }}</p>
<img src="{{ product.image_url }}" />
{% endfor %}
Obtener registros con una selección preconfigurada (con filtros/ordenación):
{% assign featuredProducts = 'products' | catalog: 'featured_items' %}
{% for product in featuredProducts %}
<h3>{{ product.name }}</h3>
<p>Price: ${{ product.price }}</p>
{% endfor %}
Notas:
- Sin una selección: devuelve hasta 50 registros.
- Con una selección: usa los filtros, la ordenación y el límite configurados en la selección.
- Los nombres de entidad y selección deben coincidir exactamente con los definidos en tu espacio de trabajo.
Con Canvas (creador de recorridos)
Usa datos de entidades para:
- Activar recorridos.
- Ramificar según valores.
- Personalizar mensajes.
- Registrar conversiones.
Con segmentos
Segmenta usuarios según las relaciones de entidades:
- Usuarios que compraron productos concretos.
- Usuarios con suscripciones activas.
- Usuarios en ubicaciones concretas.
Acceso a la API
API REST completa para acceso mediante programación:
// Enumerar entidades
GET /api/entities
// Crear entidad
POST /api/entities
{
"name": "products",
"displayName": "Products",
"fields": [...]
}
// Enumerar registros
GET /api/entities/:entityId/records
// Crear registro
POST /api/entities/:entityId/records
{
"sku": "PROD-001",
"name": "Widget",
"price": 29.99
}
Consulta Referencia de la API de entidades para ver la documentación completa.
Prácticas recomendadas
Diseño del esquema
- Empieza de forma simple: añade campos según los necesites.
- Usa nombres significativos: nombres de campo claros y descriptivos.
- Indexa con criterio: indexa solo los campos por los que buscarás o filtrarás.
- Valida los datos: configura reglas de validación adecuadas.
- Documenta el propósito: usa descripciones para campos complejos.
Calidad de los datos
- Aplica unicidad cuando corresponda (SKU, emails).
- Exige campos críticos: no conviertas todo en opcional.
- Configura valores predeterminados razonables: facilitan la entrada de datos.
- Valida formatos: usa tipos de campo adecuados.
- Limpia regularmente: elimina registros obsoletos.
Rendimiento
- Limita el número de registros: archiva datos antiguos.
- Usa paginación: no cargues todos los registros a la vez.
- Indexa estratégicamente: equilibra velocidad de consulta y almacenamiento.
- Usa caché cuando sea posible para datos a los que se accede con frecuencia.
Solución de problemas
No se puede crear la entidad
- Comprueba el formato del nombre interno (solo minúsculas y guiones bajos).
- Verifica que el nombre no esté ya en uso.
- Asegúrate de tener permiso.
Los registros no aparecen
- Comprueba los filtros o términos de búsqueda.
- Verifica la selección del espacio de trabajo.
- Comprueba el estado de eliminación lógica.
Consultas lentas
- Añade índices a los campos filtrados.
- Reduce el tamaño del conjunto de resultados.
- Optimiza las consultas de filtro.