Manual de AI Support Sync
Contenido
  1. En un minuto
  2. Cómo funciona
  3. Uso diario, por rol
  4. Conectar una app
  5. El manual técnico
  6. Configuración
  7. Operación
  8. El widget y sus versiones
  9. Seguridad
  10. Solución de problemas
  11. Estado y pendientes
  12. Dónde está todo
  13. Glosario

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.

Versión del 15/10/2026 Widget v3 Lectura: 20 minutos

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.

La regla de oro: nada se pierde. Si la IA no está, el chat arma el reporte con las palabras de la persona. Si el PM no contesta, el reporte espera en cola y sale solo cuando vuelve.

2Cómo funciona

1

La persona abre el chat

Desde su app, ya logueada. No hay un login aparte.

2

La app pide un pase

Su backend, con su clave ssk_, le pide a siete-soporte un pase de 10 minutos para esa persona.

3

La IA atiende

Con el manual de la app. Explica, ofrece cerrar ("¿Se resolvió?") o propone un reporte.

4

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é pasaQué ve la personaQué 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 programadorUn 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"

EstadoQué significa
Recibido, enviándolo al equipo…siete-soporte lo guardó y todavía no llegó al PM (está en cola).
Lo recibió el equipoYa es una tarea en PM Tech. Muestra quién lo tiene y el plazo.
En cursoLa tarea está en una columna de trabajo (en curso, en revisión o bloqueada).
Resuelto / Resuelto con el asistenteSe terminó en PM Tech, o lo resolvió la IA.
No pudimos registrarloEl 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.

  1. PM Tech → Soporte apps → Apps → Conectar appNombre de la app, identificador (minúsculas, números y guiones: es el app que 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.
  2. La clave ssk_…Se muestra una sola vez. Va en el backend de la app como SIETE_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é".
  3. 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.
  4. 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.
  5. 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.
Ojo: si la clave se pierde antes de pegarla, no pasa nada: en Apps, "Rotar clave" da una nueva y la anterior deja de valer.

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 obligatoriaPara qué sirve
## Pantallas y qué se hace en cada unaPara 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 frecuentesCada 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 usuarioLos casos que necesitan un programador o un admin: ahí la IA arma el reporte en vez de improvisar.
## GlosarioLos 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, carpeta manuales/. 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)

VariableQué esDe dónde sale
PM_API_KEYCon 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_URLLa API del PM.Fija.
ANTHROPIC_API_KEYLa IA. Opcional: sin ella el chat funciona en modo "sin asistente".La consola de Anthropic, con saldo.
SOPORTE_ADMIN_KEYCon esta clave el PM administra apps y manuales.Coolify la genera (SERVICE_PASSWORD_64_ADMIN).
SOPORTE_TOKEN_SECRETFirma los pases de 10 minutos. Sólo la conoce este servicio.Coolify la genera (SERVICE_PASSWORD_64_PASES).
CHAT_MODELEl modelo. Por defecto Claude Sonnet 5.5, con esfuerzo bajo.Opcional.
SYNC_INTERVALO_SEGUNDOSCada cuánto se reintentan los reportes en cola (60).Opcional.

PM Tech (Coolify → PM 21 Manager → Platform)

VariableQué es
SOPORTE_ADMIN_KEYEl mismo valor que SERVICE_PASSWORD_64_ADMIN de siete-soporte. Sin ella, "Conectar app" avisa que falta.
SOPORTE_URLOpcional; por defecto, siete-soporte en producción.

Cada app conectada

DóndeVariableQué es
BackendSIETE_SOPORTE_KEYLa clave ssk_ de la app. Sin ella, la ruta del pase contesta 503 y el botón no aparece.
BackendSIETE_SOPORTE_URLOpcional; por defecto, producción.
FrontendVITE_SOPORTE_URL o NEXT_PUBLIC_SOPORTE_URLOpcional. Vacío apaga el widget (útil en desarrollo).
Buena práctica: en Coolify, estas claves sólo hacen falta con la app corriendo. En cada una conviene poner "Build time: Not available during build" (Coolify las marca disponibles en el build por defecto).

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)

EventoDóndeQué significa
chat_sin_clavesiete-soporteFalta ANTHROPIC_API_KEY: el chat responde sin IA.
chat_error_api / chat_sin_conexionsiete-soporteAnthropic falló (saldo, caída o red). El chat sigue en modo sin asistente.
pm_envio_oksiete-soporteUn reporte llegó al PM.
pm_envio_reintentosiete-soporteEl PM no contestó: se reintenta solo (1, 2, 4… minutos, tope 1 hora).
pm_clave_rechazadasiete-soportePM_API_KEY mal o revocada. Los reportes esperan hasta que se corrija.
pm_envio_rechazadosiete-soporteEl PM rechazó los datos (422). No se reintenta: revisar el mensaje.
pm_sin_configurarsiete-soporteFalta la URL o la clave del PM.
sesion_rechazadasiete-soporteUna app pidió un pase con una clave que no existe o está apagada.
aviso_de_soportePM, contenedor apiSe encoló el email al responsable o al líder.
ticket_de_soporte_sin_a_quien_avisarPM, contenedor apiEl proyecto de soporte no tiene responsable ni líderes.
job_terminado (sent, failed)PM, contenedor workerCuántos emails salieron en cada pasada.

