# Onboarding de un cliente nuevo

Esto es lo que tarda en armar la cuenta de un cliente que quiere usar tu agente. La parte de WhatsApp/Meta es la más jodida — hay un buen 20% de cuentas que necesitan ticket a soporte Twilio.

## Pre-requisitos del cliente

1. **Un número de teléfono celular argentino libre**
   - **Ojo**: NO puede coexistir con WhatsApp normal ni con la app de WhatsApp Business en ningún celular. Si la SIM está activa en un teléfono con WhatsApp instalado, hay que eliminar la cuenta (Settings → Cuenta → Eliminar mi cuenta) antes del onboarding.
   - Si el cliente quiere usar un número que ya está en uso para WhatsApp normal, hay que hacer migración (proceso aparte).
   - Alternativa: comprar número virtual desde Twilio (~$5-10/mes), con SMS capability obligatoria para la verificación.

2. **CUIT / documento del negocio** (para Meta Business Manager)

3. **Email corporativo no usado en otro Business Manager**

## Pasos del onboarding (orden estricto)

### 1. Crear Meta Business Portfolio (Business Manager)
- `business.facebook.com` → Crear cuenta
- Cargar nombre del negocio, CUIT, dirección, email
- Esperar verificación (puede ser instantánea o pedir documentos, días)
- ⚠️ **No reutilizar nombre de un portfolio borrado** — Meta no deja, hay que poner uno distinto ("Distribuidora X" en vez de "X")

### 2. Crear WABA dentro del portfolio
- Inside del Business Manager → Configuración → Cuentas → Cuentas de WhatsApp → Agregar
- Esto es lo que Twilio va a "ocupar"

### 3. Setup en Twilio
- Crear Twilio Account (si no tenés uno aparte por cliente — recomendable para aislamiento de costos)
- Console → Messaging → Senders → WhatsApp Senders → **Create new sender**
- Elegir "Add a new phone number"
- Self Sign-up con Meta: te abre un popup con FB, elegís el portfolio ya creado y la WABA
- Verificación del número:
  - Si es SMS-capable → código llega al Twilio Console (Monitor → Logs → Messaging)
  - Si es voice-only → recording en `handler.twilio.com/twiml/...` — **esto suele fallar**. Si pasa, abrir ticket Twilio y pedir email OTP, o comprar SMS-capable.

### 4. Assignar Twilio como partner (si la WABA queda inaccesible)
- En Meta Business Manager → Configuración → Socios → Asignar
- Partner ID de Twilio: `1940031999643378`
- Permisos: Control total → Todo
- Esto le permite a Twilio rebindeear el SID a la WABA si hace falta

### 5. Configurar el webhook
- En Twilio Console → tu sender → Inbound Settings
- **Webhook URL for incoming messages**: `https://tu-dominio.com/webhook/whatsapp.php`
- Method: `HTTP Post`
- ⚠️ **Sin redirects en el dominio**. Si tu DNS hace 301 de `tudominio.com` a `www.tudominio.com`, el POST se pierde. Apuntar directo al dominio que sirve.

### 6. Setear env vars en el server

```bash
# /etc/apache2/envvars  (Apache solo lee de acá, NO de /etc/environment)
export TWILIO_ACCOUNT_SID='ACxxxxxxxx'
export TWILIO_AUTH_TOKEN='xxxxxxxx'
export TWILIO_WHATSAPP_FROM='+549XXXXXXXXX'  # número WhatsApp del cliente
export ANTHROPIC_API_KEY='sk-ant-xxx'
export OPENAI_API_KEY='sk-xxx'              # solo si querés audio

# después: sudo systemctl restart apache2  ← REQUIERE restart, no reload
```

### 7. Verificar end-to-end
- Mandar "hola" desde tu celular al número del cliente
- Confirmar que llega al webhook (logs)
- Confirmar que Claude responde
- Confirmar que la respuesta llega al cliente

## Tiempos realistas

| Etapa | Tiempo |
|---|---|
| Crear Business Portfolio en Meta | 30 min |
| Verificación de identidad (si la piden) | 1-7 días |
| Crear WABA + Self Sign-up Twilio | 30 min |
| Verificación del número | 15 min - 2 días (puede romperse) |
| Configuración webhook + env vars | 15 min |
| Templates iniciales (saludo, opciones, confirmación) | 30 min (creación) + 1-24h (aprobación Meta) |
| **TOTAL** | **2 horas - 10 días** |

Para clientes pyme, presupuestar 3 días de turnaround conservador y avisar.

## Problemas frecuentes en onboarding

1. **"Restriction inherited"**: WABA nueva nace restringida porque el Business Portfolio padre lo está. Hay que crear un portfolio NUEVO, no reusar el restringido.
2. **OTP por voz no llega**: la regla "voice-only numbers usan email OTP" no siempre está habilitada del lado Twilio. Ticket a soporte.
3. **Rate limit de Meta**: si fallás muchos intentos de OTP, Meta te tira "Has probado demasiados códigos de verificación no válidos" por 24h.
4. **El Account SID está bound a otra WABA**: cuando creás una WABA nueva, el SID puede quedar conectado a la vieja. Pedirle a Twilio Support (ticket con SID + WABA ID) que rebindee.
