Module SMS Avancé (multi-opérateurs): Difference between revisions

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
(update)
(update)
Tag: 2017 source edit
Line 1: Line 1:
{{TemplateDocUser}}


<!-- ============================================================
<!-- ============================================================
Line 7: Line 6:
     ============================================================ -->
     ============================================================ -->


=Description=
 
= Description =
'''SMS Avancé''' turns Dolibarr into a full professional SMS platform: automatic invoice payment reminders, marketing campaigns with A/B testing, event-driven notifications, two-way conversations with your third parties, and built-in STOP/GDPR compliance.
 
'''SMS Avancé''' transforme Dolibarr en véritable plateforme d'envoi et de réception de SMS professionnels : relances de factures automatiques, campagnes marketing avec test A/B, notifications sur événements métier, conversations bidirectionnelles avec les tiers, et conformité STOP/RGPD intégrée.
The module ships with '''12 SMS operator drivers''' (African and international) plus a '''generic HTTP gateway''' to connect any local operator exposing an HTTP API. One active operator is enough to get started.
 
Le module s'appuie sur '''12 opérateurs SMS''' (africains et internationaux) plus une '''passerelle HTTP générique''' permettant de connecter n'importe quel opérateur local disposant d'une API HTTP. Un seul opérateur actif suffit pour démarrer.
=Features=
 
= Fonctionnalités =
==Sending==
 
== Envoi ==
*Manual sending from a third party card, a contact card, or free input
* Envoi manuel depuis la fiche d'un tiers, d'un contact, ou en saisie libre
*Scheduled sending (deferred date/time) processed by the Dolibarr scheduler
* Envois programmés (date/heure différées) traités par le planificateur Dolibarr
*Bulk sending to a selection of third parties, a category, or a '''distribution list'''
* Envois en masse vers une sélection de tiers, une catégorie, ou une '''liste de diffusion'''
*SMS campaigns with an approval workflow: draft → explicit validation → send (nothing leaves without validation)
* Campagnes SMS avec circuit de validation : brouillon → validation explicite → envoi (rien ne part sans validation)
*'''A/B testing''': two message variants tested on samples (10–30%), delivery and click rates compared, then the winning variant sent to the rest of the audience
* '''Test A/B''' : deux variantes de message testées sur des échantillons (10 à 30 %), comparaison des taux de livraison et de clics, puis envoi de la variante gagnante au reste de l'audience
*Personalization variables in messages (third party name, invoice reference, amount, unsubscribe link…)
* Variables de personnalisation dans les messages (nom du tiers, référence de facture, montant, lien de désinscription…)
*Built-in link shortener with click tracking
* Raccourcisseur de liens intégré avec comptage des clics
*Configurable message length cap (default 1,000 characters)
* Plafond de longueur de message configurable (défaut 1 000 caractères)
 
==Dolibarr integration==
== Intégration Dolibarr ==
 
* Relances automatiques de factures impayées (paliers configurables avant/après échéance)
*Automatic reminders for unpaid invoices (configurable steps before/after due date)
* Notifications automatiques sur événements : validation de facture, expédition de commande, intervention…
*Automatic notifications on business events: invoice validation, order shipment, intervention…
* Onglet SMS sur les fiches tiers, contact, facture, commande, proposition, projet, ticket, contrat, expédition, intervention, adhérent, utilisateur et événement d'agenda
*SMS tab on third party, contact, invoice, order, proposal, project, ticket, contract, shipment, intervention, member, user and agenda event cards
* Widget « activité récente » sur la page d'accueil
*"Recent activity" widget on the home page
* Historique complet de chaque SMS rattaché au tiers concerné
*Full history of every SMS attached to the related third party
 
== Multi-opérateurs ==
==Multi-operator==
* 12 pilotes d'opérateurs fournis : Nexah (Cameroun), MboaSMS (Cameroun), SMS Partner Africa (Cameroun), Termii (Nigéria), Arkesel (Ghana), Beem Africa (Tanzanie), Africa's Talking (Afrique), BulkSMS, SMSAla, Unimatrix, Twilio et Vonage/Nexmo (international)
 
* '''Passerelle HTTP générique''' configurable pour tout autre opérateur local
*12 operator drivers included: Nexah (Cameroon), MboaSMS (Cameroon), SMS Partner Africa (Cameroon), Termii (Nigeria), Arkesel (Ghana), Beem Africa (Tanzania), Africa's Talking (Africa), BulkSMS, SMSAla, Unimatrix, Twilio and Vonage/Nexmo (international)
* Routage par préfixe de destination, ordre de priorité, bascule automatique en cas d'échec
*Configurable '''generic HTTP gateway''' for any other local operator
* Consultation du solde de crédits en temps réel (opérateurs le supportant)
*Routing by destination prefix, priority order, automatic failover
* Identifiants opérateurs chiffrés en base
*Real-time credit balance display (for operators supporting it)
*Operator credentials encrypted in database
== Réception et conformité ==
 
* Réception des SMS entrants par webhook, avec boîte de réception et '''fils de conversation''' par correspondant
==Inbound and compliance==
* Détection automatique des mots-clés STOP / ARRÊT / UNSUBSCRIBE dans les réponses
 
* '''Lien de désinscription signé''' (variable <code>__LIEN_STOP__</code>) propre à chaque destinataire, avec page de confirmation
*Inbound SMS received through webhooks, with an inbox and '''conversation threads''' per correspondent
* Liste d'opposition centralisée, contrôlée avant chaque mise en file d'attente
*Automatic detection of STOP / ARRÊT / UNSUBSCRIBE keywords in replies
* Accusés de réception (DLR) par webhook sécurisé par jeton généré automatiquement
*'''Signed unsubscribe link''' (<code>__LIEN_STOP__</code> variable), unique per recipient, with a confirmation page
*Central opt-out list, checked before every queueing
== Pilotage ==
*Delivery reports (DLR) through a webhook secured by an automatically generated token
* '''Tableau de bord SMS''' : indicateurs de période avec comparaison à la période précédente, soldes opérateurs, graphique quotidien envois/échecs, top tiers destinataires, origines des envois, export CSV
 
* '''Retombées des relances''' : corrélation entre SMS de relance et paiements de factures encaissés sous 7 jours
==Monitoring==
* Journal complet des envois avec filtres (période, opérateur, tiers, campagne, statut)
 
* Visibilité à 3 niveaux par droits utilisateur : mes SMS / SMS de mes tiers / tous les SMS
*'''SMS dashboard''': period KPIs with previous-period comparison, operator balances, daily sent/failed chart, top recipient third parties, sending origins, CSV export
*'''Reminder outcomes''': correlation between reminder SMS and invoice payments received within 7 days
== Exploitation ==
*Full sending journal with filters (period, operator, third party, campaign, status)
* Page de diagnostic intégrée (état du schéma, jetons, tâches planifiées)
*3-level visibility through user rights: my SMS / SMS of my third parties / all SMS
* Manuel d'utilisation complet intégré au module
 
* Migrations automatiques à chaque mise à jour — aucune réactivation ni intervention manuelle
==Operations==
 
= Installation =
*Built-in diagnostic page (schema status, tokens, scheduled jobs)
*Complete user manual embedded in the module
# Téléchargez le paquet <code>smsavance-x.y.z.zip</code> depuis le Dolistore.
*Automatic migrations on every upgrade — no reactivation or manual step ever required
# Dans Dolibarr, allez dans '''Accueil → Configuration → Modules/Applications''', onglet '''Déployer/Installer un module externe''', et sélectionnez le fichier zip.
#* Ou manuellement : décompressez le zip dans le répertoire <code>custom/</code> de votre Dolibarr (vous devez obtenir <code>custom/smsavance/</code>).
# Retournez dans la liste des modules, recherchez '''SMS Avancé''' et activez-le.
Lors de l'activation, le module crée automatiquement ses tables, menus, permissions et tâches planifiées. Les mises à jour se font en remplaçant simplement le répertoire : les migrations de schéma sont automatiques et idempotentes.
= Configuration =
== 1. Activer un opérateur ==
Menu '''SMS → Configuration → Opérateurs''' : cliquez sur l'icône « + », choisissez votre opérateur dans la liste, renseignez vos identifiants API (chiffrés en base) et l'identifiant d'expéditeur (sender ID). Un seul opérateur actif suffit.
Pour un opérateur local absent de la liste, utilisez la '''Passerelle HTTP générique''' : URL, méthode, paramètres et interprétation de la réponse sont entièrement configurables.
== 2. Paramètres généraux ==
Menu '''SMS → Configuration → Paramètres''' : expéditeur par défaut, plafond de longueur (<code>SMS_MAX_MESSAGE_LENGTH</code>), raccourcisseur de liens, relances automatiques et leurs paliers.
== 3. Webhooks (réception et accusés) ==
La page de configuration affiche, pour chaque opérateur actif, les '''URL de webhook prêtes à copier''' (accusés de réception <code>dlr.php</code> et SMS entrants <code>inbound.php</code>), déjà munies du jeton de sécurité généré automatiquement. Collez ces URL dans l'interface de votre opérateur.
== 4. Permissions ==
Attribuez les droits aux utilisateurs/groupes : lecture, envoi, envoi en masse, administration, suppression, et étendue de visibilité (ses propres SMS, ceux de ses tiers, ou tous).
== 5. Tâches planifiées ==
Vérifiez dans '''Accueil → Configuration → Modules → Travaux planifiés''' que les tâches du module (traitement de la file d'attente, relances différées, vérification des statuts) sont actives. La page '''SMS → Diagnostic''' signale toute tâche inactive.
= Utilisation =
* '''Nouvel envoi''' : menu SMS → Nouvel envoi — tiers, contact, numéro libre, catégorie ou liste de diffusion ; envoi immédiat ou programmé.
* '''Campagnes''' : menu SMS → Campagnes SMS — créez un brouillon, ciblez, testez éventuellement en A/B, validez, suivez les résultats par variante.
* '''Listes de diffusion''' : menu SMS → Listes de diffusion — constitution manuelle ou depuis une catégorie de tiers, dédoublonnage automatique.
* '''Conversations''' : menu SMS → Messages reçus — chaque échange est regroupé en fil de conversation par numéro/tiers.
* '''Tableau de bord''' : menu SMS → Tableau de bord SMS — pilotage par période, filtres opérateur et tiers, export CSV.
* '''Manuel intégré''' : menu SMS → Manuel — documentation détaillée de chaque fonction, y compris les variables de personnalisation.
<!-- Ajoutez ici 2-3 captures d'écran réelles :
[[File:smsavance_tableau_de_bord.png|900px|center|thumb|Le tableau de bord SMS]]
[[File:smsavance_campagne_ab.png|900px|center|thumb|Campagne avec test A/B]]
-->
= Sécurité et conformité =
* Webhooks publics protégés par jeton secret généré automatiquement (comparaison à temps constant)
* Lien de désinscription signé HMAC-SHA256, infalsifiable, avec page de confirmation anti-robots
* Identifiants opérateurs chiffrés en base de données
* Aucune donnée envoyée à des tiers autres que l'opérateur SMS choisi par vos soins
* Liste d'opposition (STOP) vérifiée avant chaque mise en file — impossible à contourner, y compris en envoi de masse
* Journal d'audit : chaque SMS est tracé avec son auteur, son origine et son statut


[[Category:Complementary Modules]]
[[Category:Complementary Modules]]

Revision as of 23:20, 21 July 2026


Description

SMS Avancé transforme Dolibarr en véritable plateforme d'envoi et de réception de SMS professionnels : relances de factures automatiques, campagnes marketing avec test A/B, notifications sur événements métier, conversations bidirectionnelles avec les tiers, et conformité STOP/RGPD intégrée.

Le module s'appuie sur 12 opérateurs SMS (africains et internationaux) plus une passerelle HTTP générique permettant de connecter n'importe quel opérateur local disposant d'une API HTTP. Un seul opérateur actif suffit pour démarrer.

Fonctionnalités

Envoi

  • Envoi manuel depuis la fiche d'un tiers, d'un contact, ou en saisie libre
  • Envois programmés (date/heure différées) traités par le planificateur Dolibarr
  • Envois en masse vers une sélection de tiers, une catégorie, ou une liste de diffusion
  • Campagnes SMS avec circuit de validation : brouillon → validation explicite → envoi (rien ne part sans validation)
  • Test A/B : deux variantes de message testées sur des échantillons (10 à 30 %), comparaison des taux de livraison et de clics, puis envoi de la variante gagnante au reste de l'audience
  • Variables de personnalisation dans les messages (nom du tiers, référence de facture, montant, lien de désinscription…)
  • Raccourcisseur de liens intégré avec comptage des clics
  • Plafond de longueur de message configurable (défaut 1 000 caractères)

Intégration Dolibarr

  • Relances automatiques de factures impayées (paliers configurables avant/après échéance)
  • Notifications automatiques sur événements : validation de facture, expédition de commande, intervention…
  • Onglet SMS sur les fiches tiers, contact, facture, commande, proposition, projet, ticket, contrat, expédition, intervention, adhérent, utilisateur et événement d'agenda
  • Widget « activité récente » sur la page d'accueil
  • Historique complet de chaque SMS rattaché au tiers concerné

Multi-opérateurs

  • 12 pilotes d'opérateurs fournis : Nexah (Cameroun), MboaSMS (Cameroun), SMS Partner Africa (Cameroun), Termii (Nigéria), Arkesel (Ghana), Beem Africa (Tanzanie), Africa's Talking (Afrique), BulkSMS, SMSAla, Unimatrix, Twilio et Vonage/Nexmo (international)
  • Passerelle HTTP générique configurable pour tout autre opérateur local
  • Routage par préfixe de destination, ordre de priorité, bascule automatique en cas d'échec
  • Consultation du solde de crédits en temps réel (opérateurs le supportant)
  • Identifiants opérateurs chiffrés en base

Réception et conformité

  • Réception des SMS entrants par webhook, avec boîte de réception et fils de conversation par correspondant
  • Détection automatique des mots-clés STOP / ARRÊT / UNSUBSCRIBE dans les réponses
  • Lien de désinscription signé (variable __LIEN_STOP__) propre à chaque destinataire, avec page de confirmation
  • Liste d'opposition centralisée, contrôlée avant chaque mise en file d'attente
  • Accusés de réception (DLR) par webhook sécurisé par jeton généré automatiquement

Pilotage

  • Tableau de bord SMS : indicateurs de période avec comparaison à la période précédente, soldes opérateurs, graphique quotidien envois/échecs, top tiers destinataires, origines des envois, export CSV
  • Retombées des relances : corrélation entre SMS de relance et paiements de factures encaissés sous 7 jours
  • Journal complet des envois avec filtres (période, opérateur, tiers, campagne, statut)
  • Visibilité à 3 niveaux par droits utilisateur : mes SMS / SMS de mes tiers / tous les SMS

Exploitation

  • Page de diagnostic intégrée (état du schéma, jetons, tâches planifiées)
  • Manuel d'utilisation complet intégré au module
  • Migrations automatiques à chaque mise à jour — aucune réactivation ni intervention manuelle

Installation

  1. Téléchargez le paquet smsavance-x.y.z.zip depuis le Dolistore.
  2. Dans Dolibarr, allez dans Accueil → Configuration → Modules/Applications, onglet Déployer/Installer un module externe, et sélectionnez le fichier zip.
    • Ou manuellement : décompressez le zip dans le répertoire custom/ de votre Dolibarr (vous devez obtenir custom/smsavance/).
  3. Retournez dans la liste des modules, recherchez SMS Avancé et activez-le.

Lors de l'activation, le module crée automatiquement ses tables, menus, permissions et tâches planifiées. Les mises à jour se font en remplaçant simplement le répertoire : les migrations de schéma sont automatiques et idempotentes.

Configuration

1. Activer un opérateur

Menu SMS → Configuration → Opérateurs : cliquez sur l'icône « + », choisissez votre opérateur dans la liste, renseignez vos identifiants API (chiffrés en base) et l'identifiant d'expéditeur (sender ID). Un seul opérateur actif suffit.

Pour un opérateur local absent de la liste, utilisez la Passerelle HTTP générique : URL, méthode, paramètres et interprétation de la réponse sont entièrement configurables.

2. Paramètres généraux

Menu SMS → Configuration → Paramètres : expéditeur par défaut, plafond de longueur (SMS_MAX_MESSAGE_LENGTH), raccourcisseur de liens, relances automatiques et leurs paliers.

3. Webhooks (réception et accusés)

La page de configuration affiche, pour chaque opérateur actif, les URL de webhook prêtes à copier (accusés de réception dlr.php et SMS entrants inbound.php), déjà munies du jeton de sécurité généré automatiquement. Collez ces URL dans l'interface de votre opérateur.

4. Permissions

Attribuez les droits aux utilisateurs/groupes : lecture, envoi, envoi en masse, administration, suppression, et étendue de visibilité (ses propres SMS, ceux de ses tiers, ou tous).

5. Tâches planifiées

Vérifiez dans Accueil → Configuration → Modules → Travaux planifiés que les tâches du module (traitement de la file d'attente, relances différées, vérification des statuts) sont actives. La page SMS → Diagnostic signale toute tâche inactive.

Utilisation

  • Nouvel envoi : menu SMS → Nouvel envoi — tiers, contact, numéro libre, catégorie ou liste de diffusion ; envoi immédiat ou programmé.
  • Campagnes : menu SMS → Campagnes SMS — créez un brouillon, ciblez, testez éventuellement en A/B, validez, suivez les résultats par variante.
  • Listes de diffusion : menu SMS → Listes de diffusion — constitution manuelle ou depuis une catégorie de tiers, dédoublonnage automatique.
  • Conversations : menu SMS → Messages reçus — chaque échange est regroupé en fil de conversation par numéro/tiers.
  • Tableau de bord : menu SMS → Tableau de bord SMS — pilotage par période, filtres opérateur et tiers, export CSV.
  • Manuel intégré : menu SMS → Manuel — documentation détaillée de chaque fonction, y compris les variables de personnalisation.


Sécurité et conformité

  • Webhooks publics protégés par jeton secret généré automatiquement (comparaison à temps constant)
  • Lien de désinscription signé HMAC-SHA256, infalsifiable, avec page de confirmation anti-robots
  • Identifiants opérateurs chiffrés en base de données
  • Aucune donnée envoyée à des tiers autres que l'opérateur SMS choisi par vos soins
  • Liste d'opposition (STOP) vérifiée avant chaque mise en file — impossible à contourner, y compris en envoi de masse
  • Journal d'audit : chaque SMS est tracé avec son auteur, son origine et son statut