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.
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.
Vídeo interno
Todo lo que hace la herramienta en 2 minutos, con capturas reales, locución y subtítulos. Datos de ejemplo.
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
AltoNuevoSolo 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.
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.
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.
Doble factor con Google para el dueño
AltoNuevoLa 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.
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.
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
AltoNuevoEl 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.
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
AltoNuevoCuando 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.
Cartel con código QR para pedir reseñas
AltoNuevoEl 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.
Imagen de una reseña para redes sociales
MedioNuevoConvierte 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.
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.
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.
Páginas de error propias y en español
BajoNuevoSin 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.
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
#1a73e8y amarillo#fbbc04) y la tipografía Instrument Sans. El violeta del panel original no era de la marca y se ha sustituido.
Inicio
AltoDe 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.
Lista de reseñas
AltoPestañas por estado con contador, filtro por estrellas que se aplica al momento, color lateral según la nota y tarjetas más compactas.
Responder una reseña
AltoPaso 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.
Iniciar sesión y crear cuenta
MedioPanel 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.
Perfiles de respuesta
MedioTarjetas 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.
Configuración
MedioModos 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.
Planes y facturación
MedioPlan 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.
Equipo
BajoCupones (solo administración)
BajoExperiencia de uso
Detalles que no se ven en una captura pero se notan al usarla.
Nada se pulsa dos veces
AltoAl 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
AltoEn 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
MedioSin 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
MedioMismo 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
MedioEstrellas, ubicación y orden se aplican al tocarlos, sin botón "Filtrar".
Confirmaciones en acciones delicadas
MedioPublicar en Google, cancelar la suscripción, eliminar un miembro, desconectar Google y borrar aprendizajes.
Contadores de caracteres y campos que crecen
BajoEn la respuesta y en los textos largos del perfil.
Barra de carga y atajos de teclado
BajoBarra 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
AltoProbado 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.
Uso solo con teclado
MedioEnlace "Saltar al contenido", orden lógico al tabular y foco visible en cada elemento.
Contraste de textos
MedioLos grises informativos que no llegaban al mínimo de legibilidad (4,5:1) se han oscurecido.
Lectores de pantalla
BajoTodos 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
AltoLas 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
AltoUna 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
AltoAl 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
MedioUna ú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
MedioDe 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
MedioCada 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
BajoCompartir 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
AltoPocos cambios y aislados, cada uno con su prueba:
| Archivo | Qué cambia |
|---|---|
ReviewController | Filtros de búsqueda (q), orden (sort), status=attention y solo reseñas de ubicaciones activas. |
ReviewResponseController | Tras guardar, lanza el aprendizaje de estilo después de responder (afterResponse). |
ReviewResponseGenerator | Envía a OpenAI las preferencias aprendidas (learned_preferences) y una regla más en las instrucciones. |
GoogleBusinessController | Pide metadata a Google y guarda el enlace para escribir reseñas. |
LocationProfileController | Valida el nuevo campo review_url (solo https) y cuenta los aprendizajes de cada negocio en una sola consulta. |
Review, Location, Tenant, ReviewStatus | Filtros visible() y matching(), relaciones nuevas y la lista única de estados "por responder". |
routes/web.php, routes/console.php | Rutas de informes, imagen, cartel y aprendizajes; tarea del día 1 a las 7:00. |
Base de datos: 2 migraciones nuevas
Alto2026_09_25_120000: tablamonthly_reports.2026_09_25_130000: tablaresponse_learningsy columnalocations.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, controladoresAdmin/*yAdminTwoFactorController, middlewaresEnsureSuperAdmin,RequireAdminSecondFactoryBlockSuspendedTenants(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_EMAILSyADMIN_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
Bajoqrcode 1.5 (npm, licencia MIT) para dibujar los códigos QR. Se incluye al compilar, como el resto.
Uso de OpenAI
BajoDos 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.
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 amainsin aprobarlo.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.
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.
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 ejecutareviews:sync-googledirectamente, crear otra tarea conphp artisan reviews:monthly-reporty la expresión0 7 1 * *.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.
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.
Dar acceso de administración al dueño Socio
En la tabla
users, poneris_super_admin = truesolo en la cuenta del dueño. Esa cuenta verá el panel maestro; ningún cliente lo verá.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ñadirADMIN_GOOGLE_EMAILScon el correo o correos de Google autorizados (separados por comas) y dejarADMIN_GOOGLE_2FA=true. Emergencia:ADMIN_GOOGLE_2FA=falselo desactiva.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.
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.