Dostarczaj powiadomienia o zamówieniach, przypomnienia i powiadomienia przez SMS.
Docieraj do klientów na ich telefonach z informacjami o wysyłce, przypomnieniami o rezerwacjach i alertami dotyczącymi konta, wysyłanymi z zarejestrowanego numeru telefonu lub nadawcy z nazwą marki. Bird zwraca kodowanie znaków i liczbę segmentów po przyjęciu wiadomości, zapobiega zduplikowanym SMS-om, gdy aplikacja ponawia żądanie po przekroczeniu limitu czasu, i przesyła aktualizacje doręczeń od operatorów do Twojego webhooka.
Twoje zamówienie nr 4821 jest gotowe do odbioru.
Wiadomość
Szczegóły
Doręczenie to potwierdzenie od operatora. Nie oznacza, że ktoś przeczytał wiadomość.
Twoje zamówienie nr 4821 jest gotowe do odbioru.
Wiadomość
Szczegóły
Doręczenie to potwierdzenie od operatora. Nie oznacza, że ktoś przeczytał wiadomość.
Twoje zamówienie nr 4821 jest gotowe do odbioru.
Wiadomość
Szczegóły
Doręczenie to potwierdzenie od operatora. Nie oznacza, że ktoś przeczytał wiadomość.
Wyślij pierwszą wiadomość w kilka minut.
Testuj bezpiecznie, zanim napiszesz do prawdziwych klientów.
Dzięki Bird SMS API jedno wywołanie z Twojego backendu wysyła potwierdzenie zamówienia, informację o dostawie lub alert o wizycie. Zanim napiszesz do prawdziwych klientów, kieruj testowe wysyłki z aktywnego nadawcy w USA na amerykański numer testowy +15005550006. Sprawdzisz w ten sposób integrację i obsługę webhooków bez doręczania wiadomości na prawdziwy telefon.
// Install the SDK
// npm install @messagebird/sdk
const msg = await bird.sms.send({
from: "+15557654321",
to: "+14155550100",
text: "Your verification code is 123456.",
category: "authentication",
});
console.log(msg.id, msg.status);Musisz zweryfikować użytkownika przy logowaniu lub płatności? Zamiast samodzielnie generować i przechowywać jednorazowe kody weryfikacyjne, użyj Bird Verify, aby automatycznie wydawać, unieważniać po czasie i sprawdzać kody weryfikacyjne.
Zachowaj przewidywalne doręczanie SMS na produkcji.
Unikaj nieoczekiwanych opłat za segmenty, zduplikowanych wiadomości przy ponownych próbach po błędach sieci i niezauważonych błędów po stronie operatorów.
- 01
Liczba segmentów od razu w odpowiedzi.
Każda przyjęta wysyłka zwraca zastosowane kodowanie znaków i liczbę segmentów, a wersję roboczą treści możesz sprawdzić w kalkulatorze segmentów przed wdrożeniem nowego szablonu.
- 02
Obsługuj GSM-7 i Unicode bez zgadywania.
Standardowa wiadomość GSM-7 mieści 160 znaków w jednym segmencie, a wiadomości z emoji lub znakami spoza alfabetu łacińskiego automatycznie przechodzą na Unicode z 70 jednostkami. Dłuższe wiadomości są poprawnie dzielone i składane w jedną wiadomość na telefonie klienta.
- 03
Wysyłaj do 100 spersonalizowanych wiadomości w jednym wywołaniu.
Wyślij kolejkę przypomnień o wizytach lub alertów o zmianach grafiku w jednym żądaniu zbiorczym. Bird najpierw waliduje całą partię, więc błędne dane wejściowe są odrzucane od razu, a następnie śledzi doręczenie przez operatora osobno dla każdego odbiorcy.
- 04
Ponawiaj żądania po przekroczeniu limitu czasu bez podwójnych wiadomości.
Dołącz klucz idempotencji, gdy Twój worker wysyła wiadomość. Jeśli przekroczenie limitu czasu sieci wywoła ponowną próbę z tym samym kluczem i ładunkiem, Bird zwróci pierwotną odpowiedź zamiast kolejkować zduplikowaną wiadomość.
- 05
Wiedz, kiedy operator doręcza lub odrzuca wiadomość.
Otrzymuj podpisane webhooki, gdy wiadomość przechodzi ze stanu przyjętej do wysłanej, doręczonej lub nieudanej. Dzięki temu aplikacja może zaktualizować status zamówienia lub przełączyć się na inny kanał, gdy numer jest nieosiągalny.
Przejdź z Twilio, zmieniając kilka linii kodu.
Przenieś istniejące numery nadawców, pola odbiorców i obsługę webhooków do Bird bez przebudowy usługi powiadomień. Zsynchronizuj listę rezygnacji i sprawdź doręczanie na numerze testowym, zanim przeniesiesz ruch produkcyjny.
import twilio from "twilio";
const client = twilio(accountSid, authToken);
await client.messages.create({
from: "+14155550172",
to: "+15005550006",
body: "Your code is 123456.",
});import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
await bird.sms.send({
from: "+14155550172",
to: "+15005550006",
text: "Your code is 123456.",
category: "authentication",
});Wykrywaj wiadomości wielosegmentowe, zanim podniosą Twój rachunek.
Jeden typograficzny cudzysłów, emoji lub znak diakrytyczny w imieniu klienta może przełączyć wiadomość z kodowania GSM-7 ze 160 znakami na Unicode z 70 jednostkami i podzielić jedną wiadomość na kilka płatnych segmentów. Bird zwraca liczbę znaków, kodowanie i łączną liczbę segmentów w odpowiedzi na wysyłkę, więc Twój zespół wcześnie wychwyci kosztowne szablony.
const { data, error } = await bird.sms.send({
from: "Bird",
to: "+31612345678",
text: "Your code is 123456.",
category: "authentication",
}).safe();
if (error) throw error;
console.log(data.segments);
// → { characters: 20, count: 1, encoding: "GSM_7BIT" }
Wysyłaj do 100 spersonalizowanych przypomnień w jednym żądaniu.
Gdy zaplanowane zadanie wysyła jutrzejsze przypomnienia o wizytach lub informacje o oknie dostawy, połącz do 100 wiadomości w jednym wywołaniu API zamiast wysyłać pojedyncze żądania w pętli. Każdy odbiorca dostaje własną spersonalizowaną wiadomość i osobny status doręczenia, a wstępna walidacja wychwytuje błędne dane wejściowe przed dodaniem partii do kolejki.
const { data: batch, error } = await bird.sms
.sendBatch(
users.map((u) => ({
from: "Bird",
to: u.phone,
text: `Hi ${u.name}, your appointment is tomorrow at ${u.time}.`,
})),
)
.safe();
if (error) throw error;
console.log(`queued ${batch.data.length} messages`);Śledź doręczenia przez operatorów i obsługuj nieudane wiadomości w czasie rzeczywistym.
Przekazanie wiadomości operatorowi odbywa się asynchronicznie po udanym wywołaniu wysyłki, dlatego Bird wysyła podpisane zdarzenia webhooka w miarę postępu wiadomości. Zaktualizuj bazę danych, gdy wiadomość dotrze na telefon, albo uruchom zapasowy e-mail i oznacz nieprawidłowe numery, gdy doręczenie się nie powiedzie.
import { bird } from "@/lib/bird";
export async function POST(req: Request) {
const event = bird.webhooks.unwrap(
await req.text(),
Object.fromEntries(req.headers),
);
switch (event.type) {
case "sms.delivered":
await markDelivered(event.data.sms_id);
break;
case "sms.failed":
await flag(event.data.to, event.data.error?.description);
break;
}
return new Response(null, { status: 204 });
}Każde zdarzenie błędu zawiera konkretną przyczynę, więc odróżnisz chwilowe problemy z telefonem od nieprawidłowych numerów. Odpowiedzi z rezygnacją, takie jak STOP, automatycznie obejmują suppresją przyszłe wysyłki marketingowe, a zwykłe błędy doręczenia nie zmieniają zgody odbiorcy.
sms.acceptedBird przyjął Twoje żądanie i dodał wiadomość do kolejki routingu do operatora.sms.sentBird przekazał wiadomość docelowemu operatorowi komórkowemu.sms.deliveredDocelowy operator potwierdził doręczenie na telefon odbiorcy.sms.failedNie udało się doręczyć wiadomości. Zdarzenie zawiera przyczynę błędu, więc aplikacja może powiadomić wsparcie lub spróbować innego kanału.
Dowiedz się więcej z przewodników dla deweloperów.
Weryfikuj podpisane webhooki, chroń workery wysyłające przed zduplikowanymi wiadomościami dzięki kluczom idempotencji i korzystaj z dokumentacji błędów, aby automatycznie obsługiwać nieprawidłowe numery lub wyłączone kierunki.
Pytania przed rozpoczęciem budowy
Czy sam wybieram nadawcę?
Jak ponowne próby unikają duplikatu wiadomości?
Czy zaakceptowane oznacza doręczone?
Czy batch to to samo co broadcast?
Reszta platformy SMS
Konfiguruj numery nadawców, odbieraj odpowiedzi klientów i monitoruj doręczenia przez operatorów w tym samym obszarze roboczym.
Skaluj bez
utraty kontroli.
Organizuj zespoły w obszarach roboczych, kontroluj dostęp do API i śledź zmiany w logach audytu.
Organizacja
Harbor
Dostęp pozostaje w swoim obszarze roboczym.
Produkcja/Klucze API
Kurier
AktywnaAlex Lee
Admin
Dziś · UTC
Dziennik audytu
Organizacja
Harbor
Dostęp pozostaje w swoim obszarze roboczym.
Produkcja/Klucze API
Kurier
AktywnaAlex Lee
Admin
Dziś · UTC
Dziennik audytu
Organizacja
Harbor
Dostęp pozostaje w swoim obszarze roboczym.
Produkcja/Klucze API
Kurier
AktywnaAlex Lee
Admin
Dziś · UTC
Dziennik audytu