Aller au contenu principal

Envoyer des messages

Envoi rapide vers un numéro, un groupe ou une liste collée, envois programmés, la file d'attente et ses statuts, les nouvelles tentatives automatiques et manuelles, et les pauses de nuit et du dimanche réservées aux campagnes.

Chaque SMS qui quitte votre passerelle suit le même chemin : il entre dans la file d'attente, la passerelle choisit un téléphone et une SIM capables de l'envoyer tout de suite, le téléphone le remet à l'opérateur, et son statut suit ce qui se passe ensuite. Cette page explique comment envoyer, comment suivre ce que vous avez envoyé, et ce que la passerelle fait d'elle-même quand quelque chose se passe mal.

Les façons d'envoyer

Façon Usage typique
Envoi rapide Écran Envoi rapide Un message vers un numéro, un petit groupe ou une liste collée
Réponse Écran Conversations Répondre à un correspondant dans son fil
Campagne Écran Campagnes Un message à tout un groupe, cadencé, avec statistiques
API POST /messages Vos logiciels envoient : confirmations de commande, codes, rappels
Réponse automatique Écran Règles et Paramètres > Auto-répondeur La passerelle répond d'elle-même quand un message correspond à une règle

Toutes partagent la file, le routage, les quotas et les nouvelles tentatives décrits plus bas. Les campagnes sont le seul trafic retenu par les pauses de nuit et du dimanche.

Voir aussi : Conversations, Campagnes, Automatisation et le guide de l'API.

Envoi rapide

L'Envoi rapide envoie un message, immédiatement ou plus tard, à un ou plusieurs destinataires.

Choisir les destinataires

Choisissez l'un des trois modes sous Destinataires :

Mode Ce que vous saisissez
Numéro unique Un numéro au format international, par exemple +261341234567
Groupe de contacts Un groupe de votre répertoire. Les contacts désinscrits sont écartés automatiquement
Liste collée Un numéro par ligne, copié d'un tableur ou d'un autre outil. Les virgules et les points-virgules séparent aussi les numéros

Les numéros se lisent au format international : un + suivi de l'indicatif du pays. Un numéro écrit avec 00 au lieu de + est accepté et converti, et les espaces, points, tirets et parenthèses sont ignorés. Un numéro sans indicatif (0341234567) n'est pas reconnu.

Pendant la saisie, l'écran compte les destinataires valides et les lignes ignorées, format non reconnu. Un même numéro collé deux fois n'est envoyé qu'une fois.

En mode Groupe de contacts, l'écran lit le groupe entier avant l'envoi, quel que soit son nombre de membres, et affiche le nombre réel de destinataires, ainsi que les contacts désinscrits écartés. Le bouton Envoyer attend la fin du comptage. Si le groupe ne peut pas être lu, un message le signale avec un bouton Réessayer.

Limites. Un envoi rapide accepte 500 destinataires au maximum, groupe entier compris. Au-delà, l'écran le signale (pour un groupe : « Ce groupe compte 1 250 contacts, plus que les 500 destinataires d'un envoi rapide »), refuse l'envoi et propose une campagne, conçue pour les gros envois : elle cadence le trafic, respecte la pause de nuit et vous donne des statistiques. Rien n'est jamais envoyé à une partie seulement d'un groupe.

Rédiger le message

Le compteur sous le message indique le nombre de caractères, le nombre de SMS qu'il coûtera et l'encodage :

Encodage Quand Un SMS contient Découpé en parts de
GSM-7 Seulement des lettres latines simples, des chiffres et la ponctuation courante 160 caractères 153 caractères
Unicode Dès qu'un caractère sort de cet ensemble (emoji, certaines lettres accentuées, alphabets non latins) 70 caractères 67 caractères

Un message long n'est jamais refusé : il est découpé en plusieurs SMS que le téléphone du destinataire réassemble. Mais chaque partie est facturée par votre opérateur et compte dans le quota journalier de la SIM. L'écran vous avertit au-delà de six SMS par destinataire, et affiche le total, par exemple « 3 messages, 6 SMS au total ».

Raccourcir et suivre les liens

