Webhookide ülevaade
Veebikonksud (veebikonksud) võimaldavad ChatLabil teavitada teie süsteeme kohe, kui teie vestlusrobotites midagi juhtub. Selle asemel et teha päringuid Management API poole või eksportida andmeid käsitsi, registreerite HTTPS-lõpp-punkti ja ChatLab saadab sinna reaalajas allkirjastatud HTTP POST -päringu - kui külastaja jätab müügivihje, esitab kontaktivormi, hindab vestlust, küsib inimest või kui käivitatakse tehisintellekti toiming.
Tüüpilised kasutusjuhud:
- uute müügivihjete saatmine otse oma CRM-i samal sekundil, kui need kogutakse
- oma meeskonna teavitamine Slackis, kui külastaja soovib reaalajas vestlust (live chat)
- vestluste hinnangute ja kokkuvõtete edastamine oma analüütikasse
- tehisintellekti toimingute (AI action) käivitamiste jälgimine ja vigade korral teavituste saamine
Saadavus: veebikonksud on saadaval alates paketist Standard plan (funktsioon: Webhooks).
Kus seadistada: avage administraatorirakenduses Account settings -> Webhooks (Konto seaded -> Veebikonksud; asub otse jaotise Management API kõrval). Veebikonksud on kontotasemel - üks lõpp-punkt võib võtta vastu sündmusi kõigilt teie robotitelt või filtreeritud alamhulgalt.
Lõpp-punkti seadistamine
- Avage Account settings -> Webhooks ja klõpsake valikul Create endpoint (Loo lõpp-punkt).
- Täitke lõpp-punkti vorm:
- Name (Nimi) - silt teie enda tarbeks, nt "CRM sync" või "Slack alerts".
- URL - HTTPS-aadress, kuhu ChatLab sündmused POST-päringuga saadab.
- Events (Sündmused) - valige, milliseid sündmustüüpe see lõpp-punkt vastu võtab (vaadake allolevat kataloogi). Valige ainult need, mida vajate; suure mahuga sündmused, nagu
ai_action.executed, võivad tekitada palju liiklust. - Bot filter (Roboti filter) (valikuline) - piirake lõpp-punkt konkreetsete robotitega. Jätke tühjaks, et saada sündmusi kõigilt oma konto robotitelt.
- Custom form filter (Kohandatud vormi filter) (valikuline) - suunab ühe kohandatud vormi esitamised sellesse lõpp-punkti. See kitsendab ainult sündmust
custom_form.submitted; kõik muud sündmused, mida tellite (müügivihjed, kontaktipäringud, vestlused, Live Chat, tehisintellekti toimingud), toimetatakse kohale sellest seadistusest sõltumata.
- Esitage vorm. Lõpp-punkti saladus (secret) kuvatakse õnnestumise dialoogis täpselt üks kord - kopeerige see kohe ja hoidke seda turvaliselt. Vajate seda allkirjade kontrollimiseks (vaadake jaotist Turvalisus allpool). Lihtteksti ei saa hiljem enam vaadata.
Igal lõpp-punktil on ka:
- Enable/disable toggle (Lüliti Luba/keela) - peatab edastused ilma lõpp-punkti kustutamata. Keelatud lõpp-punktid jätavad sündmused vaikselt vahele (neid ei panda järjekorda hilisemaks).
- Send sample event (Saada näidissündmus) - toimetab teie URL-ile allkirjastatud testpäringu, et saaksite oma vastuvõtjat otsast lõpuni kontrollida. Saate valida sündmuse tüübi ja muuta näidisväärtusi enne saatmist, et teie töötleja näeks realistlikke andmeid. Test saabub tavalise edastusena, kus
eventTypevastab teie valikule (või väärtusegawebhook.testlihtsa ühenduvuse kontrolli puhul). - Roll secret (Uuenda saladust) - genereerib uue saladuse ja muudab vana kehtetuks. Kasutage seda, kui saladus võib olla lekkinud. Uut saladust kuvatakse taas ainult üks kord. Enne uuendamist värskendage oma vastuvõtjat, vastasel juhul ebaõnnestub teie poolel edastuste allkirja kontrollimine.
- Delivery log (Edastuslogi) - lõpp-punktipõhine loend viimastest edastustest koos ajatempli, sündmuse tüübi, teie serveri tagastatud HTTP-oleku ja vastusajaga. Ebaõnnestunud edastused ja automaatse katkestuse (circuit breaker) pausid on siin nähtavad. Logi säilitatakse 14 päeva.
Sündmuse ümbrik
Iga edastus on HTTP POST -päring päisega Content-Type: application/json. Kehal on alati sama ümbrik (envelope); objekt data on spetsiifiline sündmuse tüübile:
{
"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- sündmuse kohta unikaalne. Kasutage seda duikaatide eemaldamiseks, kui teie töötlemine peab olema idempotentne.eventType- üks allpool dokumenteeritud tüüpidest; saadetakse ka päisesX-ChatLab-Event.timestamp- ISO 8601 UTC aeg, millal sündmus toimus.botId/botName- robot, millele sündmus kuulub.conversationId/sessionId- vestluse kontekst, kui see on kohaldatav.
Sündmuste kataloog
lead.created
Käivitub, kui külastaja esitab oma kontaktandmed - läbi müügivihjete kogumise vormi, Live Chati eelvormi või müügivihjete kogumiseks kasutatava kohandatud vormi.
{
"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- kuidas kontaktandmed koguti:LEAD_COLLECTION_FORM(müügivihjete kogumise vorm),LIVE_CHAT_FORM(Live Chati eelvorm),CONVERSATION(tehisintellekt tuvastas andmed vestluse käigus),ADMIN_DATA_UPDATEvõiUPDATE_CLIENT_CONTEXT(muudetud ChatLabi poolel). Inimtoe kontaktivormi esitamised ei käivita seda sündmust kunagi - need käivitavad selle asemel sündmusecontact_form.submitted.email,name,phone- kontaktandmed, mis on seotud müügivihje kirjega.- Kui müügivihjete kogumiseks kasutatakse kohandatud vormi, kaasatakse massiivi
fieldskõik sellel vormil määratletud väljad, vormi järjekorras, ningformCodeName/formNametuvastavad vormi. Klassikalise müügivihje vormi puhul on mõlemadnulljafieldson tühi massiiv. - Iga kirje massiivis
fieldson kujul{name, value, type}.nameon välja tehniline nimi, mis jääb siltide muutmisel samaks - kasutage seda vastendamiseks oma CRM-is. - Väljade
multichoicepuhul onvaluevalitud valikute massiiv. Märkeruutude väljad on eraldi kirjed väärtustega"true"/"false". - Väljade
filepuhul onvalueüleslaaditud faili allalaadimislink; veebikonks ei kanna kunagi faili sisu. pageUrl- leht, kus külastaja esitamise hetkel viibis.
contact_form.submitted
Käivitub, kui külastaja esitab inimtoe kontaktivormi või kohandatud vormi, mida kasutatakse inimesega kontakteerumiseks.
{
"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- aadress, mille külastaja jättis ja millele teie tugimeeskond peaks vastama.source-CUSTOM_FORM, kui kontaktivormi taga on kohandatud vorm,CONTACT_FORMsisseehitatud vormi puhul.formCodeName/formName- tuvastavad päringu taga oleva kohandatud vormi; mõlemad on sisseehitatud vormi puhulnull.- Kui kasutatakse kohandatud vormi, kaasatakse kõik sellel vormil määratletud väljad massiivi
fields(sama vorming{name, value, type}nagu sündmusellead.created). Sisseehitatud kontaktivormi puhul täidetakse ainultemailjamessage,fieldson tühi massiiv ja vormi identifikaatorid onnull. message- vastendatud sõnumiväli või kõik täidetud väärtused kokku liidetuna, kui vorm ei määratle sõnumivälja.
custom_form.submitted
Käivitub iga kohandatud vormi esitamisel, olenemata vormi eesmärgist. Pange tähele, et vormid, mille eesmärk on müügivihjete kogumine või inimkontakt, käivitavad lisaks ka oma spetsiaalse sündmuse lead.created / contact_form.submitted - tellige üks või teine sõltuvalt sellest, kas soovite üldist või spetsialiseeritud vaadet, ning eemaldage duplikaadid väärtuste conversationId + timestamp alusel, kui tellite mõlemad.
{
"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- vormi stabiilne masinnimi, mis ei muutu vormi ümbernimetamisel; kasutage seda esitamiste suunamiseks oma süsteemis.formNameon külastajatele kuvatav silt.fieldskasutab samu kirjeid{name, value, type}nagulead.created: mitmikvalikute väärtused on massiivid, failide väärtused on allalaadimislingid.purpose-STANDALONE,LEAD_COLLECTIONvõiHUMAN_CONTACT, sõltuvalt sellest, kuidas vorm on vestlusrobotiga seotud.
conversation.started
Käivitub, kui külastaja saadab uue vestluse esimese sõnumi.
{
"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- külastaja avasõnumi täpne tekst.null, kui vestlus avati ilma sõnumi sisuta.chatSource- kanal, mille kaudu vestlus saabus:WIDGET,WHATSAPP,MESSENGER,VOICE,VOICE_PHONE,API,BOOKING,AIRBNBvõiIDOBOOKING.byAdmin-true, kui vestlus pärineb ChatLabi administraatoripaneelis olevast vestlusroboti eelvaatest, mitte päriskülastajalt. Kasutage seda oma testvestluste CRM-ist eemal hoidmiseks.countryCode- külastaja IP-aadressi põhjal tuvastatud ISO riigikood,null, kui seda ei õnnestunud määrata.ipAddress- külastaja IP-aadress nii, nagu ChatLab seda näeb,null, kui pole saadaval. Käsitlege seda isikuandmetena GDPR-i alusel ja salvestage seda ainult siis, kui teil on selleks seaduslik alus.
conversation.rated
Käivitub, kui külastaja hindab roboti vastust pöidlaga üles või alla (vaadake Vestluse hindamine).
{
"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-POSITIVEvõiNEGATIVE. Hinnangu eemaldamine sündmust ei käivita, seega ei saa te kunagi neutraalset väärtust.
conversation.summarized
Käivitub, kui ChatLab genereerib lõppenud vestluse kokkuvõtte.
{
"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- genereeritud kokkuvõtte tekst. Kokkuvõtted luuakse mõni minut pärast vestluse tegevusetuks muutumist, seega saabub see sündmus hiljem kui ülejäänud vestluse sündmused.language- ISO kood keele kohta, milles kokkuvõte kirjutati, järgides vestluse keelt.
client.summarized
Käivitub, kui ChatLab värskendab kliendi tehisintellekti profiili. Profiil koostatakse uuesti eelmisest profiilist ja äsja lõppenud vestluse kokkuvõttest, mistõttu järgneb see sündmus samale vestlusele mõeldud sündmusele conversation.summarized. Kliente tuvastatakse e-posti teel, mistõttu korratakse aadressi objekti data kõrgeimal tasemel.
{
"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- identifikaator kliendi vastendamiseks teie enda CRM-iga. Anonüümsete külastajate puhul, kes ei jätnud aadressi, on seenull, kuid sündmus käivitub ka nende puhul - jätke need edastused vahele, kui teie integratsioon põhineb e-postil.client- kontaktikirje, mida ChatLab selle isiku kohta omab:email,name,phone,countryCodejaipAddress. Iga võti on alati olemas; teadmata väärtused onnull.clientSummary- kogu profiili tekst lihttekstina, mitte erinevustena (diff). See asendab varasema kokkuvõtte täielikult, seega salvestage see ülekirjutamisena, mitte juurde lisamisena.- Profiil koostatakse uuesti ainult robotite puhul, millel on lubatud vestlusmälu (chat memory), ja ainult vestluste puhul, mis olid kokkuvõtte tegemiseks piisavalt kaua tegevusetud - oodake seda sündmust minuteid pärast vestluse lõppu, mitte kohe.
live_chat.requested
Käivitub, kui tehisintellekt annab vestluse üle reaalajas vestlusele (live chat), kas seetõttu, et külastaja küsis inimest, või seetõttu, et robot otsustas, et inimene on vajalik.
{
"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- hetkel alatiAI, sest üleandmise algatab alati roboti Live Chati toiming, sealhulgas juhul, kui külastaja küsib seda tavaliste sõnadega. Käsitlege seda avatud loendina (enum): töödelge tundmatuid väärtusi, selle asemel et eeldada kindlalt väärtustAI.- Sündmus näitab, et üleandmist taotleti, mitte seda, et operaator selle vastu võttis. Selleks oodake sündmust
live_chat.started.
live_chat.started
Käivitub, kui operaator liitub ja reaalajas vestluse seanss tegelikult algab.
{
"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": {}
}
dataon tahtlikult tühi. Kõik vajalik on ümbrikus:botIdtuvastab vestlusroboti ningconversationId/sessionIdseovad sündmuse vestlusega, mille kohta saite juba sündmuselive_chat.requested.
live_chat.ended
Käivitub reaalajas vestluse seansi lõppemisel.
{
"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- kui kaua operaator vestluses viibis, arvestatuna seansi alguse hetkest. Väli jäetakse välja harvadel juhtudel, kui seanss lõpeb ilma, et seda oleks kunagi alustatud.
ai_action.executed
Käivitub iga kord, kui robot käivitab tehisintellekti toimingu (AI action) - hallatud integratsiooni väljakutse või kohandatud API funktsiooni. See on suure mahuga sündmus: aktiivne e-kaubanduse robot võib käivitada sadu toiminguid päevas ja külastaja üksainus lause võib käivitada mitu toimingut. Tellige see spetsiaalsesse lõpp-punkti või veenduge, et teie vastuvõtja suudab selle mahuga toime tulla.
{
"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- käivitatud toimingu nimi nii, nagu tehisintellekt seda näeb, näitekssearch_productshallatud integratsiooni puhul või nimi, mille andsite kohandatud API toimingule.status-SUCCESSvõiERROR.durationMs- kui kaua toiming aega võttis (millisekundites). Kasulik aeglase integratsiooni märkamiseks enne, kui külastajad selle üle kurtma hakkavad.errorMessage- ebaõnnestumise põhjus, täidetud ainult siis, kuistatusonERROR; muul juhulnull.
webhook.test
Saadetakse nupuga Send sample event, kui käivitate lihtsa ühenduvuse kontrolli. Allkirjastatud täpselt samamoodi nagu päris sündmus.
{
"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- fikseeritud tekst, alati sama. Ümbriku väljad kannavad näidisväärtusi, seega ärge kunagi käsitlege edastustwebhook.testreaalsete andmetena.- See on ainus sündmuse tüüp, mida ei saa lõpp-punktis tellida: see saadetakse nõudmisel administraatoripaneelist ja jõuab alati sellesse lõpp-punkti, millel klõpsasite, olenemata sellest, milliseid sündmusi see kuulab.
Turvalisus: edastuste kinnitamine
Iga edastus sisaldab nelja päist:
| Päis | Väärtus |
|---|---|
X-ChatLab-Signature |
sha256=<hex hmac> - andmesisu HMAC-SHA256 allkiri |
X-ChatLab-Timestamp |
Unixi aeg sekundites edastuse allkirjastamise hetkel |
X-ChatLab-Event |
Sündmuse tüüp, nt lead.created |
X-ChatLab-Delivery |
Kordumatu edastuse ID, mis kattub keha väärtusega eventId |
Allkiri arvutatakse HMAC-SHA256 väärtusena sõnest {timestamp}.{rawBody}, kasutades teie lõpp-punkti saladust (secret), kus {timestamp} on X-ChatLab-Timestamp päise väärtus ning {rawBody} on päringu töötlemata, parsimata keha. Kinnitage alati töötlemata baitide alusel - parsitud JSON-i uuesti jadastamine muudab baitide järjestust ja muudab allkirja kehtetuks.
Kordusrünnakute (replay attacks) eest kaitsmiseks lükake tagasi edastused, mille X-ChatLab-Timestamp on vanem kui 5 minutit.
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);
}
Kui kinnitamine ebaõnnestub, vastake koodiga 401 ja hüljake andmesisu. Ärge kunagi töödelge kinnitamata edastusi - igaüks, kes teie URL-i teada saab, võib sinna saata suvalist JSON-i.
Edastuste toimimispõhimõtted
Enne veebikonksude kasutuselevõttu arvestage järgmiste tagatistega:
- Vastake kiiresti. Teie lõpp-punkt peab vastama 3 sekundi jooksul, vastasel juhul loetakse edastus ebaõnnestunuks. Vastake kohe staatusega
2xxja töödelge andmesisu asünkroonselt (suunake see järjekorda ja seejärel kinnitage kättesaamist) - ärge tehke enne vastamist CRM-i päringuid ega andmebaasi kirjutamisi. - Tee ja unusta, ülimalt ühekordne (at-most-once). Iga sündmus saab täpselt ühe edastuskatse - uuestiproovimisi ei toimu. Kui teie lõpp-punkt ei tööta, saabub ajalõpp või tagastatakse muu staatus kui 2xx, on see sündmus kadunud ja seda uuesti ei edastata. Veebikonksud on teavitused, mitte replikeeritud andmesalv: kui vajate tagatud terviklikkust, sünkroonige andmed Management API liidese või müügivihjete ekspordifailide kaudu.
- Kaitselüliti (circuit breaker). Pärast 5 järjestikust ebaõnnestunud edastust ühe boti puhul peatatakse selle boti edastused 5 minutiks. Peatamise ajal toimuvad sündmused jäetakse vahele ning edastuslogis kuvatakse kirjed
CIRCUIT_OPEN, et näeksite täpselt, millal ja miks liiklus peatati. Kaitselüliti poolt vahele jäetud edastusi automaatse väljalülitamise arvestusse ei loeta. - Automaatne väljalülitamine. Kontroll käivitatakse edastuse ebaõnnestumise hetkel, mitte kunagi ajastatud taimeri alusel. Kui edastus ebaõnnestub ja 7 päeva jooksul pole toimunud ühtegi edukat edastust (arvestatuna viimasest õnnestumisest või lõpp-punkti loomise kuupäevast, kui see pole kordagi õnnestunud), lülitatakse lõpp-punkt välja ja teile saadetakse e-posti teel teavitus. Üksainus
2xxvastus mistahes hetkel lähtestab selle loenduri. Lõpp-punkti, kuhu liiklust ei saabu, ei lülitata kunagi välja, sest ükski katse ei ebaõnnestu. Kui olete vastuvõtja korda teinud, lülitage see uuesti sisse jaotises Account settings (konto seaded); uuesti sisselülitamisel tühjendatakse tõrkeloendur ja automaatse väljalülitamise märge, kuid väljalülitatud oleku ajal vahele jäänud sündmusi tagantjärele ei edastata. - 410 Gone. Kui teie lõpp-punkt vastab koodiga HTTP
410 Gone, lülitab ChatLab selle kohe välja. Kasutage seda lõpp-punkti programmiliseks sulgemiseks vastuvõtja poolelt. - Idempotentsus. Tavapärase toimimise korral topeltedastusi ei esine, kuid kui teie töötlus peab olema rangelt idempotentne, eemaldage duplikaadid väärtuse
eventIdabil (saadaval ka päisesX-ChatLab-Delivery).
Piirangud
- Kuni 10 veebikonksu lõpp-punkti konto kohta.
- Edastuslogide säilitamine: 14 päeva. Vanemad kirjed eemaldatakse automaatselt.
Seotud artiklid
- Lead collection (müügivihjete kogumine) - vorm sündmuse
lead.createdtaga - Human Support Contact form (klienditoe kontaktivorm) - vorm sündmuse
contact_form.submittedtaga - Live Chat - töövoog sündmuste
live_chat.*taga - Conversation rating (vestluste hindamine) - pöial üles/alla tagasiside sündmuse
conversation.ratedtaga - AI Actions (tehisintellekti toimingud) - integratsioonid sündmuse
ai_action.executedtaga - Chat API - brauserisisesed vidina tagasikutsed (veebikonksude klientpoolne vaste)
- Management API - REST API botide haldamiseks ja kasutusandmete pärimiseks