Record Pages
Una Record Page es la página que se abre al entrar a un registro. Vos decidís qué muestra y cómo: los campos agrupados en secciones, las listas relacionadas, las notas, los archivos, los gráficos, las pestañas, los botones del encabezado. Podés tener varias por entidad y asignar cuál ve cada equipo. Necesitás configure_entities; se administran en Configuración → Constructor de app → Entidades → (entidad) → Record Pages.
Anatomía de una Record Page
Cada página se arma sobre una plantilla que fija la estructura:
| Plantilla | Estructura |
|---|---|
| Single | Una columna a todo el ancho |
| Two column | Principal (2/3) + derecha (1/3) |
| Header + main + right | Banda superior a todo el ancho + principal + derecha. Es el default de una Record Page nueva |
| Header + main + left | Banda superior + izquierda (1/3) + principal |
| Dashboard | Grilla libre de 12 columnas con alto fijo, pensada para gráficos y contadores |
Cambiar de plantilla no pierde componentes: los que estaban en una zona que ya no existe pasan a la principal para que los reacomodes.
Componentes disponibles
| Componente | Qué muestra | Configuración |
|---|---|---|
| Encabezado (record header) | Nombre de la entidad, título del registro, etiqueta del tipo, botones Editar / Eliminar | Texto custom, mostrar/ocultar botones, botones custom (ver abajo) |
| Highlights | Tiles con los campos clave debajo del encabezado | Lista de campos; el énfasis “monto” lo pinta en color de marca. Los campos de relación son links al registro apuntado y muestran su vista previa al pasar el mouse, igual que en Detalles |
| Path | Las etapas de un picklist como chevrones; clic en una etapa la cambia | Campo picklist, valores terminales (ganado/perdido quedan afuera del camino, en rojo), solo lectura |
| Detalles (record details) | Los campos del registro en 1, 2 o 3 columnas, con edición inline | Qué campos, en qué orden, y condiciones de visibilidad por campo (mostrar “Motivo de pérdida” solo si etapa = Perdido) |
| Lista relacionada | Registros de otra entidad que apuntan a este (los contactos de una cuenta) | Entidad y campo de relación, botón de crear, búsqueda, columnas, filtro, alto fijo o dinámico |
| Lista de entidad | Cualquier list view, sin relación con el registro | Entidad, list view, acciones |
| Kanban | Tablero por etapa de una entidad | Entidad, campo de columnas, qué muestra cada tarjeta |
| Notas | Hilo de notas del registro | Título, cuántas mostrar antes de “ver más” |
| Field History | Historial de cambios de los campos con seguimiento | Título, cuántas entradas. Requiere view_field_history — ver Entidades → History Tracking |
| Gráfico | Un Visual Component (contador, KPI, torta, barras, línea, top N) | Cuál — se crean en Constructor de app → Graphs |
| Componente custom | Un Visual Component programado por tu equipo | Cuál y sus props. Ver Visual Components |
| Pestañas | Contenedor: agrupa otros componentes en tabs | Pestañas con nombre e ícono, cuál abre por defecto |
| Grilla | Contenedor: reparte componentes en 2 a 4 columnas | Columnas, ancho de cada celda, título de sección |
Los archivos adjuntos y los emails del registro se muestran desde sus propias superficies (la pestaña de archivos y la bandeja de emails); ver Archivos y adjuntos y Emails.
Pestañas y grillas
Cuando una página acumula muchos componentes, agrupalos:
- Pestañas: el usuario ve una barra arriba y solo el contenido de la pestaña activa. Útil en un producto: una pestaña con opciones, otra con reglas, otra con historial. Para soltar un componente en una pestaña que no está activa, arrastralo sobre su nombre.
- Grilla: reparte componentes en columnas — la pieza para un dashboard dentro del registro (fila de contadores, fila de gráficos con uno más ancho).
Reglas de ambos: un solo nivel (no hay pestañas dentro de pestañas ni grillas dentro de pestañas), el encabezado, los highlights y el path no entran (son la identidad del registro y van siempre visibles arriba), y el contenedor es dueño de su contenido: borrarlo, o borrar una pestaña o celda, se lleva lo que tenía adentro. El builder avisa antes.
Usar el Page Builder
Abrir
Configuración → Constructor de app → Entidades → (entidad) → Record Pages. Creá una página nueva o abrí una existente. El builder ocupa toda la pantalla.
Elegir plantilla
Arriba, el selector de plantilla muestra miniaturas. También podés alternar el ancho de vista previa (escritorio / tablet / móvil).
Arrastrar componentes
La paleta de la izquierda agrupa los componentes (Standard, Data viz, Custom, Layout). Arrastrá al slot donde lo querés; se pueden mover entre slots y reordenar.
Configurar
Al seleccionar un componente, el panel derecho muestra sus Propiedades (edición en vivo), Visibilidad (condiciones sobre el registro) y Avanzado (duplicar, eliminar).
Previsualizar con un registro real
En el panel derecho, sin nada seleccionado, elegí un registro de vista previa: el canvas se rellena con sus datos, idéntico a como lo va a ver el usuario. Vista previa oculta todo el chrome del builder.
Guardar
Save arriba a la derecha. Los usuarios ven el cambio al abrir el próximo registro.
Las condiciones de visibilidad por componente (pestaña Visibilidad) se guardan pero todavía no se aplican al mostrar la página. Las condiciones por campo dentro de Detalles sí funcionan.
Botones del encabezado
Además de Eliminar, el encabezado puede llevar botones propios: Emitir recibo, Enviar cotización, Renovar contrato. Cada botón es un Visual Component que tu equipo (o un paquete instalado) creó con el alcance “acción del encabezado”, o un Stepper; al hacer clic se abre un diálogo (o corre directo, si es una acción sin pantalla).
Para agregarlo a una página:
- En el builder, seleccioná el Encabezado → panel Propiedades → sección Header buttons.
- El selector muestra solo los componentes habilitados para esta entidad. Agregá el que quieras y, si querés, cambiá su texto o ícono.
- Guardá.
Orden y menú “More”
La sección Header buttons es una sola lista ordenada con todo lo que aparece en el encabezado: tus botones y los de la plataforma (Eliminar). Las flechas ↑↓ mueven cualquiera de los dos — el orden de arriba hacia abajo es el orden de izquierda a derecha en el encabezado. Podés, por ejemplo, dejar Emitir recibo como botón principal y mandar Eliminar al final, o al revés.
- El checkbox de la fila Eliminar decide si ese botón se muestra; no hace falta buscarlo en otro lado.
- Buttons before the “More” menu (por defecto 3) limita cuántos botones propios entran en la fila. Los que sobran se pliegan en un menú (⋯), que aparece justo donde habría ido el primero de ellos.
- Los botones de la plataforma nunca se pliegan al menú: Eliminar siempre queda a la vista si está habilitado.
La estrella de favorito va pegada al título, no en la fila de botones. Se muestra u oculta con Show favourite star, en la sección Title del mismo panel. El botón Editar no vive en el encabezado sino en la card de Detalles.
En tiempo de ejecución cada botón se muestra solo si el usuario tiene los permisos que el componente exige y si el registro cumple sus condiciones de visibilidad (por ejemplo, Emitir recibo solo con estado = Pagada). Los paquetes como CPQ y Fundraising ya traen sus páginas con estos botones configurados. Cómo se programan: Visual Components.
Quién ve cuál página
Una entidad puede tener varias Record Pages. Para cada usuario y cada registro, se recorre la lista de arriba hacia abajo y se usa la primera que matchea por dos dimensiones:
- Audiencia: un permission set, o Todos. Una página con audiencia la ven solo los usuarios de ese permission set.
- Tipo de registro: una página puede estar ligada a un tipo (ver Tipos de registro); sin tipo, aplica a cualquier registro.
En la pestaña Record Pages, cada fila muestra su número de orden, el nombre y una etiqueta con la audiencia. Asignar audiencia abre un selector (Todos o un permission set); las flechas ↑↓ cambian el orden.
La página abierta a todos va al final. Una página sin audiencia ni tipo matchea con cualquiera: si queda arriba, gana siempre y las específicas que estén debajo no se ven nunca. Orden correcto: primero las específicas (tipo + audiencia), después las de una sola dimensión, al final la general.
Si un usuario no matchea con ninguna (todas tienen una audiencia que no tiene), ve la primera página abierta a todos; si no hay ninguna, la primera de la lista. Siempre ve algo.
Las páginas que instala un paquete son de solo lectura en su diseño (podés clonarlas para modificar la copia), pero su audiencia y su orden son tuyos y se conservan cuando el paquete se actualiza.
Limitaciones actuales
- Una página se asigna a un permission set. Si dos equipos necesitan la misma, creá un permission set que abarque a ambos y asignalo a ese.
- El orden se cambia con flechas, no arrastrando.
- No hay vista previa de “qué página ve el usuario X”.
- Si borrás un permission set asignado a una página, esa página deja de matchear (no rompe nada: cae a la siguiente).