Sous le message, l'interrupteur Raccourcir et suivre les liens (désactivé par défaut) remplace chaque adresse qui commence par http:// ou https:// par un lien court servi par votre passerelle, qui compte les clics. Le remplacement a lieu au clic sur Envoyer ; la même adresse écrite deux fois donne un seul lien, partagé par tous les destinataires. L'écran vous indique combien de liens seront fabriqués et comment la longueur change (caractères et SMS par destinataire, avant et après), et le compteur comme le coût total sont calculés sur le texte avec ses liens courts. Les liens apparaissent ensuite dans Liens courts. Voir Liens courts.

Choisir le téléphone et l'heure

Champ Par défaut Effet
Appareil émetteur Automatique Automatique laisse la passerelle choisir le téléphone et la SIM (voir Routage). Désigner un téléphone l'impose : le message part de ce téléphone ou ne part pas
Date et heure d'envoi Vide (maintenant) Programme l'envoi. La date se lit dans le fuseau de la plateforme, indiqué sous le champ, et doit être dans le futur

Cliquez sur Envoyer. La confirmation « N messages acceptés par la passerelle » signifie que les messages sont dans la file, pas encore remis. Derniers envois, en bas de l'écran, liste vos derniers messages sortants avec leur statut en direct.

Un message programmé attend dans la file avec le statut En file et la mention « Programmé pour » sa date. Il part à cette heure-là, de jour comme de nuit : la pause de nuit ne s'applique pas à lui.

La file d'attente

L'écran File d'attente liste les messages et permet de relancer ceux qui ne sont pas partis. Il s'ouvre filtré sur les messages en Échec, puisque ce sont eux qui ont besoin de vous.

Commande Usage
Filtre Statut Afficher un statut, ou tous
Filtre Appareil Afficher les messages d'un téléphone
Filtre Sens Sortant, Entrant, ou les deux
Recherche Retrouver un message par des mots de son contenu
Relancer la sélection Cocher des messages et les relancer d'un coup
Exporter la vue en CSV Télécharger ce que montrent les filtres en cours

Les colonnes montrent le Statut, le Destinataire, l'Appareil qui a porté le message, le nombre de Tentatives, la date de création et le Motif d'un échec ou d'une annulation.

Le Motif est une phrase dans votre langue, la même que dans la conversation et dans le journal d'activité, par exemple « La SIM ne captait pas le réseau. » ou « Retiré avant son départ : sa campagne a été annulée. ». Survolez-le pour voir le code technique (NO_SERVICE, CAMPAIGN_CANCELLED...), celui que l'API renvoie dans errorCode. Un code que le tableau de bord ne connaît pas encore, remonté par une version plus récente de l'application du téléphone, s'affiche « Le téléphone ou la passerelle a signalé une erreur (CODE). ».

Quand des messages attendent le quota journalier d'une SIM, un bandeau en haut de l'écran indique combien, avec un lien Modifier les quotas vers l'écran Appareils.

Un message En file qui attend le rythme de ses SIM le dit sous son statut, avec l'heure de son prochain essai : « En attente de la cadence de la SIM, nouvel essai à 14:32 » (intervalle minimal) ou « En attente de la limite par minute des SIM ». Rien n'est en panne : il part de lui-même à cette heure-là.

Les statuts

Statut Ce qu'il signifie
En file Accepté, il attend son tour, son heure programmée, une nouvelle tentative, ou le rythme de sa SIM
Transmis Remis à un téléphone, qui n'a pas encore confirmé que le réseau l'a pris
Envoyé Le téléphone confirme que l'opérateur a accepté le SMS
Reçu L'opérateur confirme que le SMS est arrivé sur le téléphone du destinataire
Échec Le message a abandonné. La colonne Motif dit pourquoi. Il peut être relancé
Quota atteint Toutes les SIM qui pouvaient le porter ont épuisé leur quota du jour. Il part à minuit UTC, ou dès qu'un quota est relevé
En pause Un message de campagne retenu par la pause de nuit ou du dimanche. Il part à la fin de la pause
Annulé Retiré avant son départ, par exemple parce que le destinataire s'est désinscrit entre-temps. Il ne peut pas être relancé

