Après une inscription
La page Après l’envoi d’un formulaire décide de ce qui se passe quand quelqu’un s’inscrit : le message de remerciement ou une autre page, les e-mails, la newsletter, un compte client et le webhook vers un autre système. Tout, sauf le message de remerciement, reste désactivé tant que vous ne l’activez pas.

- Les onglets de langue, pour le message de remerciement et les textes des e-mails.
- Remerciement : ce que voit le visiteur après l’envoi, la page de confidentialité, la réinitialisation de la borne et le contrôle des doublons.
- E-mails : l’e-mail de confirmation au visiteur.
- Récapitulatif quotidien : l’e-mail récapitulatif envoyé à votre équipe (Le récapitulatif quotidien).
- Options supplémentaires : la newsletter et le compte client.
- Webhook : les inscriptions envoyées à un autre système.
Un seul bouton Enregistrer, en bas, enregistre toute la page. Le visiteur reçoit la réponse en premier ; les e-mails, les options et le webhook s’exécutent juste après, chacun de son côté. Si l’un d’eux échoue, le visiteur ne voit jamais d’erreur : l’échec est consigné dans Paramètres avancés › Logs, sur une ligne qui commence par pchscansign.
Remerciement
| Réglage | Ce qu’il fait |
|---|---|
| Après l’envoi du formulaire | Afficher un message remplace le formulaire par le message de remerciement. Ouvrir une autre page ouvre l’adresse que vous saisissez, par exemple une page avec un code de réduction. Une borne affiche toujours le message. |
| Message de remerciement | Le texte affiché après une inscription réussie, par langue. Dites aux gens ce qui va suivre, par exemple « Nous vous appellerons sous deux jours. » |
| Page à ouvrir | L’adresse complète, commençant par https://. Les valeurs UTM de l’inscription y sont ajoutées, pour que vos outils d’analyse attribuent la visite à l’événement (Suivi avec les valeurs UTM). |
| Page de politique de confidentialité | Une page CMS de votre boutique, liée sous le formulaire (Aucune par défaut). La borne l’ouvre dans une fenêtre par-dessus le formulaire. Choisissez votre politique de confidentialité dès que le formulaire demande des données personnelles. |
| Réinitialisation de la borne | Le nombre de secondes pendant lesquelles la borne affiche le message de remerciement avant un formulaire vierge, de 3 à 120. 8 secondes après l’installation. |
| Contrôle des doublons | Une deuxième inscription avec la même adresse e-mail dans les 24 heures reçoit un remerciement, mais n’est ni enregistrée ni comptée à nouveau. Activé pour les nouveaux formulaires (Général) ; désactivez-le quand une même personne peut inscrire plusieurs personnes avec la même adresse. Il nécessite un champ utilisé comme adresse e-mail. |
L’e-mail de confirmation
Le visiteur peut recevoir une copie de ses réponses juste après son inscription. Activez E-mail de confirmation dans la carte E-mails ; cette option nécessite un champ utilisé comme Adresse e-mail de la personne.
| Réglage | Ce qu’il fait |
|---|---|
| Objet de l’e-mail | L’objet, par langue. {form_title} devient le titre du formulaire. Après l’installation : « Votre inscription : {form_title} ». |
| Texte de l’e-mail | Le texte au-dessus des réponses, par langue : les prochaines étapes, la date d’un événement, un contact. Après l’installation : « Merci pour votre inscription. Voici une copie de vos réponses. » |

