Skip to content

Connect 23 Telecom to Iterable

Copy page
Setup typeWebhook · self-service
Setup timeAbout 15 minutes
Sends SMSYes
Delivery status in IterableNo — check 23 Telecom
Who can configureIterable user with the Manage Integrations permission

An Iterable Journey Webhook calls the 23 Telecom API to send an SMS from a journey step. Iterable records whether it got an HTTP 200; carrier delivery reports stay in 23 Telecom.

  • The Manage Integrations permission. Add X-API-Key as a Secure custom header so Iterable protects the saved value, and use a dedicated restricted key.
  • 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. Go to Integrations → Journey Webhooks → New Webhook → Custom and set the method to POST.

  2. Set the URL to https://restlink23telecom.com/api/v1/sms/send-individual and add headers Content-Type: application/json and your secret X-API-Key. Mark X-API-Key as Secure.

  3. Add the custom JSON body. For the one-off sandbox test, add Idempotency-Key: iterable-sandbox-001; do not reuse that value for another message. The production idempotency mapping is confirmed during activation.

  4. In the journey, add a Call Webhook tile that points at this webhook.

  5. Run a test journey against one test profile.

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

Map to and message to your journey/profile fields.

Iterable fieldValue
MethodPOST
URLhttps://restlink23telecom.com/api/v1/sms/send-individual
Content-Typeapplication/json
X-API-Keyyour restricted 23 Telecom key (sandbox first); mark the header Secure
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

Run a separate test journey or test profile with your sk_test_ key. For a manual sandbox test set Idempotency-Key to the one-off value iterable-sandbox-001 and use it for that test only.

Live traffic uses managed activation because Iterable routes on the HTTP status and production retries require per-event idempotency. Your 23 Telecom team confirms a supported retry-safe path: either the strict integration endpoint with a stable header mechanism verified in your tenant, or an adapter that validates the response body.

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 journey.

Accepted means queued. Read carrier delivery in Message status or Statistics, or add a live delivery webhook. Delivery back inside Iterable needs a separate Iterable event/API update.

ResponseCause & fix
400 IDEMPOTENCY_KEY_REQUIREDAdd the Idempotency-Key header
401 INVALID_API_KEYWrong or disabled key in the secret header
403 NO_SMS_ACCESSSMS not enabled — contact 23 Telecom
409 IDEMPOTENCY_KEY_REUSEDSame key with a different body — use the stable identifier for the new event
  • Journey, webhook or permissions — Iterable support.
  • API key, sender ID, accepted-but-not-delivered — your 23 Telecom account manager, or the contact form.

Last verified: 16 July 2026.