Vérification email en double opt-in
Exiger qu'un participant confirme son adresse e-mail avant que son inscription ne compte, grâce à une function que vous contrôlez.
Activez le double opt-in pour retenir une inscription tant que le participant n'a pas confirmé son adresse e-mail : votre liste de contacts reste propre et vous disposez d'une preuve de consentement. OmniLab n'envoie pas lui-même le message de confirmation — vous écrivez une petite function qui décide comment se déroule la confirmation, puis vous l'associez à l'organisation.
Ce que traverse le participant
À lire avant toute configuration : le double opt-in ajoute un aller-retour par la boîte mail du participant, et l’endroit où il atterrit dépend de s’il ouvre l’email sur le même appareil que celui de son inscription.
Le participant remplit le formulaire d’inscription
Votre Function envoie l’email de confirmation
Via votre propre fournisseur d’emailing.
Un écran d’attente met l’inscription en pause
Lui demande de confirmer, avec Renvoyer l’email et un bouton de revérification.
Il ouvre l’email et clique sur le lien
Une brève page de confirmation s’affiche
Elle confirme l’adresse, puis le redirige d’elle-même.
Il revient sur la page depuis laquelle il s’est inscrit
Reconnu, avec tout ce qu’il a fait avant la confirmation toujours rattaché à lui.
Il poursuit l’expérience
Même appareil : il revient dans l’expérience, déjà reconnu. Autre appareil : il revient sur l’écran d’attente et se connecte avec un code.
Le participant remplit le formulaire d’inscription
Votre Function envoie l’email de confirmation
Via votre propre fournisseur d’emailing.
Un écran d’attente met l’inscription en pause
Lui demande de confirmer, avec Renvoyer l’email et un bouton de revérification.
Il ouvre l’email et clique sur le lien
Une brève page de confirmation s’affiche
Elle confirme l’adresse, puis le redirige d’elle-même.
Il revient sur la page depuis laquelle il s’est inscrit
Reconnu, avec tout ce qu’il a fait avant la confirmation toujours rattaché à lui.
Il poursuit l’expérience
L’inscription est mise en attente à l’étape 3 et ne se termine qu’à l’ouverture du lien. Rien n’est comptabilisé avant.
Trois points méritent d’être connus avant d’activer ce parcours.
La page de confirmation n’est pas un cul-de-sac. Elle confirme l’adresse et renvoie le participant vers la campagne d’elle-même. Il la voit un instant ; il n’a rien à cliquer.
Le lien ne fonctionne qu’une fois. Un second clic indique qu’il a déjà été utilisé et renvoie le participant vers la campagne, où il peut se connecter avec un code envoyé par email. Ce point compte, car les scanners de sécurité et les aperçus de liens ouvrent les liens avant les humains — la page est conçue pour qu’ils ne puissent pas consommer le lien avant le vrai clic.
Ouvrir l’email sur un autre appareil est normal. Il s’est inscrit sur un ordinateur et ouvre l’email sur son téléphone : le téléphone n’a aucune trace de l’inscription. Sur l’ordinateur, le bouton de revérification de l’écran d’attente le fait avancer ; sur le téléphone, un code lui est demandé. Aucun des deux n’est une erreur, et les deux aboutissent au même endroit.
Avant de commencer
- Vous avez besoin du rôle Admin. Activer le paramètre et associer la function nécessitent tous les deux ce rôle.
- Une function associée au point d'ancrage contact.verify doit exister avant d'activer le double opt-in. Sans cela, chaque inscription concernée échoue.
- Décidez quel fournisseur de messagerie transactionnelle — l'e-mail service provider (ESP), c'est-à-dire le service qui envoie réellement le message de confirmation, par exemple Brevo — votre function va appeler, et tenez ses identifiants API prêts.
Associez d'abord la function
Une fois le double opt-in activé pour une organisation, OmniLab refuse toute inscription passwordless tant qu'aucune function n'est associée à contact.verify. Préparez la function avant d'activer le paramètre, pas après.
Tant que l'association manque, la publication est bloquée : le problème apparaît donc comme une erreur de validation sur toutes les campagnes de cette organisation — y compris celles de collègues qui n'ont jamais touché à ce paramètre.
Étapes
Associer une function au hook de vérification
L'interface Functions est uniquement en anglais
Contrairement au reste d'OmniLab Studio, les écrans Functions ne sont pas traduits. Les libellés restent en anglais quelle que soit la langue de votre interface, et sont donc cités en anglais ci-dessous.
Dans la barre latérale, basculez sur l'organisation globale, puis ouvrez Paramètres généraux. Sur la page Paramètres de l'Entreprise, sélectionnez l'onglet Functions, puis créez ou choisissez une function associée au point d'ancrage contact.verify. C'est ce code qui délivre réellement le message de confirmation — OmniLab lui transmet le lien à usage unique et attend sa réponse.
Votre function n'a que deux réponses valides : envoyer le lien via votre ESP, ou indiquer à OmniLab que le contact est already verified ("déjà vérifié") lorsque vos propres registres le prouvent déjà.
Deux détails de l'association déterminent si OmniLab l'accepte. Elle doit être Active : une association laissée inactive équivaut à aucune association. Et elle doit couvrir l'organisation à laquelle appartient la campagne, soit parce qu'elle est globale, soit parce qu'elle nomme cette organisation parmi ses cibles. Une association qui ne cible qu'une seule organisation laisse toutes les autres bloquées.

