Bird vs Infobip
Bird vs Infobip — SMS
Żądanie wysyłki w Infobip jest zaprojektowane pod masowe kampanie — i tę strukturę płacisz przy każdej wiadomości: jeden SMS do jednej osoby i tak trafia jako tablica wiadomości, z których każda zawiera tablicę odbiorców, a treść jest zagnieżdżona dwa poziomy niżej w content.text. Bird przyjmuje from, to i text.
W liczbach
Zasięg SMS
Trasy operatorów
Szybkość dostarczania
W czym Infobip jest świetny.
Czym wyróżnia się Bird.
W czym Infobip jest świetny
Powierzchnia agenta tak dostępna jak nasza. Infobip uruchamia piętnaście zdalnych serwerów MCP przez HTTP, uwierzytelnianych kluczem API lub OAuth 2.1 z odkrywaniem zakresów. Podział na produkty utrzymuje krótką listę narzędzi każdego serwera, co naprawdę pomaga agentowi wybrać właściwe narzędzie.
Java i C#, dla których Bird nie dostarcza serwerowego SDK. Ich pięć utrzymywanych klientów API to Java, C#, PHP, Go i Python. Zespoły pracujące w Java lub .NET są tam lepiej obsłużone i komunikują się z Bird przez HTTP API.
Raportowanie dostarczenia konfigurowalne per wiadomość. Każda wiadomość wskazuje własny webhook, wybiera JSON lub XML i może dołączyć do 4000 znaków danych zwrotnych, które wracają w raporcie.
Czym wyróżnia się Bird
Typowane SDK w języku, w którym napisana jest większość webu. Bird dostarcza autorskie SDK dla TypeScript. Klient Node od Infobip znajduje się w osobnej organizacji społecznościowej, wciąż w wersji 0.3.2, ostatnio wydany w listopadzie 2023.
Ponawianie, które nie wyśle dwa razy. Nagłówek Idempotency-Key przy wysyłce sprawia, że ponowienie jest bezpieczne. Generowane klienty API Infobip nie zawierają klucza idempotentności na żadnym endpoincie.
Intencja wiadomości jako pełnoprawne pole. Każda wysyłka tekstowa zawiera kategorię: transakcyjna, marketingowa, uwierzytelnianie lub serwisowa — opcje wiadomości Infobip nie mają odpowiednika.
Macierz
Funkcja po funkcji.
To najbardziej wyrównane zestawienie w całym zbiorze. Infobip dorównuje Bird w zakresie powierzchni agenta, jednego hosta dla całego kanału, rejestracji 10DLC przez API i zdarzeń dostarczenia, a także dostarcza biblioteki klienckie w dwóch językach, których Bird nie obsługuje. Bird wygrywa bezpiecznym ponawianiem, intencją wiadomości i utrzymywanym SDK dla TypeScript. Oba odczyty są aktualne na dziś.
| Capability | Bird | Infobip | Who wins? |
|---|---|---|---|
| Żądanie wysyłki | JSON na /v1/sms/messages na Twoim regionalnym hoście, z kluczem API typu bearer. | JSON na wersjonowany endpoint wiadomości na ich hoście API, uwierzytelniany kluczem App. Payload jest zorientowany na masową wysyłkę: tablica wiadomości, z których każda zawiera tablicę odbiorców, a treść jest zagnieżdżona w content. | |
| Bezpieczne ponawianie | Nagłówek Idempotency-Key przy wysyłce sprawia, że ponowienie jest bezpieczne. | Ich generowane klienty API, zbudowane z ich własnej specyfikacji, nie zawierają klucza ani nagłówka idempotentności na żadnym endpoincie, więc ponowienie po przekroczeniu limitu czasu może wysłać wiadomość dwukrotnie. | |
| Intencja wiadomości | Każda wysyłka tekstowa zawiera kategorię: transakcyjna, marketingowa, uwierzytelnianie lub serwisowa. | Opcje wiadomości obejmują okres ważności, okno dostarczenia, flash i ustawienia regionalne — żadna z nich nie deklaruje celu. campaignReferenceId jest na tyle zbliżone, by pomylić je z intencją na liście pól, ale Infobip definiuje je jako identyfikator do śledzenia wyników kampanii. | |
| Hostowany serwer MCP | Jeden hostowany serwer na mcp.bird.com. Claude Code, Cursor, ChatGPT lub Twoje własne środowisko loguje się raz i obsługuje cały workspace tymi samymi narzędziami. | Piętnaście zdalnych serwerów przez HTTP, podzielonych per produkt, uwierzytelnianych kluczem API lub OAuth 2.1 z odkrywaniem zakresów. Aby objąć SMS, rejestrację i zarządzanie kontem, trzeba podłączyć trzy z nich — lista narzędzi każdego serwera pozostaje krótka. | |
| Rejestracja A2P 10DLC | /v1/sms/10dlc/* rejestruje marki i kampanie przez API. | Marki i kampanie rejestruje się za pośrednictwem ich API rejestracji numerów lub przez portal z przewodnikiem, z przeglądem zgodności przed wysłaniem do The Campaign Registry. | |
| Jeden host dla całego kanału | Wysyłanie, rejestracja 10DLC i zdarzenia doręczeń współdzielą bazowy URL i klucz. | Jeden spersonalizowany bazowy URL na konto obsługuje każdy produkt. Wysyłanie i rejestracja numeru to ścieżki w ramach tego adresu, a ich własny klient API nie definiuje nadpisań hosta per operacja. | |
| Zdarzenia doręczeń | Webhook workspace'u subskrybujący wskazane przez Ciebie typy zdarzeń SMS, takie jak sms.sent, sms.delivered i sms.failed, dostarczany jako JSON podpisany zgodnie ze Standard Webhooks. | Każda wiadomość wskazuje własny webhook, wybiera JSON lub XML i może dołączyć do 4000 znaków danych zwrotnych, które wracają w raporcie. Raporty można też pobierać. | |
| Języki SDK | Typowane SDK dla TypeScript, Python, Go i PHP, a także klienty Realtime dla Swift, Kotlin i przeglądarki. | Pięć utrzymywanych klientów API: Java, C#, PHP, Go i Python. Klient Node znajduje się w osobnej organizacji społecznościowej, w wersji 0.3.2, ostatnio wydany w listopadzie 2023. |
Ta sama wysyłka
Jedna wiadomość, trzy poziomy zagnieżdżenia.
Wysyłanie jednego SMS. Panel Infobip to zwykły fetch zamiast ich SDK, ponieważ pięć utrzymywanych klientów to Java, C#, PHP, Go i Python: codebase w TypeScript pisze to żądanie ręcznie. Bird zwraca typowany wynik, który można zdestrukturyzować, a category to pole bez odpowiednika w Infobip.
Infobip
const response = await fetch("https://api.infobip.com/sms/3/messages", {
method: "POST",
headers: {
Authorization: `App ${process.env.INFOBIP_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
messages: [
{
sender: "+15557654321",
destinations: [{ to: "+15551234567" }],
content: { text: "Your table is ready." },
},
],
}),
});
const { messages } = await response.json();
console.log(messages[0].messageId, messages[0].status.name);
Bird
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.sms
.send({
from: "+15557654321",
to: "+15551234567",
text: "Your table is ready.",
category: "transactional",
})
.safe();
if (error) console.error(error.message);
else console.log(data.id, data.status);
Ile kosztuje SMS w poszczególnych krajach?
Każdy kraj docelowy ma opublikowaną stawkę na stronie cennika SMS, a opłaty operatorskie i 10DLC są wyszczególnione osobno na opłatach operatorskich SMS, zamiast być wliczone w cenę. Możesz wycenić kampanię, zanim porozmawiasz z kimkolwiek.
Koszt migracji
Niski.
Pola da się przenieść po ich spłaszczeniu. sender staje się from, tablica destinations sprowadza się do pojedynczego to, a content.text staje się text. Twój webhook per wiadomość staje się webhookiem workspace'u subskrybującym sms.sent, sms.delivered i sms.failed, a callbackData znajduje swoje miejsce w metadanych Bird.
Dwa elementy to harmonogramowanie, a nie programowanie — zacznij je wcześnie, a będą realizowane równolegle ze zmianami w kodzie. Twoja marka i kampania 10DLC są zarejestrowane w The Campaign Registry przez Infobip, więc tę samą rejestrację składa się ponownie przez Bird; a numery, które tam posiadasz, są przenoszone według harmonogramu wsparcia.
Pytania, które ludzie naprawdę zadają
Czy Bird jest dobrą alternatywą dla Infobip w zakresie SMS?
Jak bardzo różni się wywołanie wysyłki?
Czy Infobip ma serwer MCP?
Czy Infobip dostarcza SDK dla Node lub TypeScript?
Co agent faktycznie może zrobić na moim koncie?
Ile kosztuje SMS Bird w poszczególnych krajach?
Co dalej
Przewodnik migracji to ten, od którego warto zacząć: mapuje API pole po polu.