Twilio · SMS and voice
Twilio integration: SMS and voice from your system
Twilio integration means your backend sends SMS or starts a call via Twilio, and status — delivered, undelivered, answered — comes back as a webhook. Twilio wins on one global API for SMS, voice and WhatsApp. In Denmark a local gateway often wins on price per SMS and delivery to Danish numbers. See [GatewayAPI](/articles/integrations/gatewayapi-integration). One-time codes, “your technician is 20 minutes away” and two-way YES to a slot are use cases that hold. Voice as your main PBX is not, in the first version. Sender id, stop-text on marketing and idempotency must be built regardless of vendor.
Secrets stay out of git. Never a CPR number in the SMS body. Never a token in the query string. The same discipline as Vonage and Plivo. Automation that sends the right message.
Use cases that hold
- One-time code with rate limit, expiry and lockout
- “Your technician is 20 minutes away”
- Two-way: the customer replies YES to a slot
- Voice: ring-out on an alarm — not as your main PBX in version one
Twilio
- Global API for SMS + voice + WhatsApp
- You already have a Twilio account
- Calls are part of the product
GatewayAPI
- Mostly Danish SMS at volume
- Price and delivery to DK numbers
- You do not need voice this year
What you build regardless of vendor
Sender
Approved sender id or number. Not an invented company name.
Send
Idempotency and retry. The same case must not get three codes.
Status
Webhook writes delivered / failed on the user or the case.
Stop
Marketing has opt-out. Transaction has a log. Do not mix them.
What to do now
Write whether you need voice this year, or only Danish SMS. Voice + global: Twilio. DK SMS at volume only: compare GatewayAPI on price and delivery. Tell us the mix. Package prices.
FAQ about Twilio integration
Twilio or GatewayAPI?
Global + voice: Twilio. Mostly Danish SMS at volume: start by comparing GatewayAPI on price and delivery.
Can Twilio be our switchboard?
Not as version one. Start with alarm calls or verify. A full PBX is its own project.
Where does the one-time code live?
Hashed, with expiry and lockout, on your side. Not in the SMS log in clear text longer than needed.
May we send a CPR number in an SMS?
No. Never. Point to the case in your system.