# Conceptos clave

> Lo que necesitas saber de WhatsApp antes de enviar mensajes desde tu código

Fuente: https://developers.plazbot.com/whatsapp/conceptos/

## Ventana de 24 horas

WhatsApp solo permite enviar **texto libre** a un contacto que te escribió en las **últimas 24 horas**. Cada mensaje del cliente reabre esa ventana.

- **Dentro de la ventana:** puedes responder con texto libre (`onWhatsappMessage` / `send-message`).
- **Fuera de la ventana o a un contacto nuevo:** necesitas una **plantilla aprobada** por Meta (`onConversation` / `send-template`).

Por eso la prueba de `plazbot whatsapp setup` te pide escribir "hola" primero: abre la ventana y crea el contacto.

## Contactos

Un contacto se crea cuando alguien le escribe a tu número. El envío de texto libre (`POST /api/message`) solo funciona con contactos que ya existen; si no, la API responde `The contact does not exist in the database.`

Las plantillas no tienen esa restricción: sirven para escribirle primero a cualquier número.

## Plantillas

Una plantilla es un mensaje aprobado por Meta con variables (`{{1}}`, `{{2}}`...), por ejemplo un recordatorio de cita o una confirmación de pedido.

- Se crean y se envían a aprobación desde el panel de Plazbot (Marketing → Plantillas).
- Cada plantilla pertenece a un número conectado y se envía desde ese número.
- La aprobación de Meta puede tardar de minutos a horas.
- Solo se pueden enviar plantillas **aprobadas y activas**.

## Tipos de conexión

| Tipo | Para qué | Cómo se conecta |
|------|----------|-----------------|
| **WhatsApp API** | Número nuevo o dedicado, envíos a escala y plantillas | Registro de Meta (Embedded Signup) |
| **WhatsApp Business (coexistencia)** | Seguir usando la app WhatsApp Business del celular y además operarla por API | Registro de Meta + escanear un QR desde la app |
| **Link para tus clientes** | Que tus clientes conecten su propio número en tu cuenta | Link `co.plzb.link` generado por API o desde el panel |

## Zonas

Tu cuenta vive en una zona y la API cambia según la zona:

| Zona | Panel | API |
|------|-------|-----|
| `LA` (América) | `appla.plazbot.com` | `https://api.plazbot.com` |
| `EU` (Europa) | `appeu.plazbot.com` | `https://apieu.plazbot.com` |

El CLI la detecta al hacer `plazbot login`. En el SDK se indica con `zone: "LA"` o `zone: "EU"`.

## Credenciales

| Credencial | Dónde se usa | De dónde sale |
|------------|--------------|---------------|
| Sesión del CLI | Tu computadora | `plazbot login` (se guarda en `~/.plazbot/config.json`) |
| API key | Tu servidor o CI | Panel → Configuración → Developer |
| Workspace ID | SDK y REST | Panel → Configuración → Developer, o `plazbot whoami` |

Todas se pueden revocar desde **Configuración → Developer**.