L’e-mail contient le logo et le nom de votre boutique, le titre du formulaire, votre texte, les réponses avec les questions telles qu’elles ont été posées, la couleur du bouton du formulaire comme couleur d’accent, et une ligne qui explique pourquoi la personne le reçoit. Il est rédigé dans la langue du lien utilisé par la personne, et part via les réglages e-mail de votre boutique.
Ajouter à la newsletter
Ajouter à la newsletter abonne les personnes qui cochent la case de consentement newsletter. Cette option nécessite un champ e-mail et une case à cocher utilisée comme Consentement newsletter. Pour chaque inscription dont la case est cochée :
- Si un client de la boutique a cette adresse e-mail, son compte client est abonné à la newsletter.
- Sinon, l’adresse est ajoutée aux abonnés du module Inscription à la newsletter de PrestaShop (
ps_emailsubscription), quand ce module est installé et actif.
Créer un compte client
Créer un client crée un compte client pour les personnes qui n’en ont pas. Cette option nécessite des champs utilisés comme adresse e-mail, prénom et nom.
- Quand aucun client enregistré de la boutique n’a cette adresse e-mail, le module crée un compte actif dans le groupe de clients par défaut de la boutique, avec le prénom et le nom, et abonné à la newsletter si la case de consentement newsletter a été cochée.
- Le compte reçoit un mot de passe aléatoire que personne ne connaît, et la personne reçoit un e-mail « Votre compte sur … » avec un lien pour choisir un mot de passe. Quand le lien a expiré, la personne utilise « Mot de passe oublié ? » sur la page de connexion.
- Un client existant reste tel quel. Un nom que PrestaShop n’accepte pas comme nom de client (avec des chiffres, par exemple) ne crée aucun compte.
Webhook
Un webhook envoie chaque inscription à un autre système dès son arrivée : un CRM, Zapier, Make, n8n ou votre propre script.
- Dans la carte Webhook, saisissez l’Adresse que le système destinataire vous a donnée. Elle doit commencer par
https://: les données sont personnelles, les adresses non chiffrées sont donc refusées. - Cliquez sur Enregistrer. Une Clé secrète est créée avec la première adresse. Affichez-la avec Afficher, copiez-la avec Copier, et saisissez-la dans le système destinataire pour qu’il puisse vérifier la signature.
- Cliquez sur Envoyer une inscription de test. Le module envoie un exemple d’inscription de ce formulaire, avec ses champs actuels et des valeurs inventées, et affiche le statut HTTP renvoyé par le système destinataire.
Après chaque inscription, le module envoie un document JSON à l’adresse (requête POST) et attend la réponse cinq secondes au maximum. Un statut de 200 à 299 vaut livraison réussie. Une redirection n’est pas suivie (saisissez l’adresse finale), et les adresses de réseaux privés sont refusées. Une livraison échouée n’est pas retentée ; la carte affiche Dernière réponse, Dernier échec et Échecs consécutifs, et la liste de contrôle signale les échecs des sept derniers jours. Créer une nouvelle clé secrète à l’enregistrement remplace la clé secrète, si elle a été partagée par erreur : mettez alors aussi à jour le système destinataire.
Le document se présente ainsi (les champs sont ceux de votre formulaire) :
{
"module": "pchscansign",
"version": "1.0.0",
"form": {"id": 1, "title": "Green Building Expo 2026"},
"link": {"code": "K7M2P9XW", "name": "Stand B12 - poster QR", "channel": "qr"},
"lang": "en",
"submitted_at": "2026-10-23T11:42:05+02:00",
"fields": [
{"id": 11, "label": "First name", "role": "firstname", "value": "Anna"},
{"id": 13, "label": "Email", "role": "email", "value": "anna@example.com"},
{"id": 16, "label": "What do you do?", "role": "none", "value": "Installer"},
{"id": 19, "label": "Keep me informed by email", "role": "newsletter_consent", "value": "Yes"}
],
"roles": {"email": "anna@example.com", "firstname": "Anna", "lastname": "Berg",
"phone": "", "company": ""},
"utm": {"source": "scansign", "medium": "qr", "campaign": "green-building-expo-2026"}
}
valueest la réponse telle que la personne l’a vue : le libellé du choix sélectionné pour une liste déroulante, oui ou non dans la langue du lien pour une case à cocher, le texte pour les autres types.rolesreprend les réponses des champs utilisés comme e-mail, prénom, nom, téléphone et société, pour que le système destinataire ne dépende pas de vos questions.submitted_atest l’heure de l’inscription dans le fuseau horaire de la boutique.
Vérifier la signature
Chaque requête porte l’en-tête X-ScanSign-Signature : sha256= suivi du HMAC-SHA256 du corps brut, calculé avec la clé secrète, en hexadécimal. L’en-tête X-ScanSign-Event vaut signup pour une vraie inscription et test pour Envoyer une inscription de test. Le système destinataire calcule la même valeur à partir du corps reçu et refuse la requête quand les deux diffèrent. En PHP :
$body = file_get_contents('php://input');
$expected = 'sha256=' . hash_hmac('sha256', $body, $secret);
$given = isset($_SERVER['HTTP_X_SCANSIGN_SIGNATURE']) ? $_SERVER['HTTP_X_SCANSIGN_SIGNATURE'] : '';
if (!hash_equals($expected, $given)) {
http_response_code(401); // ne vient pas de votre boutique
exit;
}
$signup = json_decode($body, true);
En Node.js, avec le corps brut sous forme de Buffer :
const crypto = require('crypto');
const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
const given = req.get('X-ScanSign-Signature') || '';
const valid = given.length === expected.length
&& crypto.timingSafeEqual(Buffer.from(given), Buffer.from(expected));
Calculez la signature sur le corps exactement tel qu’il a été reçu, avant toute analyse JSON : un corps analysé puis réécrit ne correspond plus.
Le récapitulatif quotidien
Les personnes qui rappellent les prospects n’ont pas besoin d’un e-mail par inscription. Le récapitulatif quotidien leur envoie plutôt un seul e-mail par jour : combien de personnes se sont inscrites la veille, par quel lien, ce qu’elles ont répondu, et un lien vers la liste.
L’activer
- Ouvrez la page Après l’envoi du formulaire.
- Dans la carte Récapitulatif quotidien, activez Récapitulatif quotidien.
- Saisissez les Destinataires, séparés par des virgules, par exemple
sales@example.com, anna@example.com. - Choisissez Envoyer à partir de : l’heure, dans le fuseau horaire de la boutique, à partir de laquelle le récapitulatif peut partir (8:00 après l’installation).
- Cliquez sur Enregistrer. Une adresse incorrecte est refusée, et le message la cite.
Chaque formulaire a son propre récapitulatif, ses propres destinataires et sa propre heure.
Ce que contient le récapitulatif

