Sign inGet started

SMS migreren van Bird Connectivity Platform

Deze pagina vertaalt de Bird Connectivity Platform API op rest.messagebird.com, die je misschien nog kent als de MessageBird API, naar Bird. Volg de hoofdmigratiegids op volgorde en gebruik deze vertalingen voor stap 3, 4 en 5.
Beide platformen zijn van Bird, en de API is het deel dat verandert. Drie verschillen raken elke aanroep. Requests gaan naar je regionale host, https://us1.platform.bird.com of https://eu1.platform.bird.com, in plaats van één globale host. Authenticatie gebruikt een bearer API-sleutel (Authorization: Bearer bk_us1_…) in plaats van Authorization: AccessKey. En het verzenden is asynchroon: POST /v1/sms/messages retourneert 202 Accepted met het bericht in de wachtrij, terwijl het Connectivity Platform het berichtobject retourneerde met al een status per ontvanger.

Geef dit aan je agent

Gebruik deze briefing in je coding agent. Het begint met discovery en levert een reviewbaar migratieplan op voordat er iets in productie verandert.
Codevoorbeeld
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.

Vertaal de verzendaanroep

Wat het doetConnectivity PlatformBird
Ontvangerrecipients (maximaal 50)to, één per request
Afzenderoriginatorfrom
Inhoudbodytext
Intent(geen)category, verplicht bij vrije tekst
Coderingdatacodingautomatisch gedetecteerd
Transliteratie(geen)options.smart_encoding (standaard false)
Clientreferentiereferencemetadata, of tags als je erop filtert
StatusrapportenreportUrleen werkruimte-webhook geabonneerd op de onderstaande bezorgingsevents
Veilig opnieuw proberen(geen)Idempotency-Key header
InplannenscheduledDatetimegeen equivalent: scheduled_at wordt geweigerd
Geldigheidvaliditygeen equivalent: validity_period wordt geweigerd
RouteselectiegatewayBird selecteert de route
Berichtklassemclassgeen equivalent
Binair en flashtype, typeDetailsalleen tekst
Beide geweigerde velden zijn gereserveerd en beantwoorden 422 SMSUnsupportedFeature.
Opmerkingen bij de migratie:
  • De ontvangers-array wordt één aanroep per ontvanger. Een Connectivity Platform-aanroep met 50 ontvangers wordt 50 verzendingen, of één batch van onafhankelijke berichten. De batch is geen fan-out van één body: elke entry bevat zijn eigen ontvanger, afzender en tekst.
  • datacoding heeft geen equivalent, en dat is bewust. Bird detecteert de codering uit de body en rapporteert het aantal segmenten op het bericht. Als je datacoding: auto instelt om berichten binnen GSM-7 te houden, is het dichtstbijzijnde gedrag options.smart_encoding, dat de gedocumenteerde vervangingstabel van Bird toepast. Het is geen algemene transliterator; niet-ondersteunde tekens kunnen nog steeds Unicode-codering vereisen.
  • reference wordt opgesplitst in twee velden. Zet een intern id in metadata, dat wordt meegestuurd bij elk webhook-event, en gebruik tags voor de labels met lage kardinaliteit waarop je analytics wilt filteren en uitsplitsen.
  • Flash-berichten, binaire payloads en UDH-concatenatie worden niet gemigreerd. Als je afhankelijk bent van mclass of typeDetails, neem dit dan op met support voordat je de cutover plant, niet erna.
  • Ook op de Connectivity Platform Verify API? De migratie is een apart traject met een eigen gids: zie Verify migreren van een andere provider.

Opt-outs overnemen

Het Connectivity Platform liet de afhandeling van stopwoordzoekwoorden aan jou over, of je dat nu in Flows had gebouwd of in je eigen applicatie op basis van inkomende berichten. Bird doet dat zelf: het herkent stop-, start- en help-trefwoorden op je nummers in ondersteunde landen, registreert de onderdrukking en handhaaft die bij elke verzending. Schakel een oude handler pas uit nadat je hebt bevestigd dat de catalogus van Bird het gedrag dekt en je bredere voorkeursproces nog werkt.
Wat niet verdwijnt is de lijst. Exporteer wat je nu hebt, als paren van abonneenummer en de originator waarop ze gestopt hebben, en importeer het via de suppressielus vóór je eerste productieverzending. Als je alleen een globale lijst bijhield van abonnees die zich hadden afgemeld, importeer dan elke abonnee eenmaal per originator waarvandaan je nog verzendt.

Statusrapporten vertalen

Gebruik deze tabel om levenscyclusconcepten te vergelijken, niet om events mechanisch te hernoemen. Bird kiest een fout-event op basis van de gerapporteerde status en reden. Een geweigerd API-request maakt geen bericht aan; een afwijzing na acceptatie kan sms.rejected opleveren, inclusief een carrier-afwijzing. Ontbrekend bezorgingsbewijs blijft onbekend. Bewaar de ruwe providerstatus en -code naast je genormaliseerde uitkomst.
UitkomstConnectivity PlatformBird
Geaccepteerd door het API(synchroon)sms.accepted
Overgedragen aan de carriersent, bufferedsms.sent
Carrier bevestigde bezorgingdeliveredsms.delivered
Bezorging misluktdelivery_failedsms.failed
Geldigheidsvenster verstrekenexpiredsms.expired
Request geweigerd bij toelatingrequestfoutHTTP-fout; geen bericht of event
Wacht op verzendingschedulednog geen equivalent
Het bezorgingsmechanisme verandert meer dan het vocabulaire:
  • Ondertekende JSON-posts vervangen reportUrl GET-callbacks. Statusrapporten kwamen binnen als GET-requests met de uitkomst in de query string (status, statusReason, statusErrorCode, mccmnc, price[amount]). Bird POSTt een JSON-event naar endpoints die je werkruimte registreert, ondertekend volgens Standard Webhooks. De handler is een herschrijving, geen URL-wijziging.
  • Correlatie hangt niet meer af van reference. Een statusrapport was alleen bruikbaar als je een referentie had ingesteld; een Bird-event bevat altijd sms_id, beide nummers, en je meegegeven metadata en tags.
  • Retry-semantiek verschilt. Het Connectivity Platform deed tot 10 pogingen bij een mislukt rapport. De bezorgingen van Bird zijn at-least-once en ongeordend, dus dedupliceer op de webhook-id-header en sorteer op de payload timestamp.
  • Kosten afstemmen via het bericht en de facturatie-eigenaren. Het Connectivity Platform-rapport bevatte price[amount] en price[currency]. Lees de geregistreerde kosten van het bericht met GET /v1/sms/messages/{id} en stem kosten af met facturatie. De Stats API is voor bezorgingsmetrics, niet voor een gezaghebbend facturatietotaal.
Inkomende berichten werken op dezelfde manier: abonneer je eenmalig op sms.received voor de werkruimte in plaats van elk nummer naar een URL te verwijzen.

Cutover

Bestemmingen, afzenders en de verkeersopbouw zijn provideronafhankelijk en worden behandeld in de hoofdgids. Het punt om vroeg aan te kaarten zijn je originators: alfanumerieke afzender-ID's worden opnieuw aangemaakt en, als het land dat vereist, hier opnieuw geregistreerd, en nummers die je op het Connectivity Platform hebt worden verplaatst via een port die support regelt, niet via een instelling die je omzet.

Volgende stappen

Gerelateerde bronnen

Ga verder met de documentatie, gidsen en voorbeelden voor dit onderwerp. De bronnen zijn in het Engels.