Publicar y usar
Congelar una versión, publicar la app en una dirección, decidir quién puede qué y crear las cuentas de quien la va a usar.
La app está construida. Falta la última etapa — y es la que cambia la naturaleza de lo que hiciste: hasta aquí la Gestión de Clientes era un proyecto dentro de la plataforma; a partir de aquí es una aplicación con dirección propia, cuentas propias y usuarios que nunca han oído hablar de Keplin.
Cuatro pasos: versión, dirección, quién puede qué, cuentas.
Versiones — qué se publica
Mientras construyes, trabajas siempre en una versión de trabajo. Una versión es un retrato completo de la app: pantallas, modelo, APIs, scripts, tema — y sus datos.
- En la parte superior de la barra de la app, haz clic en el selector de Versiones.
- Haz clic en Nueva versión….
- Dale un nombre —
1.0, por ejemplo — y elige A partir de la versión de origen. - Confirma. «Versión «1.0» creada — estás trabajando en ella.»

Atención
Las versiones no comparten datos. Una versión nueva nace con una copia de los datos del origen y sigue su vida. Esto es exactamente lo que quieres para experimentar sin miedo — y exactamente lo que te atrapa si publicas una versión esperando encontrar allí los registros de la otra.
Con versiones, el patrón de trabajo queda claro: main es donde se
desarrolla, 1.0 es lo que está en marcha, y el Merge selectivo trae
a la versión publicada solo los cambios que ya están listos.
Publicar en una dirección
- Abre los Ajustes de la app (el icono de engranaje en la parte superior de la barra).
- En el grupo Aplicación, elige General.
- Baja hasta la sección Publicación.

La regla está escrita ahí: «Cada host sirve UNA versión de esta app (el
DNS es aparte). Sin ninguno, la app solo responde en
/app/gestao-clientes, con la versión de trabajo.»
- En el campo del host, escribe la dirección — por ejemplo
crm.miempresa.es. - En el selector de al lado, elige la versión que esa dirección va a servir.
- Haz clic en Publicar. «Host publicado.»
Qué significa esto, en la práctica:
| Situación | Dónde responde la app | Qué versión sirve |
|---|---|---|
| Sin hosts publicados | /app/gestao-clientes |
La versión de trabajo |
| Con un host | Esa dirección | La versión que le asociaste |
| Con dos hosts | Ambos | Cada uno la suya — así es como se tiene un crm.empresa.es estable y un crm-pruebas.empresa.es con la versión siguiente |
Nota
La plataforma asocia la dirección a la app y a la versión; apuntar el
DNS de esa dirección al servidor es trabajo de red, hecho fuera de
aquí. Mientras el DNS no esté hecho, /app/gestao-clientes sigue
sirviendo la app igualmente.
Para quitar una dirección de servicio, Despublicar.
Quién puede qué — los roles
Antes de crear cuentas, decide qué puede hacer cada tipo de persona. Eso se hace en roles, y no persona a persona.
- En los Ajustes de la app, grupo Usuarios, elige Permisos.
- Haz clic en Nuevo role y dale un nombre. Para nuestro CRM, con tres basta.

| Role | Descripción | Para quién |
|---|---|---|
equipa |
Equipo comercial — acceso completo a los datos del CRM | Quien trabaja las cuentas todos los días. Es el role dado por defecto. |
direcao |
Dirección — aprueba las oportunidades por encima de 25.000 € | Quien decide. |
leitura |
Consulta — ve el CRM sin poder cambiar nada | Quien solo necesita ver. |
Dentro de un role, el trabajo se reparte en cinco pestañas:
| Pestaña | Qué decide |
|---|---|
| General | Nombre, descripción, Acceso total y Dado por defecto (asignado a quien se cree de nuevo). |
| Datos | Por cada API de tabla, qué se puede — Ver, Crear, Cambiar, Eliminar — y el Ámbito: Todos los registros, Solo los míos o Con condición…. |
| Pantallas | Por pantalla y por dispositivo: Oculta, Ver (solo lectura) o Editar. |
| Menús | Qué se esconde de la navegación. Al contrario que las pantallas, un menú es visible por defecto. |
| Acciones | Los verbos que solo existen en esta app — aprovar-oportunidade, por ejemplo. Se declaran aquí y se exigen en los widgets. |
Para el role equipa, lo mínimo que hace funcionar el CRM:
- En la pestaña Datos, marca Ver, Crear, Cambiar y
Eliminar en las tres APIs (
contas,contactos,oportunidades), con el ámbito Todos los registros. - En la pestaña Pantallas, pon las cuatro pantallas en Editar, en los tres dispositivos.
- En la pestaña General, activa Dado por defecto.
- Guardar — «Permisos guardados.»
Para el role leitura, lo mismo con una diferencia: solo Ver en los
datos, y las pantallas en Ver (solo lectura).
Atención
«Sin ninguna regla, este role no ve nada de esta API.» Un role nuevo empieza vacío — y un usuario solo con ese role entra en la app y no ve ningún dato. Si la app le parece vacía a alguien, casi siempre la respuesta está aquí.
Las cuentas de quien usa la app
Llegó la parte que separa las dos poblaciones de Keplin. Estas cuentas no son cuentas de la plataforma:
- En los Ajustes de la app, grupo Usuarios, elige Usuarios de la app. El aviso de arriba lo dice todo: «Estos usuarios son de la app construida — hacen login en la app en runtime y no tienen ningún acceso a la plataforma KEPLIN.»

