Skip to content
WeZend

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)

TwilioWeZend
Messages API (POST /Messages)POST /v1/messages/send
Account SID + Auth TokenX-API-Key-header
Messaging Services / sender poolAutomatisk routing + registrerede afsendere
Status callbacksLeverings-webhooks (signerede)
Advanced Opt-Out listsSuppressionsliste + 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.
  • messagingServiceSid forsvinder — 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_url med en X-WeZend-Signature-HMAC — verificér den. Map statusser: Twilios queued/sent/delivered/undelivered/failed svarer til queued/sent/delivered/failed (undelivered og failed ankommer begge som failed, 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