Sign inGet started

SMS migreren van Bandwidth

Deze pagina vertaalt Bandwidth's Messages API, Applications en message callbacks naar Bird. Volg de hoofdmigratiegids op volgorde en gebruik deze vertalingen voor stap 3, 4 en 5.
Twee verschillen bepalen de hele overstap. Bandwidth splitst het kanaal over twee hosts: verzending draait op de messaging-host onder je accountpad, geauthenticeerd via HTTP Basic, terwijl 10DLC-registratie op de hoofd-API-host draait. Bird plaatst verzending, registratie en bezorgingsevents onder één basis-URL en één bearer-key. En de applicationId op elke Bandwidth-verzending draagt de callbackconfiguratie; Bird heeft geen equivalent object, omdat callbacks een werkruimte-abonnement zijn in plaats van een eigenschap van het bericht.

Geef dit aan je agent

Gebruik deze briefing in je codeeragent. Het begint met inventarisatie en levert een reviewbaar migratieplan op vóór elke productiewijziging.
Codevoorbeeld
Help me migrate my SMS integration from Bandwidth 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/bandwidth.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 Bandwidth 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 doetBandwidthBird
Ontvangerto (array)to (één per request)
Afzenderfromfrom
Inhoudtexttext
CallbackroutingapplicationIdeen werkruimte-webhook die is geabonneerd op de onderstaande bezorgingsevents
Intent(geen)category, vereist bij vrije tekst
Vrij labeltag (één string)metadata; tags alleen als je het een naam kunt geven
Round-tripcontextje eigen opslag, op ID gekeydmetadata: willekeurige JSON, meegegeven bij elk event
Bezorgingsprioriteitprioritygeen equivalent
Veilig opnieuw proberen(geen in hun specificatie)Idempotency-Key-header
Mediamediageen equivalent: media_urls wordt geweigerd
Opmerkingen bij het porten:
  • to gaat van een array naar één ontvanger. Bandwidth accepteert een lijst; Bird stuurt één bericht per request. Een loop vervangt de array, en elke aanroep kan zijn eigen Idempotency-Key meesturen.
  • De applicationId verdwijnt in plaats van mee te verhuizen. Het bestaat om Bandwidth te vertellen waar callbacks naartoe moeten. Bij Bird is dat een werkruimte-abonnement, dus niets in de verzendaanroep verwijst ernaar.
  • tag en tags zijn niet hetzelfde veld. Bandwidth's tag is één vrije-vormstring; Bird's tags zijn {name, value}-paren die querydimensies worden. Een enkele ondoorzichtige string past doorgaans beter in metadata.
  • Niets in de Messages API komt overeen met category. Bepaal per berichttype of het transactional, marketing, authentication of service is.

Opt-outs overnemen

Er is geen lijst om te exporteren, en dat is de bevinding, niet een lacune in deze gids.
Buiten toll-free onderhoudt Bandwidth geen opt-in- of opt-outlijsten voor je. Hun eigen richtlijnen zeggen het duidelijk: de verantwoordelijkheid voor het respecteren van de opdrachten en het bijhouden van de lijsten ligt bij de klant. Toll-free is de uitzondering, waar STOP en varianten daarvan worden afgedwongen op de netwerklaag ongeacht je configuratie; long codes en short codes krijgen geen vergelijkbare behandeling.
Bij deze migratie is de gezaghebbende lijst dus al van jou. Het is een tabel, een vlag op een contactrecord, of een controle die je verzendpad uitvoert voordat het de API aanroept, en de eerste taak is bepalen welke daarvan gezaghebbend is in plaats van een export bij iemand op te vragen. Je eigen inbound-berichtenlog is de terugvaloptie: sommige opt-outs begonnen als inkomende berichten, terwijl andere via support, formulieren of een ander voorkeurskanaal binnenkwamen.
Importeer vervolgens via de suppressieloop. Een Bird-suppressie is één afzender-en-abonneepaar, dus een abonnee die je bij drie afzenders hebt gestopt levert drie records op. Suppressies lezen en beheren bevat het commando, en de reden waarom een handmatige suppressie elke categorie blokkeert, inclusief transactioneel.
Bepaal wie na de cutover eigenaar van de lijst is, want hier win je iets en kun je het spoor bijster raken. Bird beantwoordt stopwoorden uit zijn eigen catalogus per land, dus zodra je hier verstuurt onderhoudt het platform suppressies voor je: een abonnee die STOP sms't, produceert een record met reden keyword_stop zonder dat je applicatie iets doet. Als je code een eigen lijst bijhoudt en blijft afdwingen, lopen de twee uit de pas, en het gebruikelijke symptoom is een abonnee die aan één kant is hervat en aan de andere niet. Houd de eigenaar van de doelgroepvoorkeur expliciet en synchroniseer relevante wijzigingen bewust. Afzendersuppressies alleen dekken geen werkruimtebrede voorkeuren of verzoeken buiten de woordcatalogus. Redenen stapelen in plaats van samen te voegen, dus een paar dat je als manual hebt geïmporteerd en dat later STOP sms't, heeft twee records, en berichten blijven geblokkeerd totdat beide zijn beëindigd.

