await bot.message.onWhatsappMessage({to: "51912345678",message: "Hola Ana, gracias por escribir.",})
Whatsapp for Developers
Conecta tu número, envía mensajes y plantillas, y recibe cada evento por webhook en tiempo real. API oficial de Meta — Plazbot es Meta Business Partner, sin intermediarios extra. Mismo API en SDK, CLI y REST.
01import { Plazbot } from "plazbot"0203const bot = new Plazbot({04 apiKey: process.env.PLAZBOT_KEY!,05 workspaceId: "ws_...",06 zone: "LA" // LA | EU07})0809// envía una plantilla aprobada con variables10await bot.message.onConversation({11 to: "5491123456789",12 template: "welcome",13 variablesBody: [{ variable: "1", value: "Ana" }]14})
Tu primer mensaje en 3 pasos.
Tres pasos copia-pega para mandar tu primera plantilla a un número real. Requiere PLAZBOT_KEY y PLAZBOT_WORKSPACE_ID (los obtienes en el panel).
- step [01/03]instala el SDK
Un solo paquete. Sin dependencias externas extra.
~/terminal·bash01$ npm install plazbot02# o si prefieres CLI global para ops:03$ npm install -g plazbot - step [02/03]inicializa el cliente
Lleva apiKey, workspaceId y zona (LA / EU). El host se resuelve solo.
~/lib/plazbot.ts·typescript01import { Plazbot } from "plazbot"0203export const bot = new Plazbot({04 apiKey: process.env.PLAZBOT_KEY!,05 workspaceId: process.env.PLAZBOT_WORKSPACE_ID!,06 zone: "LA", // "LA" | "EU"07}) - step [03/03]manda tu primer mensaje
Plantilla aprobada con variables. La respuesta trae messageId para tracking.
~/scripts/welcome.ts·typescript01import { bot } from "@/lib/plazbot"0203const res = await bot.message.onConversation({04 to: "51912345678",05 template: "welcome",06 variablesBody: [{ variable: "1", value: "Ana" }],07})0809console.log(res.messageId) // → "msg_018f..."
Envía texto, plantillas y archivos.
La misma operación expresada en SDK TypeScript, CLI Bash y REST HTTP. Body y parámetros idénticos — elige la superficie según el contexto (app vs ops vs cualquier stack).
Texto libre. Solo funciona si el cliente te escribió en las últimas 24 horas (regla de WhatsApp, no de Plazbot).
Plantilla aprobada por Meta. Sirve para iniciar la conversación o reabrir la ventana de 24 horas.
await bot.message.onConversation({to: "51912345678",template: "welcome",variablesBody: [{ variable: "1", value: "Ana" }],variablesHeader: [{ variable: "1", value: "Q3 2025" }],})
await bot.message.onConversation({to: "51912345678",template: "factura_mensual",variablesBody: [{ variable: "1", value: "Ana" }],file: {fileUrl: "https://cdn.tu-app.com/facturas/u/123.pdf",fileName: "factura.pdf",},})
Escucha cada evento en tiempo real.
Registra una URL y Plazbot te envía un POST con JSON por cada evento de tu número: mensajes, contactos y conversaciones. Dos pasos, nada más.
Una sola llamada. Desde ese momento, cada evento del número llega a tu URL.
await bot.message.registerWebhook({number: "51912345678",url: "https://tu-app.com/wa-events",})
12 eventos en 3 familias. Todos llegan con la misma estructura: type indica qué pasó y data trae el contacto, el mensaje o la conversación.
- [01]
message.receivedtexto - [02]
message.image.receivedimagen - [03]
message.audio.receivedaudio - [04]
message.document.receiveddocumento
- [01]
contact.creatednuevo contacto creado - [02]
contact.existingcontacto ya conocido interactuó - [03]
contact.deletedcontacto eliminado - [04]
contact.blockedcontacto bloqueado - [05]
contact.from.adclick-to-WhatsApp desde anuncio
- [01]
conversation.assignedasignada a agente / miembro - [02]
conversation.resolvedmarcada como resuelta - [03]
conversation.reopenedreabierta
01{02 "type": "message.image.received",03 "workspaceId": "ws_018f...",04 "timestamp": "2025-05-24T13:42:01.812Z",05 "data": {06 "contact": {07 "id": "cnt_018f...",08 "name": "Ana Quispe",09 "phoneNumber": "51912345678",10 "tags": ["lead", "ventas"]11 },12 "message": {13 "id": "msg_018f...",14 "contentUrl": "https://media.plazbot.com/.../img.jpg",15 "contentType": "image",16 "platform": "whatsapp",17 "direction": "incoming",18 "timestamp": "2025-05-24T13:42:01.700Z"19 }20 }21}
PlazbotEvent) — autocompletado sin escribir interfaces a mano.Todo lo que puedes hacer.
Las 10 operaciones de WhatsApp disponibles desde código, agrupadas por objetivo. Haz clic en cualquiera para ver el snippet real del SDK o del CLI — sin invenciones.
Dos regiones, un mismo código.
El SDK resuelve el host según la zona del workspace. Elige la región correcta y el cliente apunta automáticamente al host operativo de esa zona.
Cobertura para América Latina, Caribe y Estados Unidos
- ├── BSP Meta operando 24/7 con plantillas locales
- ├── Soporte en español y portugués
- └── Optimizado para tráfico desde MX · CO · PE · CL · AR · BR
const bot = new Plazbot({apiKey: process.env.PLAZBOT_KEY!,workspaceId: "ws_...",zone: "LA",})
Cobertura para Europa con residencia de datos en la región
- ├── Procesamiento y almacenamiento dentro de la UE
- ├── Compatible con requisitos de GDPR / soberanía de datos
- └── Optimizado para tráfico desde ES · PT · IT · FR · DE
const bot = new Plazbot({apiKey: process.env.PLAZBOT_KEY!,workspaceId: "ws_...",zone: "EU",})
new Plazbot({ apiKey, workspaceId, customUrl: "https://api.tu-cluster.com" })Empieza a construir con WhatsApp.
Crea tu workspace gratis, conecta un número y manda tu primera plantilla en minutos. Si necesitas volumen, BSP dedicado u on-premise, hablamos.
- ├── developers.plazbot.com
- ├── github.com/plazbot
- ├── /developers
- └── status