Écrire la function elle-même
La création et le test de la function sont détaillés dans Functions de type hook. Partagez cette page avec votre développeur.
Stocker les identifiants de votre fournisseur en tant que secret
Toujours sur l'onglet Functions, ajoutez la clé API de votre ESP dans un secret bundle et associez ce bundle à votre function, afin que les identifiants soient disponibles à l'exécution sans être écrits dans le code. Les champs exacts sont détaillés dans Configurer l'exécution et les secrets.
Activer le double opt-in pour l'organisation
Ouvrez Paramètres généraux > Authentification pour définir la valeur par défaut du tenant, ou Paramètres de l'organisation > Authentification pour ne l'appliquer qu'à une seule organisation. Réglez Double opt-in pour l'inscription passwordless sur Activé.

Un choix fait au niveau d'une organisation l'emporte toujours sur la valeur par défaut du tenant : utilisez donc le paramètre d'organisation pour tout groupe qui a besoin d'un comportement différent.
Vérifier qu'une inscription est bien retenue
Inscrivez-vous avec un contact de test et vérifiez que le participant n'est pas compté tant qu'il n'a pas agi sur le message de confirmation envoyé par votre function, ou tant que votre propre système ne l'a pas signalé comme déjà vérifié. Consultez le journal d'exécution de votre function pour voir lequel des deux chemins s'est exécuté.
Ajuster le texte de l'écran d'attente si besoin
Pendant qu'une inscription est retenue, le participant voit un écran lui demandant de confirmer son adresse, avec des boutons pour renvoyer l'email et pour revérifier une fois le lien cliqué. Il est livré traduit dans toutes les langues prises en charge par OmniLab : cette étape est donc facultative, à ne faire que si vous souhaitez une autre formulation.
Modifiez-le dans Construire > Paramètres > Traduction de la campagne > Acquisition Form ; les libellés exacts sont listés dans la référence du formulaire d'acquisition.
Le lien de vérification est généré dans la langue par défaut de la campagne : le participant atterrit donc sur une page de confirmation dans la langue où il s'est inscrit.
Si quelque chose bloque
- Une campagne refuse de se publier, avec une erreur de double opt-in sous Auth. Le double opt-in est activé pour cette organisation, mais aucune association contact.verify active ne la couvre. Créez-en une comme décrit ci-dessus, ou repassez le double opt-in sur Désactivé pour cette organisation. Les deux demandent un accès administrateur : une personne qui construit une campagne et rencontre ce blocage doit donc le faire remonter plutôt que le contourner. Voir Validation et publication.
- L'erreur de validation indique que l'association n'a pas pu être vérifiée. OmniLab n'a pas réussi à joindre le service de functions pour confirmer l'association, ce qui n'est pas la même chose que de la trouver manquante. Relancez la validation ; si le problème persiste, contactez le support.
- Les inscriptions échouent immédiatement. Le double opt-in est activé pour cette organisation, mais aucune function n'est associée à contact.verify. Associez-en une, ou désactivez le paramètre en attendant.
- Un participant indique n'avoir jamais reçu le message de confirmation. Ouvrez le journal d'exécution de la function pour cette inscription — une exécution réussie signifie seulement que l'appel de votre function vers l'ESP a été accepté, pas que le message a été livré. Vérifiez ensuite les journaux de livraison de votre ESP.
- Les inscriptions réussissent instantanément pour tout le monde, sans aucun message envoyé. Votre function renvoie already verified à chaque exécution au lieu de le faire uniquement quand vos propres registres le confirment. Revoyez sa logique.