Informe de cambios · ReviewsIA

Qué ha cambiado respecto a la versión original

Rediseño completo de la interfaz con la marca, funciones nuevas pensadas para vender a negocios con problemas de reseñas, un panel maestro para el dueño de la plataforma con acceso protegido por Google, y una revisión a fondo para que todo aguante en producción. Nada se ha subido todavía: todo está en local, a la espera de un Pull Request.

25 de septiembre de 2026Rama: pendiente de crearCapturas con datos de ejemplo, no son clientes reales
9funciones nuevas
24pantallas nuevas o rediseñadas
101 → 134pruebas automáticas, todas en verde
2bases de datos probadas: SQLite y PostgreSQL
107archivos: 69 nuevos y 38 modificados
Cada cambio lleva su impacto: AltoMedioBajoNuevo · Pulsa cualquier captura para verla en grande. En las capturas de página entera el menú lateral sale cortado: es un efecto de la captura, no de la app.

Vídeo interno

Todo lo que hace la herramienta en 2 minutos, con capturas reales, locución y subtítulos. Datos de ejemplo.

Este vídeo NO es de venta. Es para que veas cómo ha quedado todo. Enseña pantallas que solo vemos nosotros: el panel maestro, la gestión de clientes, los ingresos, los pagos y el coste de la IA. No lo enseñes a clientes ni lo publiques. Para eso está el vídeo de venta, justo debajo.

Vídeo de venta

Un minuto para la landing page. Solo sale lo que ve el cliente y termina con la prueba gratis.

Este sí se puede publicar. No enseña nada interno: ni el panel maestro, ni ingresos, ni datos de otros clientes. Todos los datos que aparecen son de ejemplo.

  • Guion centrado en el cliente: empieza por su problema (las reseñas sin responder) y cierra con "Pruébalo gratis: 5 respuestas sin tarjeta", que es lo que hace hoy la app.
  • Voz profesional, subtítulos para verlo sin sonido y música instrumental generada con IA (KIE). Antes de ponerlo en anuncios de pago, conviene confirmar las condiciones de uso comercial de esa música.
  • Víctor tiene los originales en 1080p y los subtítulos en un archivo aparte para la landing.

Panel maestro y seguridad

Última tanda. Lo que necesita el dueño de un SaaS para llevar el negocio, y lo que ve el cliente de sus pagos.

Panel maestro con las cifras del negocio

AltoNuevo

Solo lo ve la cuenta de administración. Aparece en el menú bajo "Administración"; los clientes no lo ven ni pueden entrar.

  • Ingresos recurrentes al mes (y al año), lo cobrado este mes frente al anterior, clientes de pago, conversión desde la prueba, bajas y pagos fallidos.
  • Gráficos de ingresos cobrados y empresas nuevas de los últimos 12 meses.
  • Suscripciones activas por plan, los mejores clientes por ingresos y la actividad reciente.
  • Uso de la herramienta: empresas, usuarios, locales con error de Google, reseñas gestionadas y coste de la IA del mes.
Panel maestro
Lista de clientes
En el móvil

Ficha de cada cliente y suspender cuentas

AltoNuevo
  • Lista de clientes con buscador, pestañas (de pago, en prueba, suspendidos) y orden por ingresos, reseñas o fecha.
  • Ficha con ingresos totales, reseñas, nota media, tasa de respuesta, coste de IA, gráfico de 12 meses, usuarios, locales, suscripciones, historial de pagos, informes y registro de actividad.
  • Botón "Suspender empresa" con confirmación: sus usuarios salen de la sesión y no pueden volver a entrar hasta reactivarla. No deja suspender tu propia empresa. Queda anotado en el registro.
Ficha de un cliente

Pagos, uso de la IA, usuarios y cupones

