Order confirmations
The confirmation leaves the moment a checkout completes, from the sender ID your customers already recognize. No second dashboard, no re-registered number, and a record kept against the order.
See how it works →Your provider accounts stay yours. Connect the SMS, email and WhatsApp accounts you already pay for, send from one console or from your own backend, and see what happened to every message. On the SMS channel you also get the routing, failover, pacing and segment accounting that a single provider account does not do for you.
The messages are the ordinary ones — a confirmation, a code, a reminder, an alert. Here is what that looks like when the accounts stay yours and the sending runs through one place.
The confirmation leaves the moment a checkout completes, from the sender ID your customers already recognize. No second dashboard, no re-registered number, and a record kept against the order.
See how it works →Dispatch and delivery updates go out from the same identity, queued at the pace your provider grants. When someone asks where the parcel is, the log answers by number.
See how it works →Codes leave at each sender number’s own rate and every send leaves a record. Capacity grows by adding numbers to the account you already hold, not by splitting one shared allowance.
See how it works →Reminders are released on the schedule you set and queued to the rate the provider actually grants, so a morning’s worth of them leaves in order instead of in one burst.
See how it works →Reminders run over whichever connected account is healthy, and the outcome is recorded against the send — so chasing the payment and proving you sent the reminder are one action.
See how it works →When something breaks at 3am the alert has to leave, and you have to know that it did. Routing moves the send to a healthy account, and the delivery receipt reports what the carrier did with it.
See how it works →Four steps, the first time. After that it is just sending.
Open the console, choose your provider and paste the credentials from its dashboard. Nothing is ported: your numbers, short codes and sender IDs stay registered exactly where they are, and your provider keeps billing you directly.
Type it in the console, or send it from your own backend through the API. Verification traffic and marketing traffic are labeled the way you would label them in your own code.
The log keeps the provider’s response, the normalized error code and the later delivery receipt against every message. Search by recipient the next time someone says it never arrived.
A second connection raises your ceiling and stands in when the first stops accepting traffic. Order them by priority, weight the sender numbers within each, and both keep reporting into the same log.
Self-service connections to 6 SMS providers — Twilio, Vonage, Infobip, MessageBird, Plivo and AWS End User Messaging — each with the credential fields it actually needs listed on its own page. Underneath sits an SMS adapter library of 33 adapters, unlocked on request. On top of them:
Bind several providers and sender numbers to one route, each with a priority and a weight. If the primary provider rejects a send, the next one in line takes it — a provider having a bad hour degrades into slower sending instead of into silence.
Each connection carries the send rate you set, and we queue to it rather than firing as fast as the provider will accept. That queueing is what keeps an account out of throttle to begin with.
Provider callbacks are collected and normalized into one status per message, with the raw provider code kept alongside — so answering “did it land?” no longer means reconciling five webhook shapes.
A reply of STOP writes a suppression record, and a check runs before each marketing send, so someone who opted out stops receiving marketing. Enforcement is fail-closed by default for marketing traffic.
GSM-7 versus UCS-2 decides how many billable segments a message becomes. The encoding is set per connection and the segment count stays on the record, so your provider invoice can be reconciled line by line.
Every provider reports failures its own way. We normalize them and keep the raw code beside the normalized one, so the same failure reads the same way whichever account it came out of.
Both channels run on the same connection model as SMS: you link a provider account you already hold, send from the console, and keep the outcome on record.
Flat subscription, from $0 to $199 per month. Every tier includes unlimited sending — what varies is how many connections you can run, how fast you may submit, and how long logs are kept. Pro is $49 per month.
Because the accounts are yours, these stay yours as well — that is the point of connecting a provider rather than migrating to one.
What we own is the part we can be held to: handing each message to your provider correctly, queuing within your limits, backing off instead of treating a throttle as a hard failure, and reporting what came back with the raw provider code beside it.
Pricing questions — connections, submit rate, log retention, changing tiers — live with pricing, alongside the billing questions they come from.
Bring-your-own connections, sender identity, the send API, receipt webhooks, logs and tenant isolation — each on its own page.
Open features →Your own providers versus bought credits, one account versus several, calling a provider directly versus running a layer above it.
Open comparisons →Routing, pacing, receipt handling, opt-out rules and segment math, plus the technical docs.
Open guides →Connect a provider account you already hold and send from the console. The Free tier covers the first channel connection, so the whole path can be proven end to end before you choose a paid tier.