Tillor
Platform ModulesInbox

Website chat

Live chat-widget op je eigen site koppelen aan de Tillor inbox

Met Website chat plaats je een chatknop op je eigen website. Bezoekers sturen berichten via het widget; uw team antwoordt in de Tillor inbox naast WhatsApp, Messenger en Instagram.

Integratie installeren

  1. Ga naar Instellingen > Integraties (sidebar onder Ondersteuning)
  2. Open Website chat in de lijst
  3. Klik Installeren (geen OAuth - Tillor maakt direct een widget-sleutel aan)
  4. Stel onder Instellingen de widget in (welkomstbericht, accentkleur, optioneel toegestane domeinen)
  5. Kopieer het Embed-snippet onder Embedden op je website en plak het vóór </body> op elke pagina waar de chatknop moet verschijnen

Widget-sleutel

De sleutel in het snippet is publiek zichtbaar, net als bij andere chatproducten. Beperk misbruik door Toegestane domeinen in te vullen (kommagescheiden hostnamen, bijv. voorbeeld.nl, www.voorbeeld.nl). Laat u het veld leeg, dan accepteert Tillor verzoeken van elke origin.

Widget instellen

VeldWat doet het?
Widget ingeschakeldZet de chat op uw site uit zonder te de-installeren
WelkomstberichtEerste chatbubbel van uw team wanneer het gesprek nog leeg is
Tooltip launcherLabel voor de zwevende knop (voor screenreaders)
AccentkleurKleur voor de chatknop en uitgaande bubbels (kleurkiezer of hex, bijv. #2563eb)
OrganisatielogoHet logo uit uw Tillor-organisatieprofiel verschijnt in de chatheader en bij teamberichten
Toegestane domeinenAlleen deze sites mogen de widget laden
BezoekersformulierStandaardvelden (naam, e-mail, telefoon) en extra velden vóór het eerste bericht

Bezoekersformulier

Onder Instellingen bij Website chat stelt u in welke velden bezoekers invullen vóór het eerste bericht. Zijn er verplichte velden, dan verschijnen die samen met het berichtveld in één scherm. De bezoeker vult alles in en stuurt met Versturen - geen aparte tussenstap.

Standaardvelden

Vink per veld aan of het verplicht is:

VeldOpmerking
NaamWordt opgeslagen bij het gesprek
E-mailWordt opgeslagen bij het gesprek
TelefoonNormaliseert naar E.164 en helpt bij koppeling met oproepen en klanten

U kunt elk veld apart aan- of uitzetten. Alleen telefoon aan? Dan verschijnt alleen het telefoonveld.

Extra velden

Klik Veld toevoegen voor eigen vragen (max. 8). Per veld stelt u in:

OptieUitleg
LabelWat de bezoeker ziet in het widget
TypeTekst of e-mail
VerplichtBezoeker moet het invullen vóór het eerste bericht
PlaceholderOptionele hint in het invoerveld

Waarden van extra velden staan in de inbox onder het gesprek, naast kanaal en bezoeker-id.

Embed-opties

Naast data-org-id en data-widget-key kunt u optionele attributen op het script zetten:

AttribuutBeschrijving
data-localeTaal van de widget: en, nl, de of fr (standaard en). Stuurt knoppen, placeholders en standaard welkomstbericht/launcher mee als u die niet in Instellingen hebt ingevuld
data-messagesJSON-object om losse teksten te overschrijven, bijv. {"send":"Versturen","messagePlaceholder":"Typ uw bericht…"}
data-debugZet op true voor [Tillor inbox widget] logs in de browserconsole (handig op productie)
data-soundsGeluidseffecten aan (true, standaard) of uit (false) bij nieuwe teamreacties en bij verzenden
data-visitorJSON-object om naam, e-mail en telefoon vooraf in te vullen, bijv. {"name":"Jan","email":"jan@voorbeeld.nl","phone":"+32470123456"}
data-visitor-nameAlleen de naam vooraf invullen (alternatief voor losse velden)
data-visitor-emailAlleen het e-mailadres vooraf invullen
data-visitor-phoneAlleen het telefoonnummer vooraf invullen

Script-attributen vullen alleen lege velden aan. Heeft de bezoeker al gegevens ingevuld in deze browsersessie, dan blijven die staan.

Spambeveiliging

Het widget gebruikt geen aparte captcha op de bezoekerssite. Tillor beschermt verzenden via:

  • Widget-sleutel (data-key / X-Tillor-Inbox-Widget-Key) - alleen geïnstalleerde chats accepteren verzoeken met de juiste sleutel
  • Toegestane domeinen (optioneel) - Tillor controleert de Origin-header; alleen hostnamen uit uw lijst mogen berichten sturen

Vul Toegestane domeinen in wanneer het widget op een vaste klantensite staat (bijv. camping-vlasaard.be, www.camping-vlasaard.be). Laat u het veld leeg, dan werkt het widget op elk domein waar u het snippet plaatst.

Contactformulier vervangen

Vervangt u een contactformulier door TillorInbox.send()? U kunt uw eigen captcha op de pagina laten staan als extra laag, maar het Tillor-widget vereist geen hCaptcha of Turnstile op de klantensite.

JavaScript-SDK (window.TillorInbox)

Na het laden van het widget-script kunt u contactgegevens vanaf uw eigen formulier doorgeven (contactpagina, verkoopdetail, offerte-aanvraag). Alle methodes wachten tot de widget-config geladen is.

MethodeBeschrijving
ready()Promise die klaar is zodra het widget geladen is
setVisitor({ name?, email?, phone?, message?, customFields? }, options?)Vult chatvelden in zonder te versturen
open()Opent het chatvenster
close()Sluit het chatvenster
toggle()Opent of sluit het chatvenster
send({ body, name?, email?, phone?, message?, customFields?, open?, silent?, markSubmitted? })Verstuurt een bericht met contactgegevens

Opties voor setVisitor (tweede argument):

OptieStandaardUitleg
openfalseChatvenster direct openen
markSubmittedfalseVerberg het bezoekersformulier als alle verplichte velden ingevuld zijn
onlyEmptyfalseAlleen lege velden overschrijven
persistfalseGegevens in sessionStorage bewaren

Opties voor send:

OptieStandaardUitleg
openfalseChatvenster openen vóór het versturen
silenttrue als open false isGeen geluid, geen foutmelding in het widget; gebruik de Promise voor succes of fout
markSubmittedtrueContactgegevens hoeven daarna niet opnieuw in het widget

Met open: false (standaard) blijft de chatknop dicht. Het bericht gaat wel naar Tillor; uw eigen formulier kan bedanken of een fout tonen. Met open: true opent het chatvenster en ziet de bezoeker het normale verzendgedrag (geluid, vinkjes, eventuele widget-fouten).

Contactformulier vervangen (stille verzending)

Gebruik dit wanneer u het bestaande contactformulier wilt houden, maar berichten via Tillor wilt laten lopen zonder het chatvenster te openen:

<form id="site-contact-form">
  <input name="name" type="text" required />
  <input name="email" type="email" required />
  <input name="phone" type="tel" />
  <textarea name="message" required></textarea>
  <button type="submit">Verstuur</button>
  <p id="contact-status" hidden></p>
</form>

<script>
  document.getElementById("site-contact-form").addEventListener("submit", async (event) => {
    event.preventDefault();
    const form = event.currentTarget;
    const status = document.getElementById("contact-status");
    const data = new FormData(form);

    try {
      await TillorInbox.send({
        name: String(data.get("name") ?? ""),
        email: String(data.get("email") ?? ""),
        phone: String(data.get("phone") ?? ""),
        body: String(data.get("message") ?? ""),
      });
      status.textContent = "Bedankt, we nemen snel contact op.";
      status.hidden = false;
      form.reset();
    } catch (error) {
      status.textContent = error instanceof Error ? error.message : "Versturen mislukt.";
      status.hidden = false;
    }
  });
</script>

open en silent hoeft u niet te zetten: zonder open: true blijft het venster dicht en behandelt Tillor de aanroep als stille verzending.

Contactformulier koppelen (chat openen)

Voorbeeld: velden doorgeven en het chatvenster openen zodat de bezoeker het gesprek ziet:

<form id="site-contact-form">
  <input name="name" type="text" required />
  <input name="email" type="email" required />
  <input name="phone" type="tel" />
  <textarea name="message" required></textarea>
  <button type="submit">Verstuur</button>
</form>

<script>
  document.getElementById("site-contact-form").addEventListener("submit", (event) => {
    event.preventDefault();
    const form = event.currentTarget;
    const data = new FormData(form);
    void TillorInbox.send({
      name: String(data.get("name") ?? ""),
      email: String(data.get("email") ?? ""),
      phone: String(data.get("phone") ?? ""),
      body: String(data.get("message") ?? ""),
      open: true,
    });
  });
</script>

Of alleen velden invullen en het venster openen (zonder meteen te versturen):

void TillorInbox.setVisitor(
  {
    name: "Jan Janssens",
    email: "jan@voorbeeld.be",
    phone: "+32 3 779 81 64",
    message: "Ik heb een vraag over de stacaravan te koop.",
  },
  { markSubmitted: true, open: true },
);

Verkooppagina met direct versturen en chat openen:

void TillorInbox.send({
  name: "Jan Janssens",
  email: "jan@voorbeeld.be",
  phone: "+32 3 779 81 64",
  body: "Ik heb interesse in deze stacaravan.",
  open: true,
});

Live synchroniseren terwijl iemand typt (optioneel):

const form = document.getElementById("site-contact-form");
form.addEventListener("input", () => {
  void TillorInbox.setVisitor({
    name: form.name.value,
    email: form.email.value,
    phone: form.phone.value,
    message: form.message.value,
  });
});

Vroeg aanroepen (vóór het widget-script)

<script>
  window.TillorInbox = window.TillorInbox || { q: [] };
  window.TillorInbox.q.push([
    "setVisitor",
    { name: "Jan", email: "jan@voorbeeld.be" },
    { open: true },
  ]);
</script>
<script src="https://tillor.eu/inbox-widget.js" data-org-id="org_abc123" data-widget-key="iwk_xxx" async defer></script>

Voorbeeld met Nederlandse teksten:

<link rel="preload" href="https://tillor.eu/inbox-widget.css" as="style" />
<script
  src="https://tillor.eu/inbox-widget.js"
  data-org-id="org_abc123"
  data-widget-key="iwk_xxx"
  data-locale="nl"
  data-debug="true"
  async
  defer
></script>

U kunt debug ook aanzetten zonder het snippet te wijzigen: in de browserconsole localStorage.setItem('tillor-inbox-debug', '1') en de pagina verversen.

Onder het berichtveld ziet de bezoeker een korte mededeling dat verzenden akkoord is met de websitechat-voorwaarden (GDPR/AVG, Belgisch recht). De link opent in een nieuw tabblad en volgt de taal van data-locale.

Eerste bericht

Zodra de bezoeker in het berichtveld typt, kan uw team Typen… zien in de inbox. Het eerste bericht gaat pas bij Versturen; contactgegevens worden dan meegestuurd.

Typen (beide kanten)

Typen werkt in beide richtingen:

RichtingWat de bezoeker zietWat uw team ziet in de inbox
Bezoeker typt-Typen… onder het gesprek (realtime)
Medewerker typtTypen… in het widget-

Het ingebouwde widget stuurt automatisch typ-signalen terwijl de bezoeker in het berichtveld typt. Uw team ziet dat in de inbox zodra het gesprek openstaat (ook vóór het eerste verzonden bericht).

Bouwt u een eigen chat-UI in plaats van het widget? Roep dan de widget-API aan:

POST /api/inbox-widget/{orgId}/typing
X-Tillor-Inbox-Widget-Key: iwk_xxx
Content-Type: application/json

{
  "visitorId": "vis_…",
  "active": true,
  "visitorName": "Jan",
  "visitorEmail": "jan@voorbeeld.nl",
  "visitorPhone": "+32470123456"
}
  • active: true wanneer de bezoeker typt; false wanneer het veld leeg is of de bezoeker stopt (het widget stuurt false na ongeveer 4 seconden zonder input)
  • visitorName / visitorEmail / visitorPhone zijn optioneel, maar helpen bij het koppelen vóór het eerste bericht
  • Gebruik hetzelfde visitorId als bij /send en /messages

Staff-typ-indicator in het widget komt mee in GET /messages als staffTyping: true (widget pollt elke paar seconden).

Bezoekersactiviteit (alleen in de inbox)

Na het eerste bericht stuurt het widget info-regels naar Tillor (chat openen of sluiten, tab wisselen, pagina verlaten, navigatie). Uw team ziet die als grijze tekst in het gesprek; de bezoeker ziet ze niet in het widget. Vóór dat eerste bericht verschijnt er nog geen gesprek in de inbox.

GebeurtenisTekst in de inbox (volgt uw taal in Tillor)
Chat sluitenGebruiker sloot de chat
Tab wisselen of venster minimaliserenGebruiker wisselde van tabblad of minimaliseerde de browser
Navigeren naar een andere paginaGebruiker navigeerde naar de opgegeven pagina-URL

Navigatie werkt bij gewone websites (elke pagina laadt opnieuw) en bij single-page apps (history API). De huidige pagina-URL staat ook in het zijpaneel van het gesprek. Info-regels verhogen geen ongelezen teller en geven geen pushmelding.

Eigen UI? Roep POST /api/inbox-widget/{orgId}/info aan met event: chat_closed, tab_hidden of navigation (bij navigatie ook url).

In de inbox

  • Gesprekken verschijnen als kanaal Website chat
  • Tillor onthoudt bezoekers via een id in localStorage op hun browser (zelfde apparaat = zelfde thread)
  • Naam, e-mail en telefoon uit het bezoekersformulier worden opgeslagen bij het gesprek
  • Extra velden verschijnen in de inbox bij het gesprek
  • Antwoorden vanuit Tillor komen terug in het widget (bezoeker moet het chatvenster open hebben of later opnieuw openen; het widget ververst berichten automatisch)
  • Wanneer u typt in de inbox, ziet de bezoeker Typen… in het widget
  • Wanneer de bezoeker typt op uw site, ziet u Typen… in het gesprek
  • Bezoekers zien vinkjes op hun eigen berichten: één vinkje na verzenden, twee vinkjes zodra uw team het gesprek heeft geopend en gelezen (blauw = gelezen). In de inbox ziet u vinkjes op uw eigen antwoorden zodra de bezoeker het chatvenster open heeft

Berichten zijn tekst tot 4096 tekens. Afbeeldingen en bestanden worden in deze versie niet ondersteund.

Gerelateerd

On this page