Contenido
Manual de AI Support Sync
Para quien queda a cargo del chat de soporte de las apps internas de Siete. Explica cómo funciona, cómo lo usa cada rol, cómo se conecta una app nueva y qué hacer cuando algo falla. Desde el 15/10/2026 lo lleva Jaime.
1En un minuto
Cada app interna tiene un botón con la cara de Siete. Al abrirlo, una IA atiende a la persona con el manual técnico de esa app. Si con el manual alcanza, lo resuelve ahí. Si no, arma un reporte que la persona revisa y envía. El reporte llega a PM Tech como tarea, con responsable, plazo y aviso por email.
El widget
El botón y el chat dentro de cada app. Un script con versión congelada que la app carga con su hash.
siete-soporte
El servicio con la IA, los manuales, las claves de cada app y la cola de envío al PM. En soporte.wearesiete.com.
PM Tech · Soporte apps
Donde se conectan las apps, se ven los reportes y se trabajan como tareas. También manda los avisos.
2Cómo funciona
La persona abre el chat
Desde su app, ya logueada. No hay un login aparte.
La app pide un pase
Su backend, con su clave ssk_, le pide a siete-soporte un pase de 10 minutos para esa persona.
La IA atiende
Con el manual de la app. Explica, ofrece cerrar ("¿Se resolvió?") o propone un reporte.
PM Tech lo organiza
El reporte entra como tarea del proyecto "Soporte - <App>", con responsable, plazo y email.
Las dos salidas de una conversación
| Qué pasa | Qué ve la persona | Qué queda en PM Tech |
|---|---|---|
| El manual alcanzó | "¿Se resolvió?" → "Sí". El chat confirma con el número del ticket. | Una tarea ya hecha, marcada como resuelta por la IA. Sin avisos. |
| Necesita a un programador | Un borrador (título, severidad, tipo y descripción) que revisa y envía. El chat confirma con el número. | Una tarea en el proyecto de soporte de la app, asignada a su responsable, con plazo y email al responsable y a los líderes. |
Plazos según la severidad
El vencimiento sale de la severidad que propone el chat (la persona la puede corregir): urgente vence hoy, alta en 2 días, media en 5 y baja en 10. En PM Tech, el programador lo ajusta con "Elegir plazo…".
Cómo se ve una tarea
El título se entiende sin abrirla: quién · proyecto · SOP-n — título, por ejemplo Carla · Outply · SOP-123 — No carga la bandeja de respuestas. El SOP-n es el número que la persona ve en el chat y en "Mis reportes".
Lo que ve la persona en "Mis reportes"
| Estado | Qué significa |
|---|---|
| Recibido, enviándolo al equipo… | siete-soporte lo guardó y todavía no llegó al PM (está en cola). |
| Lo recibió el equipo | Ya es una tarea en PM Tech. Muestra quién lo tiene y el plazo. |
| En curso | La tarea está en una columna de trabajo (en curso, en revisión o bloqueada). |
| Resuelto / Resuelto con el asistente | Se terminó en PM Tech, o lo resolvió la IA. |
| No pudimos registrarlo | El PM rechazó los datos. Es raro; se ve en los logs (sección 7). |
3Uso diario, por rol
Quien usa una app
- Abre el botón de la cara, abajo a un costado, y cuenta qué pasó con sus palabras.
- Si la IA da una solución, responde "Sí, se resolvió" o "No, sigue igual".
- Si propone un reporte, lo revisa, lo corrige si hace falta ("Corregir") y lo envía.
- En "Mis reportes" sigue cada caso: número, estado, quién lo tiene y para cuándo.
El programador responsable de una app
- Recibe un email por cada reporte que necesita un programador.
- Lo trabaja como cualquier tarea en el proyecto "Soporte - <App>" de PM Tech: cambia la columna, ajusta el plazo y deja notas.
- La descripción de la tarea trae lo que contó la persona, la pantalla donde estaba y el resumen de la conversación.
- Al pasarla a Hecho, la persona lo ve como "Resuelto" en "Mis reportes".
El líder de soporte
- Recibe una copia del aviso de cada reporte de su empresa. Hoy el líder es César Granda.
- En PM Tech → Soporte apps tiene tres vistas: Reportes (urgentes primero, con filtros por severidad, tipo y app), Por usuario (quién reporta y cuánto) y Apps.
- La lista de líderes se cambia arriba de Soporte apps, con Cambiar. Es una lista: pueden ser varias personas.
Quien administra (Jaime)
- Conecta las apps nuevas y les carga el manual (sección 4).
- Mantiene los manuales al día cuando una app cambia de pantallas o mensajes (sección 5).
- Revisa que no haya reportes trabados en cola y rota claves si hace falta (sección 7).
- Decide quién es responsable de cada proyecto de soporte y quiénes son los líderes.
4Conectar una app
Lleva unos 15 minutos y se hace todo desde PM Tech, salvo pegar la clave en el backend de la app. Antes de empezar, la app tiene que tener el cambio que suma el chat: una ruta en su backend que entregue el pase y el script del widget en su frontend. El paso 4 del asistente muestra el código, listo para copiar, para FastAPI, Next.js y Express.
- PM Tech → Soporte apps → Apps → Conectar appNombre de la app, identificador (minúsculas, números y guiones: es el
appque usa el widget), el proyecto de la app en PM Tech y los dominios desde los que carga el chat (uno por línea, con https y sin ruta). Se crea su proyecto "Soporte - <App>" vinculado al de la app. - La clave
ssk_…Se muestra una sola vez. Va en el backend de la app comoSIETE_SOPORTE_KEY(en Coolify, Environment Variables del servicio del backend) y nunca en el código del navegador. Después de guardarla, "Ya la guardé". - El manual técnicoSi siete-soporte no tiene el manual de esa app, el asistente lo pide con la estructura que necesita la IA (sección 5). Se puede partir de la plantilla, pegar el texto o subir un
.md. Sin manual no se sigue. - ActivaciónRedesplegar el backend de la app en Coolify. Al abrir la app con un usuario aparece el botón, y la app pasa sola a Conectada cuando pide su primer pase.
- ProbarUna pregunta cuya respuesta esté en el manual (no crea reportes). Si quieres probar un reporte, márcalo como prueba y termina la tarea después: los avisos llegan de verdad.
5El manual técnico de cada app
Es lo que lee la IA para resolver. Vive en siete-soporte (una versión por app, con fecha y autor) y se carga desde PM Tech. Se valida la estructura, no lo que dice: eso es responsabilidad de quien lo escribe.
| Sección obligatoria | Para qué sirve |
|---|---|
## Pantallas y qué se hace en cada una | Para qué sirve cada pantalla y los pasos de las tareas frecuentes, con los nombres de botones y menús tal como aparecen en la app. |
## Errores y mensajes frecuentes | Cada mensaje que ve el usuario (el texto exacto), su causa probable y qué puede hacer. Límites y validaciones: tamaños, formatos, cuotas, estados. |
## Qué NO puede resolver el usuario | Los casos que necesitan un programador o un admin: ahí la IA arma el reporte en vez de improvisar. |
## Glosario | Los términos propios de la app, para que la IA entienda cómo habla el equipo. |
- Lleva un título
# <Nombre de la app> — manual de soporte, al menos 300 palabras y como mucho 120.000 caracteres. - Nunca claves, tokens ni contraseñas: el manual va tal cual al modelo. siete-soporte rechaza los que parecen secretos.
- Se actualiza en Apps → "Actualizar manual" cada vez que la app cambia de pantallas, botones o mensajes. Un manual viejo hace que la IA dé pasos que ya no existen.
- Los de AISDR, Response Manager, Outply y Marketing AI están escritos en el repo
siete-soporte, carpetamanuales/. El de Outply se puso al día el 15/10, antes de cargarlo, porque la app había cambiado mucho desde el 05/10; con los de AISDR y Response Manager conviene hacer lo mismo.
6Configuración
Todo corre en Coolify. Las claves se pegan a mano y se ven una sola vez: copiarlas directo al lugar indicado, nunca a un chat ni a un documento. Después de cambiar una variable hay que redesplegar ese servicio.
siete-soporte (Coolify → AI Support Sync → siete-soporte)
| Variable | Qué es | De dónde sale |
|---|---|---|
PM_API_KEY | Con esta clave siete-soporte le manda los reportes al PM. | pm soporte-emitir-clave --empresa siete en la terminal del contenedor api del PM. Empieza con pmk_. |
PM_API_URL | La API del PM. | Fija. |
ANTHROPIC_API_KEY | La IA. Opcional: sin ella el chat funciona en modo "sin asistente". | La consola de Anthropic, con saldo. |
SOPORTE_ADMIN_KEY | Con esta clave el PM administra apps y manuales. | Coolify la genera (SERVICE_PASSWORD_64_ADMIN). |
SOPORTE_TOKEN_SECRET | Firma los pases de 10 minutos. Sólo la conoce este servicio. | Coolify la genera (SERVICE_PASSWORD_64_PASES). |
CHAT_MODEL | El modelo. Por defecto Claude Sonnet 5.5, con esfuerzo bajo. | Opcional. |
SYNC_INTERVALO_SEGUNDOS | Cada cuánto se reintentan los reportes en cola (60). | Opcional. |
PM Tech (Coolify → PM 21 Manager → Platform)
| Variable | Qué es |
|---|---|
SOPORTE_ADMIN_KEY | El mismo valor que SERVICE_PASSWORD_64_ADMIN de siete-soporte. Sin ella, "Conectar app" avisa que falta. |
SOPORTE_URL | Opcional; por defecto, siete-soporte en producción. |
Cada app conectada
| Dónde | Variable | Qué es |
|---|---|---|
| Backend | SIETE_SOPORTE_KEY | La clave ssk_ de la app. Sin ella, la ruta del pase contesta 503 y el botón no aparece. |
| Backend | SIETE_SOPORTE_URL | Opcional; por defecto, producción. |
| Frontend | VITE_SOPORTE_URL o NEXT_PUBLIC_SOPORTE_URL | Opcional. Vacío apaga el widget (útil en desarrollo). |
7Operación
Despliegues
- siete-soporte, PM Tech y las apps se despliegan solas con cada push a
main(webhook de Coolify). - Un cambio de variables pide Redeploy del servicio, a mano.
- siete-soporte migra la base al arrancar; si la migración falla, no levanta (el anterior sigue andando).
- AISDR: no publicar cambios visibles de lunes a viernes, de 09:00 a 12:00 (Lima).
Chequeos rápidos
https://soporte.wearesiete.com/health→{"status":"ok"}.- PM Tech → Soporte apps → Apps: cada app dice Conectada y cuándo pidió su último pase.
- Reportes viejos en "Recibido, enviándolo al equipo…" = algo traba el envío al PM (ver la tabla de abajo).
Qué buscar en los logs (Coolify → Runtime Logs)
| Evento | Dónde | Qué significa |
|---|---|---|
chat_sin_clave | siete-soporte | Falta ANTHROPIC_API_KEY: el chat responde sin IA. |
chat_error_api / chat_sin_conexion | siete-soporte | Anthropic falló (saldo, caída o red). El chat sigue en modo sin asistente. |
pm_envio_ok | siete-soporte | Un reporte llegó al PM. |
pm_envio_reintento | siete-soporte | El PM no contestó: se reintenta solo (1, 2, 4… minutos, tope 1 hora). |
pm_clave_rechazada | siete-soporte | PM_API_KEY mal o revocada. Los reportes esperan hasta que se corrija. |
pm_envio_rechazado | siete-soporte | El PM rechazó los datos (422). No se reintenta: revisar el mensaje. |
pm_sin_configurar | siete-soporte | Falta la URL o la clave del PM. |
sesion_rechazada | siete-soporte | Una app pidió un pase con una clave que no existe o está apagada. |
aviso_de_soporte | PM, contenedor api | Se encoló el email al responsable o al líder. |
ticket_de_soporte_sin_a_quien_avisar | PM, contenedor api | El proyecto de soporte no tiene responsable ni líderes. |
job_terminado (sent, failed) | PM, contenedor worker | Cuántos emails salieron en cada pasada. |
Tareas frecuentes
| Para… | Haz esto |
|---|---|
| Cambiar los líderes | Soporte apps → barra de arriba → Cambiar → elegir → Guardar. |
| Cambiar quién recibe los reportes de una app | Cambiar el responsable del proyecto "Soporte - <App>" en PM Tech. |
| Rotar la clave de una app | Apps → Rotar clave, pegar la nueva en el backend de la app y redesplegar. La anterior deja de valer al instante. |
| Renovar la clave del PM | pm soporte-emitir-clave --empresa siete, pegarla en siete-soporte, redesplegar y revocar la vieja con pm soporte-revocar-clave. |
| Apagar el chat en una app | Borrar SIETE_SOPORTE_KEY de su backend y redesplegar: el botón desaparece. |
| Actualizar un manual | Apps → Actualizar manual. Queda una versión nueva; la IA la usa desde el siguiente mensaje. |
8El widget y sus versiones
La cara de Siete: cejas, ojos, sonrisa y un 7 de nariz. Parpadea, mueve las cejas mientras piensa, se alegra al registrar un reporte y duda si algo falla. Con "reducir movimiento", se queda quieta.
Las apps cargan una versión congelada del widget con su hash (SRI): si alguien cambiara el archivo en el servidor, el navegador no lo correría. Por eso una versión publicada nunca se edita; un cambio es una versión nueva.
| Versión | Qué trajo | Estado |
|---|---|---|
widget.v1.js | El chat, el borrador y "Mis reportes". | Congelada |
widget.v2.js | El número del ticket (SOP-n) en "Mis reportes". | Congelada |
widget.v3.js | La cara de Siete y la confirmación con el SOP-n. | La actual |
Cómo publicar una versión nueva (v4)
- En
siete-soporte: copiarstatic/widget.v3.jsawidget.v4.js, hacer el cambio y agregar la ruta y la línea en.gitattributes(sin conversión de fin de línea). - Probarlo con las maquetas (
npx playwright test) y mirarlo en claro y oscuro antes de fijar nada. - Calcular el hash:
openssl dgst -sha384 -binary static/widget.v4.js | openssl base64 -A, y fijarlo entests/test_app.py. - Desplegar siete-soporte y comprobar que el archivo en producción da el mismo hash.
- Un PR por app (y uno en el PM, que muestra el snippet en el asistente) con la URL y el hash nuevos.
9Seguridad
- La clave de cada app vive en su backend. El navegador sólo recibe un pase de 10 minutos para esa persona. siete-soporte guarda un hash de la clave, nunca la clave.
- La app de un reporte sale del pase, no de lo que mande el navegador. Un pase vencido, mal firmado o de larga vida no entra.
- Cada app sólo habla desde sus dominios: los que se registran al conectarla.
- El widget no ejecuta HTML de lo que escribe la persona o la IA, y lo que se teclea en él no dispara atajos de la app.
- La administración es sólo del PM, con
SOPORTE_ADMIN_KEY. Las rutas de prueba no existen en producción. - Los manuales no llevan secretos: van al modelo tal cual.
- La conversación se guarda por persona: si alguien cierra sesión y entra otra en la misma pestaña, no ve el chat anterior.
10Solución de problemas
| Síntoma | Causa probable | Qué hacer |
|---|---|---|
| El botón no aparece en una app | Falta SIETE_SOPORTE_KEY en su backend, o el backend no se redesplegó, o la versión de la app no tiene el cambio. | Revisar la variable, redesplegar y abrir la app con un usuario logueado. |
| "El asistente no está disponible en este momento" | Sin ANTHROPIC_API_KEY, sin saldo o Anthropic caído (logs: chat_sin_clave o chat_error_api). | Cargar la clave o el saldo y redesplegar siete-soporte. Mientras tanto los reportes salen igual. |
| "No pude verificar tu sesión" | El pase venció o la clave de la app no vale. | Recargar la página. Si sigue, revisar la clave de la app (logs: sesion_rechazada) y rotarla si hace falta. |
| "No me pude conectar" | siete-soporte caído, o un dominio de la app que no está registrado. | Mirar /health. Si responde, agregar el dominio en Apps (el chat sólo habla desde los dominios registrados). |
| Reportes en "Recibido, enviándolo al equipo…" durante horas | El PM no contesta o rechaza la clave (pm_clave_rechazada). | Revisar el PM y PM_API_KEY. Al corregir, salen solos. |
| No llegan los emails | El proyecto de soporte no tiene responsable, o no hay líderes, o falló el envío. | Logs del PM: aviso_de_soporte y job_terminado. Revisar responsable y líderes. |
| La IA da pasos que no existen | El manual quedó viejo. | Actualizar el manual de esa app. |
soporte.wearesiete.com no abre | DNS: desde el 14/10 no hay comodín, cada servicio tiene su registro. | Revisar el registro A soporte en el DNS de la empresa. |
11Estado y pendientes
Al 15/10/2026, 21:00 (Lima).
| Pieza | Estado | Detalle |
|---|---|---|
| siete-soporte | En producción | Con el widget v3. La IA espera su clave: hoy responde en modo sin asistente. |
| PM Tech · Soporte apps | En producción | Conectar app, reportes, panel por usuario, líderes y avisos. Desde el 15/10 el asistente de instalación entrega el widget v3 (PR #2). |
| Marketing AI | En uso | Conectada desde el 14/10, con su manual y la prueba de punta a punta ok (SOP-1). Sus reportes le llegan a Jaime. Desde el 15/10 muestra la cara de Siete (PR #201). |
| AISDR | Pendiente de decisión | Su cambio ya está publicado (PR #242, 15/10) y no se ve hasta conectarla. Para conectarla falta decidir a qué proyecto de PM Tech se vincula ("AI SDR" está culminado y "Conectar app" sólo ofrece proyectos activos) y quién recibe sus reportes. |
| Outply | En uso | Conectada desde el 15/10 (proyecto "Soporte - Outply", responsable Jaime). El PR #131 se publicó a las 20:32 (Lima), dentro de su horario de despliegue: muestra la cara de Siete y su manual está cargado (v1, puesto al día con lo que cambió la app desde el 05/10). |
| Response Manager (con UniBox) | Espera aprobación | PR #123, ya con el v3. Espera el visto bueno de quien lleva la verificación de Google (CASA). |
Pendientes, en orden
- Cargar
ANTHROPIC_API_KEYen siete-soporte y redesplegar. - AISDR: decidir su proyecto y su responsable, y conectarla como Outply (manual:
manuales/aisdr.md, del 05/10: ponerlo al día antes de cargarlo). - En Coolify, poner las claves como "Not available during build" (sección 6).
- Response Manager, con el OK de CASA.
docs/bugs-encontrados.md.12Dónde está todo
| Qué | Dónde |
|---|---|
| El servicio y el widget | Repo siete-soporte (organización de GitHub de Siete). Coolify → AI Support Sync. |
| Soporte apps del PM | Repo project-manager-tech, carpeta app/modules/support y web/src/features/support. Coolify → PM 21 Manager → Platform. |
| Las apps | Repos AI-SDR, reply_v2 (Outply), marketing-ai-engine y SDR-Response-Manager. |
| La historia y las decisiones | siete-soporte/HANDOFF_integracion_pm_2026-09-30.md. |
| Cómo integrar una app, en detalle | siete-soporte/docs/integracion-apps.md y docs/integracion/<app>.md. |
| Los hallazgos (52) y su estado | siete-soporte/docs/bugs-encontrados.md. |
| Los manuales técnicos | siete-soporte/manuales/. |
| El proyecto en PM Tech | Proyectos → AI Support Sync (la tarea "Terminar la implementación" tiene el checklist). |
| Presentación para el equipo | La página de AI Support Sync. |
Los enlaces exactos de Coolify y del PM están en el documento interno "AI Support Sync" y en el handoff; no van acá porque esta página es pública.
13Glosario
Clave de la app (ssk_…) | La que el backend de cada app usa para pedir pases. Se ve una vez; se rota desde Apps. |
Clave del PM (pmk_…) | La que usa siete-soporte para mandarle reportes al PM. |
| Pase | El permiso de 10 minutos que identifica a la persona y a su app ante siete-soporte. |
| Manual técnico | El texto con el que la IA resuelve. Uno por app, con versiones. |
| Proyecto de soporte | "Soporte - <App>" en PM Tech, vinculado al proyecto de la app. Ahí caen sus reportes. |
| SOP-n | El número del ticket. El mismo en el chat, en "Mis reportes" y en PM Tech. |
| Líderes | Quienes reciben copia de todos los avisos de su empresa. |
| Cola (outbox) | Donde esperan los reportes que todavía no llegaron al PM. Se reintentan solos. |
| SRI | El hash con el que cada app carga el widget: si el archivo cambia, el navegador no lo corre. |
| Modo sin asistente | Cuando la IA no está: el chat arma el reporte con las palabras de la persona. |
Preparado por Ily Rivas con Claude Code para el traspaso a Jaime · 15/10/2026.