Sign inGet started

Migracja SMS z Telnyx

Ta strona mapuje Messages API, messaging profiles i webhooki doręczeń Telnyx na Bird. Postępuj zgodnie z głównym przewodnikiem migracji i użyj tych mapowań w krokach 3, 4 i 5.
Wywołanie wysyłki jest najbliższe Bird spośród wszystkich dostawców opisanych tutaj: JSON, klucz bearer i te same nazwy pól. POST https://api.telnyx.com/v2/messages przyjmuje from, to i text, i tak samo robi POST /v1/sms/messages. Tym, co się nie przenosi, jest messaging profile. Telnyx czyni go jednostką niemal wszystkiego: puli nadawców, adresu URL webhooka, zakresu rezygnacji i konfiguracji słów kluczowych. Bird rozdziela te elementy między nadawców, subskrypcje webhooków i blokady. Większość pracy w tej migracji polega na rozplątaniu tego obiektu.

Przekaż to swojemu agentowi

Użyj tego briefu w swoim agencie kodującym. Zaczyna od rozpoznania i tworzy plan migracji do przeglądu, zanim cokolwiek zmieni się na produkcji.
Przykład kodu
Help me migrate my SMS integration from Telnyx to Bird.
1. Inspect this repository's sends, senders, callbacks, schedules, templates, opt-outs and tests. List the traffic and behavior that must survive the migration.
2. Read the Markdown guides at https://bird.com/docs/guides/sms/migrate/telnyx.md and https://bird.com/docs/guides/sms/migrate.md. Use an existing authenticated Bird MCP or CLI connection. If neither is available, follow https://bird.com/docs/ai/set-up-your-agent.md. Discover the actual operations; do not invent commands or ask me to paste credentials into chat.
3. Prepare the code changes, sender/destination requirements, consent migration, webhook verification and rollout/rollback plan. Preserve the scope of each customer's preferences, including requests outside SMS replies. Separate API batches from audience broadcasts and preserve any behavior that has no direct endpoint equivalent.
4. Show me the exact affected resources, destinations, test volume and known costs before an action that sends messages, spends money, registers or changes a sender, or moves production traffic. Require explicit human authorization for each paid submission or production change. Name one-off 10DLC registration and resubmission fees before requesting approval. An existing explicit approval for that exact action is sufficient; broad migration approval is not. Simulated SMS destinations are billable and still require authorization.
5. If I am keeping Telnyx numbers, prepare the human support port request and obtain authorization to send it. Read bird support-tickets create --help, then use the available CLI or MCP support operation with the reviewed number list and requirements. Return the ticket ID and follow the reply; support arranges the port on its own schedule, separately from the code cutover.
6. Run local and intercepted tests first. When authorized, perform the agreed bounded integration tests, inspect accepted and final outcomes separately, and report failures or uncertainty. Do not claim a delivery receipt proves reading or that request idempotency guarantees exactly-once delivery.
7. Keep production cutover and retiring the old provider as explicit steps in the approved rollout. Finish with the diff, evidence, unresolved requirements and the next action.

Zmapuj wywołanie wysyłki

Co robiTelnyxBird
Odbiorcatoto (jeden na żądanie)
Nadawcafrom lub messaging_profile_idfrom
Treśćtexttext
Intencja(brak)category, wymagane dla dowolnego tekstu
Raporty doręczeńadres URL webhooka profiluwebhook obszaru roboczego subskrybujący poniższe zdarzenia doręczeń
Kontekst obieguwłasny magazyn, z kluczem IDmetadata: dowolny JSON, zwracany przy każdym zdarzeniu
Filtrowalne etykiety(brak)tags: pary {name, value}
Bezpieczne ponawianie(brak w dokumentacji)nagłówek Idempotency-Key
Mediamedia_urlsbrak odpowiednika: media_urls jest odrzucane
Uwagi dotyczące przenoszenia:
  • ID messaging profile staje się zwykłą wartością nadawcy. Telnyx rozwiązuje pulę numerów i reguły wysyłki za pośrednictwem profilu. Bird przyjmuje samego nadawcę w from, więc wybieraj go przy każdej wysyłce albo użyj wysyłki szablonowej, która dobiera prawidłowego nadawcę dla miejsca docelowego i odrzuca from.
  • Nic w Messages API nie odpowiada category. Zdecyduj dla każdego typu wiadomości, czy jest to transactional, marketing, authentication czy service. Ruch uwierzytelniający w szczególności powinien być odpowiednio oznaczony, a nie pozostawiony w domyślnej kategorii marketingowej.
  • Przeanalizuj semantykę ponawiania osobno. Dokumentacja wysyłki Telnyx nie opisuje klucza idempotentności, więc timeout pozostawia cię bez pewności. Wysyłaj nagłówek Idempotency-Key od pierwszego przeniesienia.

Przenieś rezygnacje

