Customer.io
Customer.io is a messaging automation platform. It has no built-in SMS channel for AlphaSMS, but every Customer.io plan can call an external API with the Send and receive data action (also available as the Webhook channel in broadcasts).
This guide shows how to send SMS from a Customer.io campaign, broadcast or transactional message through the AlphaSMS JSON API, and how to receive delivery reports back.
| Direction | How it works |
|---|---|
| Customer.io → AlphaSMS | POST webhook action to /api/json.php with type: sms |
| AlphaSMS → your system | Delivery report to the URL you pass in the hook parameter |
Before you start
- An active AlphaSMS account with Activate API enabled — see API settings.
- An API key (step 1 below).
- An approved Sender ID (alphanumeric sender name) — see Sender ID. AlphaSMS does not use a "from" phone number: the sender is a registered alphanumeric name (3 to 11 Latin letters and digits).
- Customer.io profiles that contain a phone attribute in international format
(for example
+380971234567or380971234567).
Step 1. Create an API key
In the AlphaSMS cabinet open Settings → API. The table lists your keys with their creation date, expiration date, state, comment and IP whitelist.
Click ADD, type a comment (for example Customer.io), tick Active and press EXECUTE.
The full key is displayed once, right after it is created. Copy it now — afterwards the table shows only the first characters of the key.
Leave IP whitelisting empty for a key used by Customer.io. Customer.io sends webhooks from a
large, changing pool of egress addresses, so a fixed IP list will start rejecting your traffic
with Access denied - firewall. Use a dedicated key for Customer.io instead, so that you can
revoke it without touching your other integrations.
You can verify the key immediately with any HTTP client:
curl -X POST https://your-cabinet-domain/api/json.php \
-H 'Content-Type: application/json' \
-d '{"auth":"YOUR_API_KEY","data":[{"type":"balance"}]}'
{"success":true,"data":[{"success":true,"data":{"amount":10.5,"currency":"UAH"}}]}
An invalid or disabled key returns {"success":false,"error":"Access denied"}.