MedioNuevo
  • Pagos: todos los cobros de todos los clientes, filtrados por estado y por mes, con el total cobrado.
  • Uso de la IA: llamadas, tokens, errores y coste por tipo de uso y por cliente, en 7, 30 o 90 días. Sirve para vigilar el margen de cada plan.
  • Usuarios: todas las personas con acceso, con filtros; se les puede enviar el enlace para crear contraseña o verificar el correo a mano.
  • Cupones: se mantienen como estaban, ahora dentro del menú de administración.
Pagos
Uso de la IA
Usuarios

Doble factor con Google para el dueño

AltoNuevo

La cuenta de administración, además de la contraseña, tiene que confirmar su identidad con Google antes de ver cualquier pantalla. Los clientes no lo necesitan: entran como siempre.

  • Solo se aceptan las cuentas de Google autorizadas y con el correo verificado. Cualquier otra se rechaza y queda anotada.
  • La verificación dura 12 horas; después vuelve a pedirla.
  • Si el servidor no tiene configurado Google, la pantalla lo avisa y no deja pasar: falla cerrado, nunca abierto.
Ordenador
Móvil

Historial de pagos del cliente y botón "Comprar"

MedioNuevo
  • En Planes y facturación, cada cliente ve ahora el historial de pagos de su cuenta: fecha, concepto, importe, estado y total pagado.
  • Los botones de los paquetes decían "Comprar con Stripe"; ahora dicen "Comprar". Al cliente no le importa la pasarela, y ya no se nombra en ninguna parte de la pantalla.
Historial de pagos
En el móvil

Icono en todos los navegadores y SEO

MedioNuevo
  • Juego completo de iconos: favicon.ico (16, 32 y 48 px), SVG, PNG, icono para iPhone y Android y manifiesto web. Antes solo había un SVG, que Safari y algunos navegadores no muestran.
  • Inicio de sesión y registro se pueden indexar, con descripción, enlace canónico e imagen para compartir (1200 × 630) en WhatsApp, redes y Google.
  • El resto del panel lleva noindex: nada privado aparece en Google.
  • Título claro en la pestaña de cada pantalla. Todo cubierto por pruebas automáticas.

Aviso. La web comercial de ReviewsIA (la que vende) no está en este repositorio; su SEO se trabaja aparte.

Funciones nuevas

Lo que el cliente no podía hacer antes. Ordenado por lo que más ayuda a vender.

Informe mensual con IA

AltoNuevo

El día 1 de cada mes a las 7:00 se prepara solo el informe del mes anterior y llega un correo a los propietarios. Es la función que demuestra al cliente, cada mes, lo que gana con la herramienta.

  • Resumen del mes en dos o tres frases, redactado por la IA.
  • Cifras con comparación: reseñas, nota media, tasa y tiempo de respuesta, con flecha verde o roja frente al mes anterior y la media de 3, 6 o 12 meses.
  • Lo mejor que han mencionado y lo que conviene mejorar, como temas, sin copiar reseñas.
  • Sensación media de 0 a 100 según el tono de los comentarios, no solo las estrellas.
  • La reseña más inspiradora del mes, con el motivo y un botón para convertirla en imagen.
  • Reparto de estrellas, cifras por local e impresión o PDF.
  • Si la IA falla o no está configurada, el informe sale igualmente con las cifras y una versión básica.
Informe con IA
Lista de informes
En el móvil

Norma de Google. La app borra los textos de reseñas que no se refrescan en 30 días. Por eso el informe guarda cifras y temas resumidos, y la reseña inspiradora solo como enlace, nunca una copia del texto.

La IA aprende de las correcciones del negocio

AltoNuevo

Cuando alguien corrige la respuesta sugerida y la aprueba, la IA deduce reglas de estilo generales (por ejemplo "Tutea siempre al cliente" o "Firma como El equipo de Óptica Central") y las aplica en todas las respuestas siguientes de ese negocio. Cuanto más se usa, mejor responde: hace difícil irse a otra herramienta.

  • Pantalla "Lo que ha aprendido la IA" en el perfil de cada negocio: ver cada regla, de dónde salió, borrar una o todas y añadir reglas propias.
  • Los retoques pequeños (una coma, un signo) no enseñan nada. No guarda nombres ni datos del cliente. Máximo 30 reglas por negocio, sin repetidas.
  • Aprende justo después de guardar, así que guardar no va más lento.
