Le cas le plus simple : une balise, collée une fois, sur toutes les pages où la bulle doit apparaître.
Juste avant </body> :
</body>
<script src="https://messagerie.inovertix.com/inochat.js" data-site="INOCHT_PUB_votre_cle_publique" data-endpoint="https://messagerie.inovertix.com/api/inochat" defer></script> </body> </html>
Si votre site a un pied de page commun (footer.php, include/footer.html, _layout.html…), collez-la là : une balise à un seul endroit est une balise qu'on n'oublie pas sur une page.
footer.php
include/footer.html
_layout.html
Retirez la bulle flottante et gardez l'API :
<script src="https://messagerie.inovertix.com/inochat.js" data-site="INOCHT_PUB_votre_cle_publique" data-endpoint="https://messagerie.inovertix.com/api/inochat" data-launcher="off" defer></script> <button type="button" onclick="window.INOCHAT.open()"> Une question ? Discutez avec nous </button>
window.INOCHAT n'existe qu'une fois le widget chargé (le script est defer). Si votre bouton peut être cliqué très tôt, protégez l'appel :
window.INOCHAT
defer
<button type="button" onclick="window.INOCHAT && window.INOCHAT.open()">
Il n'y a pas d'option : c'est la présence de la balise qui décide. Sur un site PHP, la condition s'écrit là où vous incluez le pied de page :
<?php if (!is_admin_page()): ?> <script src="https://messagerie.inovertix.com/inochat.js" data-site="INOCHT_PUB_votre_cle_publique" data-endpoint="https://messagerie.inovertix.com/api/inochat" defer></script> <?php endif; ?>
Si votre site publie un en-tête Content-Security-Policy, autorisez notre domaine pour le script et pour les appels :
Content-Security-Policy
Content-Security-Policy: script-src 'self' https://messagerie.inovertix.com; connect-src 'self' https://messagerie.inovertix.com;
Le panneau vit dans un Shadow DOM avec ses styles à l'intérieur : si votre CSP interdit les styles en ligne (style-src sans 'unsafe-inline'), ajoutez-y aussi notre domaine, ou signalez-le à INOVERTIX.
style-src
'unsafe-inline'
Aucune erreur visible chez vous. Clé invalide, domaine non autorisé, service indisponible : le widget ne s'affiche pas, et c'est tout.
Aucun cookie. Seulement un jeton de conversation dans le localStorage de votre domaine.
localStorage
Voyez Dépannage — les trois causes couvrent 95 % des cas : domaine non déclaré, clé recopiée avec un espace, ou balise posée après </body>.