Kako vam lahko pomagamo?

Na kratko nam povejte, za kaj gre – odgovorili vam bomo po e-pošti.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Na začetno stran

Technické podrobnosti

Protokol, chybové kódy, přístupnost a skutečný stav za každým příslibem.

Tato stránka je pro ty, kdo chtějí znát podrobnosti. Vše je zde změřeno nebo vyčteno ze zdrojového kódu — nic není odhad.

Jak se widget načítá

Ve dvou fázích. Nejprve malý načítací skript, který vykreslí tlačítko a nic dalšího nedělá. Samotný chat se stáhne až při aktivaci jednoho z pěti spouštěčů — prohlížeč je nečinný (nejpozději po třech sekundách), myš nebo prst na tlačítku, příkaz ze stránky, signál frustrace z MousePlayer nebo push pobídka, například z vašeho service workeru.

Má to důvod: většina návštěvníků chat nikdy neotevře. Neměl by jim zdržovat načítání stránky; které spouštěče platí, se nastavuje ve značce script.

Pro srovnání, také změřeno a u všech tří s kompresí brotli: načítací skript Crisp má 2 876 B, Intercom 3 161 B. S 3 069 B jsme mezi nimi, nikoli o řády níže. Kdo tvrdí opak, neměřil.

Neruší váš web

Widget žije v uzavřeném shadow DOM. Vaše styly se k němu nedostanou a jeho styly se nedostanou na vaši stránku — ani když nastavíte * { box-sizing: border-box } nebo použijete CSS framework, který předefinuje všechno.

Běží s přísnou Content Security Policy bez jediné zprávy v konzoli: žádné eval, žádné webové písmo, žádný sledovací pixel. Styly nastavuje přes constructable stylesheets, na které se style-src nevztahuje. Tlačítko, okno chatu, prohlídky produktu i konzole operátora na vašem webu proto nepotřebují unsafe-inline — změřeno při style-src 'self' a dokonce při style-src 'none': žádné porušení, plný vzhled. Měřeno v aktuálním Chromiu; starší prohlížeče bez constructable stylesheets (například Safari před verzí 16.4) přecházejí na prvek <style>, který přísná politika blokuje.

Žádné požadavky na jiné servery. Vše pochází z reactive.chat nebo, s vlastní doménou, z vaší vlastní adresy; obrázky jako logo a avatary pocházejí z adres, které sami zadáte.

Protokol

Spojení používá WebSocket; pokud síť WebSocket nepropustí, používá běžné požadavky HTTPS (server-sent events nebo long polling). Protokol má verze a definuje 31 chybových kódů, z toho 26 pro widget a zbytek pro pult operátorů a vyhledávání na webu — každý má předepsanou reakci klienta (opakovat ihned, opakovat po čekání, opakovat po opětovném připojení, neopakovat), některé také kód uzavření. Chyba, která není v seznamu, se považuje za dočasnou chybu serveru: opakování po čekání a po pěti pokusech se zpráva považuje za nedoručenou a lze ji odeslat znovu — žádná nekonečná smyčka.

Opětovné připojení s rostoucí prodlevou. Při výpadku spojení se zprávy ukládají do vyrovnávací paměti a odešlou se hned po obnovení. Každá zpráva nese ID; server rozpozná opakování a neuloží ji dvakrát.

Přístupnost

Vytvořeno podle WCAG 2.2 AA:

Kontrast se počítá

Zadáte barvu. Plocha získá přesně tuto barvu. Text na ní se posouvá, dokud nedosáhne poměru 4,5:1 — požadavku WCAG pro běžný text.

Změřeno na 178 barvách ve dvou motivech a třech kombinacích, tedy 1 068 datových bodech: ani jeden pod 4,5:1, nejhorší hodnota 4,50:1.

V tom je rozdíl oproti jiným poskytovatelům: u nich lze widget nastavit tak, že ho nikdo nepřečte.

Osobní údaje

Maskování probíhá na dvou místech — v prohlížeči návštěvníka dřív, než cokoli opustí zařízení, a znovu na serveru před uložením. Rozpoznávají se čísla karet (s Luhnovou kontrolou), IBAN, e-mailové adresy, telefonní čísla, daňová identifikační čísla a čísla průkazů totožnosti. Čísla objednávek a zákazníků se nemění.

Dvě místa, protože jedno nestačí: maskování v prohlížeči lze vypnout, server vidí jen to, co dorazí.

Pravidla

Kdy se widget ozve, určuje deklarativní seznam pravidel — nikoli podmínka v kódu. Výchozí dodávka obsahuje šest pravidel (dlouhé setrvání na stránce, naštvané klikání, chyba JavaScriptu, zaseknutý formulář, záměr nákupu, odchod z pokladny); naštvané klikání, zaseknutý formulář a záměr nákupu se rozpoznávají pouze společně s MousePlayer. Vlastní pravidla můžete přidat v účtu. V tarifu Free se pro každý projekt uplatní jedna aktivní pobídka.

Rozdíl je praktický: změna pravidla znamená změnu nastavení v účtu, nikoli nasazení kódu.

Integrace

Webhooky a Slack jsou hotové. Pro více než 30 dalších služeb je připravené připojení; většina byla testována proti simulovaným protějškům, ale nikdy neběžela proti skutečné službě, a stránka integrací v účtu je takto označuje.

Serverové API (REST a MCP) čte konverzace, zprávy, projekty, návštěvníky, události a pravidla, zapisuje zprávy a události a registruje webhooky. Seznam návštěvníků a MCP lze vypnout pro jednotlivé projekty.

Každá integrace prochází frontou s ochranným jističem: pokud se třetí strana zasekne, po opakovaných selháních se na chvíli vynechá. Zprávu v chatu to nikdy nezdrží — to je nejdůležitější pravidlo této vrstvy.

Co není hotové

Aby se to nikdo nedozvěděl až při integraci:

Další informace v dokumentaci

Jak spolupracují widget, server a spojení: Architektura a průběh. Připojení, záloha přes HTTP a opětovné připojení: Přenos. Všechny kapitoly: dokumentace.

Zadnja posodobitev: