Introducción
El módulo WhatsappNumbers te da los números de WhatsApp conectados al workspace, su salud en Meta, su nombre de usuario y el enlace de registro de Meta para conectar uno nuevo. Disponible desde la versión 2.4.0.
Inicialización
01import { Plazbot } from 'plazbot';0203const plazbot = new Plazbot({04 workspaceId: "YOUR_WORKSPACE_ID",05 apiKey: "YOUR_API_KEY",06 zone: "LA"07});0809// Usar: plazbot.numbers.list()
Listar números
01const numbers = await plazbot.numbers.list();0203for (const n of numbers) {04 console.log(n.phone, n.isActive ? "activo" : "inactivo");05}
| Campo | Descripción |
|---|---|
id | Id de la integración en Plazbot. |
phone | Número en formato internacional. |
name | Nombre del número. |
metaPhoneNumberId | Phone number id de Meta. |
isActive | Si el número está activo. |
isBusinessApp | true si es la app WhatsApp Business conectada por QR (coexistencia). |
Enlace para conectar un número
Devuelve el enlace de registro de Meta del workspace. Si no existe lo crea, y si venció lo regenera. Ábrelo en el navegador, o mándaselo a tu cliente, para conectar su número.
01const link = await plazbot.numbers.getConnectLink(); // API de WhatsApp02const business = await plazbot.numbers.getConnectLink("whatsapp_business"); // app WhatsApp Business0304console.log(link.url, link.expiresAt);0506// Invalidar el enlace actual y crear otro07await plazbot.numbers.regenerateConnectLink("whatsapp");
Salud del número
Lo mismo que el chequeo de salud de Configuración > Integraciones: calidad, límite de envío, si el número puede enviar, si llegan los mensajes entrantes y cada problema con su solución. Solo números conectados con la API de WhatsApp. Si el workspace tiene un solo número, no hace falta pasarlo.
01const health = await plazbot.numbers.health("+51912345678");0203if (health.level !== "GREEN") {04 console.log(health.status, health.canSendMessage);05 for (const issue of health.issues) console.log(issue.level, issue.description, issue.solution);06}07if (health.webhookSubscribed === false) console.log("Meta no está enviando los mensajes entrantes de este número");
| Campo | Descripción |
|---|---|
level | GREEN, YELLOW o RED (resumen de todo lo demás). |
canSendMessage | AVAILABLE, LIMITED o BLOCKED. |
qualityRating | Calidad del número según Meta: GREEN, YELLOW, RED. |
messagingLimit | Conversaciones que puede iniciar por día (TIER_250, TIER_1K…). |
nameStatus | Estado del nombre visible (APPROVED, PENDING_REVIEW…). |
numberStatus | CONNECTED, FLAGGED, RESTRICTED, BANNED… |
webhookSubscribed | false si la app no está suscrita al WABA (no llegan mensajes). null si no se pudo comprobar. |
issues | Problemas de Meta: { entityType, level, code, description, solution }. |
raw | Respuesta completa del API. |
Nombre de usuario (@usuario)
01const { username, status } = await plazbot.numbers.getUsername();02const suggestions = await plazbot.numbers.getUsernameSuggestions();03await plazbot.numbers.claimUsername("mitienda");