Bird vs 360dialog
Bird vs 360dialog voor WhatsApp
360dialog is een WhatsApp-only provider en dit is de vergelijking waar die focus zichtbaar wordt. Ze sturen Meta's eigen payload ongewijzigd door, publiceren hun prijzen en draaien een eigen gehoste MCP-server. Bird is een platform waar WhatsApp één van meerdere kanalen is, en een agent erop kan versturen.
Waar 360dialog sterk in is.
Waarin Bird verschilt.
Waar 360dialog sterk in is
Meta's payload, ongewijzigd. Hun verzendbody is de Cloud API-berichtstructuur: messaging_product, recipient_type, to, type en het bijbehorende type-object. Een team dat al Cloud API-code heeft, wijzigt de host en de auth-header en behoudt de payload — dat is het kortste migratiepad in deze vergelijking en Bird kan dat niet bieden.
Een gepubliceerde prijslijst, self-serve. Elke tier is een maandbedrag per WhatsApp-nummer, waarbij Meta's gesprekskosten apart worden doorberekend, en de partnertiers publiceren ook hun platform- en kanaalkosten. U kunt een deployment doorrekenen vanaf de website zonder met iemand te hoeven praten.
WhatsApp is het hele bedrijf. Geen e-mail, geen SMS, geen voice, en een statuspagina die hun eigen componenten scheidt van die van Meta. Als WhatsApp uw enige kanaal is en u een leverancier wilt wiens roadmap niet elders naartoe kan worden getrokken, dan is die focus het argument — en het is een reëel argument.
Waarin Bird verschilt
Een agent die het bericht kan versturen. Beide draaien een gehoste MCP-server, en dit is het verschil: de tools van 360dialog beheren templates, profielen en webhooks, en hun documentatie beschrijft hoe het een voorbeeld-JSON-body samenstelt voor verzending via hun Messaging API. Bird's 43 WhatsApp-tools omvatten het versturen zelf én nummerregistratie.
Een herhaalpogig die niet dubbel verstuurt. Een Idempotency-Key-header op de verzending maakt een herhaling veilig. Hun berichtenreferentie documenteert geen idempotency key of header, en op WhatsApp opent een duplicaat een tweede factureerbaar gesprek in plaats van zichzelf simpelweg te herhalen.
Een getypeerde SDK in plaats van Meta's envelope. De Cloud API-structuur doorgeven betekent de ergonomie ervan overnemen: messaging_product bij elk verzoek, en het contenttype herhaald in zowel type als het object ernaast. Bird's verzending is één getypeerde aanroep waarvan de body de content direct benoemt, in TypeScript, Python, Go of PHP.
De matrix
Functie voor functie.
Beide zijn Meta BSP's en beide draaien een gehoste MCP-server, wat dit de dichtste vergelijking in de reeks maakt op de as waar Bird doorgaans wint. Lees de agent-rij naast de Twilio- en Infobip-pagina's: daar wint Bird om andere redenen, en hier draait het om één ding — of de agent kan versturen.
| Capability | Bird | 360dialog | Who wins? |
|---|---|---|---|
| Verzendverzoek | JSON naar /v1/whatsapp/messages op uw regionale host met een bearer API-key, en de body benoemt het contenttype direct. | JSON naar een messages-endpoint op hun WABA-host met een D360-API-KEY-header. De body is Meta's Cloud API-structuur: messaging_product, recipient_type, to, type en het bijbehorende object. | |
| Veilige herhaalpogingen | Een Idempotency-Key-header op de verzending maakt een herhaalpogig veilig. | Hun berichtenreferentie documenteert geen idempotency key of header, dus een herhaalpogig na een timeout kan dubbel versturen. | |
| Wat een agent kan doen | 43 WhatsApp-tools op de gehoste server op mcp.bird.com, inclusief het versturen zelf, de template-levenscyclus via indiening bij Meta, nummerregistratie en -profiel, en statistieken. | Een gehoste server op mcp.360dialog.com/mcp waarvan de tools templates aanmaken, bekijken, weergeven en verwijderen, de weergavenaam en het profiel van een kanaal instellen, webhooks configureren, en accounts, kanalen, saldo en facturen uitlezen. Hun documentatie beschrijft hoe het een voorbeeld-JSON-body produceert voor verzending via hun Messaging API. | |
| Hoe een afgeschermde tool zich gedraagt | Een tool die uw machtiging niet kan aanroepen, blijft zichtbaar en is voorzien van de benodigde scope, en een weigering antwoordt met een OAuth step-up. Verbergen is geprobeerd en teruggedraaid: het maakte een ontbrekende scope ononderscheidbaar van een ontbrekende functionaliteit, en agents trokken de tweede conclusie. | Scopes worden gekozen bij autorisatie en het weigeren van een scope verbergt de bijbehorende tools, zodat een agent nooit een tool ziet die hij niet kan aanroepen. | |
| Contenttypes | Eén verzendbody selecteert tekst, template, afbeelding, video, audio, sticker, document, locatie, interactief of contactkaarten. | Eén verzendendpoint ondersteunt Meta's volledige typelijst: text, image, audio, video, document, sticker, location, contacts, interactive, template en reaction. | |
| Getypeerde SDK's | Getypeerde SDK's voor TypeScript, Python, Go en PHP, gegenereerd vanuit de API. | Er verschijnen geen officiële taal-SDK's in hun documentatie-index. Omdat de payload die van Meta is, werkt een bestaande Cloud API-client tegen hun host. | |
| Kanalen buiten WhatsApp | SMS, e-mail, voice, Verify en Realtime vallen onder dezelfde basis-URL en key, dus een tweede kanaal is een extra endpoint in plaats van een extra leverancier. | WhatsApp is het product. RCS is contact-gated in plaats van self-serve, en er is geen e-mail, SMS of voice. | |
| Gepubliceerde prijzen | Tarieven worden per land gepubliceerd op de WhatsApp-prijspagina. | Elk tier wordt gepubliceerd als maandbedrag per nummer, waarbij Meta's gesprekskosten apart worden doorberekend zonder opslag. |
Hetzelfde bericht
Eén WhatsApp-template verzenden.
Het request van 360dialog is dat van Meta, en dat is precies het punt: als u al via de Cloud API verstuurt, veranderen alleen de host en de auth-header. Dat van Bird is een getypeerde call waarbij het contenttype de veldnaam is in plaats van een waarde die naast het object wordt herhaald, en het accepteert een 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);
Overstapkosten
Gemiddeld.
De verzendcall is een echte herschrijving in plaats van een hernoeming, omdat u Meta's envelope verlaat. messaging_product en recipient_type verdwijnen, het contenttype is niet langer een waarde die naast het object wordt herhaald maar wordt het veld zelf, en de D360-API-KEY-header wordt een bearer key. In ruil daarvoor wordt de call getypeerd en wordt een retry veilig.
Het planningsonderdeel is Meta, niet een van beide leveranciers. Templates worden goedgekeurd voor het WhatsApp Business Account waaronder ze vallen, dus overstappen van provider betekent opnieuw indienen en wachten. Bird biedt authoring, versiebeheer per taal en indiening via de API en als agent-tools, waardoor het opnieuw indienen scriptbaar wordt in plaats van opnieuw ingetypt.
Vragen die mensen daadwerkelijk stellen
Is Bird een goed alternatief voor 360dialog?
Beide hebben een MCP-server. Wat is het werkelijke verschil?
Welke gaat beter om met een ontbrekende toestemming?
Verlies ik iets door Meta's payloadstructuur los te laten?
Volgende stappen
De verzendgids is het beste startpunt: deze behandelt de verzendcall en de vensterregels.