Tareas frecuentes

Para…Haz esto
Cambiar los líderesSoporte apps → barra de arriba → Cambiar → elegir → Guardar.
Cambiar quién recibe los reportes de una appCambiar el responsable del proyecto "Soporte - <App>" en PM Tech.
Rotar la clave de una appApps → Rotar clave, pegar la nueva en el backend de la app y redesplegar. La anterior deja de valer al instante.
Renovar la clave del PMpm soporte-emitir-clave --empresa siete, pegarla en siete-soporte, redesplegar y revocar la vieja con pm soporte-revocar-clave.
Apagar el chat en una appBorrar SIETE_SOPORTE_KEY de su backend y redesplegar: el botón desaparece.
Actualizar un manualApps → 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ónQué trajoEstado
widget.v1.jsEl chat, el borrador y "Mis reportes".Congelada
widget.v2.jsEl número del ticket (SOP-n) en "Mis reportes".Congelada
widget.v3.jsLa cara de Siete y la confirmación con el SOP-n.La actual

Cómo publicar una versión nueva (v4)

  1. En siete-soporte: copiar static/widget.v3.js a widget.v4.js, hacer el cambio y agregar la ruta y la línea en .gitattributes (sin conversión de fin de línea).
  2. Probarlo con las maquetas (npx playwright test) y mirarlo en claro y oscuro antes de fijar nada.
  3. Calcular el hash: openssl dgst -sha384 -binary static/widget.v4.js | openssl base64 -A, y fijarlo en tests/test_app.py.
  4. Desplegar siete-soporte y comprobar que el archivo en producción da el mismo hash.
  5. 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íntomaCausa probableQué hacer
El botón no aparece en una appFalta 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 horasEl PM no contesta o rechaza la clave (pm_clave_rechazada).Revisar el PM y PM_API_KEY. Al corregir, salen solos.
No llegan los emailsEl 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 existenEl manual quedó viejo.Actualizar el manual de esa app.
soporte.wearesiete.com no abreDNS: 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).

PiezaEstadoDetalle
siete-soporteEn producciónCon el widget v3. La IA espera su clave: hoy responde en modo sin asistente.
PM Tech · Soporte appsEn producciónConectar 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 AIEn usoConectada 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).
AISDRPendiente de decisiónSu 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.
OutplyEn usoConectada 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ónPR #123, ya con el v3. Espera el visto bueno de quien lleva la verificación de Google (CASA).

Pendientes, en orden

  1. Cargar ANTHROPIC_API_KEY en siete-soporte y redesplegar.
  2. 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).
  3. En Coolify, poner las claves como "Not available during build" (sección 6).
  4. Response Manager, con el OK de CASA.
Arreglos menores pendientes: en el PM, un test de vencimientos falla si el CI corre entre las 00:00 y las 05:00 UTC (compara la fecha del runner con la de la empresa), y el job "dependencias" marca avisos de librerías del frontend; ninguno de los dos afecta a producción. Además, una vez el panel de Conectar app se cerró solo antes de terminar: si te pasa antes de copiar la clave, rótala desde Apps. El detalle está en docs/bugs-encontrados.md.

12Dónde está todo

QuéDónde
El servicio y el widgetRepo siete-soporte (organización de GitHub de Siete). Coolify → AI Support Sync.
Soporte apps del PMRepo project-manager-tech, carpeta app/modules/support y web/src/features/support. Coolify → PM 21 Manager → Platform.
Las appsRepos AI-SDR, reply_v2 (Outply), marketing-ai-engine y SDR-Response-Manager.
La historia y las decisionessiete-soporte/HANDOFF_integracion_pm_2026-09-30.md.
Cómo integrar una app, en detallesiete-soporte/docs/integracion-apps.md y docs/integracion/<app>.md.
Los hallazgos (52) y su estadosiete-soporte/docs/bugs-encontrados.md.
Los manuales técnicossiete-soporte/manuales/.
El proyecto en PM TechProyectos → AI Support Sync (la tarea "Terminar la implementación" tiene el checklist).
Presentación para el equipoLa 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.
PaseEl permiso de 10 minutos que identifica a la persona y a su app ante siete-soporte.
Manual técnicoEl 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-nEl número del ticket. El mismo en el chat, en "Mis reportes" y en PM Tech.
LíderesQuienes 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.
SRIEl hash con el que cada app carga el widget: si el archivo cambia, el navegador no lo corre.
Modo sin asistenteCuando 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.