Protection contre les doublons
Un message en double est le deuxième message, et chaque message suivant, portant le même texte et envoyé au même numéro. C'est rarement volontaire — le plus souvent, il résulte de la répétition d'un appel API après un délai d'attente dépassé, d'un double clic sur un bouton ou de la présence d'un même numéro plusieurs fois dans la liste des destinataires. BulkGate vous en protège, mais les routes transactionnelle et promotionnelle le gèrent différemment.
En quoi les deux protections diffèrent
| Message transactionnel | Message promotionnel | |
|---|---|---|
| Ce qu'elle surveille | le même message répété dans le temps | les destinataires en double dans une liste |
| Portée | entre les requêtes, fenêtre de 5 minutes | uniquement au sein d'une seule requête |
| État par défaut | désactivée | désactivée |
| Ce que vous verrez | le message échoue avec duplicity_message |
le destinataire disparaît discrètement de la liste |
Messages transactionnels : le même message répété dans le temps
Vous l'activez avec le paramètre duplicates_check de l'API transactionnelle ou transactionnelle simple. Il accepte on et off (il comprend aussi true/false, 1/0, yes/no), et la valeur par défaut est off.
Lorsqu'elle est activée, BulkGate mémorise la combinaison suivante pour chaque message envoyé :
| Élément de l'empreinte | Remarque |
|---|---|
| Compte | s'applique à toutes les applications (application_id) d'un même portefeuille |
| Canal | le même texte par SMS et par Viber constitue deux messages différents |
| Numéro de téléphone | au format international |
| Texte du message | doit correspondre caractère par caractère — un nom, une heure ou un code différent en fait un message différent |
Si un message avec la même empreinte arrive dans les cinq minutes, BulkGate le rejette et il n'atteint jamais l'opérateur.
La fenêtre de cinq minutes commence avec le premier message et les tentatives rejetées ne la prolongent pas. Une fois qu'elle a expiré, le même message passe à nouveau.
Pour un message en cascade, l'empreinte utilise le texte principal de la cascade, et non les textes des différents canaux.
Ce que vous verrez dans la réponse
- Un message unique — l'API renvoie l'erreur
duplicity_messageavec le code400. Consultez la liste des types d'erreurs. - Un message transactionnel groupé — le message rejeté reçoit le statut
duplicity_messageet est comptabilisé danstotal.status.duplicity_message. Le reste du lot est envoyé normalement.
Réfléchissez bien avant d'utiliser cette protection pour les mots de passe à usage unique. Si le code change à chaque tentative, elle ne s'applique jamais. Si vous envoyez un texte fixe, vous rejetterez le deuxième envoi dans les cinq minutes — et l'utilisateur qui a appuyé sur « Renvoyer » ne recevra aucun message.
Messages promotionnels : destinataires en double dans un même lot
Sur la route promotionnelle, rien n'est mémorisé entre les requêtes. Avant l'envoi, BulkGate parcourt simplement la liste des destinataires constituée à partir d'une seule requête et conserve la première occurrence. Le paramètre duplicates_check de l'API promotionnelle ou promotionnelle simple accepte trois valeurs :
| Valeur | Ce qu'elle supprime |
|---|---|
same_text |
le même message répété au même numéro |
same_number |
tout message supplémentaire au même numéro, même avec un texte différent |
| non définie | rien — la liste est envoyée exactement telle que vous l'avez soumise |
La suppression est silencieuse — la réponse ne contient ni statut ni compteur de doublons. Le seul indice est un nombre de destinataires inférieur à celui que vous avez soumis. S'il ne reste plus personne après la suppression, la requête échoue avec no_recipients.
Deux requêtes consécutives ne se voient pas l'une l'autre. Si vous envoyez le même destinataire dans deux lots, les deux messages partent.
Campagnes dans le portail
Une campagne passe par la route promotionnelle et effectue elle-même le contrôle des doublons — une fois la liste des destinataires constituée, elle vous indique combien elle en a trouvé sous le titre Alerte message dupliqué :
- Même numéro et même texte — la campagne les supprime toujours, sans vous laisser le choix.
- Même numéro, texte différent — c'est à vous de décider. Cochez Effacer les numéros en double et chaque numéro recevra un seul message ; laissez la case décochée et tous les messages partiront.
Dans une campagne avec test A/B, les destinataires en double sont toujours supprimés, sinon une même personne recevrait plusieurs variantes testées et le résultat du test n'aurait aucune valeur.
Points d'attention
- Le même paramètre a deux significations différentes. Sur la route transactionnelle,
duplicates_checkest un interrupteur qui protège entre les requêtes dans le temps ; sur la route promotionnelle, il sélectionne une méthode et ne s'applique qu'au sein d'une seule requête. - Un compte partagé signifie une fenêtre partagée. Plusieurs intégrations d'un même portefeuille peuvent rejeter mutuellement leurs messages si elles envoient les mêmes textes aux mêmes numéros.
- Un message rejeté n'est pas envoyé, il n'est donc ni délivré ni enregistré parmi les messages envoyés.
- Vérifiez les nombres dans la réponse. La route promotionnelle ne signale aucune suppression — si vous comparez les livraisons avec votre liste d'entrée, attendez-vous à une différence.
Merci pour votre retour.