CPaaS / SMS-API
Slik bytter du fra Twilio
Et kodebytte, ikke en datamigrering: sendekallets diff, avsender-ID-er omregistrert, opt-outs flyttet med og status-callbacks remappet — med en trinnvis utrulling så ingenting kritisk knekker.
En halv dags kodeendringer; avsender-ID-registrering setter kalenderen (dager til uker per land)
| Twilio | WeZend |
|---|---|
| Messages API (POST /Messages) | POST /v1/messages/send |
| Account SID + Auth Token | X-API-Key-header |
| Messaging Services / sender pool | Automatisk ruting + registrerte avsendere |
| Status callbacks | Leverings-webhooks (signerte) |
| Advanced Opt-Out lists | Sperreliste + STOP-håndtering |
| Inbound webhooks (MO) | Innkommende webhook + innboks |
| Twilio Verify (OTP) | Transaksjonelle utsendelser + voice-fallback-journey |
| Programmable Voice (TTS) | Voice-kanalen |
Hva slags migrering dette er
Twilio sitter på svært lite av dataene deres — det er infrastruktur koden deres kaller. Denne migreringen er derfor 90% et kontrollert kodebytte og 10% regulatorisk logistikk (avsenderregistrering). Den gylne regelen: rut med feature flag, ikke big bang, slik at dere kan flytte trafikken gradvis og rulle tilbake øyeblikkelig.
Steg 1 — Start den trege klokka: avsender-ID-er
Registreringstiden er det eneste dere ikke kan komprimere, så gjør det først. List opp hver avsender dere bruker (alfanumeriske navn, numeriske avsendere) og hvert mottakerland, og registrer dem under Innstillinger → Avsendere (POST /v1/senders). Sjekk kravene per land programmatisk:
curl "https://api.wezend.com/v1/sender/rules?country=DK" -H "X-API-Key: $WEZEND_API_KEY"
Land med operatørregistrering tar dager til uker — start nå, kod senere.
Steg 2 — Ta med opt-outene
Bruker dere Twilios Advanced Opt-Out (eller sporer STOP selv), eksporter de numrene og importer dem som sperringer. WeZend fanger opp STOP/START-nøkkelord automatisk framover, men historikken må bli med — en mottaker som sa STOP hos Twilio, skal forbli stoppet hos WeZend.
Steg 3 — Kodediffen
Twilio (Node):
const twilio = require("twilio")(ACCOUNT_SID, AUTH_TOKEN);
await twilio.messages.create({
to: "+4512345678",
messagingServiceSid: "MG…",
body: "Koden din er 493202",
statusCallback: "https://api.yourapp.com/sms-status",
});
WeZend — ren HTTP, ingen SDK nødvendig:
await fetch("https://api.wezend.com/v1/messages/send", {
method: "POST",
headers: { "X-API-Key": process.env.WEZEND_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({
to: "+4512345678",
channel: "sms",
sender: "Acme",
message: "Koden din er 493202",
category: "transactional",
webhook_url: "https://api.yourapp.com/sms-status",
}),
});
Forskjellene som betyr noe:
- Autentisering er én header (
X-API-Key), ingen SID/token-par. Nøkler roteres med et 24-timers nådevindu. messagingServiceSidforsvinner — ruting til beste leverandør per destinasjon er plattformens jobb, med automatisk failover når en rute degraderes.category: "transactional"merker engangskoder og kvitteringer slik at de går utenom markedsføringstak og stilletimer.- Status-callbacks kommer til
webhook_urlmed enX-WeZend-Signature-HMAC — verifiser den. Mapp statusene: Twiliosqueued/sent/delivered/undelivered/failedtilsvarerqueued/sent/delivered/failed(undelivered og failed kommer begge somfailed, med årsaken vedlagt).
Steg 4 — Innkommende og toveis
Pek svarhåndteringen deres mot WeZend: sett den innkommende webhook-URL-en, så POSTes innkommende meldinger til endepunktet deres akkurat som Twilios MO-webhooks gjorde — i tillegg lander de trådet i innboksen, som supportteamet får med på kjøpet.
Steg 5 — Trinnvis utrulling
Legg leverandørvalget bak et flagg og flytt trafikken etappevis: 5% → verifiser leveringsratene mot Twilios baseline → 50% → 100%. Hold Twilio-kontoen i live (den koster nesten ingenting i ro) til hver webhook-konsument er migrert og en hel faktureringsperiode har gått. Feiler noe underveis, viser Delivery Inspector operatørårsaken i klartekst — slutt på å tyde feil 30008.
Hva med Verify, Voice og numre?
- OTP-flyter: send med
category: "transactional"; legg til fallbacken "ingen levering på N sekunder → taleanrop" som en totrinns journey. - Voice/TTS: voice-kanalen dekker automatiserte TTS-anrop og varsler.
- Dedikerte long codes/short codes: nummerportering håndteres fra sak til sak — kontakt oss med numrene og destinasjonene deres før dere planlegger cutover.
Go-live-sjekkliste
- Alle avsender-ID-er registrert per mottakerland (start umiddelbart — lengst ledetid)
- Twilio-opt-out-lister eksportert og importert som sperringer
- Sendekall byttet bak et feature flag; category satt på transaksjonell trafikk
- Webhook-konsumenten verifiserer X-WeZend-Signature og mapper statuser
- Innkommende webhook-URL satt; svar verifisert hele veien
- Trafikken flyttet 5% → 50% → 100% med leveringsrater sammenlignet i hvert steg
- Twilio-kontoen holdt i live til en hel faktureringsperiode har gått feilfritt
Ofte stilte spørsmål om byttet fra Twilio
Finnes det et SDK, eller kaller vi REST-API-et direkte?
API-et er ren JSON over HTTPS, laget for å kalles direkte — eksemplene over er komplette. Det betyr også at en AI-assistent kan skrive integrasjonen for dere: hele API-et vårt er maskinlesbart på /llms-full.txt, og Bygg-med-AI-guiden viser arbeidsflyten.
Twilio fakturerer per segment — hvordan priser WeZend SMS?
Også per segment, per destinasjon — slik fakturerer operatørene, og å late som noe annet skjuler kostnader. Forskjellen er åpenheten: GET /v1/account/pricing returnerer de eksakte prisene deres, dashbordet viser antall segmenter og pris før dere sender, og samme forhåndsbetalte saldo dekker alle kanaler.
Hva vinner vi utover et rett-fram API-bytte?
Alt rundt selve utsendelsen: automatisk leverandør-failover, Delivery Inspector med feilårsaker i klartekst, en delt innboks for svar, og — når dere er klare — CDP, journeys og e-post/WhatsApp/push på samme API og saldo. Dere migrerer en SMS-leverandør; dere ender opp med en plattform.
Kom i gang gratis på minutter
- Intet kredittkort
- EU-datalagring
- 6 kanaler, ett API
- GDPR innebygd
Én plattform. Hver kundeinteraksjon.
Erstatt lappeteppet av meldings-API-er, CDP og automatiseringsverktøy med én engasjementsplattform bygget for skala.
Ingen kredittkort · EU-datalagring · 99,99 % oppetids-SLA