Sign inGet started

SMS von der Bird Connectivity Platform migrieren

Diese Seite bildet die Bird Connectivity Platform API unter rest.messagebird.com, die Sie vielleicht noch als MessageBird API kennen, auf Bird ab. Folgen Sie der Hauptmigrationsanleitung der Reihe nach und verwenden Sie diese Zuordnungen für die Schritte 3, 4 und 5.
Beide Plattformen gehören zu Bird, und die API ist der Teil, der sich ändert. Drei Unterschiede betreffen jeden Aufruf. Anfragen gehen an Ihren regionalen Host, https://us1.platform.bird.com oder https://eu1.platform.bird.com, statt an einen globalen Host. Die Authentifizierung erfolgt über einen Bearer-API-Schlüssel (Authorization: Bearer bk_us1_…) statt über Authorization: AccessKey. Und der Versand ist asynchron: POST /v1/sms/messages gibt 202 Accepted mit der eingereihten Nachricht zurück, während die Connectivity Platform das Nachrichtenobjekt mit einem bereits angehängten Status pro Empfänger zurückgab.

Übergeben Sie dies an Ihren Agent

Verwenden Sie dieses Briefing in Ihrem Coding-Agent. Es beginnt mit einer Bestandsaufnahme und erstellt einen überprüfbaren Migrationsplan, bevor produktive Änderungen erfolgen.
Codebeispiel
Help me migrate my SMS integration from Bird Connectivity Platform 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/connectivity-platform.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 Connectivity Platform 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.

Den Sendeaufruf abbilden

FunktionConnectivity PlatformBird
Empfängerrecipients (bis zu 50)to, einer pro Anfrage
Absenderoriginatorfrom
Inhaltbodytext
Intent(keiner)category, erforderlich bei Freitext
Kodierungdatacodingwird automatisch erkannt
Transliteration(keine)options.smart_encoding (Standard false)
Clientreferenzreferencemetadata oder tags, wenn Sie danach filtern
StatusberichtereportUrlein Workspace-Webhook, der die unten genannten Zustellereignisse abonniert
Sichere Wiederholung(keine)Idempotency-Key-Header
ZeitplanungscheduledDatetimekein Äquivalent: scheduled_at wird abgelehnt
Gültigkeitvaliditykein Äquivalent: validity_period wird abgelehnt
RoutenwahlgatewayBird wählt die Route
Nachrichtenklassemclasskein Äquivalent
Binär und Flashtype, typeDetailsnur Text
Beide abgelehnten Felder sind reserviert und beantworten 422 SMSUnsupportedFeature.
Portierungshinweise:
  • Das Empfänger-Array wird zu einem Aufruf pro Empfänger. Ein Connectivity-Platform-Aufruf mit 50 Empfängern wird zu 50 Sendevorgängen oder einem Batch unabhängiger Nachrichten. Der Batch ist kein Fan-out eines einzelnen Inhalts: Jeder Eintrag enthält seinen eigenen Empfänger, Absender und Text.
  • datacoding hat kein Äquivalent, und das ist beabsichtigt. Bird erkennt die Kodierung anhand des Inhalts und gibt die Segmentanzahl zur Nachricht zurück. Wenn Sie datacoding: auto setzen, um Nachrichten innerhalb von GSM-7 zu halten, ist das nächstliegende Verhalten options.smart_encoding, das die dokumentierte Ersetzungstabelle von Bird anwendet. Es handelt sich nicht um einen allgemeinen Transliterator; nicht unterstützte Zeichen können weiterhin Unicode-Kodierung erfordern.
  • reference wird in zwei Felder aufgeteilt. Geben Sie einen internen Bezeichner in metadata an, der bei jedem Webhook-Ereignis zurückgegeben wird, und verwenden Sie tags für die Labels mit niedriger Kardinalität, nach denen Sie filtern und Analysen aufschlüsseln möchten.
  • Flash-Nachrichten, binäre Payloads und UDH-Verkettung lassen sich nicht portieren. Wenn Sie auf mclass oder typeDetails angewiesen sind, klären Sie das mit dem Support, bevor Sie die Umstellung planen, nicht danach.
  • Nutzen Sie auch die Connectivity Platform Verify API? Die Portierung ist ein separates Vorhaben mit eigener Anleitung: siehe Verify von einem anderen Anbieter migrieren.

Opt-outs übernehmen

