Ir al contenido principal

Sending messages

Quick send to one number, a group or a pasted list, scheduled sends, the queue and its statuses, automatic and manual retries, and the night and Sunday pauses that hold campaigns only.

Every SMS that leaves your gateway follows the same path: it enters the queue, the gateway chooses a phone and a SIM that can send it right now, the phone hands it to the carrier, and its status follows what happens next. This page explains how to send, how to follow what you sent, and what the gateway does on its own when something goes wrong.

The ways to send

Way Where Typical use
Quick send Quick send screen One message to one number, a small group or a pasted list
Reply Conversations screen Answer a correspondent in their thread
Campaign Campaigns screen One message to a whole group, paced, with statistics
API POST /messages Your own software sends: order confirmations, codes, reminders
Automatic reply Rules screen and Settings > Auto-responder The gateway answers by itself when a message matches a rule

They all share the queue, the routing, the quotas and the retries described below. Campaigns are the only traffic held by the night and Sunday pauses.

See also: Conversations, Campaigns, Automation and the API guide.

Quick send

Quick send sends one message, now or later, to one or several recipients.

Choose the recipients

Pick one of the three modes under Recipients:

Mode What you enter
Single number One number in international format, for example +261341234567
Contact group A group of your directory. Contacts who opted out are left out automatically
Pasted list One number per line, copied from a spreadsheet or another tool. Commas and semicolons also separate numbers

Numbers are read in international format: a leading + followed by the country code. A number written with 00 instead of + is accepted and converted, and spaces, dots, dashes and parentheses are ignored. A number without its country code (0341234567) is not recognised.

As you type, the screen counts valid recipients and the lines ignored, format not recognised. The same number pasted twice is sent only once.

In Contact group mode, the screen reads the whole group before you send, however many members it has, and shows the real number of recipients, plus the opted-out contacts left out. The Send button waits until the count is done. If the group cannot be read, a message says so with a Retry button.

Limits. A quick send takes at most 500 recipients, a whole group included. Beyond that, the screen says so (for a group: "This group has 1,250 contacts, more than the 500 recipients a quick send takes"), refuses to send and suggests a campaign, which is built for large sends: it paces the traffic, respects the night pause and gives you statistics. Nothing is ever sent to only part of a group.

Write the message

The counter under the message shows the number of characters, the number of SMS it will cost and the encoding:

Encoding When One SMS holds Split into parts of
GSM-7 Only plain Latin letters, digits and common punctuation 160 characters 153 characters
Unicode As soon as one character is outside that set (emoji, some accented letters, non-Latin scripts) 70 characters 67 characters

A long message is never refused: it is split into several SMS that the recipient's phone joins back together. But each part is billed by your carrier and counts against the daily quota of the SIM. The screen warns you beyond six SMS per recipient, and shows the total, for example "3 messages, 6 SMS in total".

Under the message, the Shorten and track links switch (off by default) replaces every address starting with http:// or https:// by a short link served by your gateway, which counts the clicks. The replacement happens when you click Send; the same address written twice gets one link, shared by all the recipients. The screen tells you how many links will be made and how the length changes (characters and SMS per recipient, before and after), and the counter and the total cost are computed on the text with its short links. The links then appear in Short links. See Short links.

Choose the phone and the time

Field Default Effect
Sending device Automatic Automatic lets the gateway choose the phone and the SIM (see Routing). Naming a phone forces it: the message leaves from that phone or not at all
Send date and time Empty (now) Schedules the send. The date is read in the platform time zone, shown under the field, and must be in the future

Click Send. The confirmation "N messages accepted by the gateway" means the messages are in the queue, not yet delivered. Recent sends, at the bottom of the screen, lists your last outbound messages with their live status.

A scheduled message waits in the queue with the status Queued and the mention "Scheduled for" its date. It leaves at that time, day or night: the night pause does not apply to it.

The queue

The Queue screen lists the messages and lets you relaunch those that did not leave. It opens filtered on Failed messages, since those are the ones that need you.

Control Use
Status filter Show one status, or all
Device filter Show the messages of one phone
Direction filter Outbound, Inbound, or both
Search Find a message by words of its content
Retry the selection Tick messages and relaunch them in one go
Export this view as CSV Download what the current filters show

The columns show the Status, the Recipient, the Device that carried the message, the number of Attempts, the creation date and the Reason of a failure or a cancellation.