Envoyé n'est pas Reçu. « Reçu » dépend d'un accusé de réception de l'opérateur du destinataire. Certains opérateurs n'en envoient pas, ou tardivement : un message peut rester Envoyé alors qu'il a bien été reçu. Un accusé négatif, en revanche, est définitif : le message passe en Échec.

Nouvelles tentatives

Quand un envoi se passe mal, la passerelle n'abandonne pas tout de suite. Ce qu'elle fait dépend de la cause :

Ce qui s'est passé Ce que fait la passerelle Compte comme une tentative
Le téléphone signale que le réseau a refusé le SMS Attend, puis réessaie, éventuellement depuis un autre téléphone Oui
Le téléphone n'a pas confirmé dans le délai d'accusé Remet le message dans la file et réessaie Oui
Aucun téléphone ne peut envoyer (tous hors ligne ou hors du pool) Attend, puis réessaie Oui
Le téléphone qui portait le message est passé hors ligne Remet aussitôt le message dans la file, pour un autre téléphone Non
Toutes les SIM utilisables ont atteint leur quota du jour Le passe en Quota atteint jusqu'à minuit UTC ou jusqu'à ce qu'un quota soit relevé Non
Toutes les SIM utilisables ont atteint leur limite par minute Le garde En file et l'envoie la minute suivante Non
Aucune SIM utilisable n'a attendu son intervalle minimal depuis son dernier SMS Le garde En file et l'envoie dès que la première SIM est libre Non
Une règle de routage stricte correspond et aucune de ses SIM ne peut envoyer Le garde En file et réessaie chaque minute Non
L'opérateur renvoie un accusé de réception négatif Échec, définitif : l'opérateur a rendu son verdict Pas de nouvelle tentative
Le destinataire s'est désinscrit après la mise en file Annulé Non

Quand les tentatives sont épuisées, le message passe en Échec. Le nombre de tentatives et les attentes entre elles se règlent dans Paramètres > Envoi (voir Options).

Dans l'API, le champ errorCode d'un message en échec ou annulé en donne la raison. La colonne Motif affiche ces mêmes codes sous forme de phrases :

errorCode Posé par Signification
DEVICE_OFFLINE Passerelle Aucun téléphone n'a pu porter le message avant l'épuisement de ses tentatives
MAX_ATTEMPTS_REACHED Passerelle Toutes les tentatives ont été consommées, typiquement par des téléphones qui n'ont jamais confirmé
DEVICE_ERROR Passerelle Le téléphone a signalé un échec sans en donner la raison
DELIVERY_FAILED Passerelle L'opérateur a renvoyé un accusé de réception négatif
CAMPAIGN_CANCELLED Passerelle Annulé : la campagne à laquelle il appartenait a été annulée avant son départ
CONTACT_BLACKLISTED Passerelle Annulé : le destinataire s'est désinscrit avant son départ
NO_SERVICE Téléphone La SIM n'avait pas de réseau
RADIO_OFF Téléphone La radio mobile du téléphone est coupée (mode avion)
GENERIC_FAILURE Téléphone L'opérateur a refusé le SMS, le plus souvent par manque de crédit
NULL_PDU Téléphone Le téléphone n'a pas pu encoder le message
RADIO_ERROR_<n> Téléphone Une autre erreur radio ; n est le numéro d'erreur donné par Android
NO_SMS_MANAGER Téléphone Ce téléphone ne peut pas envoyer de SMS, par exemple sans SIM
INVALID_ARGUMENT Téléphone Le téléphone a refusé le message comme mal formé, souvent un numéro erroné
PERMISSION_DENIED Téléphone L'application n'a pas le droit d'envoyer des SMS : accordez l'autorisation sur le téléphone
ORDER_EXPIRED Téléphone Le téléphone a reçu l'ordre trop tard pour l'envoyer

Traitez tout autre code comme un échec générique : une version plus récente de l'application du téléphone peut en ajouter.

Relancer à la main

