Kako da vam pomognemo?

Ukratko nam recite o čemu se radi – odgovorićemo vam e-poštom.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Na početnu stranicu

Tekniska detaljer

Protokoll, felkoder, tillgänglighet och statusen bakom varje löfte.

Den här sidan är till för dig som vill ha detaljerna. Allt här är uppmätt eller hämtat ur källkoden – inget är uppskattat.

Hur widgeten laddas

Två steg. Först en liten laddare som ritar knappen och inte gör något mer. Själva chatten hämtas först när en av fem utlösare aktiveras – webbläsaren är inaktiv (senast efter tre sekunder), en mus eller ett finger på knappen, ett kommando från sidan, en frustrationssignal från MousePlayer eller en pushsignal, till exempel från din service worker.

Det finns ett skäl: de flesta besökare öppnar aldrig chatten. För dem ska den inte fördröja sidladdningen; vilka utlösare som gäller ställs in på skripttaggen.

Som jämförelse, också uppmätt och alla tre komprimerade med brotli: Crisps laddare är 2 876 B, Intercoms 3 161 B. Med 3 069 B ligger vi däremellan, inte storleksordningar under. Den som hävdar annat har inte mätt.

Den stör inte din webbplats

Widgeten finns i ett slutet shadow DOM. Dina stilar når inte in i den, dess stilar når inte din sida – inte ens om du anger * { box-sizing: border-box } eller använder ett CSS-ramverk som definierar om allt.

Den körs med en strikt Content Security Policy utan ett enda konsolmeddelande: ingen eval, inget webbtypsnitt, ingen spårningspixel. Den sätter sina stilar genom konstruktionsbara stilmallar, som style-src inte omfattar. Knappen, chattfönstret, produktrundturer och agentkonsolen på din webbplats behöver därför inget unsafe-inline – uppmätt under style-src 'self' och till och med under style-src 'none': noll överträdelser, fullständigt formgiven. Uppmätt i aktuell Chromium; äldre webbläsare utan konstruktionsbara stilmallar (som Safari före 16.4) faller tillbaka på ett <style>-element, som en strikt policy blockerar.

Noll anrop till andra servrar. Allt kommer från reactive.chat eller, med egen domän, från din egen adress; bilder som logotyp och avatarer kommer från adresser som du själv anger.

Protokollet

Anslutningen använder WebSocket; där ett nätverk inte släpper igenom WebSocket används vanliga HTTPS-anrop (server-sent events eller långpollning). Protokollet är versionshanterat och definierar 31 felkoder, 26 av dem för widgeten, resten för agentpanelen och webbplatssökningen – var och en med en föreskriven klientreaktion (försök direkt igen, försök efter en väntetid, försök efter återanslutning, försök inte igen), vissa även med en stängningskod. Ett fel som inte finns i listan behandlas som ett tillfälligt serverfel: nytt försök efter en väntetid, och efter fem försök räknas meddelandet som ej levererat och kan skickas igen – ingen oändlig slinga.

Återanslutning med ökande väntetid. Om anslutningen bryts läggs meddelanden i en buffert och skickas så snart den är tillbaka. Varje meddelande har ett ID; servern känner igen upprepningar och sparar dem inte två gånger.

Tillgänglighet

Byggd utifrån WCAG 2.2 AA:

Kontrasten beräknas

Du anger en färg. Ytan får exakt den färgen. Texten på den justeras tills den når förhållandet 4,5:1 – WCAG-kravet för normal text.

Uppmätt över 178 färger i två teman och tre kombinationer, alltså 1 068 datapunkter: inte en enda under 4,5:1, det lägsta värdet 4,50:1.

Det är skillnaden mot andra leverantörer: där kan en widget ställas in tills ingen kan läsa den.

Personuppgifter

Maskering sker på två ställen – i besökarens webbläsare innan något lämnar enheten, och igen på servern innan något lagras. Kortnummer (med Luhn-kontroll), IBAN-nummer, e-postadresser, telefonnummer, skattenummer och ID-kortsnummer känns igen. Order- och kundnummer lämnas orörda.

Två ställen, eftersom ett inte räcker: det i webbläsaren kan stängas av, det på servern ser bara det som kommer fram.

Regler

När widgeten tar kontakt definieras i en deklarativ regellista – inte i ett villkor i koden. Sex regler följer med som standard (stanna på en sida, upprepade frustrerade klick, JavaScript-fel, fastnat formulär, köpintresse, lämna kassan); upprepade frustrerade klick, fastnat formulär och köpintresse upptäcks bara tillsammans med MousePlayer. Du kan lägga till egna i kontot. I Free-planen gäller en aktiv påminnelse per projekt.

Skillnaden är praktisk: att ändra en regel innebär att ändra en inställning i kontot, inte att driftsätta kod.

Integrationer

Webhooks och Slack är klara. För fler än 30 andra tjänster finns en koppling redo; de flesta har testats mot simulerade motparter men har aldrig körts mot den riktiga tjänsten, och integrationssidan i kontot märker dem som sådana.

Server-API:et (REST och MCP) läser konversationer, meddelanden, projekt, besökare, händelser och regler, skriver meddelanden och händelser samt registrerar webhooks. Besökarlistan och MCP kan stängas av per projekt.

Varje integration går via en kö med kretsbrytare: om en tredje part hänger sig hoppas den över en stund efter upprepade fel. Ett chattmeddelande fördröjs aldrig av den – det är den viktigaste regeln i det här lagret.

Vad som inte är färdigt

Så att ingen upptäcker det under integrationen:

Mer i dokumentationen

Hur widget, server och anslutning samverkar: Arkitektur och flöde. Anslutning, HTTP-reserv och återanslutning: Transport. Alla kapitel: dokumentation.

Poslednje ažuriranje: