Canales
Ocho canales.Una misma petición.
El cuerpo que envías a /v1/messages no cambia cuando cambia el canal. Lo que cambia es qué puede llevar ese canal, qué necesita antes de poder enviar y quién te lo cobra.
El campo channel acepta cualquiera de estos, más auto. Omítelo y Zavu resuelve uno a partir del destinatario y de lo que el sender realmente tiene conectado.
Capacidades
Elige un tipo de mensaje. Los canales responden.
Casi todos los tipos ricos tienen exactamente una casa. Saber cuál antes de diseñar un flujo con botones sale más barato que enterarse por un 400.
messageType
Lo lleva
SMS
sms
Este no
One-way SMS
sms_oneway
Este no
Voice
voice
Este no
Este no
Telegram
telegram
Este no
Este no
Messenger
messenger
Este no
Estos son los valores de messageType. Elijas el que elijas, los nombres de los campos no cambian — solo el canal que termina llevándolo.
Enrutamiento
¿Por dónde sale este?
Escribe un destinatario y mira las mismas decisiones que toma el handler, en el mismo orden, con la que lo resolvió señalada.
messageType
channel
Por dónde puede enviar el sender
Cámbialos. El enrutamiento solo elige algo que el sender realmente tiene conectado.
Canal resuelto
"channel": "whatsapp"
Cómo llegó ahí
- 01to es un teléfono en E.164, así que los candidatos son WhatsApp, SMS, SMS de una vía y voz.
- 02No se nombró nada, así que el orden es WhatsApp, Instagram, Messenger, Telegram, SMS, SMS de una vía, email.
- 03La voz no está en esa lista. Solo se usa cuando la pides.
- 04El primero por el que este sender puede alcanzar a ese destinatario: whatsapp.
autowhatsapp
La ventana de 24 horas
WhatsApp tiene una regla que conviene aprender primero
Un mensaje libre de WhatsApp solo se acepta mientras el último mensaje entrante del contacto tenga menos de 24 horas. Pruébalo y mira qué vuelve.
El contacto nunca te escribió, así que no hay ventana en la que estar.
Lo que respondió la API
- —
La llamada
Mismo cuerpo, distinto destino
to y channel son los únicos campos que se mueven entre estos. Todo lo demás es la misma petición.
import Zavudev from "@zavudev/sdk";
const zavu = new Zavudev();
const { message } = await zavu.messages.send({
to: "+56912345678",
text: "Your order shipped.",
});
// channel: "auto" is the default. The sender's own channels decide
// which one this leaves on.
console.log(message.channel, message.status);El registro
Qué lleva cada uno y qué necesita antes
Un canal no es una casilla. Cada uno tiene una forma de mensaje que puede renderizar y una configuración sin la cual no envía.
Lleva
Texto, media, documentos, stickers, botones, listas, botones CTA con URL, solicitudes de ubicación y de contacto, reacciones y plantillas aprobadas.
Necesita antes
Una cuenta de WhatsApp Business conectada al sender. Las respuestas libres además necesitan una ventana de 24 horas abierta; las plantillas no.
SMS
sms
Lleva
Texto plano, y plantillas reducidas a texto.
Necesita antes
Un número de teléfono asignado al sender. El número por sí solo no enciende SMS.
One-way SMS
sms_oneway
Lleva
Texto plano. El destinatario no puede responder.
Necesita antes
Nada. Sin número, sin credencial — el camino más rápido a un sender que puede enviar.
Voice
voice
Lleva
Texto leído en voz alta, o un agente de voz que sostiene la conversación.
Necesita antes
Un número de teléfono y el canal de voz encendido. El enrutamiento nunca elige voz por su cuenta; hay que pedirla. El idioma sigue al país del destinatario salvo que fijes voiceLanguage.
Lleva
Asunto, texto plano y HTML, hasta 50 adjuntos e imágenes embebidas por content id.
Necesita antes
Un dominio verificado y una dirección de origen en el sender. Cada destinatario se valida antes de despachar, para que un rebote seguro no llegue a salir.
Telegram
telegram
Lleva
Texto, media y elementos interactivos. Sin plantillas que esperar a que aprueben.
Necesita antes
Un bot token en el sender. Los destinatarios son chat ids numéricos, así que hay que nombrar el canal.
Lleva
Texto a una bandeja de Instagram.
Necesita antes
Una cuenta de Instagram Business conectada. Tiene su propia ventana: 24 horas de respuestas libres, luego solo un agente humano, hasta siete días.
Messenger
messenger
Lleva
Texto a la bandeja de una página de Facebook, conversaciones de Marketplace incluidas.
Necesita antes
Una página de Facebook conectada. Los destinatarios son chat ids numéricos.
Un sender declara por qué canales puede enviar ahora mismo en su arreglo channels. Lee eso, en vez de deducir la capacidad de un número de teléfono o un email guardados en el registro.
Cuánto cuesta
Quién te cobra, y por qué
Dos de estos son nuestros. Los otros dos se pasan a costo, así que puedes verificarlos tú mismo.
WhatsApp · Telegram · Instagram · Messenger
2.000 al mes, gratis
Compartidos entre los cuatro en el plan gratis. Los planes pagos no tienen topes de mensajes, y Zavu no cobra nada por mensaje en ninguno de ellos.
Conversaciones de WhatsApp
Tarifas de Meta, a costo
Meta cobra plantillas y conversaciones por país y categoría, directo a tu cuenta de WhatsApp Business. Nosotros no agregamos margen.
SMS · Voz
Por envío
Se cobra de tu balance prepago en todos los planes, a tarifas publicadas por destino.
$0,40 por 1.000
Transaccional. El de marketing es $0,80 por 1.000. Se cobra del balance en bloques de 1.000 mensajes.
Los equipos gratis empiezan con $2 de crédito. Pasada la cuota gratis, un envío devuelve 429 con a2p_limit_exceeded; con balance en cero, un email devuelve 402 con insufficient_balance.
Elige un canal, o deja que el enrutamiento elija.
Empieza gratis, sin tarjeta. Enciende el resto cuando quieras, sin tocar el código que ya escribiste.