Connect 23 Telecom to Klaviyo
Copy page
| Setup type | Webhook · guided activation |
| Setup time | About 15 minutes |
| Sends SMS | Yes |
| Delivery status in Klaviyo | No — check 23 Telecom |
| Who can configure | Klaviyo Manager, Admin or Owner (2FA required) |
What this connection does
Section titled “What this connection does”A Klaviyo Webhook action inside a Flow calls the 23 Telecom API to send an SMS. Klaviyo records the HTTP status; carrier delivery reports stay in 23 Telecom.
Before you start
Section titled “Before you start”- A Manager, Admin or Owner role with two-factor authentication enabled (Klaviyo requires it for webhooks).
- An active workspace, an
approved sender ID and an E.164 test number, e.g.
+447911123456. - A restricted 23 Telecom API key with only
sms.send— start with a sandboxsk_test_key (Sandbox & test mode).
POST
/api/v1/sms/send-individual
· Permission: sms.send
Connect 23 Telecom
Section titled “Connect 23 Telecom”-
Open your Flow, drag in a Webhook action.
-
Set the Destination URL to
https://restlink23telecom.com/api/v1/sms/send-individual(HTTPS only — no self-signed certificate and no redirects). -
Under Add Headers, add
Content-Type: application/json, your secretX-API-Key, andIdempotency-Key: klaviyo-sandbox-001for this one-off sandbox test. Do not reuse that value for another message. The production idempotency mapping is confirmed during managed activation. -
Add the JSON Body, then Save.
Request body
Section titled “Request body”{ "messages": [ { "to": "+447911123456", "message": "Your message", "sender_id": "YourBrand" } ]}Map to and message to your profile/event variables.
Field mapping
Section titled “Field mapping”| Klaviyo field | Value |
|---|---|
| Method | POST |
| Destination URL | https://restlink23telecom.com/api/v1/sms/send-individual |
Content-Type | application/json |
X-API-Key | your restricted 23 Telecom key (sandbox first) |
Idempotency-Key | one-off value for sandbox; production mapping supplied during managed activation |
messages[0].to | recipient phone (E.164) |
messages[0].message | your message content |
messages[0].sender_id | your approved sender ID |
Send a test
Section titled “Send a test”Use a separate test Flow or test profile with your sk_test_ key. The
Webhook card → View All Activity shows the transport status, but Klaviyo does
not expose the response body. After the test, find the request by phone number and
time in 23 Telecom List messages, then confirm that the sandbox
message exists with the expected recipient and a non-empty client_message_id.
Production activation
Section titled “Production activation”Klaviyo live traffic uses managed activation because Flow webhooks route on the transport status and production retries need a stable per-event idempotency header. Your 23 Telecom team confirms the strict integration endpoint with that header, or an adapter that validates the response body, before enabling the workspace.
When the retry-safe route is confirmed, the activation package includes the approved production URL or adapter mapping, the restricted key and a one-message launch check. Apply that configuration — rather than changing only the API key on the sandbox batch template — and then publish the Flow.
Verify the result
Section titled “Verify the result”Accepted means queued. Read carrier delivery in Message status or Statistics, or add a live delivery webhook.
Troubleshooting
Section titled “Troubleshooting”| Response | Cause & fix |
|---|---|
400 IDEMPOTENCY_KEY_REQUIRED | Add a stable per-event Idempotency-Key header; if the Flow cannot provide one, contact 23 Telecom for managed activation |
401 INVALID_API_KEY | Wrong or disabled key in the secret header |
403 NO_SMS_ACCESS | SMS not enabled — contact 23 Telecom |
429 RATE_LIMIT_EXCEEDED | Sending faster than your budget — slow the Flow |
Need help?
Section titled “Need help?”- Flow, webhook, roles or 2FA — Klaviyo support.
- API key, sender ID, accepted-but-not-delivered — your 23 Telecom account manager, or the contact form.
Official platform documentation
Section titled “Official platform documentation”Last verified: 16 July 2026.