SMS Campaigns
SMS from a verification code to a bulk announcement. Define several operators; if the first one refuses, the second takes over — a code cannot fail to arrive because an operator ran out of credit.
- Multiple providers, automatic failover
- Segment and cost preview
- Consent check before sending
- Failover
- Ordered chain, up to 3 providers
- Duplicate guard
- No retry on an ambiguous result
What happens when the operator goes down?
Waiting works for email; it does not work for SMS. A verification code has an expiry, and a code that arrives ten minutes later is a code that never arrived. Any system running on a single provider becomes a system nobody can log into the moment that provider's API fails.
Its own screen, its own quota
SMS campaigns live on their own screen (/sms-campaigns) and the counter counts SEGMENTS, not messages. It works without an email package; the two quotas never mix.
Provider chain
You define an ordered list. If the first returns a temporary error, the second is tried. On an invalid number the chain STOPS — it is invalid at the second provider too; it also stops on a timeout, because the SMS may have gone out and a duplicate SMS is worse than a missing one.
A failing provider comes back on its own
After three consecutive errors a provider drops to the end of the chain; it is not removed. It returns to its place on the first successful send — no manual intervention.
Add providers from the panel
Adding an operator is not a release: URL, headers, body template and success rule are entered as a record.
Segment maths that is correct
Turkish characters push a message to UCS-2, where a segment ends at 70 characters instead of 160. Quota counts segments, not messages — no surprises on the invoice.
Real delivery reports
The operator DLR is bound to the message. SMS gives you what email cannot: did the handset actually receive it?
Consent gate
Commercial SMS passes through the consent ledger. A recipient without consent is blocked and appears in the report as "dropped for consent".
A working example, copied from the package.
$sb = new Signalbird\Sdk\Messaging\MessagingClient($apiKey);
$sb->sendSms([
'to' => '+905321112233',
'class' => 'transactional',
'body' => 'Your verification code: 481902',
]);- Failover
- Ordered chain, up to 3 providers
- Duplicate guard
- No retry on an ambiguous result
- Segment maths
- GSM-7 / UCS-2 aware
- Delivery
- Per message via DLR
- Number format
- E.164 (local formats converted automatically)
Can I use my own SMS provider?
Yes. A provider definition is configuration: API address, credential fields and success rule. No code change is needed.
Can the same SMS go out twice?
No. On an ambiguous result such as a timeout the system does not retry and honestly reports the status as unknown. A duplicate SMS costs both money and trust.
Is there a read receipt?
No — and there cannot be. The SMS protocol has no read receipt. It has delivery reports (DLR) and we give you those. If you put a link in the body, clicks can be measured.
Email Marketing
Everything from password resets to newsletters leaves from one place; we hold the DKIM key and the delivery report is on your screen.
ExploreAutomation Journeys
A journey follows behaviour, not a calendar: the next step is chosen by what the customer actually did.
ExploreConsent Compliance
Consent is checked before a commercial message goes out; recipients without it drop from the batch and the decision is recorded.
ExploreSMS Campaigns switches on today
Opening an account takes minutes. Add the module, set its limit, start using it.