Skip to content

Connect 23 Telecom to Klaviyo

Copy page
Setup typeWebhook · guided activation
Setup timeAbout 15 minutes
Sends SMSYes
Delivery status in KlaviyoNo — check 23 Telecom
Who can configureKlaviyo Manager, Admin or Owner (2FA required)

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.

  • 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 sandbox sk_test_ key (Sandbox & test mode).

POST  /api/v1/sms/send-individual  · Permission: sms.send

  1. Open your Flow, drag in a Webhook action.

  2. Set the Destination URL to https://restlink23telecom.com/api/v1/sms/send-individual (HTTPS only — no self-signed certificate and no redirects).

  3. Under Add Headers, add Content-Type: application/json, your secret X-API-Key, and Idempotency-Key: klaviyo-sandbox-001 for this one-off sandbox test. Do not reuse that value for another message. The production idempotency mapping is confirmed during managed activation.

  4. Add the JSON Body, then Save.

Body
{
"messages": [
{ "to": "+447911123456", "message": "Your message", "sender_id": "YourBrand" }
]
}

Map to and message to your profile/event variables.

Klaviyo fieldValue
MethodPOST
Destination URLhttps://restlink23telecom.com/api/v1/sms/send-individual
Content-Typeapplication/json
X-API-Keyyour restricted 23 Telecom key (sandbox first)
Idempotency-Keyone-off value for sandbox; production mapping supplied during managed activation
messages[0].torecipient phone (E.164)
messages[0].messageyour message content
messages[0].sender_idyour approved sender ID

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.

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.

Accepted means queued. Read carrier delivery in Message status or Statistics, or add a live delivery webhook.

ResponseCause & fix
400 IDEMPOTENCY_KEY_REQUIREDAdd a stable per-event Idempotency-Key header; if the Flow cannot provide one, contact 23 Telecom for managed activation
401 INVALID_API_KEYWrong or disabled key in the secret header
403 NO_SMS_ACCESSSMS not enabled — contact 23 Telecom
429 RATE_LIMIT_EXCEEDEDSending faster than your budget — slow the Flow
  • Flow, webhook, roles or 2FA — Klaviyo support.
  • API key, sender ID, accepted-but-not-delivered — your 23 Telecom account manager, or the contact form.

Last verified: 16 July 2026.