Aide
Dépannage
Que vérifier quand le chat ne s’affiche pas, qu’un Contact n’est pas reconnu ou qu’un webhook n’arrive pas.
Mis à jour le 28 octobre 2026
Commencez par la console du navigateur ou de Metro : chaque problème d’installation y laisse un message qui commence par Zean.
Le chat ne s’affiche pas sur le site
- Le domaine : la page doit être sur le domaine de l’App, www. compris, ou sur
localhost. Un autre sous-domaine ne l’est pas. Voir Saisir le domaine de votre site. - Le code : les deux balises script, ensemble, dans cet ordre, avant
</body>, sur la page testée. - La clé : copiez le code depuis Paramètres de l’App > Développeurs > Démarrage plutôt que de le retaper.
- Une App en pause : au-delà de la limite du Plan, les Apps les plus récentes sont en pause et le chat affiche « Le chat est indisponible pour le moment ».
- Un bloqueur de publicité ou une extension de confidentialité : testez dans une fenêtre de navigation privée, sans extension.
Les messages de la console :
Zean: no App has the key "…": la clé est fausse.Zean: … is not the App’s Domain: saisissez ce domaine dans « Domaine », ou ouvrez le site sur son bon domaine.Zean: … is not the App’s Bundle ID/Package name: saisissez-le dans « Bundle ID (iOS) » ou « Nom de package (Android) ».Zean: the chat stays closed: this page is one of the App’s Hidden pages.: votre code a ouvert le chat sur une page de « Pages masquées », dans Paramètres de l’App > Développeurs > Domaine, apps et pages. Retirez la page de la liste pour y garder le chat.Zean: set window.zean = { appKey: "…" } before loading the chat.: le premier script manque, ou vient après le second.Zean: the chat could not load from …: l’adresse du chargeur est bloquée ou fausse : un bloqueur ou une politique CSP.
Sites React et Vue
- Affichez
ZeanChatune seule fois, dans le layout racine, ou installezcreateZean()une seule fois. Une deuxième clé sur la même page est ignorée, et la console l’indique. - Avec une politique CSP, autorisez l’hôte du chargeur (l’adresse du script de votre code d’installation) en
script-srcet enframe-src: le chat s’ouvre dans un cadre servi par ce même hôte. - Un en-tête
Permissions-Policyqui refusedisplay-captureau cadre du chat empêche le navigateur de capturer l’onglet : le bouton Capture d’écran redessine alors la page, sans les vidéos, cartes et images d’autres sites. Pour une capture exacte, autorisez l’hôte du chargeur :display-capture=("https://hote-du-chargeur"). - Un changement de
localeattend le prochain chargement de la page.
Apps React Native
- Le chat ne s’affiche pas : le Bundle ID ou le nom de package de l’application n’est pas celui saisi dans Paramètres de l’App > Développeurs > Domaine, apps et pages. La console de Metro dit lequel elle a lu. Expo Go l’affiche toujours.
Zean: the chat could not read this app’s Bundle ID or Package name: installez expo-application (Expo) ou react-native-device-info (React Native CLI), puis refaites une version de l’application.- Le chat ne s’ouvre qu’avec
open()deuseZean(): il n’a pas de bouton flottant.ZeanChatdoit être affiché une seule fois, à la racine. - La conversation repart de zéro à chaque lancement, et la console de Metro dit
no storage found: installez AsyncStorage, MMKV ou Expo SQLite, puis refaites un build de l’application. Le chat le trouve seul. - Pas de bouton photo : ni
expo-image-pickernireact-native-image-pickern’est installé, ou l’app n’a pas été recompilée depuis. Ces modules sont natifs : il faut une nouvelle version de l’app. Expo Go les contient déjà. - L’App Store refuse la version sans texte sur les photos : ajoutez
NSPhotoLibraryUsageDescriptiondansInfo.plistavec React Native CLI, ou le pluginexpo-image-pickerdansapp.jsonavec Expo. - Les photos HEIC de l’iPhone sont envoyées en JPEG : le SDK demande au sélecteur la version compatible. Une photo fait 10 Mo au plus.
Contacts vérifiés
Zean: the user was left out: it needs an id, text or a number.:usern’a pas d’id. Le Contact reste anonyme.Zean: left out of the user, as they do not fit: email.: ce détail est laissé de côté, le reste passe. Un email doit être valide, un téléphone écrit en chiffres, une langue un code commeptoupt-BR.- Un deuxième appareil affiche « Déjà échangé avec nous sur un autre appareil ? » : c’est normal. La personne reçoit un code à son email enregistré et le saisit pour retrouver sa Conversation. D’ici là, cet appareil est « Non vérifié » dans le tableau de bord.
- Pas de proposition de code sur un deuxième appareil : le Contact vérifié n’a pas d’email enregistré. Passez
emaildansusersur un appareil qui a déjà rejoint le Contact. - Un appareil connecté affiche « Vous nous avez écrit avant de vous connecter ? » : une Conversation anonyme a donné cet email. La personne saisit le code envoyé à cette adresse pour la ramener, ou choisit « Ce n’est pas moi » pour masquer l’offre sur cet appareil.
- Un code refusé : il marche 10 minutes et 5 essais, seulement sur l’appareil qui l’a demandé. Après 3 codes en une heure, la personne attend une heure avant d’en demander un autre.
- Pour passer d’une personne à une autre, passez le nouvel
user, ou appelezsignOut()entre les deux.
Un webhook n’arrive pas
Ouvrez d’abord Paramètres de l’App > Développeurs > Webhook > « Envois récents » : chaque appel y figure avec son code de réponse ou son erreur, le début de la réponse de votre serveur et son temps de réponse. « Renvoyer » le rejoue une fois le problème réglé.
- Aucun appel dans la liste : l’adresse est-elle enregistrée ? Une réponse automatique de l’IA n’envoie aucun événement.
- « Adresse introuvable », « Erreur de certificat » ou « Connexion refusée » : l’adresse est-elle publique, en https, avec un certificat valide, et votre serveur écoute-t-il ? localhost et les réseaux privés sont refusés : sur votre ordinateur, utilisez la CLI Zean.
- « Délai dépassé » ou des appels répétés : répondez par un code 2xx en moins de 10 secondes, sinon l’appel est retenté. Ignorez les doublons grâce à
id. - Un code 401 ou 403 : votre serveur refuse la signature. Calculez-la sur le corps brut, avant tout décodage JSON ; vérifiez le secret après une régénération, et l’heure de votre serveur. En développement, avec la CLI Zean, le secret est le secret d’écoute. Voir Vérifier la signature d’un webhook.
- « Envoyer un événement de test » est grisé : aucune CLI Zean ne tourne pour l’App. Un événement de test ne va jamais à l’adresse du webhook.
- La CLI Zean s’est arrêtée avec un message : la clé CLI a été régénérée. Relancez-le avec la nouvelle clé.
Toujours bloqué ? Lisez aussi Le chat ne s’affiche pas dans le centre d’aide, ou écrivez-nous dans le chat avec le message de la console.