Skip to content
WeZend

CPaaS / SMS-API

Så byter du från Twilio

Ett kodbyte, inte en datamigrering: sändningsanropets diff, avsändar-ID:n omregistrerade, opt-outs medflyttade och status-callbacks ommappade — med en stegvis utrullning så inget kritiskt går sönder.

En halv dags kodändringar; avsändar-ID-registrering sätter kalendern (dagar till veckor per land)

TwilioWeZend
Messages API (POST /Messages)POST /v1/messages/send
Account SID + Auth TokenX-API-Key-header
Messaging Services / sender poolAutomatisk routing + registrerade avsändare
Status callbacksLeverans-webhooks (signerade)
Advanced Opt-Out listsSpärrlista + STOP-hantering
Inbound webhooks (MO)Inkommande webhook + inkorg
Twilio Verify (OTP)Transaktionella utskick + voice-fallback-resa
Programmable Voice (TTS)Voice-kanalen

Vilken sorts migrering det här är

Twilio sitter på väldigt lite av era data — det är infrastruktur som er kod anropar. Den här migreringen är alltså till 90% ett kontrollerat kodbyte och till 10% regulatorisk logistik (avsändarregistrering). Den gyllene regeln: routa med feature flag, inte big bang, så att ni kan flytta trafiken gradvis och rulla tillbaka omedelbart.

Steg 1 — Starta den långsamma klockan: avsändar-ID:n

Registreringstiden är det enda ni inte kan komprimera, så gör det först. Lista varje avsändare ni använder (alfanumeriska namn, numeriska avsändare) och varje mottagarland, och registrera dem under Inställningar → Avsändare (POST /v1/senders). Kontrollera kraven per land programmatiskt:

curl "https://api.wezend.com/v1/sender/rules?country=DK" -H "X-API-Key: $WEZEND_API_KEY"

Länder med operatörsregistrering tar dagar till veckor — börja nu, koda sedan.

Steg 2 — Flytta med opt-outs

Om ni använder Twilios Advanced Opt-Out (eller spårar STOP själva): exportera de numren och importera dem som spärrningar. WeZend fångar upp STOP/START-nyckelord automatiskt framåt, men historiken måste följa med — en mottagare som sa STOP hos Twilio ska förbli stoppad hos WeZend.

Steg 3 — Koddiffen

Twilio (Node):

const twilio = require("twilio")(ACCOUNT_SID, AUTH_TOKEN);
await twilio.messages.create({
  to: "+4512345678",
  messagingServiceSid: "MG…",
  body: "Din kod är 493202",
  statusCallback: "https://api.yourapp.com/sms-status",
});

WeZend — ren HTTP, inget SDK behövs:

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 kod är 493202",
    category: "transactional",
    webhook_url: "https://api.yourapp.com/sms-status",
  }),
});

Skillnader som spelar roll:

  • Autentiseringen är en enda header (X-API-Key), inget SID/token-par. Nycklar roteras med ett 24-timmars nådfönster.
  • messagingServiceSid försvinner — routing till bästa leverantör per destination är plattformens jobb, med automatisk failover när en rutt försämras.
  • category: "transactional" markerar engångskoder och kvitton så att de går förbi marknadsföringstak och tysta timmar.
  • Status-callbacks kommer till din webhook_url med en X-WeZend-Signature-HMAC — verifiera den. Mappa statusarna: Twilios queued/sent/delivered/undelivered/failed motsvarar queued/sent/delivered/failed (undelivered och failed kommer båda som failed, med orsaken bifogad).

Steg 4 — Inkommande och tvåvägs

Rikta er svarshantering mot WeZend: sätt den inkommande webhook-URL:en, så POSTas inkommande meddelanden till er endpoint precis som Twilios MO-webhooks gjorde — dessutom landar de trådade i inkorgen, som ert supportteam får på köpet.

Steg 5 — Stegvis utrullning

Lägg leverantörsvalet bakom en flagga och flytta trafiken i etapper: 5% → verifiera leveransgraden mot Twilios baslinje → 50% → 100%. Håll Twilio-kontot vid liv (det kostar nästan ingenting i vila) tills varje webhook-konsument är migrerad och en hel faktureringsperiod har passerat. Om något fallerar under övergången visar Delivery Inspector operatörsorsaken i klartext — slut på att tyda fel 30008.

Hur är det med Verify, Voice och nummer?

  • OTP-flöden: skicka med category: "transactional"; lägg till fallbacken "ingen leverans på N sekunder → röstsamtal" som en tvåstegsresa.
  • Voice/TTS: voice-kanalen täcker automatiserade TTS-samtal och larm.
  • Dedikerade long codes/short codes: nummerportering hanteras från fall till fall — kontakta oss med era nummer och destinationer innan ni schemalägger cutover.

Go-live-checklista

  • Alla avsändar-ID:n registrerade per mottagarland (börja omedelbart — längst ledtid)
  • Twilios opt-out-listor exporterade och importerade som spärrningar
  • Sändningsanrop utbytta bakom en feature flag; category satt på transaktionell trafik
  • Webhook-konsumenten verifierar X-WeZend-Signature och mappar statusar
  • Inkommande webhook-URL satt; svar verifierade hela vägen
  • Trafiken flyttad 5% → 50% → 100% med leveransgrader jämförda i varje steg
  • Twilio-kontot hållet vid liv tills en hel faktureringsperiod passerat felfritt

Vanliga frågor om bytet från Twilio

Finns det ett SDK, eller anropar vi REST-API:et direkt?

API:et är ren JSON över HTTPS, utformat för att anropas direkt — exemplen ovan är kompletta. Det betyder också att en AI-assistent kan skriva integrationen åt er: hela vårt API är maskinläsbart på /llms-full.txt, och Bygg-med-AI-guiden visar arbetsflödet.

Twilio debiterar per segment — hur prissätter WeZend SMS?

Också per segment, per destination — så fakturerar operatörerna, och att låtsas annat döljer kostnader. Skillnaden är transparensen: GET /v1/account/pricing returnerar era exakta priser, dashboarden visar antal segment och pris innan ni skickar, och samma förbetalda saldo täcker alla kanaler.

Vad vinner vi utöver ett rakt av-API-byte?

Allt runt själva utskicket: automatisk leverantörsfailover, Delivery Inspector med felorsaker i klartext, en delad inkorg för svar och — när ni är redo — CDP, resor och e-post/WhatsApp/push på samma API och saldo. Ni migrerar en SMS-leverantör; ni landar i en plattform.

Kom igång gratis på minuter

  • Inget kreditkort
  • EU-datalagring
  • 6 kanaler, ett API
  • GDPR inbyggt

En plattform. Varje kundinteraktion.

Ersätt ditt lapptäcke av meddelande-API:er, CDP och automationsverktyg med en engagemangsplattform byggd för skala.

Inget kreditkort · EU-datalagring · 99,99 % drifttids-SLA