# Configuración Bitrix24 - Bot IA Luxury

Guía operativa para conectar el bot PHP a **Chat Web** y **WhatsApp (Wazzup)**.

## A. Preparación

### Webhook Bitrix

1. Ir a **Developer resources → Other → Incoming webhook**
2. Scopes:
   - `imbot`
   - `imopenlines`
3. Guardar URL en `.env` como `B24_WEBHOOK_URL`

### Bot token

- Definir `BOT_TOKEN` (máx. 40 caracteres)
- Debe ser el mismo en registro y llamadas API

---

## B. Registro del bot

URL:

```text
https://TU-SUBDOMINIO/install.php?token=INSTALL_TOKEN
```

Resultado esperado:

```json
{
  "ok": true,
  "bot_id": 123,
  "webhook_url": "https://TU-SUBDOMINIO/index.php?secret=..."
}
```

Copiar `bot_id` en `.env`.

---

## C. Canal Chat Web

1. **Contact Center → Live chat / Website widget**
2. Abrir Open Channel correspondiente → **Configure**
3. **Chat Bots**:
   - Assign chat bot = ON
   - Select chat bot = Luxury Assistant
   - Activate = Each time a client starts conversation
   - Transfer after = 10 minutes
   - Disconnect = after transferring to an agent
4. **Auto Actions**:
   - Send greetings = OFF
5. **Queue**:
   - Agent queue = solo personas/equipos reales (Joel, Ventas 1-4)
   - Quitar entradas no humanas si existen (`Loss Weight`, `Laser Hair` como agentes)
6. Guardar

---

## D. Canal WhatsApp (Wazzup)

1. Confirmar en Wazzup que el canal está conectado al Open Channel **WhatsApp**
2. En Bitrix: **Contact Center → WAZZUP: WhatsApp → Open Channel WhatsApp**
3. Repetir configuración de **Chat Bots** igual que Chat Web
4. Verificar en Wazzup personal account:
   - Canal marcado "Add to Open Channel"
   - Open Channel destino = WhatsApp

---

## E. CRM - Automatizaciones existentes

No reemplazar triggers de servicios. Mantener:

- WhatsApp / Instagram / Facebook / Google como etapas de entrada
- Triggers **Track customer messages** hacia:
  - Laser Hair Schedule
  - Facial Procedures
  - Sclerotherapy
- **Allow moving back** = OFF (por reorden de etapas)

### Conversación iniciada

Trigger recomendado:

- **Track chat accepted event**
- Por canal (Web + WhatsApp)
- Mueve lead cuando una vendedora acepta/responde

---

## F. Retirar Sophia (cuando bot PHP esté validado)

Por canal (Web + WhatsApp):

1. **Configure → Chat Bots**
2. Desmarcar assign chat bot de Sophia
3. Asignar **Luxury Assistant**
4. Guardar

No borrar Sophia del portal hasta confirmar estabilidad 48h.

---

## G. Matriz de prueba en producción

1. Chat Web incognito: `Hola`
2. Chat Web incognito: `Hi`
3. Chat Web: `0`
4. WhatsApp prueba: `Hola`
5. WhatsApp prueba: `Sclerotherapy`
6. Vendedora pulsa **Reply** → bot debe callarse
7. Lead debe pasar a **Conversación iniciada** (trigger chat accepted)

---

## H. Troubleshooting

### Bot no responde

- Revisar `health.php`
- Confirmar `BOT_ID` en `.env`
- Verificar bot asignado en canal correcto
- Confirmar webhook secret en URL
- Revisar `storage/app.log`

### Doble respuesta

- Sophia aún activa en el canal
- Auto-reply del canal activo + bot activo

### WhatsApp no entra al bot

- Mensaje no pasa por Open Channel Wazzup
- Canal Wazzup no vinculado al Open Channel WhatsApp

### Error OpenAI

- API key inválida/sin saldo
- Bot envía fallback y transfiere a humano

---

## I. Cambio de API al cliente

1. Cliente entrega nueva `OPENAI_API_KEY`
2. Actualizar `.env`
3. Probar 3 conversaciones ES/EN + handoff
4. Monitorear costos en panel OpenAI
