CPaaS / SMS-API
Sådan skifter du fra Twilio
Et kodeskift, ikke en datamigrering: send-kaldets diff, afsender-ID'er genregistreret, opt-outs flyttet med og status-callbacks remappet — med en faseopdelt udrulning, så intet kritisk knækker.
En halv dags kodeændringer; afsender-ID-registrering sætter kalenderen (dage til uger pr. land)
| Twilio | WeZend |
|---|---|
| Messages API (POST /Messages) | POST /v1/messages/send |
| Account SID + Auth Token | X-API-Key-header |
| Messaging Services / sender pool | Automatisk routing + registrerede afsendere |
| Status callbacks | Leverings-webhooks (signerede) |
| Advanced Opt-Out lists | Suppressionsliste + STOP-håndtering |
| Inbound webhooks (MO) | Indgående webhook + indbakke |
| Twilio Verify (OTP) | Transaktionelle afsendelser + voice-fallback-journey |
| Programmable Voice (TTS) | Voice-kanalen |
Hvilken slags migrering det her er
Twilio ligger inde med meget lidt af jeres data — det er infrastruktur, jeres kode kalder. Så denne migrering er 90% et kontrolleret kodeskift og 10% regulatorisk logistik (afsenderregistrering). Den gyldne regel: rout med feature-flag, ikke big bang, så du kan flytte trafikken gradvist og rulle tilbage øjeblikkeligt.
Trin 1 — Start det langsomme ur: afsender-ID'er
Registreringstid er det eneste, du ikke kan komprimere, så gør det først. List hver afsender, I bruger (alfanumeriske navne, numeriske afsendere), og hvert modtagerland, og registrér dem under Indstillinger → Afsendere (POST /v1/senders). Tjek kravene pr. land programmatisk:
curl "https://api.wezend.com/v1/sender/rules?country=DK" -H "X-API-Key: $WEZEND_API_KEY"
Lande med operatørregistrering tager dage til uger — start nu, kod senere.
Trin 2 — Flyt opt-outs med
Bruger I Twilios Advanced Opt-Out (eller tracker selv STOP'er), så eksportér de numre og importér dem som suppressioner. WeZend opsnapper STOP/START-keywords automatisk fremadrettet, men historikken skal med — en modtager, der sagde STOP hos Twilio, skal forblive stoppet hos WeZend.
Trin 3 — Kode-diffen
Twilio (Node):
const twilio = require("twilio")(ACCOUNT_SID, AUTH_TOKEN);
await twilio.messages.create({
to: "+4512345678",
messagingServiceSid: "MG…",
body: "Din kode 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: "Din kode er 493202",
category: "transactional",
webhook_url: "https://api.yourapp.com/sms-status",
}),
});
Forskellene der betyder noget:
- Auth er én header (
X-API-Key), intet SID/token-par. Nøgler roteres med et 24-timers nådevindue. messagingServiceSidforsvinder — routing til den bedste vendor pr. destination er platformens job, med automatisk failover når en rute degraderer.category: "transactional"markerer engangskoder og kvitteringer, så de omgår marketinglofter og quiet hours.- Status-callbacks ankommer på din
webhook_urlmed enX-WeZend-Signature-HMAC — verificér den. Map statusser: Twiliosqueued/sent/delivered/undelivered/failedsvarer tilqueued/sent/delivered/failed(undelivered og failed ankommer begge somfailed, med årsagen vedhæftet).
Trin 4 — Indgående og tovejs
Peg jeres svar-håndtering mod WeZend: sæt den indgående webhook-URL, og indgående beskeder POSTes til jeres endpoint præcis som Twilios MO-webhooks gjorde — plus de lander trådet i indbakken, som jeres supportteam får gratis.
Trin 5 — Faseopdelt udrulning
Læg leverandørvalget bag et flag og flyt trafikken i etaper: 5% → verificér leveringsrater mod Twilios baseline → 50% → 100%. Hold Twilio-kontoen i live (den koster næsten intet i tomgang), indtil hver webhook-forbruger er migreret og en fuld faktureringsperiode er gået. Fejler noget under overgangen, viser Delivery Inspector carrier-årsagen i klart sprog — slut med at dechifrere fejl 30008.
Hvad med Verify, Voice og numre?
- OTP-flows: send med
category: "transactional"; tilføj "ingen levering på N sekunder → taleopkald"-fallbacken som en to-trins journey. - Voice/TTS: voice-kanalen dækker automatiserede TTS-opkald og alarmer.
- Dedikerede longcodes/shortcodes: nummerportering håndteres fra sag til sag — kontakt os med jeres numre og destinationer, før I lægger cutover-planen.
Go-live-tjekliste
- Alle afsender-ID'er registreret pr. modtagerland (start straks — længst leveringstid)
- Twilio-opt-out-lister eksporteret og importeret som suppressioner
- Send-kald skiftet bag et feature-flag; category sat på transaktionel trafik
- Webhook-forbrugeren verificerer X-WeZend-Signature og mapper statusser
- Indgående webhook-URL sat; svar verificeret hele vejen
- Trafik flyttet 5% → 50% → 100% med leveringsrater sammenlignet ved hvert trin
- Twilio-konto holdt i live indtil en fuld faktureringsperiode er gået rent
Ofte stillede spørgsmål om skiftet fra Twilio
Er der et SDK, eller kalder vi REST-API'et direkte?
API'et er ren JSON-over-HTTPS designet til at blive kaldt direkte — eksemplerne ovenfor er komplette. Det betyder også, at en AI-assistent kan skrive integrationen for jer: hele vores API er maskinlæsbart på /llms-full.txt, og Byg-med-AI-guiden viser arbejdsgangen.
Twilio afregner pr. segment — hvordan prissætter WeZend SMS?
Også pr. segment, pr. destination — det er sådan, operatørerne afregner, og alt andet ville skjule omkostninger. Forskellen er gennemsigtighed: GET /v1/account/pricing returnerer jeres præcise priser, dashboardet viser segmentantal og pris før afsendelse, og samme forudbetalte saldo dækker alle kanaler.
Hvad vinder vi ud over et 1:1-API-skift?
Alt rundt om afsendelsen: automatisk vendor-failover, Delivery Inspector med fejlårsager i klart sprog, en fælles indbakke til svar, og — når I er klar — CDP, journeys og email/WhatsApp/push på samme API og saldo. I migrerer en SMS-leverandør; I ankommer til en platform.
Kom gratis i gang på minutter
- Intet kreditkort
- EU-datalagring
- 6 kanaler, ét API
- GDPR indbygget
Én platform. Hver eneste kundeinteraktion.
Erstat dit kludetæppe af messaging-API'er, CDP og automatiseringsværktøjer med én engagement-platform bygget til skala.
Intet kreditkort · EU-datalagring · 99,99 % oppetids-SLA