Bird vs 360dialog
Bird vs 360dialog pour WhatsApp
360dialog est un fournisseur exclusivement WhatsApp, et c'est la comparaison où cette spécialisation se remarque. Ils transmettent le payload de Meta tel quel, publient leurs tarifs et exploitent leur propre serveur MCP hébergé. Bird est une plateforme où WhatsApp est un canal parmi d'autres, et un agent peut envoyer dessus.
Ce que 360dialog fait très bien.
Ce qui différencie Bird.
Ce que 360dialog fait très bien
Le payload de Meta, inchangé. Leur corps d'envoi reprend la structure de message Cloud API : messaging_product, recipient_type, to, type et l'objet correspondant. Une équipe disposant déjà de code Cloud API change l'hôte et l'en-tête d'authentification et conserve le payload — c'est le chemin de migration le plus court dans cette comparaison, et Bird ne peut pas l'offrir.
Une grille tarifaire publiée, en libre-service. Chaque palier est un montant mensuel par numéro WhatsApp, avec les frais de conversation Meta facturés séparément, et les paliers partenaires publient aussi leurs frais de plateforme et par canal. Vous pouvez chiffrer un déploiement depuis le site web sans parler à qui que ce soit.
WhatsApp, c'est toute l'entreprise. Pas d'e-mail, pas de SMS, pas de voix, et une page de statut qui sépare leurs propres composants de ceux de Meta. Si WhatsApp est votre seul canal et que vous voulez un fournisseur dont la feuille de route ne peut pas être détournée ailleurs, cette spécialisation est l'argument — et c'est un vrai argument.
Ce qui différencie Bird
Un agent capable d'envoyer le message. Les deux exploitent un serveur MCP hébergé, et voici la différence : les outils de 360dialog gèrent les templates, les profils et les webhooks, et leur documentation décrit la composition d'un exemple de corps JSON pour l'envoi via leur Messaging API. Les 43 outils WhatsApp de Bird incluent l'envoi lui-même et l'enregistrement de numéro.
Un réessai qui ne peut pas envoyer en double. Un en-tête Idempotency-Key sur l'envoi sécurise la répétition. Leur documentation sur les messages ne mentionne aucune clé ni en-tête d'idempotence, et sur WhatsApp un doublon ouvre une seconde conversation facturable au lieu de simplement se répéter.
Un SDK typé plutôt que l'enveloppe de Meta. Transmettre la structure Cloud API revient à hériter de son ergonomie : messaging_product sur chaque requête, et le type de contenu répété à la fois dans type et dans l'objet adjacent. L'envoi avec Bird est un seul appel typé dont le corps nomme directement le contenu, en TypeScript, Python, Go ou PHP.
La matrice
Fonctionnalité par fonctionnalité.
Les deux sont des BSP Meta et les deux exploitent un serveur MCP hébergé, ce qui en fait la comparaison la plus serrée de la série sur l'axe où Bird l'emporte habituellement. Lisez la ligne agent en regard des pages Twilio et Infobip : Bird l'emporte là-bas pour d'autres raisons, et ici tout repose sur un point — l'agent peut-il envoyer.
| Capability | Bird | 360dialog | Who wins? |
|---|---|---|---|
| Requête d'envoi | JSON vers /v1/whatsapp/messages sur votre hôte régional avec une clé API bearer, et le corps nomme directement le type de contenu. | JSON vers un endpoint messages sur leur hôte WABA avec un en-tête D360-API-KEY. Le corps reprend la structure Cloud API de Meta : messaging_product, recipient_type, to, type et l'objet correspondant. | |
| Réessais sécurisés | Un en-tête Idempotency-Key sur l'envoi sécurise le réessai. | Leur documentation sur les messages ne mentionne aucune clé ni en-tête d'idempotence, un réessai après un timeout peut donc envoyer deux fois. | |
| Ce qu'un agent peut faire | 43 outils WhatsApp sur le serveur hébergé à mcp.bird.com, incluant l'envoi lui-même, le cycle de vie des templates jusqu'à la soumission à Meta, l'enregistrement et le profil du numéro, et les statistiques. | Un serveur hébergé à mcp.360dialog.com/mcp dont les outils créent, prévisualisent, listent et suppriment des templates, définissent le nom d'affichage et le profil d'un canal, configurent les webhooks, et consultent les comptes, canaux, soldes et factures. Leur documentation décrit la production d'un exemple de corps JSON pour l'envoi via leur Messaging API. | |
| Comportement d'un outil protégé | Un outil que votre autorisation ne permet pas d'appeler reste listé et est annoté avec le scope requis, et un refus répond par une élévation OAuth. Le masquer avait été essayé puis abandonné : cela rendait un scope manquant indiscernable d'une fonctionnalité manquante, et les agents tiraient la seconde conclusion. | Les scopes sont choisis au moment de l'autorisation et en refuser un masque les outils correspondants, de sorte qu'un agent ne voit jamais un outil qu'il ne peut pas appeler. | |
| Types de contenu | Un seul corps d'envoi sélectionne texte, template, image, vidéo, audio, sticker, document, localisation, interactif ou cartes de contact. | Un seul endpoint d'envoi prend en charge la liste complète des types Meta : text, image, audio, video, document, sticker, location, contacts, interactive, template et reaction. | |
| SDK typés | SDK typés pour TypeScript, Python, Go et PHP, générés à partir de l'API. | Aucun SDK officiel par langage n'apparaît dans leur index de documentation. Le payload étant celui de Meta, un client Cloud API existant fonctionne avec leur hôte. | |
| Canaux au-delà de WhatsApp | SMS, e-mail, voix, Verify et Realtime partagent la même URL de base et la même clé, un second canal est donc un autre endpoint plutôt qu'un autre fournisseur. | WhatsApp est le produit. RCS est accessible sur invitation plutôt qu'en libre-service, et il n'y a ni e-mail, ni SMS, ni voix. | |
| Tarifs publiés | Les tarifs sont publiés par pays sur la page de tarification WhatsApp. | Chaque palier est publié sous forme de montant mensuel par numéro, les frais de conversation Meta étant facturés séparément et sans majoration. |
Le même message
Envoi d'un template WhatsApp.
La requête de 360dialog est celle de Meta, et c'est précisément l'intérêt : si vous envoyez déjà via la Cloud API, seuls l'hôte et l'en-tête d'authentification changent. Celle de Bird est un appel typé où le type de contenu est le nom du champ plutôt qu'une valeur répétée à côté de son objet, et elle accepte 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);
Coût de migration
Modéré.
L'envoi est une véritable réécriture plutôt qu'un simple renommage, car vous quittez l'enveloppe Meta. messaging_product et recipient_type disparaissent, le type de contenu cesse d'être une valeur répétée à côté de son objet pour devenir le champ lui-même, et l'en-tête D360-API-KEY devient une clé bearer. En contrepartie, l'appel devient typé et un retry devient sûr.
Le facteur de planification relève de Meta et non de l'un ou l'autre fournisseur. Les templates sont approuvés en fonction du WhatsApp Business Account auquel ils sont rattachés : changer de fournisseur implique de les soumettre à nouveau et d'attendre. Bird prend en charge la rédaction, le versionnage par langue et la soumission via l'API et comme outils d'agent, ce qui rend la resoumission scriptable plutôt que ressaisie manuellement.
Les questions que les gens posent vraiment
Bird est-il une bonne alternative à 360dialog ?
Les deux ont un serveur MCP. Quelle est la vraie différence ?
Lequel gère mieux une permission manquante ?
Est-ce que je perds quelque chose en quittant la structure de payload Meta ?
Et maintenant
Le guide d'envoi est celui par lequel commencer : il couvre l'appel d'envoi et les règles de fenêtre.