Bezorgingsstatussen 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 carrierafwijzing. Ontbrekend bezorgingsbewijs blijft onbekend. Bewaar de onbewerkte providerstatus en -code naast je genormaliseerde uitkomst.
UitkomstBandwidth-callbacktypeBird
API heeft het bericht geaccepteerdhet 202-antwoord, geen eventsms.accepted
Overgedragen aan de carriermessage-sentsms.sent
Carrier bevestigde bezorgingmessage-deliveredsms.delivered
Heeft de carrier niet bereiktmessage-failedsms.rejected
Carrier heeft het geweigerdmessage-failedsms.failed
Carrier meldde niet-bezorgingmessage-failedsms.undelivered
Carrier heeft opgegevenmessage-failedsms.expired
Request geweigerd bij toelatingrequestfoutHTTP-fout; geen bericht of event
Twee dingen in die tabel verdienen actie in plaats van doorlezen.
Bouw de afhandeling van eindstatussen opnieuw op rond het berichtrecord en de eventtijdstempels van Bird. Webhookbezorgingen kunnen zich herhalen of in verkeerde volgorde aankomen; je consumer mag niet uitgaan van één bezorging van één definitieve callback. Een geweigerde status en een bezorging-mislukt-status kunnen verschillende Bird-events selecteren, ook als beide downstream zijn ontstaan.
message-sending heeft geen rij omdat het alleen voor MMS geldt, en message-read is alleen voor RBM; geen van beide wordt geactiveerd voor SMS.
Twee mechanismen veranderen samen met de namen:
  • Abonnementen vervangen de Application. Bandwidth routeert callbacks op basis van de applicationId die het bericht noemde. Bird bezorgt bij endpoints die je werkruimte registreert, elk geabonneerd op de gewenste eventtypen, dus een nieuwe consumer is een nieuw abonnement in plaats van een nieuwe Application en een redeploy.
  • Standard Webhooks vervangt hun callbackauthenticatie. Bird stuurt JSON ondertekend volgens Standard Webhooks; vervang de verificatie door het recept in Webhooks & events.
Registreer het endpoint eenmalig en geef de eventtypen op die je handler wil: de sms.*-events hierboven zijn de lijst om je op te abonneren, en er is geen wildcard die ze vervangt. Een endpoint aanmaken bevat het commando en het enige wat je bij de eerste aanroep goed moet doen: het ondertekeningsgeheim opslaan dat het antwoord precies één keer toont.

Cutover

Bestemmingen, afzenders en de verkeersopbouw zijn provideronafhankelijk en worden behandeld in de hoofdgids. Twee Bandwidth-specifieke items horen op het cutoverplan: je 10DLC-merk en -campagne zijn via Bandwidth geregistreerd bij The Campaign Registry en worden niet automatisch Bird-registraties. Bevestig de toepasselijke migratie- of registratieprocedure voordat je betaald werk indient. Nummers die je bezit bij Bandwidth vereisen een port die support regelt, op hun schema in plaats van het jouwe.
Begin voor de Bird-vereisten bij Registreren voor 10DLC: het behandelt wat elk veld betekent, de entiteitstypen die het register herkent, en de requirements-aanroep die je vertelt wat je moet aanleveren voordat je het merk aanmaakt, wat de stap is die kosten met zich meebrengt.

Volgende stappen

Gerelateerde bronnen

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