Bird vs 360dialog
Bird vs 360dialog per WhatsApp
360dialog è un provider esclusivamente WhatsApp, e questo è il confronto in cui quella focalizzazione si nota. Passano il payload di Meta così com'è, pubblicano i loro prezzi e gestiscono un proprio server MCP ospitato. Bird è una piattaforma in cui WhatsApp è uno dei tanti canali, e un agente può inviare messaggi su di esso.
In cosa 360dialog eccelle.
In cosa Bird è diverso.
In cosa 360dialog eccelle
Il payload di Meta, invariato. Il body di invio corrisponde alla struttura dei messaggi Cloud API: messaging_product, recipient_type, to, type e l'oggetto corrispondente al tipo. Un team che ha già codice Cloud API cambia l'host e l'header di autenticazione e mantiene il payload: è il percorso di migrazione più breve in questo confronto, e Bird non può offrirlo.
Un listino prezzi pubblico, self-service. Ogni livello è un importo mensile per numero WhatsApp con le tariffe di conversazione Meta addebitate separatamente, e i livelli partner pubblicano anche le tariffe di piattaforma e per canale. È possibile calcolare il costo di un deployment dal sito web senza parlare con nessuno.
WhatsApp è l'intera azienda. Niente email, niente SMS, niente voce, e una status page che separa i propri componenti da quelli di Meta. Se WhatsApp è il vostro unico canale e volete un fornitore la cui roadmap non possa essere deviata altrove, quella focalizzazione è l'argomento decisivo, ed è un argomento reale.
In cosa Bird è diverso
Un agente che può inviare il messaggio. Entrambi gestiscono un server MCP ospitato, e questa è la differenza: gli strumenti di 360dialog gestiscono template, profili e webhook, e la loro documentazione lo descrive mentre compone un body JSON di esempio per l'invio tramite la loro Messaging API. I 43 strumenti WhatsApp di Bird includono l'invio stesso e la registrazione del numero.
Un retry che non può inviare due volte. Un header Idempotency-Key sull'invio rende sicura una ripetizione. La loro documentazione sui messaggi non menziona alcuna chiave o header di idempotenza, e su WhatsApp un duplicato apre una seconda conversazione fatturabile anziché semplicemente ripetersi.
Un SDK tipizzato anziché l'involucro di Meta. Passare la struttura Cloud API significa ereditarne l'ergonomia: messaging_product su ogni richiesta, e il tipo di contenuto ripetuto sia in type che nell'oggetto accanto. L'invio di Bird è una singola chiamata tipizzata il cui body nomina direttamente il contenuto, in TypeScript, Python, Go o PHP.
La matrice
Funzionalità per funzionalità.
Entrambi sono BSP Meta ed entrambi gestiscono un server MCP ospitato, il che rende questo il confronto più serrato della serie sull'asse in cui Bird di solito vince. Leggete la riga dell'agente nelle pagine di Twilio e Infobip: lì Bird vince per motivi diversi, qui tutto si gioca su un punto: se l'agente può inviare.
| Capability | Bird | 360dialog | Who wins? |
|---|---|---|---|
| Richiesta di invio | JSON a /v1/whatsapp/messages sul vostro host regionale con una API key bearer, e il body nomina direttamente il tipo di contenuto. | JSON a un endpoint messages sul loro host WABA con un header D360-API-KEY. Il body è la struttura Cloud API di Meta: messaging_product, recipient_type, to, type e l'oggetto corrispondente. | |
| Retry sicuri | Un header Idempotency-Key sull'invio rende sicuro un retry. | La loro documentazione sui messaggi non menziona alcuna chiave o header di idempotenza, quindi un retry dopo un timeout può inviare due volte. | |
| Cosa può fare un agente | 43 strumenti WhatsApp sul server ospitato su mcp.bird.com, incluso l'invio stesso, il ciclo di vita dei template dalla sottomissione a Meta, la registrazione e il profilo del numero e le statistiche. | Un server ospitato su mcp.360dialog.com/mcp i cui strumenti creano, visualizzano in anteprima, elencano ed eliminano template, impostano il nome visualizzato e il profilo di un canale, configurano webhook e leggono account, canali, saldo e fatture. La loro documentazione lo descrive mentre produce un body JSON di esempio per l'invio tramite la loro Messaging API. | |
| Come si comporta uno strumento con accesso limitato | Uno strumento che il vostro grant non può chiamare resta elencato ed è annotato con lo scope necessario, e un rifiuto risponde con uno step-up OAuth. Nasconderlo è stato provato e rimosso: rendeva uno scope mancante indistinguibile da una funzionalità mancante, e gli agenti traevano la seconda conclusione. | Gli scope vengono scelti al momento dell'autorizzazione e negarne uno nasconde gli strumenti corrispondenti, così un agente non vede mai uno strumento che non può chiamare. | |
| Tipi di contenuto | Un unico body di invio seleziona testo, template, immagine, video, audio, sticker, documento, posizione, interattivo o schede contatto. | Un unico endpoint di invio supporta l'elenco completo dei tipi di Meta: text, image, audio, video, document, sticker, location, contacts, interactive, template e reaction. | |
| SDK tipizzati | SDK tipizzati per TypeScript, Python, Go e PHP, generati dall'API. | Nessun SDK ufficiale per linguaggio appare nel loro indice della documentazione. Poiché il payload è quello di Meta, un client Cloud API esistente funziona con il loro host. | |
| Canali oltre WhatsApp | SMS, email, voce, Verify e Realtime sono sotto lo stesso URL base e la stessa chiave, quindi un secondo canale è un altro endpoint anziché un altro fornitore. | WhatsApp è il prodotto. RCS è accessibile solo tramite contatto anziché self-service, e non ci sono email, SMS o voce. | |
| Prezzi pubblicati | Le tariffe sono pubblicate per paese nella pagina dei prezzi di WhatsApp. | Ogni livello è pubblicato come importo mensile per numero, con le tariffe di conversazione di Meta addebitate separatamente e senza ricarico. |
Lo stesso messaggio
Invio di un template WhatsApp.
La richiesta di 360dialog è quella di Meta, e questo è esattamente il punto: se inviate già tramite la Cloud API, cambiano solo l'host e l'header di autenticazione. Quella di Bird è una chiamata tipizzata in cui il content type è il nome del campo anziché un valore ripetuto accanto al suo oggetto, e accetta 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);
Costo di migrazione
Moderato.
L'invio è una vera riscrittura, non una rinominazione, perché si esce dall'envelope di Meta. messaging_product e recipient_type scompaiono, il content type smette di essere un valore ripetuto accanto al suo oggetto e diventa il campo stesso, e l'header D360-API-KEY diventa una bearer key. In cambio la chiamata diventa tipizzata e un retry diventa sicuro.
L'elemento di pianificazione riguarda Meta, non uno dei due fornitori. I template vengono approvati in base al WhatsApp Business Account a cui appartengono, quindi cambiare provider significa inviarli di nuovo e attendere. Bird gestisce la creazione, il versionamento per lingua e l'invio tramite API e come strumenti agente, rendendo la risottomissione scriptabile anziché da riscrivere manualmente.
Domande che le persone fanno davvero
Bird è una buona alternativa a 360dialog?
Entrambi hanno un server MCP. Qual è la differenza concreta?
Quale gestisce meglio un permesso mancante?
Perdo qualcosa abbandonando la struttura del payload di Meta?
Prossimi passi
La guida all'invio è quella da cui iniziare: copre la chiamata di invio e le regole sulla finestra temporale.