SMS on Campaign Match sends a text message when a campaign matches a visitor — to the
visitor themselves, if their phone number was captured, or to a fixed number such as a sales line. Personyze fields go
into the text exactly as they go into an email.
It is an ordinary action, so it carries the ordinary
targeting, the ordinary reporting, and the ordinary
caps. What is different is that you bring the sender.
the Personyze mail server because one exists; there is deliberately no house SMS sender. A text from a number the
recipient cannot reply to, billed to us, with a STOP arriving somewhere that means nothing to the account that sent it,
is worse than no text at all. An action with no provider chosen does not send — it errors.
Connecting a provider
On the action, under Send through → Add provider. Six are set up ready:
| Provider | What it calls the credentials | Worth knowing |
|---|---|---|
| Twilio | Account SID · Auth Token | Both are on the front page of the console. The sender can be a number you own, or a Messaging Service SID (it starts with MG). |
| Vonage | API key · API secret | On the dashboard home page under API settings. Vonage lets the sender be a name rather than a number in many countries — but not in the US or Canada, where it must be a number you own. |
| Plivo | Auth ID · Auth Token | |
| Telnyx | API key | One credential, so the form shows one field. |
| MessageBird (Bird) | Access key | Use a live key. A test key is accepted and returns success without sending anything. |
| Sinch | Service plan ID · API token | The host is regional. Change it here if your service plan lives outside the EU. |
Every provider names the same two secrets differently — Account SID and Auth Token, API key and API secret,
Auth ID and Auth Token — so the form asks for them by that provider’s own names rather than
“username” and “password”. The API host is filled in for you and stays editable, because
several providers have regional hosts.
Who it goes to
- Use the visitor’s number — whatever was captured onto their profile.
- A fixed number — a sales line, an on-call phone, a shared inbox.
Numbers must carry the country code: +15555550123. So must the sender.
What one message costs
A text is billed by the segment, and the rules are not guessable from looking at the message:
- If every character is in the standard SMS alphabet, one segment holds 160 characters.
- A single character outside it — a curly quote, an em dash, an emoji, any non-Latin script
— switches the whole message to the wider encoding, where one segment holds 70. Not 70 for that
character and 160 for the rest: 70 for all of it. - Splitting is not free either. Concatenated parts each give up room to a header, so a two-part message holds
153 per part rather than 160 — or 67 in the wider encoding.
alphabet, so every message now holds 70 characters instead of 160”, and
“{n} left before this becomes another message”. A smart quote pasted out of a word
processor can double the bill without changing anything you can see. If a message is suddenly two parts, that
is almost always why.
Replies, and STOP
Point your provider’s “a message comes in” webhook at Personyze, on the number you
send from. Then:
- STOP — and stopall, unsubscribe, cancel, end, quit, optout — opts that number
out for your account. - START withdraws a STOP, and only that. Somebody texting a number they never subscribed to has not
consented to anything, so it is not treated as an opt-in. - Personyze sends no auto-reply. The carrier sends the STOP confirmation itself, and a second message
on top of it would be redundant — and in some countries another billable message to somebody who just asked you to
stop.
A word is matched against the whole message, never as a substring: “please don’t
stop sending these” contains the word and means the opposite, and reading it as a STOP would silence somebody
who asked for more — a mistake nobody ever reports, because the symptom is silence.
campaign keeps queueing, the provider keeps refusing, and the log fills with failures nobody can read as “this
person asked us to stop”. Recording the opt-out in Personyze is what makes it visible, and portable to a
provider that does not do it for you.
When one does not arrive
Delivery failures come back on the send itself and are written onto the campaign log — the inbound webhook is
for replies, not delivery reporting. The usual causes: no country code, a sender the destination country will not accept
(a sender name into the US, for instance), a test key that reports success, or a number that has opted out.
Related
- Emails sent by Personyze — the same shape, for email.
- Web push — the other off-site channel.
- Lead form — where a phone number usually gets captured.
- Targeting rules — what decides a match.