Oversikt over webhooks
Webhooks lar ChatLab varsle systemene dine i samme øyeblikk som noe skjer i chatbotene dine. I stedet for å spørre Management API regelmessig eller eksportere data manuelt, registrerer du et HTTPS-endepunkt, og ChatLab sender en signert HTTP POST til det i sanntid - når en besøkende legger igjen et lead, sender inn et kontaktskjema, vurderer en samtale, ber om et menneske eller når en AI-handling kjører.
Vanlige bruksområder:
- sende nye leads rett inn i CRM-systemet ditt sekundet de registreres
- varsle teamet ditt i Slack når en besøkende ber om live chat (nettprat i sanntid)
- mate samtalevurderinger og sammendrag inn i dine egne analyseverktøy
- overvåke kjøringer av AI action (AI-handling) og varsle ved feil
Tilgjengelighet: webhooks er tilgjengelige fra Standard plan og oppover (funksjon: Webhooks).
Hvor det konfigureres: i administratorappen åpner du Account settings -> Webhooks (Kontoinnstillinger -> Webhooks, rett ved siden av Management API-delen). Webhooks er på kontonivå - ett endepunkt kan motta hendelser fra alle botene dine eller fra et filtrert utvalg.
Sette opp et endepunkt
- Åpne Account settings -> Webhooks og klikk på Create endpoint (Opprett endepunkt).
- Fyll ut endepunktskjemaet:
- Name (Navn) - en etikett til eget bruk, f.eks. "CRM sync" eller "Slack alerts".
- URL - HTTPS-adressen ChatLab skal sende HTTP POST-hendelser til.
- Events (Hendelser) - velg hvilke hendelsestyper dette endepunktet skal motta (se oversikten nedenfor). Velg bare det du trenger; hendelser med høyt volum som
ai_action.executedkan generere mye trafikk. - Bot filter (Bot-filter) (valgfritt) - begrens endepunktet til spesifikke boter. La stå tomt for å motta hendelser fra alle boter på kontoen din.
- Custom form filter (Filter for tilpasset skjema) (valgfritt) - ruter innsendinger fra ett bestemt tilpasset skjema til dette endepunktet. Det begrenser kun hendelsen
custom_form.submitted; alle andre hendelser du abonnerer på (leads, kontaktforespørsler, samtaler, live chat, AI-handlinger), leveres uavhengig av denne innstillingen.
- Send inn. Endepunktets secret (hemmelighet) vises nøyaktig én gang i bekreftelsesdialogen - kopier den nå og oppbevar den på et trygt sted. Du trenger den for å verifisere signaturer (se Sikkerhet nedenfor). Klarteksten kan ikke hentes frem senere.
Hvert endepunkt har også:
- Enable/disable toggle (Aktiver/deaktiver-bryter) - sett leveringer på pause uten å slette endepunktet. Deaktiverte endepunkter forkaster hendelser stille (de settes ikke i kø for senere).
- Send sample event (Send eksempelhendelse) - leverer en signert testforespørsel til din URL slik at du kan verifisere mottakeren ende-til-ende. Du kan velge hendelsestype og redigere eksempelverdiene før sending, slik at behandleren din ser realistiske data. Testen ankommer som en vanlig levering med
eventTypetilsvarende valget ditt (eller somwebhook.testfor en enkel tilkoblingssjekk). - Roll secret (Roter hemmelighet) - genererer en ny hemmelighet og gjør den gamle ugyldig. Bruk dette hvis hemmeligheten kan ha blitt lekket. Den nye hemmeligheten vises igjen bare én gang. Oppdater mottakeren din før du roterer, ellers vil leveringer feile ved signaturverifisering på din side.
- Delivery log (Leveringslogg) - en liste per endepunkt over nylige leveringer med tidsstempel, hendelsestype, HTTP-status returnert fra serveren din og responstid. Mislykkede leveringer og pauser fra sikringsmekanismen (circuit breaker) er synlige her. Loggen beholdes i 14 dager.
Hendelseskonvolutt (Event envelope)
Hver levering er en HTTP POST med Content-Type: application/json. Meldingsteksten har alltid samme konvolutt; data-objektet er spesifikt for hendelsestypen:
{
"eventId": "9f1c1c8e-6a2b-4b9e-9d2f-3f8a1e2b4c5d",
"eventType": "lead.created",
"timestamp": "2026-08-13T14:22:31Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": { }
}
eventId- unik per hendelse. Bruk den til deduplisering hvis behandlingen din må være idempotent.eventType- en av typene dokumentert nedenfor; sendes også iX-ChatLab-Event-headeren.timestamp- ISO 8601 UTC-tidspunkt da hendelsen inntraff.botId/botName- boten hendelsen tilhører.conversationId/sessionId- samtalesammenhengen, når relevant.
Hendelseskatalog
lead.created
Utløses når en besøkende sender inn kontaktinformasjonen sin - via skjemaet for registrering av leads, forhåndsskjemaet for live chat eller et tilpasset skjema som brukes til registrering av leads.
{
"eventId": "9f1c1c8e-6a2b-4b9e-9d2f-3f8a1e2b4c5d",
"eventType": "lead.created",
"timestamp": "2026-08-13T14:22:31Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": {
"email": "jane.doe@example.com",
"name": "Jane Doe",
"phone": "+1 555 0123",
"source": "LEAD_COLLECTION_FORM",
"formCodeName": "lead_form",
"formName": "Lead form",
"fields": [
{"name": "email", "value": "jane.doe@example.com", "type": "email"},
{"name": "company", "value": "Acme Inc.", "type": "text"},
{"name": "topics", "value": ["Billing", "Delivery"], "type": "multichoice"},
{"name": "attachment", "value": "https://api.chatlab.com/aichat/customform/download?key=...&token=...", "type": "file"}
],
"pageUrl": "https://acme.com/pricing"
}
}
source- hvordan kontaktinformasjonen ble registrert:LEAD_COLLECTION_FORM(skjema for registrering av leads),LIVE_CHAT_FORM(forhåndsskjema for live chat),CONVERSATION(AI-en fanget opp opplysningene under samtalen),ADMIN_DATA_UPDATEellerUPDATE_CLIENT_CONTEXT(redigert på ChatLab-siden). Innsendinger av kontaktskjemaet for menneskelig kundestøtte utløser aldri denne hendelsen - de utløsercontact_form.submittedi stedet.email,name,phone- kontaktinformasjonen tilknyttet leadoppføringen.- Når et tilpasset skjema brukes til registrering av leads, inkluderes alle felt definert i det skjemaet i
fields, i rekkefølgen fra skjemaet, ogformCodeName/formNameidentifiserer skjemaet. Med det klassiske leadskjemaet er beggenull, ogfieldser en tom matrise. - Hver oppføring i
fieldser{name, value, type}.nameer feltets tekniske navn, uendret ved redigering av etiketter - bruk det til kobling (mapping) mot ditt CRM. - For
multichoice-felt ervalueen matrise med de valgte alternativene. Avmerkingsbokser er individuelle oppføringer med"true"- /"false"-verdier. - For
file-felt ervalueen nedlastingslenke til den opplastede filen; webhooken inneholder aldri selve filinnholdet. pageUrl- nettsiden den besøkende var på da skjemaet ble sendt inn.
contact_form.submitted
Utløses når en besøkende sender inn kontaktskjemaet for menneskelig kundestøtte eller et tilpasset skjema som brukes til menneskelig kontakt.
{
"eventId": "3a7b9c2d-1e4f-4a6b-8c0d-5e2f7a9b1c3d",
"eventType": "contact_form.submitted",
"timestamp": "2026-08-13T14:25:02Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": {
"email": "jane.doe@example.com",
"message": "I need help with my last invoice.",
"source": "CUSTOM_FORM",
"formCodeName": "contact_form",
"formName": "Contact form",
"fields": [
{"name": "email", "value": "jane.doe@example.com", "type": "email"},
{"name": "order_number", "value": "A-10293", "type": "text"},
{"name": "message", "value": "I need help with my last invoice.", "type": "textarea"}
]
}
}
email- adressen den besøkende la igjen, og den kundestøtteteamet ditt bør svare til.source-CUSTOM_FORMnår et tilpasset skjema ligger bak kontaktskjemaet,CONTACT_FORMfor det innebygde skjemaet.formCodeName/formName- identifiserer det tilpassede skjemaet bak forespørselen; begge ernullfor det innebygde skjemaet.- Når et tilpasset skjema brukes, inkluderes alle felt definert på skjemaet i
fields(samme{name, value, type}-format som ilead.created). Med det innebygde kontaktskjemaet fylles bareemailogmessageut,fieldser en tom matrise og skjemaindikatorene ernull. message- det tilknyttede meldingsfeltet, eller alle utfylte verdier slått sammen når skjemaet ikke definerer noe meldingsfelt.
custom_form.submitted
Utløses for hver innsending av tilpassede skjemaer, uavhengig av skjemaets formål. Vær oppmerksom på at skjemaer med formål om registrering av leads eller menneskelig kontakt også utløser sine dedikerte hendelser lead.created / contact_form.submitted - abonner på det ene eller det andre avhengig av om du ønsker den generelle eller den spesialiserte visningen, og dedupliser etter conversationId + timestamp hvis du abonnerer på begge.
{
"eventId": "6c1d8e3f-2a5b-4c7d-9e0f-1a4b6c8d0e2f",
"eventType": "custom_form.submitted",
"timestamp": "2026-08-13T14:27:45Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": {
"formCodeName": "warranty_claim",
"formName": "Warranty claim",
"fields": [
{"name": "order_number", "value": "A-10293", "type": "text"},
{"name": "issue", "value": "Damaged on arrival", "type": "textarea"},
{"name": "photo", "value": "https://api.chatlab.com/aichat/customform/download?key=...&token=...", "type": "file"}
],
"purpose": "STANDALONE"
}
}
formCodeName- det stabile maskinnavnet på skjemaet, uendret når du endrer visningsnavnet på skjemaet; bruk det til å rute innsendinger i ditt eget system.formNameer visningsnavnet som vises til besøkende.fieldsbruker de samme{name, value, type}-oppføringene somlead.created: flervalgsverdier er matriser, filverdier er nedlastingslenker.purpose-STANDALONE,LEAD_COLLECTIONellerHUMAN_CONTACT, avhengig av hvordan skjemaet er koblet til chatbotten.
conversation.started
Utløses når en besøkende sender den første meldingen i en ny samtale.
{
"eventId": "8e2f0a4b-3c6d-4e8f-a1b2-2c5d7e9f1a3b",
"eventType": "conversation.started",
"timestamp": "2026-08-13T14:20:11Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": {
"firstMessage": "Do you ship to Canada?",
"chatSource": "WIDGET",
"byAdmin": false,
"countryCode": "PL",
"ipAddress": "83.12.44.7"
}
}
firstMessage- den nøyaktige teksten i den besøkendes åpningsmelding.nullhvis samtalen ble åpnet uten meldingsinnhold.chatSource- kanalen samtalen kom inn via:WIDGET,WHATSAPP,MESSENGER,VOICE,VOICE_PHONE,API,BOOKING,AIRBNBellerIDOBOOKING.byAdmin-truenår samtalen kommer fra forhåndsvisningen av chatbotten inne i ChatLab-administrasjonspanelet i stedet for fra en reell besøkende. Bruk dette til å holde dine egne testsamtaler unna CRM-et ditt.countryCode- ISO-landskode funnet ut fra den besøkendes IP-adresse,nullnår den ikke kunne fastslås.ipAddress- den besøkendes IP-adresse slik den registreres av ChatLab,nullnår den er utilgjengelig. Behandle den som personopplysning under GDPR og lagre den bare dersom du har et lovlig behandlingsgrunnlag.
conversation.rated
Utløses når en besøkende vurderer et botsvar med tommel opp eller ned (se Samtalevurdering).
{
"eventId": "1b4c6d8e-5f0a-4b2c-8d3e-4f7a9b1c3d5e",
"eventType": "conversation.rated",
"timestamp": "2026-08-13T14:31:09Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": {
"rating": "POSITIVE"
}
}
rating-POSITIVEellerNEGATIVE. Fjerning av en vurdering utløser ikke hendelsen, så du vil aldri motta en nøytral verdi.
conversation.summarized
Utløses når ChatLab genererer et sammendrag av en avsluttet samtale.
{
"eventId": "4d7e9f1a-6b2c-4d4e-9f0a-5b8c0d2e4f6a",
"eventType": "conversation.summarized",
"timestamp": "2026-08-13T14:45:00Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": {
"summary": "Visitor asked about shipping to Canada and delivery times. The bot confirmed availability and quoted 5-7 business days. Visitor left satisfied.",
"language": "en"
}
}
summary- den genererte sammendragsteksten. Sammendrag lages noen minutter etter at samtalen har blitt inaktiv, så denne hendelsen ankommer senere enn resten av samtalehendelsene.language- ISO-kode for språket sammendraget ble skrevet på, som følger språket i samtalen.
client.summarized
Utløses når ChatLab oppdaterer AI-profilen til en klient. Profilen gjenoppbygges fra forrige profil pluss sammendraget av samtalen som nettopp ble avsluttet, så denne hendelsen følger etter conversation.summarized for samme samtale. Klienter identifiseres med e-post, og det er grunnen til at adressen gjentas på øverste nivå i data.
{
"eventId": "b5d8f1a3-7c2e-4d9b-a6f0-1e3c5a7b9d2f",
"eventType": "client.summarized",
"timestamp": "2026-08-18T09:12:04Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": {
"clientEmail": "jane.doe@example.com",
"client": {
"email": "jane.doe@example.com",
"name": "Jane Doe",
"phone": "+1 555 0123",
"countryCode": "PL",
"ipAddress": "83.12.44.7"
},
"clientSummary": "Returning customer interested in international shipping. Asked about delivery times to Canada twice and about return costs once."
}
}
clientEmail- identifikatoren for å koble klienten mot ditt eget CRM. Den ernullfor anonyme besøkende som aldri har oppgitt en e-postadresse, og hendelsen utløses likevel for dem - hopp over disse leveringene hvis integrasjonen din er basert på e-post.client- kontaktoppføringen ChatLab har registrert for denne personen:email,name,phone,countryCodeogipAddress. Alle nøkler er alltid til stede; ukjente verdier ernull.clientSummary- hele profilteksten som ren tekst, ikke en diff. Den erstatter det forrige sammendraget i sin helhet, så lagre den ved overskriving i stedet for å legge den til på slutten.- Profilen gjenoppbygges bare for boter med chat memory (samtaleminne) aktivert, og bare for samtaler som var inaktive lenge nok til å bli oppsummert - forvent at denne hendelsen kommer noen minutter etter at samtalen avsluttes, ikke umiddelbart.
live_chat.requested
Utløses når AI-en overlater samtalen til live chat (nettprat i sanntid), enten fordi den besøkende ba om et menneske eller fordi boten avgjorde at et menneske var nødvendig.
{
"eventId": "7a0b2c4d-8e3f-4a5b-b0c1-6d9e1f3a5b7c",
"eventType": "live_chat.requested",
"timestamp": "2026-08-13T14:33:20Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": {
"requestedBy": "AI"
}
}
requestedBy- for øyeblikket alltidAI, fordi overleveringen alltid settes i gang av botens handling for live chat, også når den besøkende ber om det i klartekst. Behandle det som en åpen opplisting (open enum): håndter ukjente verdier i stedet for å forutsette utelukkendeAI.- Hendelsen betyr at det ble bedt om en overlevering, ikke at en operatør har overtatt den. Vent på
live_chat.startedfor dette.
live_chat.started
Utløses når en operatør kobler seg på og live chat-økten faktisk starter.
{
"eventId": "0c3d5e7f-9a4b-4c6d-a1b2-7e0f2a4b6c8d",
"eventType": "live_chat.started",
"timestamp": "2026-08-13T14:33:55Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": {}
}
dataer tom med hensikt. Alt du trenger finnes i konvolutten:botIdidentifiserer chatbotten ogconversationId/sessionIdknytter hendelsen til samtalen du allerede har mottattlive_chat.requestedfor.
live_chat.ended
Utløses når live chat-økten avsluttes.
{
"eventId": "2e5f7a9b-0c5d-4e7f-b2c3-8f1a3b5c7d9e",
"eventType": "live_chat.ended",
"timestamp": "2026-08-13T14:52:41Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": {
"durationSeconds": 1126
}
}
durationSeconds- hvor lenge operatøren var i samtalen, regnet fra det øyeblikket økten startet. Feltet utelates i de sjeldne tilfellene hvor en økt avsluttes uten noen gang å ha blitt startet.
ai_action.executed
Utløses hver gang boten utfører en AI action (AI-handling) - et administrert integrasjonskall eller en tilpasset API-funksjon. Dette er en hendelse med høyt volum: en aktiv nettbutikkbot kan utføre hundrevis av handlinger per dag, og en enkelt meldingstur fra en besøkende kan utløse flere. Abonner på den på et dedikert endepunkt, eller sørg for at mottakeren din tåler trafikkmengden.
{
"eventId": "5f8a0b2c-1d6e-4f8a-c3d4-9a2b4c6d8e0f",
"eventType": "ai_action.executed",
"timestamp": "2026-08-13T14:21:03Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": {
"actionName": "search_products",
"status": "SUCCESS",
"durationMs": 842,
"errorMessage": null
}
}
actionName- navnet på den utførte handlingen slik AI-en ser den, for eksempelsearch_productsfor en administrert integrasjon eller navnet du ga en tilpasset API-handling.status-SUCCESSellerERROR.durationMs- hvor lang tid handlingen tok, i millisekunder. Nyttig for å oppdage en treg integrasjon før besøkende klager på den.errorMessage- årsaken til feilen, fylt ut bare nårstatuserERROR; ellersnull.
webhook.test
Sendes av knappen Send sample event (Send eksempelhendelse) når du kjører en ren tilkoblingssjekk. Signert nøyaktig som en ekte hendelse.
{
"eventId": "9b2c4d6e-3f8a-4b0c-d5e6-0b3c5d7e9f1a",
"eventType": "webhook.test",
"timestamp": "2026-08-13T14:10:00Z",
"botId": 1234,
"botName": "Support Bot",
"conversationId": "conv_a1b2c3",
"sessionId": "sess_x9y8z7",
"data": {
"message": "Test delivery from ChatLab"
}
}
message- fast tekst, alltid den samme. Konvoluttfeltene har eksempelverdier, så du må aldri behandle enwebhook.test-levering som reelle data.- Dette er den eneste hendelsestypen du ikke kan abonnere på i et endepunkt: den sendes på forespørsel fra administrasjonspanelet og når alltid frem til endepunktet du klikket på, uavhengig av hvilke hendelser det lytter til.
Sikkerhet: verifisering av leveringer
Hver levering inneholder fire headere:
| Header | Verdi |
|---|---|
X-ChatLab-Signature |
sha256=<hex hmac> - HMAC-SHA256-signatur av nyttelasten |
X-ChatLab-Timestamp |
Unix-tid i sekunder da leveringen ble signert |
X-ChatLab-Event |
Hendelsestypen, f.eks. lead.created |
X-ChatLab-Delivery |
Unik leverings-ID, lik meldingstekstens eventId |
Signaturen beregnes som HMAC-SHA256 over strengen {timestamp}.{rawBody} ved hjelp av endepunkthemmeligheten din, der {timestamp} er verdien av X-ChatLab-Timestamp og {rawBody} er den rå, uparsede forespørselskroppen. Verifiser alltid mot de rå bytene - reserialisering av parset JSON vil endre bytesekvensen og gjøre signaturen ugyldig.
For å beskytte mot replay-angrep bør du avvise leveringer der X-ChatLab-Timestamp er eldre enn 5 minutter.
Node.js
const crypto = require('crypto');
function verifyChatLabSignature(req, secret) {
const signature = req.headers['x-chatlab-signature'];
const timestamp = req.headers['x-chatlab-timestamp'];
if (!signature || !timestamp) return false;
// Reject stale deliveries (older than 5 minutes)
const ageSeconds = Math.abs(Date.now() / 1000 - Number(timestamp));
if (ageSeconds > 300) return false;
// rawBody must be the raw request body bytes, not re-serialized JSON.
// With Express: app.use(express.json({ verify: (req, res, buf) => { req.rawBody = buf; } }))
const expected = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(timestamp + '.' + req.rawBody)
.digest('hex');
const a = Buffer.from(signature);
const b = Buffer.from(expected);
return a.length === b.length && crypto.timingSafeEqual(a, b);
}
PHP
<?php
function verifyChatLabSignature(string $secret): bool
{
$signature = $_SERVER['HTTP_X_CHATLAB_SIGNATURE'] ?? '';
$timestamp = $_SERVER['HTTP_X_CHATLAB_TIMESTAMP'] ?? '';
if ($signature === '' || $timestamp === '') {
return false;
}
// Reject stale deliveries (older than 5 minutes)
if (abs(time() - (int) $timestamp) > 300) {
return false;
}
$rawBody = file_get_contents('php://input');
$expected = 'sha256=' . hash_hmac('sha256', $timestamp . '.' . $rawBody, $secret);
return hash_equals($expected, $signature);
}
Hvis verifiseringen mislykkes, svarer du med 401 og forkaster nyttelasten. Behandle aldri uverifiserte leveringer - hvem som helst som finner URL-en din, kan sende vilkårlig JSON til den via POST.
Leveringsatferd
Gjør deg kjent med disse garantiene før du bygger på webhooks:
- Svar raskt. Endepunktet ditt må svare innen 3 sekunder, ellers regnes leveringen som mislykket. Svar med
2xxumiddelbart og behandle nyttelasten asynkront (sett den i kø, og bekreft deretter) - ikke gjør CRM-kall eller databaseoppdateringer før du svarer. - Fire-and-forget, høyst én gang. Hver hendelse får nøyaktig ett leveringsforsøk - det gjøres ingen nye forsøk. Hvis endepunktet ditt er nede, får tidsavbrudd eller returnerer en status som ikke er 2xx, er hendelsen tapt og vil ikke bli levert på nytt. Webhooks er varsler, ikke en replikert datalagring: når du trenger garantert fullstendighet, må du avstemme mot Management API eller lead-eksporter.
- Sikring (circuit breaker). Etter 5 påfølgende mislykkede leveringer for en bot, settes leveringer for denne boten på pause i 5 minutter. Hendelser som oppstår under pausen, forkastes, og leveringsloggen viser
CIRCUIT_OPEN-oppføringer slik at du ser nøyaktig når og hvorfor trafikken ble stoppet. Leveringer som hoppes over på grunn av en åpen sikring, teller ikke mot automatisk deaktivering. - Automatisk deaktivering. Sjekken kjøres i det øyeblikket en levering mislykkes, aldri på en timer. Hvis en levering mislykkes og det ikke har vært noen vellykket levering på 7 dager - regnet fra forrige suksess, eller fra opprettelsesdatoen hvis den aldri har lykkes - blir endepunktet slått av og du mottar et e-postvarsel. En enkelt
2xxnår som helst tilbakestiller denne telleren. Et endepunkt som ikke mottar trafikk, blir aldri deaktivert, ettersom ingenting feiler. Reaktiver det fra Account settings (kontoinnstillinger) når mottakeren din er fikset; feiltelleren og tidsstempelet for automatisk deaktivering nullstilles når du slår det på igjen, og hendelser som gikk tapt mens det var av, etterleveres ikke. - 410 Gone. Hvis endepunktet ditt svarer med HTTP
410 Gone, deaktiverer ChatLab det umiddelbart. Bruk dette til å ta et endepunkt ut av drift programmatisk fra mottakersiden. - Idempotens. Duplikate leveringer forventes ikke under normal drift, men hvis behandlingen din må være strengt idempotent, kan du deduplisere ved hjelp av
eventId(også tilgjengelig iX-ChatLab-Delivery-headeren).
Begrensninger
- Opptil 10 webhook-endepunkter per konto.
- Oppbevaring av leveringslogg: 14 dager. Eldre oppføringer slettes automatisk.
Relaterte artikler
- Innsamling av leads - skjemaet bak
lead.created - Kontaktskjema for brukerstøtte - skjemaet bak
contact_form.submitted - Live Chat - flyten bak
live_chat.*-hendelsene - Samtalevurdering - tommel opp/ned bak
conversation.rated - AI Actions - integrasjonene bak
ai_action.executed - Chat API - widget-tilbakekall i nettleseren (klientsidens motstykke til webhooks)
- Management API - REST-API for bot-administrasjon og bruksdata