Bird vs 360dialog

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.

CapabilityBird360dialogWho wins?
Richiesta di invioJSON 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.
360dialog
Retry sicuriUn 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 agente43 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 limitatoUno 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.
360dialog
Tipi di contenutoUn 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.
360dialog
SDK tipizzatiSDK 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 WhatsAppSMS, 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 pubblicatiLe 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.
360dialog

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

360dialog

whatsapp.ts
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

whatsapp.ts
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?
Se WhatsApp è il vostro unico canale e avete già codice per la Meta Cloud API, 360dialog è difficile da battere in termini di effort: il payload non cambia e i prezzi sono pubblicati. Bird è la scelta migliore se volete un invio sicuro in caso di retry, un SDK tipizzato, un agente che può inviare il messaggio anziché comporre la richiesta, o un secondo canale in futuro senza un secondo fornitore.
Entrambi hanno un server MCP. Qual è la differenza concreta?
L'ambito. Il server di 360dialog gestisce l'account: crea, visualizza in anteprima, elenca ed elimina template, imposta nomi visualizzati e profili, configura webhook e legge account, canali e fatture. Quello che la loro documentazione descrive per un invio è la composizione di un body JSON di esempio da inviare tramite la loro Messaging API. I 43 strumenti WhatsApp di Bird includono l'invio stesso e la registrazione del numero, così un agente può portare un messaggio fino alla consegna.
Quale gestisce meglio un permesso mancante?
Fanno scelte opposte ed entrambe sono difendibili. 360dialog nasconde uno strumento il cui ambito è stato rifiutato, così un agente non può essere indotto a tentare qualcosa che non vede — una posizione più forte contro la prompt injection. Bird lo mantiene elencato, annota l'ambito necessario e risponde a un rifiuto con uno step-up OAuth, perché nasconderlo è stato provato e rendeva un ambito mancante indistinguibile da una capacità mancante, e gli agenti concludevano la seconda. Scegliete il rischio che preferite gestire.
Perdo qualcosa abbandonando la struttura del payload di Meta?
La portabilità, e vale la pena nominarla. Un payload Cloud API funziona direttamente con Meta e con qualsiasi provider che lo inoltra, quindi mantenere quella struttura lascia una porta aperta. L'invio di Bird ha una propria struttura tipizzata, più facile da scrivere e leggere ma non portabile su un altro BSP senza modifiche. Se la portabilità tra provider è il requisito, questo è un argomento a favore di 360dialog, non contro di loro.

Inizia con un canale.
Aggiungi gli altri quando sei pronto.

Una chiave API di test è subito tua. La produzione si sblocca quando aggiungi un metodo di pagamento e verifichi un mittente.

Usi Claude Code, Cursor o Codex? Copia un prompt di configurazione e il tuo agente installerà la CLI e le skill di Bird per te. Scegli il tuo:

Cursor