Die Connectivity Platform überließ die Verarbeitung von Stopp-Schlüsselwörtern Ihnen, ob Sie sie in Flows oder in Ihrer eigenen Anwendung über eingehende Nachrichten umgesetzt haben. Bird übernimmt diese Aufgabe selbst: Es erkennt Stopp-, Start- und Hilfe-Schlüsselwörter auf Ihren Nummern in unterstützten Ländern, speichert die Unterdrückung und setzt sie bei jedem Versand durch. Deaktivieren Sie einen alten Handler erst, nachdem Sie bestätigt haben, dass der Katalog von Bird dessen Verhalten abdeckt und Ihr übergreifender Präferenzprozess weiterhin funktioniert.
Was nicht abgeschafft wird, ist die Liste. Exportieren Sie Ihren aktuellen Bestand als Paare aus Teilnehmernummer und dem Absender, den sie gestoppt haben, und importieren Sie ihn über den Suppression-Loop vor Ihrem ersten produktiven Versand. Falls Sie bisher nur eine globale Liste abgemeldeter Teilnehmer geführt haben, importieren Sie jeden Teilnehmer einmal pro Absender, von dem Sie noch senden.

Statusberichte übersetzen

Verwenden Sie diese Tabelle, um Lifecycle-Konzepte zu vergleichen, nicht um Ereignisse mechanisch umzubenennen. Bird wählt ein Fehlerereignis anhand des gemeldeten Status und Grunds. Eine abgelehnte API-Anfrage erzeugt keine Nachricht; eine Ablehnung nach der Annahme kann sms.rejected erzeugen, einschließlich einer Carrier-Ablehnung. Fehlender Zustellnachweis bleibt unbekannt. Bewahren Sie den rohen Anbieterstatus und -code zusammen mit Ihrem normalisierten Ergebnis auf.
ErgebnisConnectivity PlatformBird
Von der API angenommen(synchron)sms.accepted
An den Carrier übergebensent, bufferedsms.sent
Carrier hat Zustellung bestätigtdeliveredsms.delivered
Zustellung fehlgeschlagendelivery_failedsms.failed
Gültigkeitsfenster abgelaufenexpiredsms.expired
Anfrage bei Eingang abgelehntAnfragefehlerHTTP-Fehler; keine Nachricht oder kein Ereignis
Wartet auf Versandschedulednoch kein Äquivalent
Der Zustellmechanismus ändert sich stärker als das Vokabular:
  • Signierte JSON-Posts ersetzen reportUrl-GET-Callbacks. Statusberichte kamen als GET-Anfragen mit dem Ergebnis im Query-String (status, statusReason, statusErrorCode, mccmnc, price[amount]). Bird POSTt ein JSON-Ereignis an Endpunkte, die Ihr Workspace registriert, signiert gemäß Standard Webhooks. Der Handler muss neu geschrieben werden, nicht nur die URL geändert.
  • Korrelation hängt nicht mehr von reference ab. Ein Statusbericht war nur nützlich, wenn Sie eine Referenz gesetzt hatten; ein Bird-Ereignis enthält immer sms_id, beide Nummern sowie Ihr zurückgegebenes metadata und tags.
  • Die Wiederholungssemantik unterscheidet sich. Die Connectivity Platform hat einen fehlgeschlagenen Bericht bis zu 10-mal erneut versucht. Die Zustellungen von Bird erfolgen mindestens einmal und ohne feste Reihenfolge. Deduplizieren Sie daher anhand des webhook-id-Headers und sortieren Sie nach dem timestamp im Payload.
  • Kosten über die Nachricht und den Billing-Owner abgleichen. Der Connectivity-Platform-Bericht enthielt price[amount] und price[currency]. Lesen Sie die erfassten Kosten der Nachricht mit GET /v1/sms/messages/{id} aus und gleichen Sie die Gebühren mit dem Billing ab. Die Stats API dient Zustellmetriken, nicht als verbindliche Abrechnungssumme.
Eingehende Nachrichten funktionieren genauso: Abonnieren Sie sms.received einmal für den Workspace, statt jede Nummer auf eine URL zu verweisen.

Umstellung durchführen

Ziele, Absender und die Traffic-Rampe sind anbieterunabhängig und in der Hauptanleitung beschrieben. Frühzeitig klären sollten Sie Ihre Absenderkennungen: Alphanumerische Sender-IDs werden neu erstellt und, wenn das jeweilige Land es verlangt, hier neu registriert. Nummern, die Sie auf der Connectivity Platform halten, werden per Portierung verschoben, die der Support arrangiert, nicht per Einstellung, die Sie umschalten.

Nächste Schritte

Verwandte Ressourcen

Weiter mit der Dokumentation, Anleitungen und Beispielen zu diesem Thema. Die Ressourcen sind auf Englisch.