Lo que ha aprendido la IA

Cartel con código QR para pedir reseñas

AltoNuevo

El mayor problema de un negocio pequeño es tener pocas reseñas. Ahora puede imprimir un cartel para el mostrador que lleva directo a escribir la reseña en Google.

  • El enlace oficial de Google se rellena solo al conectar la ficha, y se puede cambiar a mano en el perfil.
  • Formatos A4, A5 y tarjetas (10 por hoja para recortar), en azul o blanco, con tres titulares.
  • Se imprime a tamaño real o se guarda en PDF; también se puede descargar solo el QR.
Cartel A4
Tarjeta

Imagen de una reseña para redes sociales

MedioNuevo

Convierte una buena reseña en una imagen vertical de 1080 × 1920 para historias de Instagram o WhatsApp, con el logo de Google y las estrellas. Se dibuja en el propio dispositivo con código, sin IA y sin subir nada a ningún servidor.

  • Tres estilos (claro, azul y oscuro) y el texto se adapta solo al espacio, también en reseñas muy largas.
  • Nombre del cliente con inicial ("Óscar R.") por privacidad, completo o sin nombre.
  • Descargar en el ordenador y compartir directamente desde el móvil.
Imagen para redes

Buscar, ordenar y la pestaña "Por responder"

MedioNuevo
  • "Por responder" junta todo lo que necesita al usuario (sin respuesta, en revisión, aprobadas sin publicar y con error). El número del menú, el de Inicio y el de la lista ahora coinciden siempre.
  • Buscador por nombre o texto, con lo encontrado resaltado en amarillo.
  • Ordenar por más recientes, más antiguas, peor o mejor valoradas.
  • Etiqueta roja "Hace 3 días" en las que llevan más de dos días sin respuesta.
Búsqueda "gafas", peor valoradas primero

Responder en cadena y vista previa en Google

MedioNuevo
  • "6 de 9 por responder" con botón Siguiente, y teclas J / K para saltar entre reseñas sin volver a la lista.
  • "Así se verá en Google": la respuesta aparece como en la ficha y cambia mientras se escribe.
  • Botones Copiar y Deshacer cambios (vuelve a la sugerencia de la IA).

Inicio con guía de primeros pasos y cifras del negocio

MedioNuevo
  • Guía de cuatro pasos que marca en azul el siguiente que toca hacer.
  • Gráfico de reseñas por mes (6 meses), nota media, tasa de respuesta y tiempo medio de respuesta.
  • Las cinco reseñas que esperan respuesta y el reparto de estrellas, que filtra la lista al pulsarlo.
Cliente recién registrado

Páginas de error propias y en español

BajoNuevo

Sin acceso, página no encontrada, sesión caducada, demasiados intentos, fallo del servidor y mantenimiento. Antes salía la página de Laravel, en inglés.

Antes
Ahora

Rediseño de pantallas

Mismos datos y mismas acciones que el original, con la marca, orden visual y estados claros.

Menú lateral común y colores de la marca