Un message en Échec, Quota atteint ou En pause peut être relancé :

  • depuis la File d'attente, en le cochant puis en cliquant sur Relancer la sélection ;
  • depuis sa conversation, avec Réessayer sous le message en échec ;
  • par l'API, avec POST /messages/{messageId}/retry.

Un message relancé part aussitôt, sans attendre la tentative programmée suivante. Il est refusé si le destinataire s'est désinscrit entre-temps. Les messages Reçu, Envoyé et Annulé ne se relancent pas : ce serait les envoyer deux fois.

Cadence des SIM

Vous pouvez imposer à chaque SIM un nombre minimal de secondes entre deux SMS, dans Paramètres > Envoi, champ Intervalle minimal entre deux SMS par SIM, en secondes. Une SIM qui envoie à un rythme régulier, humain, ressemble moins à une source de spam aux yeux de son opérateur qu'une SIM qui envoie en rafale.

Comment cela fonctionne.

  • Il s'applique à tous les SMS, quelle que soit leur origine : API, envoi rapide, campagne, réponse de conversation, réponse automatique, alerte par SMS, et nouvelles tentatives.
  • L'intervalle se compte à partir du moment où la passerelle remet le SMS au téléphone, pas de la confirmation du téléphone ni de l'accusé de réception.
  • Vous n'avez jamais rien à attendre : vous pouvez envoyer 50 messages d'un coup, ils sont tous acceptés, attendent dans la file en En file, et partent d'eux-mêmes, l'un après l'autre, dès que leur SIM est libre. L'écran File d'attente les affiche « En attente de la cadence de la SIM » avec l'heure de leur prochain essai.
  • Chaque SIM a sa propre horloge. Une SIM qui attend ne retient jamais une autre SIM, pas même la seconde SIM du même téléphone : avec deux SIM et 30 secondes, deux SMS partent toutes les 30 secondes.
  • Un message adressé à un téléphone précis (deviceId) le garde pendant qu'il attend.
  • L'attente ne consomme aucune tentative. Une nouvelle tentative après un échec attend elle aussi l'intervalle si nécessaire.
  • Le délai d'accusé commence quand le SMS est remis au téléphone : un message qui attend sa SIM n'expire donc jamais dans la file.
  • La passerelle consulte la file toutes les deux secondes : un message part environ deux secondes au plus après la fin de l'intervalle.
  • Les messages qui attendent leur SIM partent dans l'ordre. Il n'y a pas de priorité : une alerte attend comme n'importe quel SMS, mais un message arrivé pendant l'attente des autres prend le prochain créneau libre.

Une SIM avec sa propre valeur. Dans Appareils, le crayon à côté d'une SIM ouvre une fenêtre où Intervalle propre à cette SIM remplace le réglage pour cette SIM seulement (Superadministrateur). 0 signifie aucune attente sur cette SIM, même quand le réglage en demande une ; désactiver l'interrupteur fait de nouveau suivre le réglage à la SIM. Une nouvelle valeur vaut pour le SMS suivant ; les messages qui attendent déjà gardent leur heure.

Comment il se combine avec les autres limites. Chaque limite doit autoriser l'envoi ; la plus stricte l'emporte.

Limite Ce qu'elle plafonne
Intervalle minimal entre deux SMS par SIM Paramètres > Envoi, ou par SIM dans Appareils L'écart entre deux SMS sur une SIM
Messages par minute et par SIM Paramètres > Envoi Le nombre de SMS sur une SIM en une minute
Cadence et Taille de vague d'une campagne Chaque campagne La vitesse à laquelle la campagne libère ses messages, toutes SIM confondues
Quota journalier de la SIM Appareils Le nombre de SMS sur une SIM en un jour (minuit UTC)

Exemples : avec un intervalle de 10 secondes, une SIM envoie au plus 6 SMS par minute ; une limite par minute de 6 ou plus ne change donc rien, et une limite plus basse (3, par exemple) s'applique toujours. Une campagne à 60 messages par minute sur deux SIM avec un intervalle de 30 secondes envoie en réalité 4 messages par minute : c'est l'intervalle qui limite. Le quota journalier compte toujours chaque SMS.