- Le formulaire, le jour, le nombre d’inscriptions et le nombre d’ouvertures.
- Par lien : chaque lien avec son canal, sa campagne, ses ouvertures et ses inscriptions. Un lien supprimé garde son nom, suivi de « (supprimé) ».
- Par réponse : les chiffres de chaque question de type liste déroulante ou case à cocher.
- Ouvrir les inscriptions de ce jour : un lien vers la page Inscriptions du formulaire, filtrée sur ce jour. Si le back-office vous demande de vous connecter, ou affiche sa page de jeton invalide, connectez-vous ou confirmez, et la liste s’ouvre.
Le récapitulatif est rédigé dans la langue par défaut de la boutique. Il n’est envoyé que pour un jour qui a eu des inscriptions : un jour sans inscription n’envoie rien.
Quand il part
Le récapitulatif d’un jour part le lendemain, à partir de l’heure réglée dans Envoyer à partir de, au premier des moments suivants :
- Quelqu’un utilise le back-office. Le module vérifie au plus toutes les 15 minutes, tant que des employés travaillent. Cela ne demande aucune configuration, mais un jour où personne n’ouvre le back-office, le récapitulatif attend.
- L’adresse du cron est appelée. Avec une tâche cron toutes les 15 minutes, le récapitulatif part à l’heure que vous avez choisie (Tâches planifiées).
Un récapitulatif n’est jamais envoyé depuis la page d’un visiteur : une inscription n’est donc jamais ralentie par un e-mail. Quand des jours ont été manqués, par exemple un week-end sans back-office, l’exécution suivante envoie le récapitulatif de chaque jour manqué qui a eu des inscriptions, un e-mail par jour et sept jours au maximum par exécution. Un récapitulatif déjà envoyé n’est pas renvoyé, même avec Exécuter maintenant.
La ligne d’état indique quand le dernier récapitulatif est parti, et la liste de contrôle avertit quand des récapitulatifs sont dus mais qu’aucun n’est parti depuis 36 heures (La liste de contrôle).