Alto
  • Antes cada pantalla era una página suelta con "Volver al panel". Ahora hay un menú lateral fijo con contador de reseñas por responder, el plan o la prueba gratuita y el usuario.
  • En el móvil, barra superior con menú desplegable y acceso directo a reseñas.
  • Se usan los colores del logo (azul #1a73e8 y amarillo #fbbc04) y la tipografía Instrument Sans. El violeta del panel original no era de la marca y se ha sustituido.

Inicio

Alto

De una fila de ocho botones iguales a un panel que dice qué hacer: aviso del plan, guía de primeros pasos, cifras, reseñas pendientes y evolución.

Antes
Ahora

Lista de reseñas

Alto

Pestañas por estado con contador, filtro por estrellas que se aplica al momento, color lateral según la nota y tarjetas más compactas.

Antes
Ahora

Responder una reseña

Alto

Paso a paso visible (Generar, Revisar y aprobar, Publicar en Google), el botón de publicar arriba cuando la respuesta está aprobada, contador de caracteres, datos del negocio al lado y consejos para una buena respuesta.

Antes aprobada
Ahora aprobada
Antes respondida
Ahora respondida
Antes reseña larga
Ahora reseña larga

Iniciar sesión y crear cuenta

Medio

Panel de marca con lo que hace la herramienta y un ejemplo de respuesta (marcado como ejemplo). En el móvil se queda solo el formulario.

Antes
Ahora
Antes
Ahora

Perfiles de respuesta

Medio

Tarjetas con el estado de cada negocio, aviso si falta el tipo de negocio, número de aprendizajes y acceso al cartel. En la edición, el tono se elige en tarjetas con una explicación y el botón de guardar queda siempre visible.

Antes
Ahora
Antes
Ahora

Configuración

Medio

Modos de automatización en tarjetas; la casilla de seguridad del Autopilot completo solo aparece al elegirlo; avisos con interruptores; historial en línea de tiempo; y desconectar Google plegado para evitar sustos.

Antes
Ahora

Planes y facturación

Medio

Plan recomendado destacado, "Tu plan" marcado, barra de uso del mes, estado en español (antes salía "active") y aviso cuando los pagos no están disponibles, en vez de botones apagados sin explicación.

Antes
Ahora

Equipo

Bajo
Antes
Ahora

Cupones (solo administración)

Bajo
Antes
Ahora

Experiencia de uso

Detalles que no se ven en una captura pero se notan al usarla.

Nada se pulsa dos veces

Alto

Al enviar, el botón muestra "Guardando…", "Publicando…" o "Generando respuesta…" y se bloquea. Evita respuestas o cobros duplicados. Al volver atrás con el navegador se desbloquea solo.

Aviso si sales con cambios sin guardar

Alto

En la respuesta, el perfil y la automatización. Antes se podía perder una respuesta editada con un clic.

Estados vacíos que dicen qué hacer

Medio

Sin reseñas, sin ubicaciones, sin informes, todo respondido ("Todo al día"). Antes había páginas en blanco. Las cifras y filtros se ocultan hasta que hay datos.

Avisos claros de éxito y error

Medio

Mismo aspecto en todo el panel, con icono. Los de éxito se cierran solos; los de error se quedan hasta cerrarlos. Aviso explicado en reseñas con error.

Filtros al momento

Medio

Estrellas, ubicación y orden se aplican al tocarlos, sin botón "Filtrar".

Confirmaciones en acciones delicadas

Medio

Publicar en Google, cancelar la suscripción, eliminar un miembro, desconectar Google y borrar aprendizajes.

Contadores de caracteres y campos que crecen

Bajo

En la respuesta y en los textos largos del perfil.

Barra de carga y atajos de teclado

Bajo

Barra fina arriba al cambiar de pantalla; tecla / para buscar y J / K para pasar de reseña.

Móvil y accesibilidad

Revisado de forma automática en 8 tamaños y 20 pantallas: 160 combinaciones sin desbordes ni textos cortados.

Móvil, tableta y pantalla grande

Alto

Probado de 320 px (móvil pequeño) a 1920 px. Menú desplegable, pestañas que se deslizan, gráficos que se desplazan de lado cuando hay muchos meses y textos que se acortan en pantallas estrechas.

Antes
Ahora
Antes
Ahora
Antes
Ahora
Menú en el móvil

Uso solo con teclado

Medio

Enlace "Saltar al contenido", orden lógico al tabular y foco visible en cada elemento.

Contraste de textos

Medio

Los grises informativos que no llegaban al mínimo de legibilidad (4,5:1) se han oscurecido.

Lectores de pantalla

Bajo

Todos los botones e iconos tienen nombre, las estrellas se leen como "4 de 5 estrellas" y los gráficos tienen descripción.

Calidad y fallos corregidos

Dos revisiones independientes del código antes de dar nada por bueno.

Pruebas en la base de datos de producción

Alto

Las pruebas del proyecto usan SQLite y producción usa PostgreSQL. Se instaló PostgreSQL 16 en local y las 123 pruebas pasan en las dos.

Fallo que habría tirado "Perfiles de respuesta" en producción

Alto

Una consulta de recuento que SQLite acepta y PostgreSQL rechaza. Lo encontró la revisión independiente, está corregido y tiene una prueba propia para que no vuelva.

Reseñas de negocios desconectados

Alto

Al quitar una ubicación, sus reseñas siguen guardadas unos días. Ahora se ocultan en listas, contadores, informes y colas, en vez de dar error o inflar cifras.

Segunda revisión independiente

Medio

Una última revisión completa comparó cada pantalla con el original. Encontró y quedaron corregidos:

  • El correo del informe mensual respeta a quien ha desactivado los correos (antes lo recibía igual).
  • Reconectar Google vuelve a estar disponible para todo el equipo, como en el original.
  • En Reseñas, la opción "Todas" quita solo el filtro de estrellas, sin borrar la ubicación o la búsqueda.
  • La casilla de seguridad del Autopilot completo aparece en cualquier navegador.
  • Una consulta repetida por cada negocio en Perfiles de respuesta, ahora una sola.
  • La reseña inspiradora de un negocio ya desconectado ya no muestra botones que llevaban a un error.

Pruebas nuevas

Medio

De 101 a 123: búsqueda y orden, informe mensual, aprendizaje de la IA, cartel, imagen para redes, permisos entre empresas y los fallos de producción. Todas las originales se mantienen y pasan.

Seguridad revisada

Medio

Cada empresa solo ve lo suyo en todas las pantallas y funciones nuevas; solo el propietario genera informes; el enlace "Volver" solo lleva dentro de la app; los textos de la búsqueda no pueden inyectar código.

Otros arreglos

Bajo

Compartir en iPhone, botones bloqueados al volver atrás, un atajo que fallaba con las comillas, la imagen con reseñas muy largas y el cartel descuadrado en formato tarjeta.

Cambios técnicos

Para quien revise el Pull Request.

Lógica tocada del código original

Alto

Pocos cambios y aislados, cada uno con su prueba:

ArchivoQué cambia
ReviewControllerFiltros de búsqueda (q), orden (sort), status=attention y solo reseñas de ubicaciones activas.
ReviewResponseControllerTras guardar, lanza el aprendizaje de estilo después de responder (afterResponse).
ReviewResponseGeneratorEnvía a OpenAI las preferencias aprendidas (learned_preferences) y una regla más en las instrucciones.
GoogleBusinessControllerPide metadata a Google y guarda el enlace para escribir reseñas.
LocationProfileControllerValida el nuevo campo review_url (solo https) y cuenta los aprendizajes de cada negocio en una sola consulta.
Review, Location, Tenant, ReviewStatusFiltros visible() y matching(), relaciones nuevas y la lista única de estados "por responder".
routes/web.php, routes/console.phpRutas de informes, imagen, cartel y aprendizajes; tarea del día 1 a las 7:00.

Base de datos: 2 migraciones nuevas

Alto
  • 2026_09_25_120000: tabla monthly_reports.
  • 2026_09_25_130000: tabla response_learnings y columna locations.review_url.
  • Solo añaden; no cambian ni borran nada existente. Se aplican solas al desplegar (el arranque ya ejecuta migrate --force).

Piezas nuevas

Medio
  • Servicios: MonthlyReportBuilder, MonthlyReportInsights, ResponseLearningExtractor.
  • Comando: reviews:monthly-report (opciones --month, --tenant, --no-notify).
  • Controladores: informes, imagen para redes, cartel y aprendizajes. Aviso por correo del informe.
  • Administración: AdminMetrics, controladores Admin/* y AdminTwoFactorController, middlewares EnsureSuperAdmin, RequireAdminSecondFactor y BlockSuspendedTenants (este último cierra la sesión de usuarios de empresas suspendidas). Sin migraciones nuevas: usa columnas que ya existían (is_super_admin, tenants.status).
  • Configuración nueva en config/reviewsia.php: ADMIN_GOOGLE_2FA, ADMIN_GOOGLE_EMAILS y ADMIN_GOOGLE_2FA_HOURS.
  • Vistas: plantilla común del panel, componentes (icono, estrellas, avatar, avisos, estado, paginación, resaltado) y páginas de error.

Dependencia nueva

Bajo

qrcode 1.5 (npm, licencia MIT) para dibujar los códigos QR. Se incluye al compilar, como el resto.

Uso de OpenAI

Bajo

Dos llamadas nuevas, registradas en api_usages con billing_source = included para que no cuenten en el cupo del cliente: monthly_report (una al mes por empresa) y learn_response_style (solo cuando se corrige de verdad una respuesta).

Paso a producción

Lo que hay que hacer, en orden. Víctor prepara el Pull Request; el resto lo decide y lo hace el socio.

  1. Iniciar sesión en GitHub en el PC de Víctor Víctor

    Con la cuenta invitada al repositorio: git credential-manager github login. Luego Claude crea una rama aparte y abre el Pull Request. Nada llega a main sin aprobarlo.

  2. Revisar el Pull Request Socio

    Con este informe a mano. Si trabaja con Codex a la vez, que no toque las mismas pantallas mientras tanto para no chocar.

  3. Probarlo en un entorno de pruebas antes de main Socio

    Render permite desplegar una rama en un servicio aparte con su propia base de datos. Probar sobre todo: conectar Google, generar y publicar una respuesta, un pago de prueba con Stripe y el menú en un iPhone real.

  4. Comprobar el cron de Render Socio

    Si su tarea programada ejecuta php artisan schedule:run, el informe del día 1 funciona sin hacer nada. Si ejecuta reviews:sync-google directamente, crear otra tarea con php artisan reviews:monthly-report y la expresión 0 7 1 * *.

  5. Revisar la zona horaria Socio

    La app funciona en UTC: en España las horas salen dos horas atrasadas. Es una decisión suya según dónde estén sus clientes.

  6. Revisar el uso de la marca de Google Socio

    El cartel y la imagen para redes muestran el logo "G" de Google. Es lo habitual en este tipo de materiales, pero Google tiene normas de uso de su marca.

  7. Dar acceso de administración al dueño Socio

    En la tabla users, poner is_super_admin = true solo en la cuenta del dueño. Esa cuenta verá el panel maestro; ningún cliente lo verá.

  8. Configurar el doble factor con Google Socio

    En Google Cloud, en el mismo cliente OAuth que ya usa la app, añadir la URL de retorno https://<dominio>/admin/verify/callback. En Render, añadir ADMIN_GOOGLE_EMAILS con el correo o correos de Google autorizados (separados por comas) y dejar ADMIN_GOOGLE_2FA=true. Emergencia: ADMIN_GOOGLE_2FA=false lo desactiva.

  9. Fusionar a main y comprobar el despliegue Socio

    Render lo publica solo. Las dos migraciones se aplican al arrancar. Después, entrar y pasar por Inicio, Reseñas, Informes, Perfiles, Facturación y el Panel maestro.

  10. Avisar a los clientes ya conectados Socio

    Para tener el cartel con QR necesitan reconectar Google una vez o pegar su enlace de reseñas en el perfil. Los nuevos lo tendrán solo.