À 0, la valeur par défaut, l'intervalle n'ajoute aucune attente : la passerelle se comporte comme avant.

Pauses de nuit et du dimanche : les campagnes seulement

Vous pouvez interdire aux campagnes d'envoyer la nuit et le dimanche, dans Paramètres > Envoi, sous Pause nocturne des campagnes. Un message de campagne dû pendant une pause passe En pause et part automatiquement à la fin de la pause.

Ces pauses ne retiennent que les campagnes. Un envoi rapide, un appel d'API, une réponse de conversation ou une réponse automatique part à toute heure : quelqu'un l'attend. Une campagne est le seul trafic que personne n'a demandé à ce moment-là, et un SMS promotionnel à trois heures du matin vous coûte plus de sympathie qu'il ne rapporte.

Les heures se lisent dans le fuseau de la plateforme, réglé dans le même onglet. Ce fuseau gouverne aussi l'heure des envois programmés et l'affichage des dates dans le tableau de bord. Ce n'est pas l'heure de chaque téléphone : l'en-tête affiche l'heure locale de vos téléphones et vous prévient quand l'un d'eux vit à une autre heure (voir Appareils).

Suivre l'activité

Le Tableau de bord montre combien de messages sont partis et arrivés, dans le graphique Activité des 24 dernières heures. Choisissez la période avec les boutons 24 h, 7 j, 30 j et 90 j : le graphique affiche alors une barre par heure, par tranche de six heures, ou par jour. Chaque barre empile les messages sortants et les entrants, et la carte donne les totaux de la période. Survolez ou touchez une barre pour les heures exactes de la tranche.

Un message compte à sa création (sa mise en file pour un sortant, sa réception par le téléphone pour un entrant), quel que soit son statut depuis. Les comptes portent sur tous les messages de la période, pas sur un échantillon. Les tranches suivent le fuseau de la plateforme, changement d'heure compris. Le graphique se rafraîchit chaque minute.

Par l'API, GET /messages/stats?period=24h (ou 7d, 30d, 90d) renvoie les mêmes comptes. Il ne renvoie jamais le texte d'un message ni un numéro.

Options

Les réglages d'envoi se trouvent dans Paramètres > Envoi, sont réservés au Superadministrateur, et s'appliquent au message suivant sans aucun redémarrage.

Option Par défaut Valeurs admises Effet
Réessayer en cas d'échec Activé Activé ou désactivé Désactivé, le premier échec est définitif : chaque message n'a qu'une tentative, quoi que dise Nombre maximum de tentatives
Nombre maximum de tentatives 4 1 à 10 Combien de fois un message est essayé avant l'Échec. Seules les causes marquées « Oui » dans le tableau des nouvelles tentatives consomment une tentative
Attentes entre tentatives, en secondes, séparées par des virgules 30, 120, 600, 3600 1 à 10 valeurs, chacune de 1 seconde à 86 400 (un jour) La première valeur est l'attente après le premier échec, la deuxième après le deuxième, et ainsi de suite. La dernière valeur s'applique à toutes les tentatives au-delà de la liste
Délai d'accusé de l'appareil, en secondes 120 10 à 3 600 Combien de temps un message Transmis attend la confirmation du téléphone avant de retourner dans la file. Trop court, les téléphones lents voient leurs messages retentés (et parfois envoyés deux fois) ; trop long, un téléphone muet retient ses messages plus longtemps
Messages par minute et par SIM 0 (sans limite) 0 à 600 Plafonne le rythme de chaque SIM. Une SIM à sa limite est sautée par le routage et la passerelle en utilise une autre ; si toutes sont à leur limite, le message attend la minute suivante sans consommer de tentative. Une rafale de centaines de SMS en une minute est ce que les opérateurs repèrent en premier, bien avant le volume du jour
Intervalle minimal entre deux SMS par SIM, en secondes 0 (aucune attente) 0 à 3 600 Le temps minimal que chaque SIM attend entre deux SMS, compté à partir de la remise du SMS au téléphone. Les messages attendent dans la file et partent d'eux-mêmes ; une SIM occupée ne retient jamais une autre SIM. Une SIM peut avoir sa propre valeur dans Appareils. Voir Cadence des SIM
Fuseau horaire UTC N'importe quel fuseau de la liste Heures de la pause de nuit, définition du dimanche, heure des envois programmés, affichage de toutes les dates du tableau de bord. Il ne déplace pas la remise à zéro des quotas journaliers, qui reste à minuit UTC
Pause nocturne des campagnes Désactivé Activé ou désactivé Activé, les messages de campagne dus entre De et À sont retenus En pause
De, À 20:00, 07:00 Heures et minutes ; la pause peut passer minuit, les deux doivent différer Début et fin de la pause de nuit, dans le fuseau de la plateforme
Suspendre les campagnes le dimanche Désactivé Activé ou désactivé Activé, les messages de campagne sont retenus tout le dimanche, de minuit à minuit dans le fuseau de la plateforme