To jest krok, który zaskakuje, a pierwszą liczbą do ustalenia jest to, ile blokad powstanie z twojej listy.
Telnyx przypisuje rezygnację do całego messaging profile: subskrybent, który wyśle STOP na dowolny numer w profilu, zostaje zablokowany dla każdego numeru w tym profilu, a wysyłka do niego zwraca błąd 40300, "Blocked due to STOP message". Oddzielne listy rezygnacji dla oddzielnych programów uzyskuje się przez oddzielne profile.
Bird przypisuje blokadę do pary nadawca-subskrybent. Jedna rezygnacja w Telnyx wobec profilu z dwunastoma numerami staje się dwunastoma blokadami Bird, a profil ze stu numerami daje sto blokad. Policz przed importem: mnożnik to liczba nadawców przenoszonych z danego profilu i to on decyduje, czy import to pętla setek czy dziesiątek tysięcy.
Zachowaj wycofanie obejmujące cały profil we wszystkich odpowiednich nadawcach. Przechowywanie na poziomie nadawcy nie jest pozwoleniem na wznowienie programu pod innym numerem. Sprawdź, czy preferencja na poziomie całego obszaru roboczego jest właściwym odwzorowaniem faktycznego żądania danej osoby.
Importuj przez pętlę blokad. Odczytywanie i zarządzanie blokadami zawiera polecenie i wyjaśnia, dlaczego ręczna blokada zatrzymuje każdą kategorię, w tym transakcyjną.
Odtwórz niestandardowe słowa kluczowe i automatyczne odpowiedzi skonfigurowane przez autoresp_configs jako Bird reguły słów kluczowych. Wysyłka do zablokowanej pary jest odrzucana przy przyjęciu z E12077 SMSRecipientSuppressed; rezygnacja po stronie operatora to osobny wynik doręczenia recipient_opted_out. Obsłuż obie ścieżki, zastępując błąd Telnyx 40300.
Powody nakładają się, a nie scalają, co ma znaczenie, gdy ruch już płynie: para zaimportowana jako manual, która następnie wyśle STOP, otrzymuje drugi rekord z powodem keyword_stop, a wiadomości pozostają zablokowane, dopóki nie zakończy się każdy rekord dla tej pary. Wznowienie subskrybenta, którego kiedyś zaimportowałeś, wymaga usunięcia obu.

Przetłumacz statusy doręczeń

Użyj tej tabeli do porównania koncepcji cyklu życia, a nie do mechanicznej zamiany nazw zdarzeń. Bird wybiera zdarzenie błędu na podstawie zgłoszonego statusu i powodu. Odrzucone żądanie API nie tworzy wiadomości; odrzucenie po akceptacji może wygenerować sms.rejected, w tym odrzucenie przez operatora. Brak potwierdzenia doręczenia pozostaje nieznany. Zachowuj surowy status i kod dostawcy obok znormalizowanego wyniku.
WynikTelnyxBird
API zaakceptował wiadomośćqueuedsms.accepted
Przekazano operatorowisent, w message.sentsms.sent
Operator potwierdził doręczeniedelivered, w message.finalizedsms.delivered
Doręczenie nie powiodło siędelivery_failedsms.undelivered
Trwały błądsending_failedsms.failed
Żądanie odrzucone przy przyjęciubłąd żądaniabłąd HTTP; brak wiadomości i zdarzenia
Upłynął czas ważności(brak)sms.expired
Zmienia się kształt zdarzenia, nie tylko nazwy. Telnyx wysyła jeden webhook message.finalized ze stanem końcowym w polu status, więc twój handler rozgałęzia się na wartości wewnątrz jednego typu zdarzenia. Bird emituje osobne typy zdarzeń, a ty subskrybujesz te, które chcesz, więc rozgałęzienie przenosi się z twojego kodu do subskrypcji. Dlatego lewa kolumna powyżej podaje zdarzenie i status razem, a prawa tylko zdarzenie.
Dwie kolejne mechaniki zmieniają się wraz z nazwami:
  • Subskrypcje zastępują adres URL webhooka profilu. Telnyx wysyła aktualizacje doręczeń na adres URL messaging profile, więc miejsce docelowe jest właściwością profilu, przez który wysłano każdą wiadomość. Bird dostarcza do endpointów zarejestrowanych w twoim obszarze roboczym, z których każdy subskrybuje wybrane typy zdarzeń, więc drugi konsument to druga subskrypcja, a nie zmiana współdzielonego obiektu.
  • Standard Webhooks zastępuje schemat podpisów Telnyx. Bird wysyła JSON podpisane zgodnie ze Standard Webhooks; zamień weryfikację na przepis z Webhooks & events.
Zarejestruj endpoint raz, podając typy zdarzeń, które chce obsługiwać Twój handler: powyższe zdarzenia sms.* to lista do zasubskrybowania i nie ma symbolu wieloznacznego, który je zastępuje. Utwórz endpoint zawiera polecenie i jedyną rzecz, którą musisz zrobić dobrze przy pierwszym wywołaniu, czyli zapisanie sekretu podpisu, który odpowiedź pokazuje dokładnie raz.
Bird raportuje błąd ze standardowym kodem error, takim jak invalid_destination, content_rejected, provider_unavailable lub recipient_opted_out; pełna lista znajduje się na stronie zdarzeń. Zmapuj swoje alerty na te kody.

Przełączenie

Miejsca docelowe, nadawcy i rampa ruchu są niezależne od dostawcy i opisane w głównym przewodniku. Dwa elementy specyficzne dla Telnyx należą do planu przełączenia: twoja marka 10DLC i kampania są zarejestrowane w The Campaign Registry przez Telnyx i nie stają się automatycznie rejestracjami Bird. Potwierdź odpowiednią procedurę migracji lub rejestracji przed zleceniem płatnej pracy. Numery, które posiadasz w Telnyx, wymagają przeniesienia, które organizuje wsparcie, w swoim harmonogramie, nie twoim.
Wymagania po stronie Bird znajdziesz w Rejestracja 10DLC: opisuje znaczenie każdego pola, typy podmiotów rozpoznawane przez rejestr oraz wywołanie wymagań, które podpowiada, co dostarczyć przed utworzeniem marki, czyli przed krokiem, za który naliczana jest opłata.

Następne kroki

Powiązane zasoby

Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.