The Reason is a plain sentence in your language, the same one the conversation and the activity log show, for example "The SIM had no network signal." or "Withdrawn before leaving: its campaign was cancelled.". Hover it to see the technical code (NO_SERVICE, CAMPAIGN_CANCELLED...), the one the API returns in errorCode. A code the dashboard does not know yet, reported by a newer version of the phone app, is shown as "The phone or the gateway reported an error (CODE).".

When messages are waiting for a SIM daily quota, a banner at the top says how many, with an Edit quotas link to the Devices screen.

A Queued message that waits for the pace of its SIMs says so under its status, with the time of its next try: "Waiting for the SIM cadence, next try at 14:32" (the minimum interval) or "Waiting for the per-minute limit of the SIMs". Nothing is wrong: it leaves on its own at that time.

The statuses

Status What it means
Queued Accepted, waiting for its turn, for its scheduled time, for a new attempt, or for the pace of its SIM
Dispatched Handed to a phone, which has not yet confirmed that the network took it
Sent The phone confirms the carrier accepted the SMS
Delivered The carrier confirms the SMS reached the recipient's phone
Failed The message gave up. The Reason column says why. It can be relaunched
Quota reached Every SIM that could carry it has spent its daily quota. It leaves at midnight UTC, or as soon as a quota is raised
Paused A campaign message held by the night or Sunday pause. It leaves when the pause ends
Cancelled Withdrawn before leaving, for example because the recipient opted out in the meantime. It cannot be relaunched

Sent is not Delivered. "Delivered" depends on a delivery receipt from the recipient's carrier. Some carriers do not send them, or send them late: a message can stay Sent although it was received. A negative receipt, on the other hand, is final: the message moves to Failed.

Retries

When a send goes wrong, the gateway does not give up at once. What it does depends on the cause:

What happened What the gateway does Counts as an attempt
The phone reports that the network refused the SMS Waits, then tries again, possibly from another phone Yes
The phone did not confirm within the acknowledgement timeout Puts the message back in the queue and tries again Yes
No phone can send right now (all offline or out of the pool) Waits, then tries again Yes
The phone carrying the message dropped offline Puts the message back in the queue at once, for another phone No
Every usable SIM reached its daily quota Moves it to Quota reached until midnight UTC or until a quota is raised No
Every usable SIM reached its per-minute limit Keeps it Queued and sends it the next minute No
No usable SIM has waited its minimum interval since its last SMS Keeps it Queued and sends it as soon as the first SIM is free No
A strict routing rule matches and none of its SIMs can send Keeps it Queued and tries again every minute No
The carrier returns a negative delivery receipt Failed, final: the carrier gave its verdict No new attempt
The recipient opted out after the message was queued Cancelled No

When the attempts run out, the message moves to Failed. The number of attempts and the waits between them are set in Settings > Sending (see Options).

In the API, the errorCode field of a failed or cancelled message gives the reason. The Reason column shows the same codes as sentences:

errorCode Set by Meaning
DEVICE_OFFLINE Gateway No phone could carry the message before its attempts ran out
MAX_ATTEMPTS_REACHED Gateway Every attempt was spent, typically on phones that never confirmed
DEVICE_ERROR Gateway The phone reported a failure without saying why
DELIVERY_FAILED Gateway The carrier returned a negative delivery receipt
CAMPAIGN_CANCELLED Gateway Cancelled: the campaign it belonged to was cancelled before it left
CONTACT_BLACKLISTED Gateway Cancelled: the recipient opted out before it left
NO_SERVICE Phone The SIM had no network signal
RADIO_OFF Phone The phone's mobile radio is off (airplane mode)
GENERIC_FAILURE Phone The carrier refused the SMS, most often for lack of credit
NULL_PDU Phone The phone could not encode the message
RADIO_ERROR_<n> Phone Another radio error; n is the error number Android gave
NO_SMS_MANAGER Phone This phone cannot send SMS, for example without a SIM
INVALID_ARGUMENT Phone The phone refused the message as malformed, often a wrong number
PERMISSION_DENIED Phone The app is not allowed to send SMS: grant the permission on the phone
ORDER_EXPIRED Phone The phone received the order too late to send it

Treat any other code as a generic failure: a newer version of the phone app may add some.

Relaunch by hand

