Install the widget

Add Tikivio’s help button to your website: your end customers create and follow requests without an account, in an isolated window.

1. Minimal setup

Under Settings › Embeddable widget (/o/<your-organisation>/parametres/widget), turn the widget on, declare your website’s allowed origins, then paste the snippet before </body>:

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

The public_id (32 hexadecimal characters) is public, not a secret: it gives access to nothing without address verification or a signed token.

Optional attributes

AttributeValuesPurpose
data-tikivio-langfr | enforces the language of the widget and button (otherwise the browser language, then the widget’s default language)
data-tikivio-positionright | leftcorner of the floating button
data-tikivio-labeltextbutton label (“Help & support” by default)
data-tikivio-color#rrggbbcolour of the floating button
data-tikivio-openautoopens the window on page load
data-tikivio-tokensigned tokenidentification by your website (see below)

JavaScript functions available once the script has loaded: Tikivio.open(), Tikivio.close(), Tikivio.toggle(), Tikivio.setHostToken(token), Tikivio.setLanguage('fr'|'en').

2. Identification with an e-mail code

The visitor enters their address and receives a 6-digit code, valid for 10 minutes (5 attempts). Limits: 3 codes per address within 15 minutes and 20 code requests per IP address within 1 hour. A session lasts 30 minutes and can be renewed for up to 12 hours; no cookie is used and no account is created.

3. Identification by your website (signed token)

If your website already knows the user, your server signs a token with the widget secret (shown only once when generated; never put it in a page or a browser script). Format:

base64url(email|name|exp|nonce) . "." . hex(HMAC-SHA256(secret, "email|name|exp|nonce"))
  • exp: Unix timestamp, at most 15 minutes after issue;
  • nonce: 8 to 64 characters [A-Za-z0-9_-], unique: each token is accepted only once;
  • pass it through data-tikivio-token or Tikivio.setHostToken(token), never in a URL.
$payload = "$email|$name|$exp|$nonce";
$token = rtrim(strtr(base64_encode($payload), '+/', '-_'), '=') . '.' . hash_hmac('sha256', $payload, $secret);

Regenerating the secret immediately invalidates tokens in circulation.

4. Allowed origins

Declare each origin exactly, such as https://www.example.com (scheme, host and optional port; no path, no wildcard; 20 origins at most). A page outside the list cannot display the widget.

5. What the widget does

  • Lists the visitor’s requests with their real state; a “Refresh” button (no automatic polling).
  • New request with attachments: up to 10 files, 25 MB per file and 40 MB per message, within your plan’s storage limit.
  • Your team’s public replies; never an internal note.
  • Dated messages: it is not a live chat. Each reply is also sent by e-mail once your organisation has connected a sending mailbox.