- Haz clic en Nuevo usuario. El formulario se abre en página.

- Rellena:
| Campo | Qué poner |
|---|---|
| Username | Obligatorio — letras, números, punto, guion, _ y @. Ej.: bruno.dias. |
| Nombre | El nombre de la persona; es lo que aparece en el menú del usuario dentro de la app. |
| Opcional, pero necesario para la recuperación de contraseña. | |
| Contraseña | La contraseña inicial — «el usuario puede cambiarla en la app». |
| Activo | Encendido. Apagado, la cuenta existe pero no entra. |
| Roles | Los roles de la persona. Una cuenta nueva trae premarcados los que están dados por defecto. |
- Guardar — «Usuario creado.»
Repite para todo el equipo. Cuando sean muchas personas, la lista trabaja por ti: selecciona varias cuentas y usa Dar role, Quitar role, Activar o Desactivar de una vez.
Consejo
El aviso ámbar «… usuario(s) sin ningún role — no ven datos ni pantallas» es clicable y filtra enseguida esas cuentas. Merece la pena mirarlo siempre que alguien diga que «la app no muestra nada».
Entrar en la app
Está todo. Abre la dirección publicada — o /app/gestao-clientes, si aún
no publicaste ningún host — en una ventana normal del navegador.

Lo que aparece es la pantalla Login: los campos Usuario y Contraseña, el botón Entrar y el enlace Olvidé mi contraseña. Es una de las pantallas de Sistema de la app — viene hecha y pintada con el tema que elegiste en la etapa anterior.
Entra con una de las cuentas que creaste. La app se abre en el Menú inicial que definiste: el dashboard, con los indicadores calculados sobre los datos reales, el menú con tu logo y los colores de tu marca.

Recorre lo que construiste, desde el punto de vista de quien va a usar esto todos los días:
- Início — los cuatro indicadores, el gráfico del pipeline y la tabla de próximos cierres.
- Contas — la lista; haz clic en una fila y caes en la ficha de esa cuenta, con sus contactos al lado.
- Cambia un campo y haz clic en Guardar — el aviso aparece y vuelves a la lista, ya con el cambio.
- Haz clic en Nova conta — la misma ficha, ahora en blanco. Rellena y guarda: el registro se crea.
- Oportunidades — arrastra una tarjeta de Proposta a Negociação. La fase se guarda al momento; vuelve al Início y el gráfico ya cambió.
La guía terminó. ¿Y ahora?
Tienes una aplicación de negocio funcionando, construida de punta a punta. Desde aquí, cada pieza tiene un capítulo que va mucho más a fondo de lo que esta guía pudo ir:
| Si quieres… | Ve a |
|---|---|
| Pantallas más ricas — más widgets, eventos, layouts por dispositivo | Constructor de pantallas |
| Conectar la app a bases de datos que ya existen | Datasources |
| Exponer los datos a sistemas de fuera | APIs & GraphQL y Claves de API |
| Más automatización — dependencias, archivos, el SDK completo | Scripts |
| Afinar todo lo que es de la app — notificaciones, almacenamiento, retención | Ajustes de la app |
| Llevar esta app a otra instalación | Importar y exportar |
¿Por qué no…?
- ¿Por qué mi dirección no abre la app? El host está registrado en la
plataforma, pero el DNS de esa dirección tiene que apuntar al
servidor. Hasta que eso esté hecho, usa
/app/gestao-clientes. - ¿Por qué la dirección sirve la versión equivocada? Cada host sirve UNA versión, elegida en el momento de la publicación. Despublica y vuelve a publicar con la versión correcta.
- ¿Por qué el usuario entra y no ve nada? No tiene role, o su role no tiene reglas de Datos. Confírmalo en la lista de usuarios (el aviso ámbar) y después en la pestaña Datos del role.
- ¿Por qué el usuario ve el menú pero la pantalla dice que no tiene acceso? La pantalla está Oculta para su role, en la pestaña Pantallas — y por dispositivo: puede estar abierta en web y oculta en el móvil.
- ¿Por qué los datos que creé probando no aparecen en la versión publicada? Porque las versiones no comparten datos. Los creaste en la versión de trabajo; el host está sirviendo otra.
- ¿Por qué mi cuenta de la plataforma no entra en la app? Porque son poblaciones distintas. Para entrar en la app necesitas una cuenta de Usuarios de la app, aunque seas tú quien la construyó.