A message that is Failed, Quota reached or Paused can be relaunched:

  • from the Queue, by ticking it and clicking Retry the selection;
  • from its conversation, with Retry under the failed message;
  • through the API, with POST /messages/{messageId}/retry.

A relaunched message leaves at once, without waiting for the next scheduled attempt. It is refused if the recipient opted out in the meantime. Delivered, Sent and Cancelled messages cannot be relaunched: that would send them twice.

SIM cadence: a minimum interval between two SMS

You can make each SIM wait a minimum number of seconds between two SMS, in Settings > Sending, field Minimum interval between two SMS per SIM, in seconds. A SIM that sends at a steady, human pace looks less like a spam source to its carrier than one that fires a burst.

How it works.

  • It applies to every SMS, whatever its source: API, quick send, campaign, conversation reply, automatic reply, alert by SMS, and retries.
  • The interval is counted from the moment the gateway hands the SMS to the phone, not from the phone's confirmation or the delivery receipt.
  • You never have to wait for anything: you can send 50 messages at once, they are all accepted, wait in the queue as Queued, and leave on their own, one after the other, as soon as their SIM is free. The Queue screen shows them as "Waiting for the SIM cadence" with the time of their next try.
  • Each SIM has its own clock. A SIM that waits never holds back another SIM, not even the second SIM of the same phone: with two SIMs and 30 seconds, two SMS leave every 30 seconds.
  • A message addressed to a given phone (deviceId) keeps it while it waits.
  • Waiting spends no attempt. A retry after a failure also waits for the interval if needed.
  • The acknowledgement timeout starts when the SMS is handed to the phone, so a message waiting for its SIM never times out in the queue.
  • The gateway checks the queue every two seconds: a message leaves within about two seconds after the end of the interval.
  • Messages waiting for their SIM are sent in order. There is no priority: an alert waits like any other SMS, but a message that arrives while others wait takes the next free slot.

A SIM with its own value. In Devices, the pencil next to a SIM opens a dialog where Own interval for this SIM replaces the setting for that SIM only (Superadmin). 0 means no wait on that SIM, even when the setting asks for one; turning the switch off makes the SIM follow the setting again. A new value applies to the next SMS; messages already waiting keep their time.

How it combines with the other limits. Each limit must allow a send; the strictest one wins.

Limit Where What it caps
Minimum interval between two SMS per SIM Settings > Sending, or per SIM in Devices The gap between two SMS on one SIM
Messages per minute and per SIM Settings > Sending The number of SMS on one SIM in one minute
Pace and Wave size of a campaign Each campaign How fast the campaign releases its messages, all SIMs together
Daily quota of the SIM Devices The number of SMS on one SIM in one day (midnight UTC)

Examples: with an interval of 10 seconds, a SIM sends at most 6 SMS a minute, so a per-minute limit of 6 or more changes nothing, and a lower one (say 3) still applies. A campaign at 60 messages per minute on two SIMs with an interval of 30 seconds actually sends 4 per minute: the interval is the limit. The daily quota still counts every SMS.

Set to 0, the default, the interval adds no wait: the gateway behaves as before.

Night and Sunday pauses: campaigns only

You can forbid campaigns from sending at night and on Sundays, in Settings > Sending, under Night pause for campaigns. A campaign message due during a pause moves to Paused and leaves automatically when the pause ends.

These pauses only hold campaigns. A quick send, an API call, a conversation reply or an automatic reply leaves at any hour: someone is waiting for it. A campaign is the only traffic nobody asked for at that moment, and a promotional SMS at three in the morning costs you more goodwill than it brings.

The hours are read in the platform time zone, set in the same tab. This time zone also governs the time of scheduled sends and how dates are shown in the dashboard. It is not the time of each phone: the header shows the local time of your phones and warns you when one lives at another hour (see Devices).

Follow the activity

The Dashboard shows how many messages left and arrived, in the Activity over the last 24 hours chart. Choose the period with the 24 h, 7 d, 30 d and 90 d buttons: the chart then shows one bar per hour, per six hours, or per day. Each bar stacks the outbound messages and the inbound ones, and the card gives the totals of the period. Hover or tap a bar for the exact times of the slot.

A message counts at its creation (when it was queued for an outbound one, when the phone received it for an inbound one), whatever its status since. The counts cover every message of the period, not a sample. Slots follow the platform time zone, daylight saving included. The chart refreshes every minute.