Autres réglages qui changent ce que vous envoyez :

  • le quota journalier, l'interrupteur en service et l'intervalle propre de chaque SIM, dans Appareils (voir Appareils) ;
  • les règles de routage, qui choisissent la SIM selon le début du numéro (voir Routage).

Champs de l'API POST /messages

Champ Par défaut Effet
to Obligatoire Un numéro, ou une liste de 1 à 500 numéros au format international
body Obligatoire sauf avec templateId Le texte. Aucune limite de longueur : un texte long est découpé en plusieurs SMS
templateId, variables Aucun Utiliser un modèle enregistré et remplir ses variables (voir Modèles)
deviceId Aucun (automatique) Impose le téléphone. Le message part de lui ou ne part pas ; les règles de routage ne sont pas consultées
simSlot Aucun (automatique) 0 ou 1 : la SIM de ce téléphone
scheduledAt Aucun (maintenant) Date et heure de l'envoi, dans le futur
shortenLinks false true remplace chaque adresse http:// ou https:// du texte par un lien court suivi avant la mise en file, comme l'interrupteur Raccourcir et suivre les liens (voir Liens courts)

L'en-tête Idempotency-Key protège un envoi à un seul destinataire contre une double mise en file quand votre logiciel rejoue une requête après une erreur réseau.

La requête est vérifiée en entier avant toute mise en file : si un destinataire est invalide ou désinscrit, la requête est refusée et rien n'est envoyé, ce qui vous permet de toujours savoir quoi rejouer.

Dépannage

Symptôme Ce qu'il faut vérifier
Des messages restent En file Un téléphone est-il En ligne dans Appareils, et dans le pool de routage ? S'agit-il d'un message programmé ? Une règle de routage stricte attend-elle un téléphone hors ligne ?
Des messages restent En file avec « En attente de la cadence de la SIM » L'intervalle minimal entre deux SMS par SIM est actif. Ils partent d'eux-mêmes, un par SIM et par intervalle. Réduisez-le dans Paramètres > Envoi, ou donnez à une SIM sa propre valeur dans Appareils
Des messages passent en Quota atteint Toutes les SIM utilisables ont épuisé leur quota du jour. Relevez un quota dans Appareils, ou attendez minuit UTC
Des messages de campagne sont En pause La pause de nuit ou du dimanche est active. Ils partiront à la fin de la pause
Des messages restent Transmis un moment, puis sont retentés Le téléphone ne confirme pas : vérifiez sa connexion et ses réglages de batterie
Beaucoup d'Échec avec NO_SERVICE ou GENERIC_FAILURE La SIM n'a pas de signal, plus de crédit, ou son opérateur refuse : vérifiez-la dans le téléphone
Des messages restent Envoyé, jamais Reçu L'opérateur n'envoie pas d'accusés de réception. Le message a très probablement été reçu
« Ce numéro est désinscrit. » Le destinataire a envoyé STOP, ou a été désinscrit à la main. Voir Contacts et groupes
« La date programmée doit être dans le futur. » La date est passée dans le fuseau de la plateforme. Vérifiez le fuseau indiqué sous le champ

Rechercher dans la documentation

Saisissez quelques mots, puis choisissez une page.