Installer le widget

Ajoutez le bouton d’aide de Tikivio à votre site : vos clients finaux créent et suivent leurs demandes sans compte, dans une fenêtre isolée.

1. Intégration minimale

Dans Paramètres › Widget intégrable (/o/<votre-organisation>/parametres/widget), activez le widget, déclarez les origines autorisées de votre site puis copiez l’extrait avant </body> :

<script async src="https://app.tikivio.com/widget/tikivio.js" data-tikivio="<public_id>"></script>

Le public_id (32 caractères hexadécimaux) est public et non secret : il ne donne accès à rien sans vérification de l’adresse ou jeton signé.

Attributs facultatifs

AttributValeursRôle
data-tikivio-langfr | enlangue imposée du widget et du bouton (sinon langue du navigateur, puis langue par défaut du widget)
data-tikivio-positionright | leftcoin du bouton flottant
data-tikivio-labeltextelibellé du bouton (« Aide et support » par défaut)
data-tikivio-color#rrggbbcouleur du bouton flottant
data-tikivio-openautoouvre la fenêtre au chargement
data-tikivio-tokenjeton signéidentification par votre site (voir plus bas)

Fonctions JavaScript disponibles après le chargement : Tikivio.open(), Tikivio.close(), Tikivio.toggle(), Tikivio.setHostToken(jeton), Tikivio.setLanguage('fr'|'en').

2. Identification par code e-mail

Le visiteur saisit son adresse et reçoit un code à 6 chiffres, valable 10 minutes (5 essais). Limites : 3 codes par adresse sur 15 minutes et 20 demandes de code par adresse IP sur 1 heure. La session dure 30 minutes et se renouvelle jusqu’à 12 heures ; aucun cookie n’est utilisé et aucun compte n’est créé.

3. Identification par votre site (jeton signé)

Si votre site connaît déjà l’utilisateur, votre serveur signe un jeton avec le secret du widget (affiché une seule fois à sa génération, à ne jamais placer dans une page ni un script du navigateur). Format :

base64url(email|nom|exp|nonce) . "." . hex(HMAC-SHA256(secret, "email|nom|exp|nonce"))
  • exp : horodatage Unix, 15 minutes au plus après l’émission ;
  • nonce : 8 à 64 caractères [A-Za-z0-9_-], unique : chaque jeton n’est accepté qu’une fois ;
  • transmission par data-tikivio-token ou Tikivio.setHostToken(jeton), jamais dans une URL.
$payload = "$email|$nom|$exp|$nonce";
$jeton = rtrim(strtr(base64_encode($payload), '+/', '-_'), '=') . '.' . hash_hmac('sha256', $payload, $secret);

La régénération du secret invalide immédiatement les jetons en circulation.

4. Origines autorisées

Déclarez chaque origine sous la forme exacte https://www.exemple.fr (schéma, hôte et port éventuel ; ni chemin, ni joker ; 20 origines au plus). Une page hors de la liste ne peut pas afficher le widget.

5. Ce que fait le widget

  • Liste des demandes du visiteur avec leur état réel ; bouton « Actualiser » (pas de rafraîchissement automatique).
  • Nouvelle demande avec pièces jointes : 10 fichiers au plus, 25 Mo par fichier et 40 Mo par message, dans la limite du stockage de votre forfait.
  • Réponses publiques de votre équipe ; jamais une note interne.
  • Messages datés : ce n’est pas une discussion en direct. Chaque réponse arrive aussi par e-mail dès que votre organisation a relié une boîte d’envoi.