Through the API, GET /messages/stats?period=24h (or 7d, 30d, 90d) returns the same counts. It never returns a message text or a number.

Options

The sending settings are in Settings > Sending, reserved to a Superadmin, and apply to the next message without any restart.

Option Default Allowed values Effect
Retry on failure On On or off Off, the first failure is final: every message gets a single attempt, whatever Maximum number of attempts says
Maximum number of attempts 4 1 to 10 How many times a message is tried before Failed. Only the causes marked "Yes" in the retries table spend an attempt
Waits between attempts, in seconds, comma separated 30, 120, 600, 3600 1 to 10 values, each from 1 second to 86,400 (one day) The first value is the wait after the first failure, the second after the second, and so on. The last value applies to every attempt beyond the list
Device acknowledgement timeout, in seconds 120 10 to 3,600 How long a Dispatched message waits for the phone's confirmation before going back to the queue. Too short, and slow phones see their messages retried (and possibly sent twice); too long, and a silent phone holds messages longer
Messages per minute and per SIM 0 (no limit) 0 to 600 Caps the pace of each SIM. A SIM at its limit is skipped by routing and the gateway uses another; if all are at their limit, the message waits for the next minute without spending an attempt. A burst of hundreds of SMS in a minute is what carriers flag first, well before the daily volume
Minimum interval between two SMS per SIM, in seconds 0 (no wait) 0 to 3,600 The least time each SIM waits between two SMS, counted from the moment the SMS is handed to the phone. Messages wait in the queue and leave on their own; a busy SIM never holds back another one. A SIM can have its own value in Devices. See SIM cadence
Time zone UTC Any time zone of the list Hours of the night pause, meaning of Sunday, time of scheduled sends, display of every date in the dashboard. It does not move the daily quota reset, which stays at midnight UTC
Night pause for campaigns Off On or off On, campaign messages due between From and To are held as Paused
From, To 20:00, 07:00 Hours and minutes; the pause may cross midnight, the two must differ Start and end of the night pause, in the platform time zone
Pause campaigns on Sunday Off On or off On, campaign messages are held the whole Sunday, from midnight to midnight in the platform time zone

Other settings that change what you send:

  • the daily quota, the in service switch and the own interval of each SIM, in Devices (see Devices);
  • the routing rules, which choose the SIM by number prefix (see Routing).

API fields of POST /messages

Field Default Effect
to Required One number, or a list of 1 to 500 numbers in international format
body Required unless templateId The text. No length limit: a long text is split into several SMS
templateId, variables None Use a saved template and fill its variables (see Templates)
deviceId None (automatic) Forces the phone. The message leaves from it or not at all; the routing rules are not consulted
simSlot None (automatic) 0 or 1: the SIM of that phone
scheduledAt None (now) Date and time of the send, in the future
shortenLinks false true replaces every http:// or https:// address of the text with a tracked short link before queuing, like the Shorten and track links switch (see Short links)

The Idempotency-Key header protects a single-recipient send against being queued twice when your software replays a request after a network error.

The request is checked as a whole before anything is queued: if one recipient is invalid or opted out, the request is refused and nothing is sent, so you always know what to replay.

Troubleshooting

Symptom What to check
Messages stay Queued Is a phone Online in Devices, and in the routing pool? Is it a scheduled message? Does a strict routing rule wait for a phone that is offline?
Messages stay Queued with "Waiting for the SIM cadence" The minimum interval between two SMS per SIM is on. They leave on their own, one per SIM and per interval. Lower it in Settings > Sending, or give a SIM its own value in Devices
Messages go to Quota reached Every usable SIM spent its daily quota. Raise a quota in Devices, or wait for midnight UTC
Campaign messages are Paused The night or Sunday pause is on. They leave at the end of the pause
Messages stay Dispatched for a while, then retry The phone does not confirm: check its connection and its battery settings
Many Failed with NO_SERVICE or GENERIC_FAILURE The SIM has no signal, no credit, or its carrier refuses: check it in the phone
Messages stay Sent, never Delivered The carrier sends no delivery receipts. The message was most likely received
"This number has opted out." The recipient sent STOP, or was opted out by hand. See Contacts and groups
"The scheduled time must be in the future." The date is in the past in the platform time zone. Check the zone shown under the field

Buscar en la documentación

Escriba algunas palabras y elija una página.