Bird vs 360dialog
Bird vs 360dialog para WhatsApp
360dialog es un proveedor exclusivo de WhatsApp y esta es la comparación donde ese enfoque se nota. Pasan el payload propio de Meta tal cual, publican sus precios y ejecutan su propio servidor MCP alojado. Bird es una plataforma donde WhatsApp es uno de varios canales, y un agente puede enviar por él.
En qué destaca 360dialog.
En qué se diferencia Bird.
En qué destaca 360dialog
El payload de Meta, sin cambios. Su cuerpo de envío es la estructura de mensaje de la Cloud API: messaging_product, recipient_type, to, type y el objeto del tipo correspondiente. Un equipo que ya tiene código de la Cloud API cambia el host y el encabezado de autenticación y conserva el payload, lo cual es la migración más corta en esta comparación y algo que Bird no puede ofrecer.
Una lista de precios publicada, autoservicio. Cada nivel es una tarifa mensual por número de WhatsApp con las tarifas de conversación de Meta pasadas por separado, y los niveles de partner también publican sus tarifas de plataforma y por canal. Puedes calcular el coste de un despliegue desde el sitio web sin hablar con nadie.
WhatsApp es toda la empresa. Sin email, sin SMS, sin voz, y una página de estado que separa sus propios componentes de los de Meta. Si WhatsApp es tu único canal y quieres un proveedor cuya hoja de ruta no pueda desviarse a otro lado, ese enfoque es el argumento, y es uno real.
En qué se diferencia Bird
Un agente que puede enviar el mensaje. Ambos ejecutan un servidor MCP alojado, y esta es la diferencia entre ellos: las herramientas de 360dialog gestionan plantillas, perfiles y webhooks, y su documentación describe cómo compone un cuerpo JSON de ejemplo para enviar a través de su Messaging API. Las 43 herramientas de WhatsApp de Bird incluyen el envío en sí y el registro de números.
Un reintento que no puede enviar dos veces. Un encabezado Idempotency-Key en el envío hace que la repetición sea segura. Su documentación de mensajes no menciona ninguna clave ni encabezado de idempotencia, y en WhatsApp un duplicado abre una segunda conversación facturable en lugar de simplemente repetirse.
Un SDK tipado en lugar del sobre de Meta. Pasar la estructura de la Cloud API tal cual significa heredar su ergonomía: messaging_product en cada solicitud, y el tipo de contenido repetido tanto en type como en el objeto junto a él. El envío de Bird es una llamada tipada cuyo cuerpo nombra el contenido directamente, en TypeScript, Python, Go o PHP.
La matriz
Capacidad por capacidad.
Ambos son BSP de Meta y ambos ejecutan un servidor MCP alojado, lo que hace de esta la comparación más reñida de la serie en el eje donde Bird suele ganar. Lee la fila del agente junto a las páginas de Twilio e Infobip: allí Bird gana por razones diferentes, y aquí todo depende de una cosa: si el agente puede enviar.
| Capability | Bird | 360dialog | Who wins? |
|---|---|---|---|
| Solicitud de envío | JSON a /v1/whatsapp/messages en tu host regional con una API key bearer, y el cuerpo nombra el tipo de contenido directamente. | JSON a un endpoint de mensajes en su host WABA con un encabezado D360-API-KEY. El cuerpo es la estructura de la Cloud API de Meta: messaging_product, recipient_type, to, type y el objeto correspondiente. | |
| Reintentos seguros | Un encabezado Idempotency-Key en el envío hace que el reintento sea seguro. | Su documentación de mensajes no menciona ninguna clave ni encabezado de idempotencia, por lo que un reintento tras un timeout puede enviar dos veces. | |
| Qué puede hacer un agente | 43 herramientas de WhatsApp en el servidor alojado en mcp.bird.com, incluido el envío en sí, el ciclo de vida de plantillas hasta el envío a Meta, registro y perfil de números, y estadísticas. | Un servidor alojado en mcp.360dialog.com/mcp cuyas herramientas crean, previsualizar, listan y eliminan plantillas, establecen el nombre para mostrar y el perfil de un canal, configuran webhooks y consultan cuentas, canales, saldo y facturas. Su documentación describe cómo produce un cuerpo JSON de ejemplo para enviar a través de su Messaging API. | |
| Cómo se comporta una herramienta restringida | Una herramienta que tu concesión no puede llamar permanece listada y está anotada con el alcance que necesita, y una denegación responde con un paso de elevación OAuth. Ocultarla se probó y se eliminó: hacía que un alcance faltante fuera indistinguible de una capacidad faltante, y los agentes sacaban la segunda conclusión. | Los alcances se eligen en el momento de la autorización y denegar uno oculta las herramientas correspondientes, de modo que un agente nunca ve una herramienta que no puede llamar. | |
| Tipos de contenido | Un único cuerpo de envío selecciona texto, plantilla, imagen, vídeo, audio, sticker, documento, ubicación, interactivo o tarjetas de contacto. | Un único endpoint de envío admite la lista completa de tipos de Meta: text, image, audio, video, document, sticker, location, contacts, interactive, template y reaction. | |
| SDK tipados | SDK tipados para TypeScript, Python, Go y PHP, generados a partir de la API. | No aparecen SDK oficiales de lenguaje en su índice de documentación. Como el payload es el de Meta, un cliente existente de la Cloud API funciona contra su host. | |
| Canales más allá de WhatsApp | SMS, email, voz, Verify y Realtime están bajo la misma URL base y clave, así que un segundo canal es otro endpoint en lugar de otro proveedor. | WhatsApp es el producto. RCS está restringido por contacto en lugar de ser autoservicio, y no hay email, SMS ni voz. | |
| Precios publicados | Las tarifas se publican por país en la página de precios de WhatsApp. | Cada nivel se publica como una cifra mensual por número, con las tarifas de conversación de Meta transferidas por separado y sin margen adicional sobre ellas. |
El mismo mensaje
Enviar una plantilla de WhatsApp.
La solicitud de 360dialog es la de Meta, que es exactamente su propósito: si ya envías a través de la Cloud API, solo cambian el host y el encabezado de autenticación. La de Bird es una llamada tipada donde el tipo de contenido es el nombre del campo en lugar de un valor repetido junto a su objeto, y acepta un Idempotency-Key.
360dialog
const orderId = "ord_8f21";
const response = await fetch("https://waba-v2.360dialog.io/messages", {
method: "POST",
headers: {
"D360-API-KEY": process.env.D360_API_KEY!,
"Content-Type": "application/json",
},
body: JSON.stringify({
messaging_product: "whatsapp",
recipient_type: "individual",
to: "15551234567",
type: "template",
template: {
name: "order_shipped",
language: { code: "en_US" },
components: [
{ type: "body", parameters: [{ type: "text", text: orderId }] },
],
},
}),
});
const result = await response.json();
console.log(result.messages[0].id);
Bird
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const orderId = "ord_8f21";
const { data, error } = await bird.whatsapp
.send(
{
from: "+13124495648",
to: "+15551234567",
template: {
slug: "order_shipped",
language: "en_US",
components: [{ type: "body", parameters: [{ type: "text", text: orderId }] }],
},
},
{ idempotencyKey: orderId },
)
.safe();
if (error) console.error(error.message);
else console.log(data.id, data.status);
Coste de migración
Moderado.
El envío es una reescritura real en lugar de un renombramiento, porque estás dejando el sobre de Meta. messaging_product y recipient_type desaparecen, el tipo de contenido deja de ser un valor repetido junto a su objeto y pasa a ser el campo en sí, y el encabezado D360-API-KEY se convierte en una clave bearer. A cambio, la llamada se vuelve tipada y un reintento se vuelve seguro.
El factor de programación es Meta, no ninguno de los dos proveedores. Las plantillas se aprueban contra la cuenta de WhatsApp Business en la que residen, así que cambiar de proveedor implica enviarlas de nuevo y esperar. Bird se encarga de la creación, el versionado por idioma y el envío a través de la API y como herramientas de agente, lo que hace que el reenvío sea scriptable en lugar de reescrito manualmente.
Preguntas que la gente realmente hace
¿Es Bird una buena alternativa a 360dialog?
Ambos tienen un servidor MCP. ¿Cuál es la diferencia real?
¿Cuál gestiona mejor un permiso faltante?
¿Pierdo algo al abandonar la estructura de payload de Meta?
Próximos pasos
La guía de envío es la mejor para empezar: cubre la llamada de envío y las reglas de ventana.