Guia WACRM version usuario final (sin detalle tecnico, URLs del tunel) + PDF
This commit is contained in:
@@ -1,258 +1,203 @@
|
||||
# WACRM — Guía de uso (SKEEN)
|
||||
# WACRM — Guía de WhatsApp para el equipo SKEEN
|
||||
|
||||
> **Audiencia:** recepción, administración y personal no técnico de SKEEN.
|
||||
> **Última revisión:** 2026-09-06 (basada en revisión del código y pruebas en vivo del sistema; ver sección 6 "Estado actual").
|
||||
> Documento de referencia técnica general: `docs/arquitectura.md`.
|
||||
**Guía de uso para el personal de SKEEN Derma Experts**
|
||||
|
||||
Dirigida a: recepción, administración y todo el personal que atienda mensajes de pacientes por WhatsApp. No se requieren conocimientos técnicos.
|
||||
|
||||
---
|
||||
|
||||
## 1. ¿Qué es y para qué sirve?
|
||||
## 1. ¿Qué es WACRM?
|
||||
|
||||
**WACRM** es el CRM de WhatsApp de la clínica. Permite que el personal de SKEEN:
|
||||
Es el programa que le permite a la clínica **atender por WhatsApp de forma organizada**:
|
||||
|
||||
- **Reciba en una bandeja** todos los mensajes de WhatsApp que los pacientes mandan al número de la clínica.
|
||||
- **Responda** esos mensajes desde la computadora, como equipo (varias personas pueden ver la misma bandeja).
|
||||
- **Asigne cada conversación a un agente** (quién se hace cargo del paciente).
|
||||
- **Administre leads** (pacientes potenciales que escriben por primera vez) y conviértelos en **pacientes** del sistema, quedando todo ligado a la clínica.
|
||||
- Tenga un **asistente de inteligencia artificial ("Sofía")** que atiende automáticamente: responde dudas, y sobre todo **agenda citas reales** en el sistema (consulta la disponibilidad de Odoo y crea la cita).
|
||||
- Todos los mensajes que los pacientes mandan al número de la clínica llegan a una **bandeja compartida**, visible desde la computadora.
|
||||
- Varias personas del equipo pueden ver los mismos chats y responder desde ahí, sin depender de un celular.
|
||||
- Cada conversación se puede **asignar a una persona responsable**.
|
||||
- Los pacientes que escriben por primera vez quedan registrados como **leads** (clientes potenciales) y se convierten en **pacientes** del sistema con un clic.
|
||||
- Una **asistente de inteligencia artificial ("Sofía")** responde sola los mensajes cuando nadie los está atendiendo: responde dudas y, lo más importante, **agenda citas reales** en el sistema.
|
||||
|
||||
Hay **dos formas de usarlo** (sección 2): integrado dentro del sistema SKEEN (recomendado para el trabajo diario) o el WACRM "completo" en su propia pantalla (para administración: plantillas, difusiones, automatizaciones, configuración).
|
||||
Hay dos formas de usarlo:
|
||||
|
||||
1. **Dentro del sistema SKEEN** (recomendado para el trabajo diario): las pantallas "Mensajes WACRM" y "Leads WACRM".
|
||||
2. **WACRM directo** (para administración): plantillas de mensajes, envíos masivos, automatizaciones y configuración.
|
||||
|
||||
---
|
||||
|
||||
## 2. Cómo acceder
|
||||
## 2. Cómo entrar
|
||||
|
||||
### 2.1 Desde el sistema SKEEN (recomendado para el día a día)
|
||||
### 2.1 Trabajo diario — dentro del sistema SKEEN
|
||||
|
||||
1. Entre a **http://192.168.10.114** (el sistema SKEEN normal) e inicie sesión con su usuario y contraseña habituales.
|
||||
1. Entre a **https://skeen.consultoria-as.com** e inicie sesión con su usuario y contraseña de siempre.
|
||||
2. En el menú lateral encontrará dos secciones:
|
||||
- **Mensajes WACRM** (`/wacrm/messages`) — la bandeja de WhatsApp.
|
||||
- **Leads WACRM** (`/wacrm/leads`) — el embudo de leads.
|
||||
- **Mensajes WACRM** — la bandeja de WhatsApp.
|
||||
- **Leads WACRM** — el embudo de clientes potenciales.
|
||||
|
||||
> Si no ve esas opciones en su menú, pida al administrador que se las habilite desde *Configuración → menús por usuario*.
|
||||
> Si no ve esas opciones en su menú, pida al administrador que se las habilite.
|
||||
|
||||
### 2.2 WACRM directo (standalone)
|
||||
### 2.2 WACRM directo (solo administración)
|
||||
|
||||
- **URL en la red de la clínica:** `http://192.168.10.114:3000`
|
||||
- **Dominio público configurado:** `https://skeencrm.consultoria-as.com` (el dominio interno es `skeencrm.consultoria-as.com`; el túnel Cloudflare activo en la VM enruta hoy solo `skeen.consultoria-as.com` — si el dominio de WACRM no abre, use la IP :3000 o pida a TI revisarlo).
|
||||
- **Login:** correo + contraseña (cuentas existentes: `admin@skeen.mx`, `recepcion@skeen.mx`, `ivan@horuxfin.com`; hay también una cuenta de prueba `test@skeen.mx`). Si olvida la contraseña, use "¿Olvidaste tu contraseña?" o pida a un administrador que la restablezca.
|
||||
- Al crear una cuenta nueva desde "Sign up" se entra a una **cuenta propia**; para trabajar en el mismo equipo se entra por **enlace de invitación** que el administrador envía desde Configuración (se acepta en la pantalla `/join/<token>`).
|
||||
1. Entre a **https://skeencrm.consultoria-as.com**.
|
||||
2. Inicie sesión con el correo de la cuenta y su contraseña.
|
||||
3. Las cuentas existentes son: `admin@skeen.mx`, `recepcion@skeen.mx` e `ivan@horuxfin.com`.
|
||||
|
||||
### 2.3 Roles en WACRM directo
|
||||
|
||||
Cada cuenta tiene roles: **owner** (dueño), **admin**, **agent** y **viewer**. Las configuraciones críticas (número de WhatsApp, plantillas, equipo) solo las maneja owner/admin.
|
||||
Si olvidó su contraseña, use la opción **"¿Olvidaste tu contraseña?"** de esa misma pantalla o pida a un administrador que la restablezca. Las cuentas nuevas se crean por **enlace de invitación** que el administrador envía desde la configuración.
|
||||
|
||||
---
|
||||
|
||||
## 3. Flujo diario de trabajo
|
||||
|
||||
El ciclo normal de un paciente que escribe por WhatsApp es:
|
||||
Así funciona el ciclo completo de un paciente que escribe por WhatsApp:
|
||||
|
||||
```
|
||||
Paciente escribe al WhatsApp de la clínica
|
||||
│
|
||||
▼
|
||||
Sofía (IA) lo saluda y atiende sola ◄────────────┐
|
||||
• agenda citas (disponibilidad real) │ mientras la conversación
|
||||
• da precios/servicios │ NO esté asignada a un humano
|
||||
• consulta pagos / monedero │
|
||||
Sofía (IA) lo atiende sola ◄──────────────┐
|
||||
• agenda citas con horarios reales │ mientras nadie se haga
|
||||
• da información de servicios y precios │ cargo de la conversación
|
||||
• consulta pagos y puntos del monedero │
|
||||
│ (si el paciente pide un agente, │
|
||||
│ o recepción ASIGNA la conversación) │
|
||||
│ o recepción asigna el chat) │
|
||||
▼ │
|
||||
Agente humano toma el hilo ───────────────────────┘
|
||||
Agente humano toma el hilo ────────────────┘
|
||||
│
|
||||
▼
|
||||
Leads WACRM: se crea un lead "New Lead" por cada contacto con conversación
|
||||
│ mover etapa / asignar responsable
|
||||
Se crea un LEAD en "Leads WACRM" (cliente potencial)
|
||||
│ mover de etapa, asignar responsable
|
||||
▼
|
||||
Lead ganado → "Convertir" → se crea (o liga) el PACIENTE en SKEEN
|
||||
Lead ganado → "Convertir" → queda registrado como PACIENTE en SKEEN
|
||||
```
|
||||
|
||||
**Rutina recomendada cada mañana (y cada hora pico):**
|
||||
**Rutina recomendada (mañana y horas pico):**
|
||||
|
||||
1. Entre a **Mensajes WACRM**. Presione **Sincronizar** (tarda hasta ~1 minuto la primera vez; trae todo lo nuevo).
|
||||
- La pantalla también se refresca sola cada ~15 segundos.
|
||||
2. Filtre por **"No leídas"** y **"Sin asignar"**: esos son los chats que necesitan atención.
|
||||
3. Si Sofía ya resolvió el caso (ej. la cita ya quedó agendada), no hay que hacer nada.
|
||||
4. Si hay que atender a mano: **Asignar** la conversación a una persona → **seleccione "Responder como…"** (su identidad de agente) → escriba y envíe.
|
||||
- **Al responder, la conversación queda automáticamente asignada a usted y el bot deja de intervenir** en ese chat.
|
||||
5. Si el contacto es nuevo, use el enlace **"No es paciente — Crear paciente"** para darlo de alta desde la misma pantalla (o hágalo después desde Leads).
|
||||
6. En **Leads WACRM** revise los leads nuevos: clasifíquelos (etapas), asígnelos, y cuando el paciente agenda/compra, márquelos **ganado** (idealmente con "Convertir en paciente").
|
||||
1. Entre a **Mensajes WACRM** y presione **Sincronizar** (puede tardar hasta un minuto; espere el aviso de confirmación).
|
||||
- La pantalla también se actualiza sola cada ~15 segundos.
|
||||
2. Use los filtros **"No leídas"** y **"Sin asignar"**: ahí están los chats que necesitan atención.
|
||||
3. Si Sofía ya resolvió el caso (por ejemplo, la cita ya quedó agendada), no hay que hacer nada.
|
||||
4. Si hay que atender a mano:
|
||||
- Presione **Asignar** en la conversación y elija la persona responsable.
|
||||
- En la barra superior, elija su nombre en **"Responder como…"** (obligatorio para poder escribir).
|
||||
- Escriba y envíe. **Al responder, el chat queda asignado a usted y Sofía deja de intervenir en él.**
|
||||
5. Si el contacto todavía no es paciente, use el botón **"No es paciente — Crear paciente"** que aparece sobre el chat, o hágalo después desde Leads.
|
||||
6. En **Leads WACRM** revise los leads nuevos: clasifíquelos por etapa, asígneles un responsable y, cuando el paciente agenda o compra, márquelos **ganado** (idealmente con **"Convertir en paciente"**).
|
||||
|
||||
---
|
||||
|
||||
## 4. Pantalla por pantalla
|
||||
## 4. Guía de uso pantalla por pantalla
|
||||
|
||||
### 4.1 Mensajes WACRM (sistema SKEEN → `/wacrm/messages`)
|
||||
### 4.1 Mensajes WACRM (bandeja)
|
||||
|
||||
| Elemento | Qué hace |
|
||||
**Partes de la pantalla:**
|
||||
|
||||
| Elemento | Para qué sirve |
|
||||
|---|---|
|
||||
| Buscador | Busca conversaciones por nombre o teléfono del contacto. |
|
||||
| Botón **Sincronizar** | Trae a la pantalla los datos más recientes de WACRM (contactos, conversaciones, mensajes). Dura hasta ~1 minuto porque baja los ~9,700 contactos; espere el mensaje de confirmación. |
|
||||
| **Responder como...** | Selector de identidad de agente. **Obligatorio** para poder escribir: los mensajes salen a nombre del agente elegido y asignan la conversación a él. |
|
||||
| Filtros: Todas / Mías / Sin asignar / No leídas | "Mías" usa la identidad seleccionada. |
|
||||
| Lista de conversaciones | Nombre, teléfono, último mensaje, hora y contador de no leídos. Chip azul = asignada a alguien. |
|
||||
| Panel de chat | Historial completo. Cada burbuja indica quién escribió: **Cliente**, **Agente** o **Sofía (Bot)**. Botón **Asignar/Reasignar** arriba a la derecha (modal con el equipo; también "Desasignar conversación" en rojo — al desasignar, el bot vuelve a tomar el chat). |
|
||||
| **Ficha del paciente** | Sobre el chat se muestra el paciente de SKEEN cuyo teléfono coincide (nombre, última visita, puntos de monedero). Si no existe, aparece **"No es paciente — Crear paciente"** para crearlo con un clic. |
|
||||
| Caja de respuesta | Escriba y Enter/Enviar. El envío se hace por el mismo canal de WhatsApp de la clínica. |
|
||||
| Buscador | Busca conversaciones por nombre o teléfono del paciente. |
|
||||
| Botón **Sincronizar** | Trae los mensajes más recientes. Tarda hasta ~1 minuto y muestra un aviso al terminar. |
|
||||
| **"Responder como…"** | Selector de identidad. **Debe elegir su nombre antes de poder escribir.** Los mensajes salen a nombre de la persona elegida y asignan el chat a ella. |
|
||||
| Filtros **Todas / Mías / Sin asignar / No leídas** | Para priorizar qué atender. "Mías" usa la identidad seleccionada. |
|
||||
| Lista de conversaciones | Nombre, teléfono, último mensaje, hora y contador de mensajes sin leer. Las conversaciones asignadas muestran el nombre de la persona responsable. |
|
||||
|
||||
### 4.2 Leads WACRM (sistema SKEEN → `/wacrm/leads`)
|
||||
**Dentro de una conversación:**
|
||||
|
||||
- **Vistas:** Kanban (tarjetas por etapa) y Lista. Botón **Sincronizar** igual que en Mensajes.
|
||||
- **Filtros:** pipeline, estado (Abierto/Ganado/Perdido) y asignación (Todos / Sin asignar / Míos). Resumen con conteos y valores abiertos/ganados/perdidos.
|
||||
- **Etapa** del lead: clic sobre la etapa (p. ej. "New Lead") para moverlo a otra etapa. Pipeline actual: **New Lead → Qualified → Proposal Sent → Negotiation → Won**.
|
||||
- **Estado:** botones ✔ (ganado) y ✖ (perdido) en cada fila/tarjeta.
|
||||
- **Asignar responsable** a cada lead (modal con los agentes).
|
||||
- **Convertir en paciente:** botón que crea (o liga si ya existe) el **paciente en SKEEN** usando el teléfono del contacto, y marca el lead como ganado. Es idempotente: si ya estaba convertido, solo muestra el paciente.
|
||||
- **Ir a la conversación:** enlace directo al chat del lead en Mensajes WACRM.
|
||||
- Los leads **se crean automáticamente**: cada vez que se sincroniza, todo contacto con conversación de WhatsApp y sin lead abierto recibe un lead "New Lead". No es necesario crearlos a mano.
|
||||
- Se ve todo el historial del chat. Cada mensaje indica quién escribió: **Cliente**, **Agente** o **Sofía (Bot)**.
|
||||
- Botón **Asignar / Reasignar** (arriba a la derecha): abre la lista del equipo para elegir responsable. También está la opción **"Desasignar conversación"**: al hacerla, Sofía vuelve a atender ese chat.
|
||||
- **Ficha del paciente**: si el teléfono del chat coincide con un paciente del sistema, aparece su nombre (con enlace a su expediente), su última visita y sus puntos de monedero. Si no coincide, aparece el botón **"No es paciente — Crear paciente"**.
|
||||
- Caja de mensaje al pie: escriba y presione Enter o el botón **Enviar**. El mensaje sale por el WhatsApp de la clínica.
|
||||
|
||||
### 4.3 WACRM directo (standalone)
|
||||
### 4.2 Leads WACRM (clientes potenciales)
|
||||
|
||||
| Sección | Para qué sirve |
|
||||
|---|---|
|
||||
| **Dashboard** | KPIs generales de la operación de WhatsApp. |
|
||||
| **Inbox** | La misma bandeja de conversaciones, versión nativa de WACRM (equivalente a "Mensajes WACRM" del sistema SKEEN). |
|
||||
| **Contacts** | Directorio de contactos: teléfono, nombre, etiquetas, notas y campos personalizados. Aquí están los ~9,700 contactos históricos. |
|
||||
| **Pipelines** | El embudo de leads (mismo pipeline que se ve en SKEEN), en tablero Kanban. |
|
||||
| **Broadcasts** | Envíos masivos por **plantilla de WhatsApp**. **Hoy no es utilizable: no hay plantillas cargadas/aprobadas** (ver sección 6). |
|
||||
| **Automations** | Reglas automáticas ("cuando entra un mensaje nuevo → hacer X"). Hoy tiene una sola regla activa: *"Nuevo mensaje → Webhook Hermes Bridge"*, que es la que conecta con Sofía — **no desactivarla**. |
|
||||
| **Flows** | Flujos conversacionales con nodos (menús con botones para el cliente). Hay un flujo "Welcome menu" en **borrador** (no activo); el agendamiento real lo hace Sofía, no los flows. |
|
||||
| **Agents** | Playground de IA (pruebas de respuestas). |
|
||||
| **Notifications** | Notificaciones internas de la plataforma. |
|
||||
| **Settings** | Perfil/contraseña, **WhatsApp** (número y tokens de Meta), **plantillas**, equipo e invitaciones, API keys, apariencia, seguridad. La configuración del número de WhatsApp solo la debe tocar un administrador. |
|
||||
- **Vistas:** tablero de tarjetas por etapa (Kanban) o lista. Botón **Sincronizar** igual que en la bandeja.
|
||||
- **Filtros:** por pipeline, por estado (Abierto / Ganado / Perdido) y por responsable (Todos / Sin asignar / Míos). Arriba se muestran los totales y valores abiertos, ganados y perdidos.
|
||||
- **Las etapas** son las fases del lead: **New Lead → Qualified → Proposal Sent → Negotiation → Won**. Para mover un lead de etapa, toque la etiqueta de etapa en la tarjeta o fila.
|
||||
- **Marcar ganado o perdido:** botones en cada lead.
|
||||
- **Asignar responsable** a cada lead con un clic.
|
||||
- **Convertir en paciente:** crea (o liga, si ya existe) el **paciente en el sistema SKEEN** usando el teléfono del contacto y marca el lead como ganado. Se puede hacer una sola vez por lead; si ya estaba convertido, solo muestra el paciente.
|
||||
- **Ir a la conversación:** acceso directo al chat del lead en la bandeja.
|
||||
- **Los leads se crean solos:** cada vez que se sincroniza, todo contacto con conversación de WhatsApp y sin lead recibe automáticamente un lead "New Lead". No es necesario crearlos a mano.
|
||||
|
||||
---
|
||||
|
||||
## 5. Sofía, la asistente de IA (WhatsApp)
|
||||
## 5. Sofía, la asistente de IA
|
||||
|
||||
**Qué es:** el agente automático que contesta el WhatsApp de la clínica. En la bandeja sus mensajes aparecen como **"Sofía (Bot)"**.
|
||||
**Qué es:** la asistente automática que contesta el WhatsApp de la clínica. En la bandeja sus mensajes aparecen como **"Sofía (Bot)"**.
|
||||
|
||||
**Qué puede hacer por sí sola:**
|
||||
**Qué puede hacer sola:**
|
||||
|
||||
- **Agendar citas reales** paso a paso: pregunta el servicio (catálogo real de SKEEN), el día, muestra los **horarios disponibles de la agenda real**, pide el nombre y **crea la cita en el sistema** y la confirma al paciente. El paciente puede interrumpir o escribir "cancelar" en cualquier momento.
|
||||
- Informar de **servicios y precios** (consulta el catálogo de SKEEN).
|
||||
- Consultar **pagos pendientes** y **monedero/puntos** del paciente (por teléfono).
|
||||
- **Agendar citas reales**, paso a paso: pregunta el servicio (con el catálogo real de SKEEN), el día, muestra los **horarios disponibles de la agenda**, pide el nombre y **crea la cita en el sistema**, confirmando al paciente. El paciente puede escribir "cancelar" en cualquier momento.
|
||||
- Informar de **servicios y precios**.
|
||||
- Consultar **pagos pendientes** y **puntos del monedero** (según el teléfono del paciente).
|
||||
- Orientar en general sobre la clínica (horarios, dirección) cuando la pregunta no encaja en lo anterior.
|
||||
|
||||
**Reglas de conducta (cómo decide cuándo responder):**
|
||||
**Cuándo interviene (sus reglas):**
|
||||
|
||||
1. Responde **únicamente a mensajes que el paciente envía** (no a los que la clínica manda). Responde **24/7** — no tiene restricción de horario.
|
||||
2. **Si la conversación está asignada a un agente humano, Sofía NO responde** en ese chat. Desasignar la conversación devuelve el control al bot.
|
||||
3. Si el paciente escribe **"agente", "humano", "especialista", "doctor(a)" o "recepcionista"**, Sofía anuncia que la atenderá recepción y deja de responder automáticamente ese chat (el equipo debe verlo en la bandeja y hacerse cargo).
|
||||
4. Si hay un agendamiento en curso, continúa donde se quedó aunque el paciente escriba varias cosas ("mañana", "a las 9 am", etc.).
|
||||
5. Tiene memoria por número de teléfono (recuerda el hilo reciente de cada paciente).
|
||||
1. Responde únicamente a los mensajes que el paciente envía, y lo hace **a cualquier hora** (de día, de noche y fines de semana).
|
||||
2. **Si la conversación está asignada a una persona, Sofía no responde** en ese chat.
|
||||
3. Si el paciente escribe **"agente", "humano", "especialista", "doctor(a)" o "recepcionista"**, Sofía avisa que la atenderá recepción y deja de responder ese chat. El equipo debe tomar el hilo desde la bandeja.
|
||||
4. Si hay un agendamiento en curso, continúa donde se quedó aunque el paciente conteste varias cosas distintas ("mañana", "a las 9 am", etc.).
|
||||
5. Recuerda el hilo reciente de cada paciente (por su número de teléfono).
|
||||
|
||||
**Cómo tomar el control humano:** simplemente **asigne la conversación a un agente** (o respóndala; el envío la asigna solo). Para devolverla al bot, **desasígnela**.
|
||||
**Cómo tomar el control humano:**
|
||||
|
||||
**Dónde ver sus respuestas:** en la misma bandeja (Mensajes WACRM / Inbox), con la etiqueta "Sofía (Bot)".
|
||||
- Para **quitarle** una conversación: **asígnela a una persona** (o simplemente respóndala: el envío la asigna solo).
|
||||
- Para **devolverle** la conversación: **desasígnela**.
|
||||
|
||||
---
|
||||
|
||||
## 6. Estado actual y limitaciones (revisado el 2026-09-06)
|
||||
## 6. Cosas que todavía no funcionan
|
||||
|
||||
**Lo que FUNCIONA hoy (verificado en vivo):**
|
||||
Al cierre de esta guía (septiembre 2026):
|
||||
|
||||
- ✅ Recepción de mensajes: el webhook de WhatsApp está configurado y firmado; los mensajes de clientes entran y aparecen en la bandeja.
|
||||
- ✅ Envío de respuestas: el número de WhatsApp **+52 1 663 700 6400** está conectado, con token válido y calidad **GREEN** ante Meta; las respuestas del equipo y de Sofía salen de verdad por WhatsApp.
|
||||
- ✅ Sofía responde y agenda citas (probado con flujos reales: el 10-jul-2026 completó un agendado completo, y el 3-sep-2026 contestó un saludo).
|
||||
- ✅ Bandeja y leads integradas en el sistema SKEEN, con asignación y conversión a paciente.
|
||||
- ✅ Sincronización SKEEN ↔ WACRM funcionando (ver abajo cuánto tarda).
|
||||
|
||||
**Lo que está a medias o apagado — importante:**
|
||||
|
||||
- ⚠️ **Recordatorios automáticos de citas: APAGADOS a propósito.** El módulo existe (recordatorio 24 h antes, follow-up post-tratamiento, re-engagement a 90 días) y hasta está programado en la configuración, pero está **desactivado deliberadamente** hasta que la clínica use un **número de WhatsApp propio de SKEEN** (el número actual está registrado a nombre *"Consultoria Alcaraz Salazar"*). No activarlo hasta que el cliente lo autorice.
|
||||
- ⚠️ **Plantillas de WhatsApp: ninguna cargada (0).** Consecuencias: (a) los **Broadcasts** (difusiones masivas) no funcionan; (b) **no se puede escribir a un paciente fuera de la ventana de 24 horas** (regla de WhatsApp: solo con plantilla aprobada se puede iniciar conversación). Las plantillas requieren aprobación de Meta — pendiente del cliente.
|
||||
- ⚠️ **La IA "nativa" de WACRM está desactivada** (no hay configuración IA en la cuenta). La IA que atiende es **Sofía (Hermes)**. Si alguien activa la IA nativa en Settings sin coordinación, podría haber doble respuesta al cliente — no hacerlo.
|
||||
- ⚠️ **El botón "Sincronizar" tarda ~1 minuto** (baja los 9,747 contactos completos). Es normal; no repetirlo insistentemente.
|
||||
- ⚠️ Si se **elimina** una conversación en WACRM, en el sistema SKEEN puede seguir apareciendo un tiempo (la sincronización agrega/actualiza pero **no borra** registros viejos). Filtre por los chats activos.
|
||||
- ⚠️ Definir si los chats **entran en horario no laboral**: Sofía responde de noche y fines de semana (no tiene límite horario). Si la clínica prefiere que no responda fuera de horario, es un ajuste pendiente de definir.
|
||||
1. **Plantillas de mensajes y envíos masivos (difusiones): pendientes.** Aún no hay plantillas aprobadas por WhatsApp, por lo que las **difusiones masivas no se pueden usar** todavía. Las plantillas requieren aprobación de Meta y es un trámite pendiente.
|
||||
2. **No se puede escribir a un paciente fuera de las 24 horas.** Regla de WhatsApp: solo se puede contestar con mensajes libres dentro de las 24 horas siguientes al último mensaje del paciente. Fuera de esa ventana se necesita una plantilla aprobada (pendiente, ver punto 1). Si un paciente no ha escrito hace más de 24 horas, espere a que él escriba o consulte a soporte.
|
||||
3. **Recordatorios automáticos de citas: apagados a propósito.** El módulo existe (recordatorio 24 h antes, seguimiento después del tratamiento, mensaje a pacientes que llevan tiempo sin venir), pero está **desactivado hasta que la clínica use un número de WhatsApp propio de SKEEN**. El número actual está registrado a nombre personal ("Consultoria Alcaraz Salazar"); el cambio de número es pendiente del cliente.
|
||||
4. **El número actual no es el definitivo.** Mientras no se cambie, no se deben activar recordatorios ni difusiones.
|
||||
5. **Conversaciones eliminadas pueden seguir apareciendo** un tiempo en el listado del sistema SKEEN. Concéntrese en los chats activos.
|
||||
6. **Sofía responde a cualquier hora.** Si la clínica prefiere que no conteste fuera del horario de atención, es un ajuste que se puede solicitar a soporte.
|
||||
|
||||
---
|
||||
|
||||
## 7. Solución de problemas
|
||||
## 7. Problemas comunes
|
||||
|
||||
| Síntoma | Causa probable / qué hacer |
|
||||
| Síntoma | Qué hacer |
|
||||
|---|---|
|
||||
| **No llegan mensajes nuevos de clientes** | 1) Presione **Sincronizar** y espere ~1 min. 2) Si tampoco aparecen en el WACRM directo (Inbox), el problema es del webhook de Meta → avise a TI (revisar token/número en Settings → WhatsApp). |
|
||||
| **No me deja escribir** ("Selecciona tu identidad de agente") | Elija su nombre en el selector **"Responder como..."** de la barra superior. |
|
||||
| **Envío falla / no sale el mensaje** | Verifique que el mensaje sea a un número válido. Si el paciente **no ha escrito en las últimas 24 h**, WhatsApp bloquea el mensaje libre → se necesita plantilla aprobada (hoy ninguna cargada). Avise a TI si el error persiste. |
|
||||
| **El bot responde cuando no debe** | **Asigne la conversación a un agente** (botón Asignar). En cuanto esté asignada, Sofía se calla. Desasignar vuelve a activarla. |
|
||||
| **El bot no responde cuando debería** | ¿La conversación quedó asignada a alguien? Desasígnela. ¿El paciente escribió "agente/humano/doctor"? Es handoff intencional — atiéndalo usted o desasigne si fue error. Si sigue sin responder, avise a TI (revisar servicios del bridge/gateway, sección 8). |
|
||||
| **Veo conversaciones que ya no existen** | El listado del sistema SKEEN es un caché; la sincronización no borra. Use Sincronizar y concentre el trabajo en los chats activos. |
|
||||
| **Sincronizar tarda mucho o parece travado** | Normal hasta ~1 minuto (9,747 contactos). Si falla, reintente; si falla dos veces, avise a TI. |
|
||||
| **No me llegan recordatorios de citas a los pacientes** | **Esperado por ahora** — los recordatorios están apagados hasta tener el número de SKEEN y plantillas aprobadas (sección 6). |
|
||||
| **No me llegan los mensajes de los pacientes** | Presione **Sincronizar** y espere ~1 minuto. Si en la bandeja del sistema sí aparecen, ya está. Si tampoco aparecen en WACRM directo (sección Inbox), contacte a soporte. |
|
||||
| **No me deja escribir** (dice "Selecciona tu identidad de agente") | Elija su nombre en el selector **"Responder como…"** de la barra superior. |
|
||||
| **El mensaje no se envía** | Verifique que el número sea correcto. Si el paciente no ha escrito en más de 24 horas, WhatsApp bloquea el mensaje libre (ver sección 6, punto 2). Si el error persiste, contacte a soporte. |
|
||||
| **Sofía responde cuando no debe** | **Asigne la conversación a una persona** (botón Asignar). En cuanto esté asignada, deja de responder. |
|
||||
| **Sofía no responde cuando debería** | ¿La conversación quedó asignada a alguien? **Desasígnala.** ¿El paciente escribió "agente", "humano" o "doctor"? Es intencional: la está pidiendo — atiéndalo usted. Si fue un error del paciente, desasigne el chat. Si sigue sin responder, contacte a soporte. |
|
||||
| **Veo conversaciones que ya no existen** | El listado puede mostrar chats antiguos. Sincronice y trabaje solo con los chats activos. |
|
||||
| **Sincronizar tarda mucho** | Es normal: hasta ~1 minuto, porque baja miles de contactos. Espere el aviso de confirmación; no lo presione varias veces. |
|
||||
| **Los pacientes no reciben recordatorios de citas** | **Esperado por ahora**: los recordatorios están apagados hasta tener el número de WhatsApp de SKEEN y las plantillas aprobadas (sección 6). |
|
||||
|
||||
> Si algo no se resuelve con estos pasos, **contacte a soporte** e indique: qué pantalla estaba usando, qué mensaje de error vio (si hubo) y la hora aproximada.
|
||||
|
||||
---
|
||||
|
||||
## 8. Anexo técnico (breve)
|
||||
## 8. Preguntas frecuentes
|
||||
|
||||
### 8.1 Arquitectura
|
||||
**¿Pueden varias personas atender los mismos chats?**
|
||||
Sí. La bandeja es compartida. Para no duplicar trabajo, asigne cada conversación a una responsable.
|
||||
|
||||
```
|
||||
Paciente (WhatsApp)
|
||||
│ Meta Cloud API (número +52 1 663 700 6400, calidad GREEN)
|
||||
▼
|
||||
Webhook → WACRM Next.js :3000 (valida firma Meta, guarda contacto/
|
||||
conversación/mensaje, corre flows + automations)
|
||||
│ notifica message.received
|
||||
▼
|
||||
Hermes Bridge :8090 (webhook-bridge.js)
|
||||
│ omite la conversación si está asignada a humano (consulta a Odoo)
|
||||
▼
|
||||
Hermes Gateway :8080 (LLM "Sofía" — proveedor Nan Builders, modelo qwen3.6)
|
||||
│ intents: agendar / servicios / monedero / pagos / otro
|
||||
│ agendado: disponibilidad y creación de CITA real vía API de Odoo
|
||||
▼
|
||||
Respuesta → WACRM API (/api/v1/messages) → Meta → paciente
|
||||
**¿Pierdo el chat si asigno la conversación a otra persona?**
|
||||
No. Todos siguen viendo el historial; solo cambia quién es el responsable.
|
||||
|
||||
Sistema SKEEN (React :80 + Odoo :8069)
|
||||
└─ proxy /skeen/frontend/v1/wacrm/* → caché local skeen.wacrm.*
|
||||
(sync desde Supabase; envío vía bridge; asignación; leads; conversión)
|
||||
```
|
||||
**¿Cómo hago que Sofía vuelva a atender un chat que estaba atendiendo una persona?**
|
||||
Desasigne la conversación (botón Asignar → "Desasignar conversación").
|
||||
|
||||
- **BD del WACRM:** Supabase self-hosted (Docker, API en :8000; tablas: contacts, conversations, messages, deals, pipelines, message_templates, automations, flows, ai_configs, whatsapp_config…). Los mensajes **se guardan en Supabase**; Odoo guarda una **copia de trabajo** (modelos `skeen.wacrm.*`).
|
||||
- **Odoo** es la fuente de verdad de: catálogo/servicios, disponibilidad de agenda, citas creadas por Sofía y pacientes (la conversión de lead crea `res.partner` con `is_patient=True, source='whatsapp'`).
|
||||
**Si respondo un chat, ¿Sofía sigue contestando al paciente?**
|
||||
No. Al responder, el chat queda asignado a usted y Sofía se retira de esa conversación.
|
||||
|
||||
### 8.2 Componentes y servicios
|
||||
**¿Los leads se crean solos?**
|
||||
Sí. Todo paciente que escriba por WhatsApp y no tenga un lead, obtiene uno automáticamente al sincronizar ("New Lead").
|
||||
|
||||
| Componente | Puerto | Servicio / proceso | Reinicio |
|
||||
|---|---|---|---|
|
||||
| WACRM (Next.js) | 3000 | `wacrm.service` (`npm start`, dir `/root/skeen-wacrm`) | `systemctl restart wacrm` |
|
||||
| Hermes Gateway (IA) | 8080 | `hermes-gateway.service` (venv `/root/hermes-venv`) | `systemctl restart hermes-gateway` |
|
||||
| Hermes Bridge | 8090 | **⚠️ ver nota** — el unit `hermes-bridge.service` está en bucle de reinicios; el proceso real sirve desde un `nohup node webhook-bridge.js` (dir `/root/skeen-roadmap-hermes/hermes`) | Matar el PID real y luego `systemctl restart hermes-bridge` (ver nota) |
|
||||
| Odoo | 8069 | `odoo-skeen.service` | `systemctl restart odoo-skeen` |
|
||||
| Nginx | 80 | `nginx` | `systemctl reload nginx` |
|
||||
| Supabase | 8000 | Docker (contenedores `supabase-*`) | `docker compose restart` en su dir |
|
||||
| Túnel público | — | `cloudflared-skeen.service` (`/root/.cloudflared/config.yml`) | `systemctl restart cloudflared-skeen` |
|
||||
**¿Puedo dar de alta a un paciente nuevo desde el chat?**
|
||||
Sí. Si el teléfono no coincide con ningún paciente, aparece el botón "No es paciente — Crear paciente" sobre la conversación.
|
||||
|
||||
**⚠️ Nota sobre el bridge (verificada el 2026-09-06):** desde el 14-ago-2026 existe un proceso `node webhook-bridge.js` iniciado con `nohup` (log en `/tmp/hermes-bridge.log`) que **ocupa el puerto 8090**. El servicio systemd `hermes-bridge` arranca cada 5 s, encuentra el puerto ocupado (EADDRINUSE) y sale con código 0 — acumulando cientos de miles de "reinicios" en el log. **Consecuencia práctica:** el bridge SÍ está funcionando (es el proceso nohup), pero `systemctl stop hermes-bridge` **no** lo detiene. Para operar de forma limpia: `kill <PID de "node webhook-bridge.js" con padre nohup>` y dejar que systemd lo levante (en puerto libre arranca y queda estable), o desactivar el nohup viejo. Es un pendiente de mantenimiento.
|
||||
**¿Las citas que Sofía agenda son reales?**
|
||||
Sí. Consulta la disponibilidad real de la agenda y crea la cita directamente en el sistema, con confirmación al paciente.
|
||||
|
||||
**Health-check rápido:**
|
||||
- Bridge: `curl http://localhost:8090/health` → `{"status":"ok",...}`
|
||||
- WACRM: `curl -o /dev/null -w '%{http_code}' http://localhost:3000/login` → `200`
|
||||
- Gateway (IA): `systemctl status hermes-gateway`
|
||||
**¿Se puede mandar un mensaje masivo a todos los pacientes?**
|
||||
Todavía no: las difusiones requieren plantillas de WhatsApp aprobadas, que están pendientes (sección 6).
|
||||
|
||||
### 8.3 Configuración y datos (rutas)
|
||||
|
||||
| Componente | Ubicación |
|
||||
|---|---|
|
||||
| Código WACRM | `/root/skeen-wacrm` (Next.js + Supabase; credenciales Meta en `wacrm.service` / `.env.local`) |
|
||||
| Bridge | `/root/skeen-roadmap-hermes/hermes/webhook-bridge.js` (memoria de Sofía por teléfono en `.../hermes/memory/<tel>.json`) |
|
||||
| Config Hermes | `/root/.hermes/config.yaml` (gateway :8080, plataforma webhook :8644, skills SKEEN) |
|
||||
| Proxy/ caché Odoo | `/root/skeen-odoo/addons/skeen_whatsapp/controllers/wacrm_proxy.py` y `models/wacrm_sync.py` |
|
||||
| Páginas del sistema SKEEN | `/root/skeen-frontend/src/pages/WacrmMessages.tsx`, `WacrmLeads.tsx` |
|
||||
| Webhook público del bridge | `https://skeen.consultoria-as.com/webhook/wacrm` (nginx → :8090) |
|
||||
|
||||
### 8.4 Endpoints del proxy (para TI)
|
||||
|
||||
`POST /skeen/frontend/v1/wacrm/sync` · `GET /wacrm/conversations` · `GET|POST /wacrm/messages` · `GET /wacrm/members` · `POST /wacrm/conversations/<id>/assign` · `GET /wacrm/conversations/<id>/assigned` · `GET /wacrm/pipelines` · `GET /wacrm/leads` · `PUT /wacrm/leads/<id>/status` · `POST /wacrm/leads/<id>/convert` — todos bajo `/skeen/frontend/v1/`, autenticados con token del frontend SKEEN.
|
||||
|
||||
### 8.5 Interruptores conocidos (pendientes del cliente)
|
||||
|
||||
| Interruptor | Dónde | Estado |
|
||||
|---|---|---|
|
||||
| Recordatorios de citas | bridge `REMINDERS_ENABLED=true` + heartbeat | **OFF a propósito** (hasta número SKEEN + plantillas + opt-in). Cron del gateway también sin ejecuciones. |
|
||||
| Re-engagement 90 días | bridge `REENGAGE_ENABLED=true` | OFF |
|
||||
| Plantillas de WhatsApp | Meta Business + Settings → Templates del WACRM | 0 cargadas → Broadcasts inoperantes |
|
||||
| IA nativa WACRM (`ai_configs`) | Settings → AI | Desactivada; usar Sofía (Hermes) |
|
||||
**¿Sofía contesta de noche y fines de semana?**
|
||||
Sí, a cualquier hora. Si la clínica decide que no debe contestar fuera de horario, se puede solicitar el ajuste a soporte.
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user