Palīdzības centrs
Chat API

Management API

Pēdējo reizi atjaunināts:

Management API pārskats

Management API ir paredzēts biroja iekšējiem procesiem (back-office), kuros netiek sūtītas tērzēšanas ziņas:

  • izveidojiet botu programmatiski, izmantojot POST /v1/management/bots
  • iegūstiet informāciju par konkrētu Jums piederošu botu, izmantojot GET /v1/management/bots/{bot_id}
  • atjauniniet konkrētu botu, izmantojot PATCH /v1/management/bots/{bot_id}
  • skatiet abonementa lietojumu, izmantojot GET /v1/usage

Management atslēgas ir piesaistītas Jūsu kontam, nevis kādam konkrētam botam. Tās apzināti tiek turētas atsevišķi no Bot Talk atslēgām, lai kompromitēta tērzēšanas atslēga nevarētu mainīt Jūsu botus vai lasīt norēķinu datus.

Bāzes URL

https://api.chatlab.com/aichat

Visi šajā rakstā minētie galapunkti ir relatīvi pret šo bāzes URL.

Darba sākšana

  1. Atveriet administratora lietotni un dodieties uz Account Settings > Management API (Konta iestatījumi > Management API).
  2. Noklikšķiniet uz Create Management Key (Izveidot Management atslēgu), piešķiriet tai nosaukumu, pēc izvēles iestatiet IP balto sarakstu un pieprasījumu skaita ierobežojumu, un pēc tam apstipriniet.
  3. Nokopējiet pilno atslēgu no veiksmīga rezultāta modālā loga. Parastā teksta formā tā tiek parādīta tikai vienreiz.

Atslēga izskatās šādi: mk_abcdefghijklmnopqrstuvwxyz012345. Priedēklis mk_ to atšķir no Bot Talk atslēgām (ck_).

Autentifikācija

Authorization: Bearer mk_abcdefghijklmnopqrstuvwxyz012345

Nosūtot mk_ atslēgu uz /v1/chat (vai jebkuru citu Bot Talk galapunktu), tiek atgriezta kļūda 403 key_type_not_allowed. Nosūtot ck_ atslēgu uz /v1/management/*, tiek atgriezta tā pati kļūda.

Ierobežojumi

  • Maksimums 5 aktīvas Management API atslēgas vienam lietotājam
  • Maksimums 10 pieprasījumi minūtē vienai atslēgai (žetonu spainis, ietilpība 10, vienmērīga papildināšana ar ātrumu ~1 žetons ik pēc 6 sekundēm). Izveides brīdī konfigurējams uz leju - iestatiet mazāku rateLimitPerMinute, un maksimālā robeža samazināsies, līdz ar to proporcionāli mainoties papildināšanas ātrumam.

Atļaujas

Katrai Management atslēgai ir piešķirta jebkura no tālāk norādīto trīs atļauju apakškopām. Izveides laikā ir jāatlasa vismaz viena atļauja; pretējā gadījumā pieprasījums tiek noraidīts ar kļūdu 400 invalid_request_error. Izsaucot galapunktu ar atslēgu, kurai trūkst nepieciešamās atļaujas, tiek atgriezta kļūda 403 insufficient_permissions.

  • bot_read - nepieciešama GET /v1/management/bots/{bot_id}
  • bot_management - nepieciešama POST /v1/management/bots un PATCH /v1/management/bots/{bot_id}
  • usage - nepieciešama GET /v1/usage

Pamatteksta struktūra: iegultas sadaļas, kas atbilst administratora saskarnes cilnēm

POST un PATCH pieņem JSON pamattekstu, kas sadalīts 13 sadaļās. Katra sadaļa atbilst apakšcilnei administratora lietotnes Bot Settings sānjoslā, tāpēc JSON atslēgas sakrīt ar redzamajām cilnēm: ja mainīsiet consent.humanSupportRequirePolicyAccept, izmantojot API, redzēsiet, ka administratora lietotnes cilnē Consent & Privacy (Piekrišana un privātums) pārslēdzas tas pats slēdzis.

  • role - bota personība, neapstrādāts prompt, atbildes garums, valoda, vietnes / uzņēmuma konteksts (Role & Behavior cilne)
  • conversation - sagaidīšanas ziņa, vaicājuma precizēšana, sarunas nepārtrauktība, vērtēšanas slēdzis + rīka padomi, ieteikto jautājumu saturs + dinamiskie sekojošie jautājumi (Chat Conversation cilne)
  • chatMemory - tērzēšanas atmiņas slēdzis, kopsavilkumu prompti, konteksta sadalījums (Summaries & Memory cilne)
  • appearance - krāsas, teksti, izmēri, pielāgots CSS, sagaidīšanas ekrāns, ieteikto jautājumu stils, automātiskas atvēršanas uzvedība, cilvēka rakstīšanas simulācija, kājenes markdown (Appearance cilne)
  • humanSupport - cilvēku saziņas veidlapa (Human Contact Form cilne)
  • leadCollection - lead iegūšanas veidlapa (Lead Collection cilne)
  • liveChat - nodošana uz Live Chat (Live Chat cilne)
  • consent - visi četri privātuma politikas piekrišanas slēdži, kā arī piekrišanas ekrāna teksts (Consent & Privacy cilne)
  • whiteLabel - logotipa paslēpšana, pielāgota logotipa saite, mitināšana uz pielāgota domēna (Whitelabel cilne)
  • security - atļautie domēni, surogātpasta filtrs, sarunu skaita ierobežojumi (Security cilne)
  • voice - balss ievade un balss sarunas: modelis, balss, valodas, prompt, ilguma ierobežojums (Voice Conversation cilne)
  • multilingual - daudzvalodu režīms, bāzes valoda, piedāvātās valodas, zināšanu bāzes valodas apstrāde (Languages cilne)
  • advanced - LLM modelis, temperatūra, konteksta izmērs, bota ziņu limits, iekšējā lokāle, Offer Cards (Model & Advanced cilne)

Tikai name atrodas augstākajā līmenī, jo tas identificē botu, nevis pieder kādai konkrētai cilnei.

Sānjoslā Bot Settings pašlaik ir 15 apakšcilnes, un 13 no tām atbilst iepriekš minētajām sadaļām. Divas apakšcilnes, kurām nav atbilstošas sadaļas, ir Flow un Actions - abas ir aprakstītas tālāk sadaļā "Ārpus API tvēruma". Tās 13, kurām ir atbilstība, ir Appearance, Chat Conversation, Role & Behavior, Human Contact Form, Lead Collection, Live Chat, Whitelabel, Consent & Privacy, Security, Model & Advanced, Summaries & Memory, Voice Conversation un Languages.

Pieprasījuma pamattekstam un atbildes pamattekstam ir vienāda struktūra. Atbilde ietver divus papildu elementus:

  • meta - tikai lasāms: bota ID un laika zīmogi. Noņemiet to, lai pārvērstu GET atbildi derīgā POST pamattekstā.
  • apiKey - klātesošs tikai izveides brīdī - tikko izveidotā Bot Talk API atslēga jaunajam botam.

Divi lauki kopīgajā struktūrā ir tikai lasāmi - tie tiek atgriezti atbildē, bet tiek ignorēti, ja mēģināt tos nosūtīt ar POST/PATCH:

  • appearance.avatarUrl - pilnībā kvalificēts bota avatara attēla publiskais URL (piemēram, https://api.chatlab.com/aichat/content/avatar_xyz.png). Izpildiet tiešu GET pieprasījumu, lai lejupielādētu failu. Lai to mainītu, augšupielādējiet jaunu failu, izmantojot multipart daļu avatar (skatiet PATCH).
  • whiteLabel.whitelabelLogoUrl - pilnībā kvalificēts White Label galvenes logotipa publiskais URL. Tas pats princips kā avatarUrl. Lai to mainītu, augšupielādējiet jaunu failu, izmantojot multipart daļu whitelabel_logo (skatiet PATCH).

Abi URL izmanto pašreizējā pieprasījuma shēmu + resursdatoru + konteksta ceļu, tāpēc White Label pielāgotajā domēnā tie tiek atgriezti ar šī domēna sakni (piemēram, https://api.acme.com/aichat/content/...).

Nosūtiet null sadaļai, lai to izlaistu PATCH pieprasījumā; nosūtiet null laukam sadaļas iekšienē, lai izlaistu šo konkrēto lauku. Lauka līmeņa null nekad neizdzēš saglabāto vērtību - tas nozīmē tikai "neaiztikt".

Loma un prompt izveide

Sistēmas prompt, ko LLM faktiski saņem, tiek izveidots vienā no diviem veidiem atkarībā no role.role. Zinot, kuru zaru izmantojat, sapratīsiet, kuri lauki ir svarīgi un kuri tiek saglabāti, bet ignorēti.

A zars - role.role ir CUSTOMER_SUPPORT, SALES vai LEAD_COLLECTION_AGENT (veidņu vadīts)

Aizmugursistēma saliek prompt no iebūvētas veidnes un pilnībā ignorē role.rawPrompt (vērtība joprojām tiek saglabāta botā, bet vienkārši netiek izmantota). Veidne ietver:

  • role.role - lomas nosaukums (piemēram, "Customer Support") un automātiski pievienoti lomai specifiski norādījumi
  • name - bota nosaukums, kas tiek ievietots ievadteikumā
  • role.language - "Auto Detect" liek botam pielāgoties lietotāja valodai; jebkura cita vērtība (piemēram, "English", "Polish") kļūst par "Output in {language}, unless user uses another language"
  • role.responseLength - tiek piesaistīts mērķa vārdu skaitam: Concise ≈ 50 vārdi, Normal ≈ 100, Detailed ≈ 200
  • role.websiteAddress - neobligāts; ja nav tukšs, tiek pievienots kā "for the users of the website {url}"
  • role.companyDescription - neobligāts; ja nav tukšs, tiek pievienots kā papildu rindkopa pirms lomas norādījumiem

Šis ir ieteicamais zars lielākajai daļai botu - Jūs bez papildu pūlēm iegūstat lomai pielāgotu uzvedību un drošības barjeras.

B zars - role.role ir CUSTOM (izsaucēja norādīts prompt)

Aizmugursistēma izmanto role.rawPrompt burtiski kā visu sistēmas prompt. Parametri responseLength, language, websiteAddress, companyDescription tiek saglabāti, bet netiek ievietoti prompt tekstā - ja vēlaties, lai kāds no tiem atspoguļotos bota uzvedībā, Jums tie pašam ir jāiekļauj savā rawPrompt tekstā. Lomai specifiskas drošības barjeras un toņa norādījumi arī netiek pievienoti; Jūs pilnībā pārvaldāt visu prompt.

Izmantojiet CUSTOM tikai tad, ja veidnes vadītais prompt neatbilst Jūsu lietošanas gadījumam (piemēram, Jums ir nepieciešama ļoti specifiskas nozares personība, savi drošības ierobežojumi, nestandarta izvades formāts).

Enum / fiksēto vērtību kopu lauki

Vairāki lauki pieņem tikai fiksētu virknes vērtību kopu. Jebkuras citas vērtības nosūtīšana tiek noraidīta ar kļūdu 400 validation_failed un lauka ceļu parametrā error.param. Vērtībās tiek ņemti vērā lielie un mazie burti.

  • role.role - CUSTOMER_SUPPORT, SALES, LEAD_COLLECTION_AGENT, CUSTOM
  • role.responseLength - Concise, Normal, Detailed
  • role.language - pilns valodas nosaukums angļu valodā no administratora nolaižamā saraksta, piemēram, Auto Detect, English, Polish, Spanish, German, French, Italian, Portuguese, Dutch, Russian, Chinese (Simplified), Japanese, Arabic, Hindi un vēl aptuveni 80 citi. Vērtība tiek saglabāta burtiski un ievietota prompt veidnē, tāpēc divu burtu ISO kodi (en, pl) un citas ārpus saraksta esošas vērtības netiek noraidītas no API puses, taču rada kļūdainu norādījumu, piemēram, "Output in en, unless...". Pēc noklusējuma tiek izmantots Auto Detect, ja, veidojot botu, lauks ir izlaists.
  • advanced.model - skatiet tālāk sadaļu "AI teksta modeļi"; atlasāmo modeļu kopa ir atkarīga no Jūsu konta ierobežojumiem, un jebkura vērtība, ko Jūsu konts nevar izmantot, atgriež kļūdu 400 invalid_parameter
  • advanced.chatContextSize - 8000, 16000, 32000. Pakļauts Jūsu konta ierobežojumiem; lielākas vērtības tiek automātiski samazinātas līdz atļautajai robežai
  • chatMemory.clientSummaryPromptType - DEFAULT, CUSTOM
  • chatMemory.conversationSummaryPromptType - DEFAULT, CUSTOM
  • appearance.chatAlignment - left, right
  • appearance.minimizedDisplayMode - icon, minified
  • appearance.chatMessageLinkTarget - _blank, _self
  • leadCollection.requireBeforeNewConversation - Būla slēdzis. true liek lietotājam aizpildīt lead veidlapu pirms sarunas sākšanas; false ļauj AI izlemt, kad parādīt veidlapu (noklusējums).

Strukturētie lauki un diapazoni

Lauki, kas izskatās kā parastas virknes vai skaitļi, bet patiesībā tiem ir specifiska struktūra, diapazoni vai administratora saskarnes nianses, par kurām vērts zināt.

  • advanced.temperature - atļautais diapazons ir no 0.0 līdz 1.0, kas atbilst slīdnim administratora saskarnē. Vērtības ārpus šī diapazona tiek noraidītas ar kļūdu 400 validation_failed.

  • chatMemory.summariesToKnowledgeRatio - vesels skaitlis procentos, 10-90 ar soli 10. Nosaka, cik liela daļa tērzēšanas konteksta tiek atvēlēta klienta vēsturiskajiem kopsavilkumiem salīdzinājumā ar pārējo saturu (zināšanu bāze, pašreizējā saruna, norādījumi). Noklusējums ir 50. Vērtības ārpus 10-90 tiek noraidītas ar kļūdu 400 validation_failed. Tiek piemērots tikai tad, ja chatMemory.enabled=true UN chatMemory.summaryConversationsEnabled=true.

  • liveChat.schedule - JSON kodēts kā virkne, nevis iegults JSON objekts pieprasījumā. Serveris saglabā neapstrādāto virkni burtiski; administratora saskarne parsē to klienta pusē, renderējot grafika redaktoru. Pēc parsēšanas virknes struktūru veido viens ieraksts katrai nedēļas dienai plus atslēga timezone:

    • katra nedēļas dienas atslēga (monday-sunday) atbilst {enabled: boolean, from: "H:MM", to: "H:MM"} 24 stundu formātā
    • timezone ir IANA laika joslas nosaukums (piemēram, "Europe/Warsaw", "America/New_York")

    Vērtības piemērs (ņemiet vērā ārējās pēdiņas un ekranētās iekšējās pēdiņas - tas ir viens virknes lauks, nevis iegults objekts):

    "{\"monday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"tuesday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"wednesday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"thursday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"friday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"saturday\":{\"enabled\":false,\"from\":\"9:00\",\"to\":\"17:00\"},\"sunday\":{\"enabled\":false,\"from\":\"9:00\",\"to\":\"17:00\"},\"timezone\":\"Europe/Warsaw\"}"
    

    Ārpus norādītajām stundām apmeklētājam tiek rādīts liveChat.outOfHoursMessage un nodošana uz Live Chat tiek bloķēta. Iekšējās struktūras validācija darbojas tikai klienta pusē administratora saskarnē - nekorekti noformētu JSON vai neatpazītas atslēgas API pieņem vienkārši kā virkni, un tas parādīsies kā renderēšanas kļūda, kad administrators vēlāk atvērs botu vadības panelī. Pirms nosūtīšanas pārbaudiet struktūras pareizību savā pusē.

  • conversation.positiveRatingTooltip / conversation.negativeRatingTooltip - īsi paskaidrojumi, kas tiek parādīti uz 👍 / 👎 pogām blakus katrai AI atbildei, ja conversation.conversationRatingEnabled=true. Noklusējuma teksts ir "I like the response" / "I don't like the response". Redzams gala lietotājiem.

  • whiteLabel.hideRoboAssistLogo - White Label funkcija, pakļauta Jūsu konta ierobežojumiem. Paslēpj kājenes rindiņu "Powered by ChatLab". Ja Jūsu konts neietver White Label iespējas, vērtība tiek saglabāta, bet ignorēta, un kājene vienmēr tiek renderēta.

  • whiteLabel.whitelabelLogoLink - White Label funkcija, pakļauta Jūsu konta ierobežojumiem. Pielāgotā logotipa klikšķa mērķa URL, ja hideRoboAssistLogo=true un pielāgotais logotipa fails ir augšupielādēts, izmantojot multipart daļu whitelabel_logo.

  • appearance.simulateHumanTypingDelay - sekundes (nevis milisekundes), vesels skaitlis 0-200. Pauze starp secīgiem bota ziņu burbuļiem, ja simulateHumanTyping=true. Noklusējums ir 5.

  • appearance.autoOpenChatDelaySeconds - sekundes, vesels skaitlis. Aizkave pirms logrīka automātiskas atvēršanās, ja autoOpenChat=true un autoOpenChatDelay=true.

  • advanced.internalLocale - IETF lokāles-reģiona kods formā ll_CC (ar pasvītrojumu, NEVIS ll-CC ar defisi). Atļautās vērtības nāk no fiksēta saraksta ar ~95 lokālēm: en_US, pl_PL, de_DE, fr_FR, es_ES, it_IT, pt_PT, nl_NL, ru_RU, zh_CN, zh_TW, ja_JP, ko_KR, ar_SA, hi_IN, tr_TR, cs_CZ, da_DK, fi_FI, sv_SE, no_NO, el_GR, he_IL un daudzām citām. Tikai divu burtu koda ("en") vai BCP-47 koda ("en-US") nosūtīšana nav iekļauta atļautajā sarakstā. Noklusējums ir en_US. Šī ir lokāle, ko izmanto datuma/skaitļu formatēšanai logrīka rāmī, un tā atšķiras no role.language (bota sarunvalodas izvadē).

  • security.talkMessagesRateLimit / security.talkMessagesRateLimitDurationSeconds - veseli skaitļi (jāsūta kā JSON skaitļi, piemēram, 30, nevis "30"). 0 atspējo viena IP ierobežojumu. Ja vērtība nav nulle, logrīks piemēro ierobežojumu N ziņojumi norādītajā sekunžu skaitā, pirms apmeklētājam tiek parādīts security.talkMessagesRateLimitHitMessage.

  • advanced.botMessagesLimit - vesels skaitlis (JSON skaitlis, piemēram, 1000). 0 nozīmē "bez ierobežojuma"; pretējā gadījumā tam ir jābūt 1000 daudzkārtnim (1000, 2000, 10000, ...). Vērtības, piemēram, 100 vai 1500, tiek noraidītas ar kļūdu 400 validation_failed. Pēc tam vērtība tiek automātiski samazināta līdz Jūsu konta limitam, ja tā to pārsniedz.

AI teksta modeļi (advanced.model)

Nosūtiet precīzu API vērtību (kreisā kolonna ar atpakaļvērstajām pēdiņām). Attēlojamais nosaukums administratora saskarnē ir norādīts iekavās. Jūsu konta ierobežojumi nosaka, kura apakškopa ir pieejama; nosūtot modeli, ko Jūsu konts nevar izmantot, tiek atgriezta kļūda 400 invalid_parameter. Jauniem botiem noklusējuma vērtība ir 5-MINI.

  • 4-O-MINI (GPT 4-o mini)
  • 4-O (GPT 4-o)
  • 4.1-MINI (GPT 4.1-mini)
  • 4.1 (GPT 4.1)
  • 5-MINI (GPT 5-mini)
  • 5 (GPT 5)
  • 5.1 (GPT 5.1)
  • 5.4-MINI (GPT 5.4-mini)
  • 5.4 (GPT 5.4)
  • 5.5 (GPT 5.5)
  • GEMINI 2.5 PRO (Gemini 2.5 Pro)
  • GEMINI 3 Flash (Gemini 3 Flash)
  • GEMINI 3.5 Flash (Gemini 3.5 Flash)
  • GEMINI 3.7 Flash (Gemini 3.7 Flash)
  • GEMINI 3.8 Flash (Gemini 3.8 Flash)
  • GEMINI 3.1 Flash-Lite (Gemini 3.1 Flash-Lite)
  • GEMINI 3 PRO (Gemini 3 Pro)

Lauku rādītājs (pilna pieprasījuma shēma)

Katrs tīklā nosūtītais lauks kopā ar tā tipu, ierobežojumiem un vienas rindas aprakstu. PATCH semantika: jebkurš izlaistais lauks (vai nosūtīts kā null) atstāj saglabāto vērtību nemainītu. Tāda pati struktūra tiek izmantota arī atbildei (atskaitot daļveida bināro saturu; plus tikai lasāmais meta bloks katrā atbildē un apiKey tikai izveides atbildē).

Augstākais līmenis

Lauks Tips Ierobežojums Apraksts
name string maks. 150, obligāts izveidojot Bota redzamais nosaukums
role object Skatīt § role
conversation object Skatīt § conversation
chatMemory object Skatīt § chatMemory
appearance object Skatīt § appearance
humanSupport object Skatīt § humanSupport
leadCollection object Skatīt § leadCollection
liveChat object Skatīt § liveChat
consent object Skatīt § consent
whiteLabel object Skatīt § whiteLabel
security object Skatīt § security
advanced object Skatīt § advanced

Papildinājumi tikai atbildē:

  • meta: { id, createdAt, updatedAt } - tikai lasāms.
  • apiKey - string, pieejama tikai POST /v1/management/bots atbildē - tikko ģenerētā Bot Talk atslēga jaunajam botam, kas tiek atgriezta tieši vienu reizi.

§ role

Lauks Tips Ierobežojums Apraksts
role string (enum) CUSTOMER_SUPPORT, SALES, LEAD_COLLECTION_AGENT, CUSTOM Personas sākotnējais iestatījums; atlasa prompt veidni (skatīt "Role and prompt construction")
language string pilns valodas nosaukums angļu valodā (English, Polish, ...) vai Auto Detect Primārā valoda, kas tiek nodota prompt veidnei
responseLength string ∈ {Concise, Normal, Detailed} Vēlamais AI atbildes detalizācijas līmenis
websiteAddress string Tīmekļa vietne, ko izmanto prompt kontekstam
companyDescription string Uzņēmuma apraksts, ko izmanto prompt kontekstam
rawPrompt string Pielāgots sistēmas prompt - tiek izmantots burtiski tikai tad, ja role=CUSTOM

§ conversation

Lauks Tips Ierobežojums Apraksts
welcomeMessage string Pirmā ziņa, kas tiek parādīta apmeklētājam atverot
queryRefinementEnabled boolean Ja true, precizēt apmeklētāja jautājumu pirms RAG izgūšanas
conversationContinuityEnabled boolean Ja true, atgriezušies apmeklētāji turpina savu pēdējo sarunu
conversationRatingEnabled boolean Ja true, rādīt īkšķi uz augšu/leju vērtējumu bota ziņām
positiveRatingTooltip string Rīka padoms pozitīvā vērtējuma pogai
negativeRatingTooltip string Rīka padoms negatīvā vērtējuma pogai
suggestedQuestions string Ar jaunu rindu atdalīti ieteiktie jautājumi / sarunas iesācēji
dynamicSuggestedFollowups boolean Ja true, AI piedāvā papildu jautājumu ieteikumus pēc katras atbildes
dynamicFollowupsAutoIcons boolean Ja true, AI automātiski atlasa emocijzīmju ikonas dinamiskajiem papildu jautājumiem

§ chatMemory

Lauks Tips Ierobežojums Apraksts
enabled boolean Tērzēšanas atmiņas funkcijas galvenais slēdzis
summaryConversationsEnabled boolean Saglabāt kopsavilkumus par katru sarunu
conversationSummaryPrompt string Pielāgots prompt, ko izmanto katras sarunas apkopošanai
conversationSummaryPromptType string (enum) ∈ {DEFAULT, CUSTOM} Vai izmantot noklusējuma vai pielāgoto kopsavilkuma prompt
clientSummaryPrompt string Pielāgots prompt, ko izmanto klienta kopsavilkuma veidošanai vairākās sarunās
clientSummaryPromptType string (enum) ∈ {DEFAULT, CUSTOM} Noklusējuma pret pielāgoto klienta profila prompt
summariesToKnowledgeRatio int 10-90, solis 10 % no tērzēšanas konteksta loga, kas piešķirts kopsavilkumiem salīdzinājumā ar RAG zināšanām

§ appearance

Lauks Tips Ierobežojums Apraksts
launcherColor string (hex) Palaidēja (tērzēšanas ikonas) fona krāsa
headerColor string (hex) Tērzēšanas galvenes fona krāsa
titleColor string (hex) Tērzēšanas galvenes virsraksta krāsa
subtitleColor string (hex) Tērzēšanas galvenes apakšvirsraksta krāsa
clientMessageBubbleColor string (hex) Apmeklētāja ziņas burbuļa krāsa
clientMessageTextColor string (hex) Apmeklētāja ziņas teksta krāsa
responseMessageBubbleColor string (hex) Bota atbildes burbuļa krāsa
responseMessageTextColor string (hex) Bota atbildes teksta krāsa
chatSubheader string Saucis, kas tiek rādīts zem tērzēšanas virsraksta
senderPlaceholder string Viettura teksts ziņas ievades laukā
resetConversationTooltip string Rīka padoms pogai "atiestatīt sarunu"
chatAlignment string (enum) ∈ {left, right} Pie kuras ekrāna puses tērzēšana tiek piesaistīta
launcherBottomMargin int 0-500 Palaidēja attālums no apakšējās malas (px)
launcherSideMargin int 0-500 Palaidēja attālums no sānu malas (px)
displayShadow boolean Ēna zem logrīka
customCss string Neapstrādāts CSS, kas tiek ievadīts logrīka iframe
chatMessageLinkTarget string (enum) ∈ {_blank, _self} Kā atveras saites bota ziņās
minimizedDisplayMode string (enum) ∈ {icon, minified} Minimizētais stāvoklis: palaidēja ikona vai kompakta sūtītāja josla
chatDesktopWidthPx int Logrīka platums datorā
chatDesktopHeightPx int Logrīka augstums datorā
chatMobileSizePercent int Mobilā logrīka izmērs kā % no skatvietas
messageFontSize int Ziņas teksta fonta lielums (px)
showChatbotBubblesDesktop boolean Rādīt peldošos piesaistes burbuļus datorā
showChatbotBubblesMobile boolean Rādīt peldošos piesaistes burbuļus mobilajās ierīcēs
chatbotBubblesDelaySeconds int Aizkave pirms piesaistes burbuļu parādīšanās (sekundēs)
launcherIconFullSize boolean Renderēt pielāgoto palaidēja ikonu no malas līdz malai, nevis iegultu
welcomeScreenEnabled boolean Rādīt Welcome Screen (sagaidīšanas ekrānu), nevis uzreiz pāriet uz tērzēšanu
welcomeScreenQuestionsLabel string Etiķete virs ieteiktajiem jautājumiem sagaidīšanas ekrānā
welcomeScreenHideHumanContactForm boolean Paslēpt cilvēka saziņas veidlapas darbību galvenē, kamēr tiek rādīts Welcome Screen. Tā atkal parādās pēc apmeklētāja pirmās ziņas. Botiem, kas izveidoti pirms 2026-09-02, noklusējums ir true
welcomeScreenHideLiveChat boolean Paslēpt Live Chat darbību galvenē, kamēr tiek rādīts Welcome Screen. Tā atkal parādās pēc apmeklētāja pirmās ziņas. Botiem, kas izveidoti pirms 2026-09-02, noklusējums ir true
headerActionsLayout string DROPDOWN Kā tērzēšanas galvenē tiek piedāvāts Live Chat un cilvēka saziņas veidlapa: ICONS (katram atsevišķa ikona) vai DROPDOWN (sagrupēti galvenes izvēlnē). Botiem, kas izveidoti pirms 2026-09-02, noklusējums ir ICONS
stackSuggestedQuestions boolean Kārtot ieteiktos jautājumus vertikāli (nevis blakus)
suggestedQuestionsFontSize int Ieteikto jautājumu elementu fonta lielums (px)
suggestedQuestionsTextColor string (hex) Ieteikto jautājumu elementu teksta krāsa
suggestedQuestionsBackgroundColor string (hex) Ieteikto jautājumu elementu fona krāsa
autoOpenChat boolean Automātiski atvērt tērzēšanu datorā
autoOpenChatOnMobiles boolean Automātiski atvērt tērzēšanu mobilajās ierīcēs
autoOpenChatDelay boolean Izmantot aizkavi pirms automātiskās atvēršanas
autoOpenChatDelaySeconds int Automātiskās atvēršanas aizkave (sekundēs)
simulateHumanTyping boolean Sadalīt bota atbildi burbuļos ar rakstīšanas animāciju
simulateHumanTypingDelay int 0-200 Aizkave starp burbuļu ziņām (sekundēs)
footerMarkdown string maks. 255 Pielāgots kājenes markdown, kas tiek rādīts zem tērzēšanas
avatarUrl string tikai lasāms Pilns publiskais iemiesojuma URL; lai to mainītu, augšupielādējiet, izmantojot daļveida avatar daļu

Multipart pieprasījumos POST/PATCH: avatar (faila daļa). GET / atbildes pamattekstos faila saturs tiek izlaists - tīklā tiek nosūtīts tikai URL.

§ humanSupport

Lauks Tips Ierobežojums Apraksts
enabled boolean Human Support (cilvēka atbalsta) plūsmas slēdzis
email string obligāts (stingrā izveide), ja enabled=true Adrese, kas saņem cilvēka atbalsta e-pasta ziņojumus
dialogMessage string Iedrošinājuma ziņa, kas tiek rādīta virs veidlapas
thankYouMessage string Apstiprinājums, kas tiek parādīts pēc iesniegšanas
emailMessageSubjectTemplate string Temata veidne aģentam nosūtītajam e-pastam
emailMessageContentTemplate string Pamatteksta veidne aģentam nosūtītajam e-pastam
emailPlaceholder string Vietturis e-pasta ievades laukā
messagePlaceholder string Vietturis ziņas teksta apgabalā
emailWithConversationContent boolean Ja true, iekļaut sarunas atšifrējumu e-pasta pamattekstā
customFormId long esošas pielāgotas veidlapas id Aizstāt iebūvēto saziņas veidlapu ar pielāgotu veidlapu. null saglabā iebūvēto veidlapu
customFormMapping string JSON kodēta virkne Kartē pielāgotās veidlapas laukus uz cilvēka atbalsta e-pasta laukiem

requirePolicyAccept atrodas pie consent.humanSupportRequirePolicyAccept, nevis šeit.

§ leadCollection

Lauks Tips Ierobežojums Apraksts
enabled boolean Potenciālo pircēju veidlapas slēdzis
nameEnabled boolean Vākt vārdu
nameLabel string Etiķete vārda ievades laukam
emailEnabled boolean Vākt e-pastu
emailLabel string obligāts (stingrā izveide), ja enabled=true UN emailEnabled=true Etiķete e-pasta ievades laukam
phoneEnabled boolean Vākt tālruni
phoneLabel string obligāts (stingrā izveide), ja enabled=true UN phoneEnabled=true Etiķete tālruņa ievades laukam
leaveDetailsMessage string obligāts (stingrā izveide), ja enabled=true Ziņa, kas mudina apmeklētāju atstāt savu kontaktinformāciju
thankYouMessage string obligāts (stingrā izveide), ja enabled=true Apstiprinājums, kas tiek parādīts pēc iesniegšanas
requireBeforeNewConversation boolean Ja true, veidlapa jāiesniedz pirms tērzēšanas sākuma; ja false, AI izlemj, kad parādīt veidlapu
emailNotificationEnabled boolean Nosūtīt e-pastu īpašniekam katru reizi, kad tiek iegūts lead
emailNotificationAddress string Paziņojuma saņēmējs (pēc noklusējuma konta e-pasts)
emailWithConversationContent boolean Ja true, iekļaut sarunas atšifrējumu paziņojumā

Starplauku stingrās izveides noteikums: enabled=true pieprasa vismaz vienu no emailEnabled vai phoneEnabled. requirePolicyAccept atrodas pie consent.leadCollectionRequirePolicyAccept, nevis šeit.

| customFormId | long | esošas pielāgotas veidlapas id | Aizstāt iebūvēto potenciālo pircēju veidlapu ar pielāgotu veidlapu. null saglabā iebūvēto veidlapu | | customFormMapping | string | JSON kodēta virkne | Kartē pielāgotās veidlapas laukus uz vārdu / e-pastu / tālruni |

§ liveChat

Lauks Tips Ierobežojums Apraksts
enabled boolean Live Chat funkcijas slēdzis
infoMessage string Paskaidrojoša ziņa pirms nodošanas
startMessage string Ziņa, kas tiek rādīta, kad sākas tiešraides sesija
endMessage string Ziņa, kas tiek rādīta, kad tiešraides sesija beidzas
nameLabel string Etiķete vārda ievades laukam Live Chat iepriekšējā veidlapā
emailLabel string Etiķete e-pasta ievades laukam Live Chat iepriekšējā veidlapā
schedule string JSON kodēta virkne (nedēļas dienu slēdži + from/to + timezone) Live Chat darba grafiks - precīzu struktūru skatīt sadaļā "Structured fields and ranges"
outOfHoursMessage string Ziņa, kas tiek rādīta, ja saskaņā ar grafiku ir ārpusdarba laiks
closeModalMessage string Modālā loga "aizvērt Live Chat?" virsraksts
closeModalConfirmLabel string Apstiprināšanas pogas etiķete aizvēršanas modālajā logā
closeModalCancelLabel string Atcelšanas pogas etiķete aizvēršanas modālajā logā
closeModalTooltipText string Rīka padoms tērzēšanas aizvēršanas elementam
operatorHasJoinedLabel string Etiķete, kas tiek rādīta, kad operators pievienojas
operatorDidNotJoinInTimeLabel string Etiķete, kas tiek rādīta, ja operators nepievienojas noteiktajā noildzes laikā
waitingForOperatorToJoinLabel string Etiķete, kas tiek rādīta, gaidot operatoru
waitingForOperatorSeconds int Noildze operatora atbildei (sekundēs)
redirectToHumanSupportForm boolean Ja true, pāradresēt uz Human Support veidlapu, ja neviens operators neatbild
missedEmailEnabled boolean noklusējums true Nosūtīt e-pastu bota īpašniekam, ja Live Chat pieprasījums palika neatbildēts. Mantotajiem botiem nav iestatīts, kas tiek interpretēts kā iespējots

requirePolicyAccept atrodas pie consent.liveChatRequirePolicyAccept, nevis šeit.

§ consent

Lauks Tips Ierobežojums Apraksts
newConversationRequirePolicyAccept boolean Pieprasīt piekrišanu privātuma politikai pirms jaunas sarunas sākšanas
humanSupportRequirePolicyAccept boolean Pieprasīt piekrišanu privātuma politikai pirms cilvēka atbalsta veidlapas iesniegšanas
leadCollectionRequirePolicyAccept boolean Pieprasīt piekrišanu privātuma politikai pirms potenciālo pircēju veidlapas iesniegšanas
liveChatRequirePolicyAccept boolean Pieprasīt piekrišanu privātuma politikai pirms Live Chat sesijas sākšanas
newConversationConsentDescription string Ievada teksts piekrišanas ekrānam sarunas sākumā
privacyPolicyConsentCheckboxLabel string Etiķete blakus piekrišanas izvēles rūtiņai (parasti satur saiti uz privātuma politiku)

§ whiteLabel

Lauks Tips Ierobežojums Apraksts
hideRoboAssistLogo boolean White Label iespēja; atkarīga no konta ierobežojumiem Paslēpt noklusējuma ChatLab logotipu kājenē
whitelabelLogoLink string White Label iespēja; atkarīga no konta ierobežojumiem URL, uz kuru ved pielāgotais kājenes logotips
assignToCustomDomain boolean pieejams ar CUSTOM_DOMAIN funkciju Izvietot tērzēšanu konfigurētajā pielāgotajā domēnā
whitelabelLogoUrl string tikai lasāms Pilns publiskais White Label logotipa URL; lai to mainītu, augšupielādējiet, izmantojot daļveida whitelabel_logo daļu

Multipart pieprasījumos POST/PATCH: whitelabel_logo (faila daļa). GET / atbildes pamattekstos faila saturs tiek izlaists - tīklā tiek nosūtīts tikai URL.

§ security

Lauks Tips Ierobežojums Apraksts
allowedDomains string Ar komatu atdalīts saraksts ar domēniem, kuriem atļauts iegult logrīku (tukšs = nav atļauto saraksta)
spamFilterEnabled boolean Iespējot katra bota surogātpasta filtru ienākošajām ziņām
countryFilterMode string BLACKLIST vai WHITELIST Kā tiek interpretēti valstu saraksti. Paši saraksti paliek pieejami tikai administratoram
talkMessagesRateLimit int >= 0; 0 atspējo Maksimālais lietotāja ziņu skaits, kas atļauts ātruma ierobežojuma logā
talkMessagesRateLimitDurationSeconds int >= 0 Ātruma ierobežojuma loga ilgums (sekundēs)
talkMessagesRateLimitHitMessage string Ziņa, kas tiek parādīta apmeklētājam, kad tiek sasniegts ātruma ierobežojums

§ voice

Lauks Tips Ierobežojums Apraksts
inputEnabled boolean Atļaut apmeklētājam diktēt ziņas (runa uz tekstu)
conversationEnabled boolean plānā nepieciešama balss funkcija Iespējot pilnas balss sarunas
voiceId string pakalpojumu sniedzēja konkrētais balss id (piem., alloy) Kura sintētiskā balss runā
model string piem., GPT-REALTIME-MINI, GEMINI-LIVE, ELEVENLABS-* Balss modelis. Norēķini par minūti, tarifi atšķiras atkarībā no modeļa
turnDetection string atkarīgs no pakalpojumu sniedzēja Runas kārtas noteikšanas režīms
audioPrompt string Papildu sistēmas prompt, ko izmanto tikai balss kārtām
welcomeMessage string Ieskaņotā ievadfrāze
language string valodas kods Primārā balss valoda
additionalLanguages string ar komatu atdalīti valodu kodi Papildu valodas, kuras pieņem balss aģents
maxDurationSeconds int Stingrs ierobežojums vienai balss sarunai
maxDurationMessage string Ziņa, kas tiek rādīta, kad tiek sasniegts ierobežojums

§ multilingual

Lauks Tips Ierobežojums Apraksts
enabled boolean Daudzvalodu režīma slēdzis
mode string AUTODETECT vai fiksēta saraksta režīms Kā bots izvēlas atbildes valodu
baseLanguage string valodas kods Valoda, kurā ir sarakstīti bota paša teksti
languages string ar komatu atdalīti valodu kodi Valodas, kas tiek piedāvātas apmeklētājam
knowledgeLanguageMode string Kā tiek apstrādātas zināšanas citās valodās
knowledgeLanguageFallback string valodas kods Valoda, ko izmanto, ja atbilstība netiek atrasta

§ advanced

Lauks Tips Ierobežojums Apraksts
model string atkarīgs no konta ierobežojumiem; skatīt "AI text models" iepriekš LLM identifikators (piem., 5-MINI)
temperature decimal 0.0-1.0 Paraugošanas temperatūra (atbilst saskarnes slīdnim)
chatContextSize int ∈ {8000, 16000, 32000}; klusi ierobežots līdz Jūsu konta limitam Tokenu logs tērzēšanas vēsturei
botMessagesLimit long 0 vai skaitlis, kas dalās ar 1000 (piem., 1000, 2000, 10000) Maks. bota atbilžu skaits vienā sarunā (0 = bez ierobežojuma)
internalLocale string lokāles kods formātā ll_CC Lokāle logrīka rāmja etiķetēm (atšķiras no role.language)
productsViewEnabled boolean Ja true, parādīt e-komercijas Offer Cards tērzēšanā
includeProductsInKnowledgeBase boolean Ja true, indeksēt produktu katalogu kā daļu no zināšanu bāzes

Ārpus API tvēruma

Administratora saskarnē ir redzamas dažas sadaļas, kas šajā Management API versijā ar nolūku netiek piedāvātas:

  • Cilne Flow - vizuālais Conversation Flow redaktors (posmi un pārejas). Netiek piedāvāts, izmantojot Management API.
  • Cilne Actions - pārvaldītās e-komercijas / rezervēšanas integrācijas, AI Search un pielāgotās API funkcijas. Rīku izsaukšana nekad nav bijusi Management API sastāvdaļa.
  • Pats pielāgoto veidlapu veidotājs - pielāgotu veidlapu izveide un rediģēšana netiek piedāvāta. Tomēr Jūs varat piesaistīt esošu veidlapu botam, izmantojot leadCollection.customFormId un humanSupport.customFormId.
  • Pielāgotas tērzēšanas atvēršanas / aizvēršanas ikonas - customLauncherIconVisible, openChatIcon, closeChatIcon. API atklāj tikai galvenās avatar un whitelabel_logo daļveida daļas.
  • IP un valstu saraksti - paši ieraksti ir pieejami tikai administratoram. Tiek atklāts tikai interpretācijas režīms, izmantojot security.countryFilterMode.

Endpoints

POST /v1/management/bots

Izveidojiet jaunu botu. Tiek pieņemti divi līdzvērtīgi Content-Type veidi; izvēlieties to, kurš ir ērtāks.

Režīms A - vienkāršs JSON (ieteicams, ja tajā pašā pieprasījumā nav nepieciešams augšupielādēt avataru / logotipu):

  • Content-Type: application/json
  • Pieprasījuma pamatteksts ir bota konfigurācijas JSON (bez data ietvara)
  • Failus (avataru / logotipu) var augšupielādēt vēlāk ar otru PATCH pieprasījumu, izmantojot režīmu B

Režīms B - multipart/form-data (izmantojiet, augšupielādējot failus tajā pašā pieprasījumā):

  • Content-Type: multipart/form-data; boundary=...
  • data JSON daļa (obligāta, Content-Type: application/json) - bota konfigurācija iepriekš aprakstītajā ligzdotajā struktūrā
  • avatar faila daļa (neobligāta) - bota avatara attēls
  • whitelabel_logo faila daļa (neobligāta) - White Label logotips (tiek piemērots tikai tad, ja jūsu konts ietver zīmola aizstāšanu)

JSON objektā obligāts ir tikai lauks name; visiem pārējiem laukiem tiek izmantotas tās pašas noklusējuma vērtības, kuras iestatītu administratora saskarnes vednis.

Pilns pieprasījuma pamatteksts

Šis ir maksimālais data JSON - ar aizpildītām visām sadaļām. Sūtiet tikai tās sadaļas, kas jums ir nepieciešamas; viss pārējais saņem noklusējuma vērtības.

{
  "name": "Helpdesk Bot",
  "role": {
    "rawPrompt": "You are a friendly support assistant for Acme Inc.",
    "role": "CUSTOMER_SUPPORT",
    "language": "English",
    "responseLength": "Normal",
    "websiteAddress": "https://acme.com",
    "companyDescription": "Acme sells industrial widgets."
  },
  "conversation": {
    "welcomeMessage": "Hi! How can I help today?",
    "queryRefinementEnabled": true,
    "conversationContinuityEnabled": true,
    "conversationRatingEnabled": true,
    "positiveRatingTooltip": "Helpful",
    "negativeRatingTooltip": "Not helpful",
    "suggestedQuestions": "What are your hours?\nHow do I cancel?\nWhere is my order?",
    "dynamicSuggestedFollowups": true,
    "dynamicFollowupsAutoIcons": true
  },
  "chatMemory": {
    "enabled": true,
    "summaryConversationsEnabled": true,
    "conversationSummaryPrompt": "Summarize this conversation in 3 sentences.",
    "clientSummaryPrompt": "Summarize what we know about this customer.",
    "clientSummaryPromptType": "DEFAULT",
    "conversationSummaryPromptType": "DEFAULT",
    "summariesToKnowledgeRatio": 50
  },
  "appearance": {
    "launcherColor": "#1A73E8",
    "headerColor": "#1A73E8",
    "titleColor": "#FFFFFF",
    "subtitleColor": "#FFFFFF",
    "clientMessageBubbleColor": "#000000",
    "clientMessageTextColor": "#FFFFFF",
    "responseMessageBubbleColor": "#F4F4F4",
    "responseMessageTextColor": "#000000",
    "chatSubheader": "AI support assistant",
    "senderPlaceholder": "Type a message...",
    "resetConversationTooltip": "Restart conversation",
    "chatAlignment": "right",
    "launcherBottomMargin": 20,
    "launcherSideMargin": 20,
    "displayShadow": true,
    "customCss": ".rcw-conversation-container { border-radius: 16px; }",
    "chatMessageLinkTarget": "_blank",
    "minimizedDisplayMode": "icon",
    "chatDesktopWidthPx": 400,
    "chatDesktopHeightPx": 600,
    "chatMobileSizePercent": 100,
    "messageFontSize": 14,
    "showChatbotBubblesDesktop": true,
    "showChatbotBubblesMobile": false,
    "chatbotBubblesDelaySeconds": 5,
    "welcomeScreenEnabled": false,
    "welcomeScreenQuestionsLabel": "Quick start",
    "welcomeScreenHideHumanContactForm": false,
    "welcomeScreenHideLiveChat": false,
    "headerActionsLayout": "DROPDOWN",
    "stackSuggestedQuestions": false,
    "suggestedQuestionsFontSize": 14,
    "suggestedQuestionsTextColor": "#000000",
    "suggestedQuestionsBackgroundColor": "#F4F4F4",
    "autoOpenChat": false,
    "autoOpenChatOnMobiles": false,
    "autoOpenChatDelay": false,
    "autoOpenChatDelaySeconds": 5,
    "simulateHumanTyping": true,
    "simulateHumanTypingDelay": 5,
    "footerMarkdown": "Powered by Acme"
  },
  "humanSupport": {
    "enabled": true,
    "email": "support@acme.com",
    "dialogMessage": "Leave us a message and we will get back to you.",
    "thankYouMessage": "Thanks - we received your message.",
    "emailMessageSubjectTemplate": "[Acme support] New message from {customerName}",
    "emailMessageContentTemplate": "{message}\n\n - \n{conversationTranscript}",
    "emailPlaceholder": "your@email.com",
    "messagePlaceholder": "How can we help?",
    "emailWithConversationContent": true
  },
  "leadCollection": {
    "enabled": true,
    "nameEnabled": true,
    "nameLabel": "Your name",
    "emailEnabled": true,
    "emailLabel": "Email",
    "phoneEnabled": false,
    "phoneLabel": "Phone",
    "leaveDetailsMessage": "Please leave your details and we will get in touch.",
    "thankYouMessage": "Thanks - we will be in touch shortly.",
    "requireBeforeNewConversation": false,
    "emailNotificationEnabled": true,
    "emailNotificationAddress": "leads@acme.com",
    "emailWithConversationContent": true
  },
  "liveChat": {
    "enabled": false,
    "infoMessage": "Connecting you with a human agent...",
    "startMessage": "You are now chatting with our team.",
    "endMessage": "Live chat has ended.",
    "nameLabel": "Your name",
    "emailLabel": "Email",
    "schedule": "{\"monday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"tuesday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"wednesday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"thursday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"friday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"saturday\":{\"enabled\":false,\"from\":\"9:00\",\"to\":\"17:00\"},\"sunday\":{\"enabled\":false,\"from\":\"9:00\",\"to\":\"17:00\"},\"timezone\":\"Europe/Warsaw\"}",
    "outOfHoursMessage": "We are currently offline.",
    "closeModalMessage": "End the live chat session?",
    "closeModalConfirmLabel": "Yes, end",
    "closeModalCancelLabel": "Cancel",
    "closeModalTooltipText": "End live chat",
    "operatorHasJoinedLabel": "An agent has joined.",
    "operatorDidNotJoinInTimeLabel": "No agent available right now.",
    "waitingForOperatorToJoinLabel": "Waiting for an agent...",
    "waitingForOperatorSeconds": 60,
    "redirectToHumanSupportForm": true
  },
  "consent": {
    "newConversationRequirePolicyAccept": false,
    "humanSupportRequirePolicyAccept": false,
    "leadCollectionRequirePolicyAccept": true,
    "liveChatRequirePolicyAccept": false,
    "newConversationConsentDescription": "By starting a conversation you agree to our terms.",
    "privacyPolicyConsentCheckboxLabel": "I have read and accepted the privacy policy."
  },
  "whiteLabel": {
    "hideRoboAssistLogo": false,
    "whitelabelLogoLink": "https://acme.com",
    "assignToCustomDomain": false
  },
  "security": {
    "allowedDomains": "acme.com,support.acme.com",
    "spamFilterEnabled": true,
    "talkMessagesRateLimit": 30,
    "talkMessagesRateLimitDurationSeconds": 60,
    "talkMessagesRateLimitHitMessage": "Please slow down."
  },
  "advanced": {
    "model": "5-MINI",
    "temperature": 0.4,
    "chatContextSize": 16000,
    "botMessagesLimit": 1000,
    "internalLocale": "en_US",
    "productsViewEnabled": false
  }
}

Validācijas noteikumi ar atsevišķiem kļūdu ziņojumiem:

  • name - obligāts, maks. 150 rakstzīmes
  • advanced.temperature - no 0.0 līdz 1.0
  • chatMemory.summariesToKnowledgeRatio - vesels skaitlis no 10 līdz 90 (procenti, solis 10)
  • appearance.launcherBottomMargin, appearance.launcherSideMargin - no 0 līdz 500
  • appearance.footerMarkdown - maks. 255 rakstzīmes
  • humanSupport.enabled=true prasa norādīt humanSupport.email
  • leadCollection.enabled=true prasa, lai vismaz viens no leadCollection.emailEnabled vai leadCollection.phoneEnabled būtu true; attiecīgajam ieslēgtajam kanālam obligāti nepieciešama arī tā etiķete, kā arī leaveDetailsMessage un thankYouMessage
  • Ierobežotie lauki (advanced.chatContextSize, advanced.botMessagesLimit utt.) tiek klusi noapaļoti līdz jūsu konta limitiem

Lauki, kuru vērtība serverī ir null, no JSON pamatteksta tiek izlaisti - pa tīklu tiek nosūtīti tikai lauki ar vērtībām, kas nav null.

Pilns atbildes pamatteksts (201)

Tāda pati struktūra kā pieprasījumā, papildus iekļaujot tikai lasāmu bloku meta un vienreizējo apiKey augstākajā līmenī. Tikai lasāmos failu URL (appearance.avatarUrl, whiteLabel.whitelabelLogoUrl) serveris aizpilda tad, kad tika augšupielādētas attiecīgās multipart daļas.

{
  "name": "Helpdesk Bot",
  "role": {
    "rawPrompt": "You are a friendly support assistant for Acme Inc.",
    "role": "CUSTOMER_SUPPORT",
    "language": "English",
    "responseLength": "Normal",
    "websiteAddress": "https://acme.com",
    "companyDescription": "Acme sells industrial widgets."
  },
  "conversation": {
    "welcomeMessage": "Hi! How can I help today?",
    "queryRefinementEnabled": true,
    "conversationContinuityEnabled": true,
    "conversationRatingEnabled": true,
    "positiveRatingTooltip": "Helpful",
    "negativeRatingTooltip": "Not helpful",
    "suggestedQuestions": "What are your hours?\nHow do I cancel?\nWhere is my order?",
    "dynamicSuggestedFollowups": true,
    "dynamicFollowupsAutoIcons": true
  },
  "chatMemory": {
    "enabled": true,
    "summaryConversationsEnabled": true,
    "conversationSummaryPrompt": "Summarize this conversation in 3 sentences.",
    "clientSummaryPrompt": "Summarize what we know about this customer.",
    "clientSummaryPromptType": "DEFAULT",
    "conversationSummaryPromptType": "DEFAULT",
    "summariesToKnowledgeRatio": 50
  },
  "appearance": {
    "launcherColor": "#1A73E8",
    "headerColor": "#1A73E8",
    "titleColor": "#FFFFFF",
    "subtitleColor": "#FFFFFF",
    "clientMessageBubbleColor": "#000000",
    "clientMessageTextColor": "#FFFFFF",
    "responseMessageBubbleColor": "#F4F4F4",
    "responseMessageTextColor": "#000000",
    "chatSubheader": "AI support assistant",
    "senderPlaceholder": "Type a message...",
    "resetConversationTooltip": "Restart conversation",
    "chatAlignment": "right",
    "launcherBottomMargin": 20,
    "launcherSideMargin": 20,
    "displayShadow": true,
    "customCss": ".rcw-conversation-container { border-radius: 16px; }",
    "chatMessageLinkTarget": "_blank",
    "minimizedDisplayMode": "icon",
    "chatDesktopWidthPx": 400,
    "chatDesktopHeightPx": 600,
    "chatMobileSizePercent": 100,
    "messageFontSize": 14,
    "showChatbotBubblesDesktop": true,
    "showChatbotBubblesMobile": false,
    "chatbotBubblesDelaySeconds": 5,
    "welcomeScreenEnabled": false,
    "welcomeScreenQuestionsLabel": "Quick start",
    "welcomeScreenHideHumanContactForm": false,
    "welcomeScreenHideLiveChat": false,
    "headerActionsLayout": "DROPDOWN",
    "stackSuggestedQuestions": false,
    "suggestedQuestionsFontSize": 14,
    "suggestedQuestionsTextColor": "#000000",
    "suggestedQuestionsBackgroundColor": "#F4F4F4",
    "autoOpenChat": false,
    "autoOpenChatOnMobiles": false,
    "autoOpenChatDelay": false,
    "autoOpenChatDelaySeconds": 5,
    "simulateHumanTyping": true,
    "simulateHumanTypingDelay": 5,
    "footerMarkdown": "Powered by Acme",
    "avatarUrl": "https://api.chatlab.com/aichat/content/avatar_a8f3b2c1_2026060110.png"
  },
  "humanSupport": {
    "enabled": true,
    "email": "support@acme.com",
    "dialogMessage": "Leave us a message and we will get back to you.",
    "thankYouMessage": "Thanks - we received your message.",
    "emailMessageSubjectTemplate": "[Acme support] New message from {customerName}",
    "emailMessageContentTemplate": "{message}\n\n - \n{conversationTranscript}",
    "emailPlaceholder": "your@email.com",
    "messagePlaceholder": "How can we help?",
    "emailWithConversationContent": true
  },
  "leadCollection": {
    "enabled": true,
    "nameEnabled": true,
    "nameLabel": "Your name",
    "emailEnabled": true,
    "emailLabel": "Email",
    "phoneEnabled": false,
    "phoneLabel": "Phone",
    "leaveDetailsMessage": "Please leave your details and we will get in touch.",
    "thankYouMessage": "Thanks - we will be in touch shortly.",
    "requireBeforeNewConversation": false,
    "emailNotificationEnabled": true,
    "emailNotificationAddress": "leads@acme.com",
    "emailWithConversationContent": true
  },
  "liveChat": {
    "enabled": false,
    "infoMessage": "Connecting you with a human agent...",
    "startMessage": "You are now chatting with our team.",
    "endMessage": "Live chat has ended.",
    "nameLabel": "Your name",
    "emailLabel": "Email",
    "schedule": "{\"monday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"tuesday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"wednesday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"thursday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"friday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"saturday\":{\"enabled\":false,\"from\":\"9:00\",\"to\":\"17:00\"},\"sunday\":{\"enabled\":false,\"from\":\"9:00\",\"to\":\"17:00\"},\"timezone\":\"Europe/Warsaw\"}",
    "outOfHoursMessage": "We are currently offline.",
    "closeModalMessage": "End the live chat session?",
    "closeModalConfirmLabel": "Yes, end",
    "closeModalCancelLabel": "Cancel",
    "closeModalTooltipText": "End live chat",
    "operatorHasJoinedLabel": "An agent has joined.",
    "operatorDidNotJoinInTimeLabel": "No agent available right now.",
    "waitingForOperatorToJoinLabel": "Waiting for an agent...",
    "waitingForOperatorSeconds": 60,
    "redirectToHumanSupportForm": true
  },
  "consent": {
    "newConversationRequirePolicyAccept": false,
    "humanSupportRequirePolicyAccept": false,
    "leadCollectionRequirePolicyAccept": true,
    "liveChatRequirePolicyAccept": false,
    "newConversationConsentDescription": "By starting a conversation you agree to our terms.",
    "privacyPolicyConsentCheckboxLabel": "I have read and accepted the privacy policy."
  },
  "whiteLabel": {
    "hideRoboAssistLogo": false,
    "whitelabelLogoLink": "https://acme.com",
    "assignToCustomDomain": false,
    "whitelabelLogoUrl": "https://api.chatlab.com/aichat/content/custom_logo_4287_2026060110.png"
  },
  "security": {
    "allowedDomains": "acme.com,support.acme.com",
    "spamFilterEnabled": true,
    "talkMessagesRateLimit": 30,
    "talkMessagesRateLimitDurationSeconds": 60,
    "talkMessagesRateLimitHitMessage": "Please slow down."
  },
  "advanced": {
    "model": "5-MINI",
    "temperature": 0.4,
    "chatContextSize": 16000,
    "botMessagesLimit": 1000,
    "internalLocale": "en_US",
    "productsViewEnabled": false
  },
  "meta": {
    "id": 4287,
    "createdAt": "2026-06-01T10:11:02Z",
    "updatedAt": "2026-06-01T10:11:02Z"
  },
  "apiKey": "ck_freshly_minted_bot_talk_key_here"
}

Lauks apiKey parādās tikai izveides brīdī - tā ir tikko ģenerētā Bot Talk atslēga, kas piesaistīta jaunajam botam. Vienkāršā teksta vērtība tiek parādīta vienu reizi un vēlāk no API nav iegūstama; nekavējoties saglabājiet to savā pusē.

Atbildes galvene Location satur jaunā bota URL (/v1/management/bots/{id}).

Curl piemēri

Režīms A - vienkāršs JSON (vienkāršākais):

curl -X POST https://api.chatlab.com/aichat/v1/management/bots \
  -H "Authorization: Bearer mk_..." \
  -H "Content-Type: application/json" \
  -d '{"name":"Helpdesk Bot","conversation":{"welcomeMessage":"Hi!"}}'

Režīms B - multipart ar avataru:

curl -X POST https://api.chatlab.com/aichat/v1/management/bots \
  -H "Authorization: Bearer mk_..." \
  -F 'data={"name":"Helpdesk Bot","conversation":{"welcomeMessage":"Hi!"}};type=application/json' \
  -F 'avatar=@./avatar.png'

GET /v1/management/bots/{bot_id}

Atgriež jums piederoša bota pašreizējo konfigurāciju.

Curl piemērs

curl https://api.chatlab.com/aichat/v1/management/bots/4287 \
  -H "Authorization: Bearer mk_..."

Pilns atbildes pamatteksts (200)

Tāda pati struktūra kā POST atbildei, izņemot vienreizējo apiKey. Bloks meta ir iekļauts. Atgriež 404 not_found_error, ja bots nepastāv vai nepieder jūsu kontam.

Pašreizējais avatars un White Label logotips tiek nodrošināti kā pilnībā kvalificēti tikai lasāmi URL (appearance.avatarUrl, whiteLabel.whitelabelLogoUrl) - to pamatā ir tā pati shēma + resursdators + konteksta ceļš, kas apkalpoja šo pieprasījumu. Iegūstiet baitus, veicot GET pieprasījumu tieši uz šiem URL; lai aizstātu kādu no failiem, augšupielādējiet jaunu, izmantojot multipart daļu avatar / whitelabel_logo pieprasījumā PATCH. Šie URL lauki tiek ignorēti, ja tie tiek nosūtīti pieprasījuma pamattekstā.

{
  "name": "Helpdesk Bot",
  "role": {
    "rawPrompt": "You are a friendly support assistant for Acme Inc.",
    "role": "CUSTOMER_SUPPORT",
    "language": "English",
    "responseLength": "Normal",
    "websiteAddress": "https://acme.com",
    "companyDescription": "Acme sells industrial widgets."
  },
  "conversation": {
    "welcomeMessage": "Hi! How can I help today?",
    "queryRefinementEnabled": true,
    "conversationContinuityEnabled": true,
    "conversationRatingEnabled": true,
    "positiveRatingTooltip": "Helpful",
    "negativeRatingTooltip": "Not helpful",
    "suggestedQuestions": "What are your hours?\nHow do I cancel?\nWhere is my order?",
    "dynamicSuggestedFollowups": true,
    "dynamicFollowupsAutoIcons": true
  },
  "chatMemory": {
    "enabled": true,
    "summaryConversationsEnabled": true,
    "conversationSummaryPrompt": "Summarize this conversation in 3 sentences.",
    "clientSummaryPrompt": "Summarize what we know about this customer.",
    "clientSummaryPromptType": "DEFAULT",
    "conversationSummaryPromptType": "DEFAULT",
    "summariesToKnowledgeRatio": 50
  },
  "appearance": {
    "launcherColor": "#1A73E8",
    "headerColor": "#1A73E8",
    "titleColor": "#FFFFFF",
    "subtitleColor": "#FFFFFF",
    "clientMessageBubbleColor": "#000000",
    "clientMessageTextColor": "#FFFFFF",
    "responseMessageBubbleColor": "#F4F4F4",
    "responseMessageTextColor": "#000000",
    "chatSubheader": "AI support assistant",
    "senderPlaceholder": "Type a message...",
    "resetConversationTooltip": "Restart conversation",
    "chatAlignment": "right",
    "launcherBottomMargin": 20,
    "launcherSideMargin": 20,
    "displayShadow": true,
    "customCss": ".rcw-conversation-container { border-radius: 16px; }",
    "chatMessageLinkTarget": "_blank",
    "minimizedDisplayMode": "icon",
    "chatDesktopWidthPx": 400,
    "chatDesktopHeightPx": 600,
    "chatMobileSizePercent": 100,
    "messageFontSize": 14,
    "showChatbotBubblesDesktop": true,
    "showChatbotBubblesMobile": false,
    "chatbotBubblesDelaySeconds": 5,
    "welcomeScreenEnabled": false,
    "welcomeScreenQuestionsLabel": "Quick start",
    "welcomeScreenHideHumanContactForm": false,
    "welcomeScreenHideLiveChat": false,
    "headerActionsLayout": "DROPDOWN",
    "stackSuggestedQuestions": false,
    "suggestedQuestionsFontSize": 14,
    "suggestedQuestionsTextColor": "#000000",
    "suggestedQuestionsBackgroundColor": "#F4F4F4",
    "autoOpenChat": false,
    "autoOpenChatOnMobiles": false,
    "autoOpenChatDelay": false,
    "autoOpenChatDelaySeconds": 5,
    "simulateHumanTyping": true,
    "simulateHumanTypingDelay": 5,
    "footerMarkdown": "Powered by Acme",
    "avatarUrl": "https://api.chatlab.com/aichat/content/avatar_a8f3b2c1_2026060110.png"
  },
  "humanSupport": {
    "enabled": true,
    "email": "support@acme.com",
    "dialogMessage": "Leave us a message and we will get back to you.",
    "thankYouMessage": "Thanks - we received your message.",
    "emailMessageSubjectTemplate": "[Acme support] New message from {customerName}",
    "emailMessageContentTemplate": "{message}\n\n - \n{conversationTranscript}",
    "emailPlaceholder": "your@email.com",
    "messagePlaceholder": "How can we help?",
    "emailWithConversationContent": true
  },
  "leadCollection": {
    "enabled": true,
    "nameEnabled": true,
    "nameLabel": "Your name",
    "emailEnabled": true,
    "emailLabel": "Email",
    "phoneEnabled": false,
    "phoneLabel": "Phone",
    "leaveDetailsMessage": "Please leave your details and we will get in touch.",
    "thankYouMessage": "Thanks - we will be in touch shortly.",
    "requireBeforeNewConversation": false,
    "emailNotificationEnabled": true,
    "emailNotificationAddress": "leads@acme.com",
    "emailWithConversationContent": true
  },
  "liveChat": {
    "enabled": false,
    "infoMessage": "Connecting you with a human agent...",
    "startMessage": "You are now chatting with our team.",
    "endMessage": "Live chat has ended.",
    "nameLabel": "Your name",
    "emailLabel": "Email",
    "schedule": "{\"monday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"tuesday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"wednesday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"thursday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"friday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"saturday\":{\"enabled\":false,\"from\":\"9:00\",\"to\":\"17:00\"},\"sunday\":{\"enabled\":false,\"from\":\"9:00\",\"to\":\"17:00\"},\"timezone\":\"Europe/Warsaw\"}",
    "outOfHoursMessage": "We are currently offline.",
    "closeModalMessage": "End the live chat session?",
    "closeModalConfirmLabel": "Yes, end",
    "closeModalCancelLabel": "Cancel",
    "closeModalTooltipText": "End live chat",
    "operatorHasJoinedLabel": "An agent has joined.",
    "operatorDidNotJoinInTimeLabel": "No agent available right now.",
    "waitingForOperatorToJoinLabel": "Waiting for an agent...",
    "waitingForOperatorSeconds": 60,
    "redirectToHumanSupportForm": true
  },
  "consent": {
    "newConversationRequirePolicyAccept": false,
    "humanSupportRequirePolicyAccept": false,
    "leadCollectionRequirePolicyAccept": true,
    "liveChatRequirePolicyAccept": false,
    "newConversationConsentDescription": "By starting a conversation you agree to our terms.",
    "privacyPolicyConsentCheckboxLabel": "I have read and accepted the privacy policy."
  },
  "whiteLabel": {
    "hideRoboAssistLogo": false,
    "whitelabelLogoLink": "https://acme.com",
    "assignToCustomDomain": false,
    "whitelabelLogoUrl": "https://api.chatlab.com/aichat/content/custom_logo_4287_2026060110.png"
  },
  "security": {
    "allowedDomains": "acme.com,support.acme.com",
    "spamFilterEnabled": true,
    "talkMessagesRateLimit": 30,
    "talkMessagesRateLimitDurationSeconds": 60,
    "talkMessagesRateLimitHitMessage": "Please slow down."
  },
  "advanced": {
    "model": "5-MINI",
    "temperature": 0.4,
    "chatContextSize": 16000,
    "botMessagesLimit": 1000,
    "internalLocale": "en_US",
    "productsViewEnabled": false
  },
  "meta": {
    "id": 4287,
    "createdAt": "2026-06-01T10:11:02Z",
    "updatedAt": "2026-06-01T11:02:19Z"
  }
}

Klonēt botu

Pieprasījuma pamattekstam metodē POST /v1/management/bots un atbildes pamattekstam metodē GET /v1/management/bots/{bot_id} ir vienāda struktūra, tāpēc klonēšana ir trīs soļu process: iegūt (GET) avota datus, noņemt servera pārvaldītos identifikācijas laukus un nosūtīt (POST) rezultātu.

1. Iegūstiet avota botu ar GET.

curl https://api.chatlab.com/aichat/v1/management/bots/4287 \
  -H "Authorization: Bearer mk_..." \
  -o source-bot.json

2. Noņemiet augšējā līmeņa bloku meta. Objekts meta (id, createdAt, updatedAt) ir servera pārvaldīts un pieejams tikai lasīšanai - tā atstāšana POST pamattekstā nekādu kaitējumu nerada (serveris to ignorē), taču tā noņemšana skaidri parāda nolūku un saglabā datu saturu tīru. Pēc izvēles varat rediģēt lauku name, lai klons atšķirtos no avota.

jq 'del(.meta) | .name = "Helpdesk Bot (clone)"' source-bot.json > clone-body.json

3. Nosūtiet notīrīto pamattekstu ar POST, lai izveidotu klonu. Pilnu pamatteksta struktūru un validācijas nosacījumus skatiet iepriekš sadaļā par POST /v1/management/bots.

curl -X POST https://api.chatlab.com/aichat/v1/management/bots \
  -H "Authorization: Bearer mk_..." \
  -H "Content-Type: application/json" \
  -d @clone-body.json

Atbilde satur jaunā bota meta.id, kā arī tikko izveidotu apiKey (klona Bot Talk atslēgu). Lauka apiKey vienkāršā teksta vērtība tiek atgriezta tikai šajā izveides atbildē - iekopējiet to pirms atbildes pamatteksta aizvēršanas; vēlāk to vairs nevarēs iegūt.

Divas svarīgas piezīmes:

  • Faili netiek klonēti. appearance.avatarUrl un whiteLabel.whitelabelLogoUrl ir tikai lasāmi un norāda uz avota bota failiem. Ja klonam nepieciešams tas pats avatars vai White Label logotips, lejupielādējiet baitus no avota URL un augšupielādējiet tos kā daudzdaļu (multipart) avatar / whitelabel_logo komponentus - vai nu izveides pieprasījumā POST (B režīms), vai nākamajā PATCH pieprasījumā.
  • Bot Talk atslēgas netiek klonētas. Katram botam ir savs Bot Talk atslēgu pūls. Vienīgā automātiski izveidotā atslēga ir tā, kas ietverta izveides POST atbildes laukā apiKey; ja nepieciešams, papildu atslēgas varat izveidot bota cilnē API (API).

PATCH /v1/management/bots/{bot_id}

Atjauniniet vienu vai vairākus sava bota laukus. Tiek modificētas tikai tās sadaļas un lauki, kas norādīti JSON; viss izlaistais (vai nosūtītais kā null) paliek nemainīts. Daļējas atjaunināšanas nosacījumi attiecas uz katru atsevišķu lauku nosūtītajā sadaļā.

Tiek pieņemti divi līdzvērtīgi Content-Type veidi (tāpat kā POST):

A režīms - parasts JSON (ieteicams, ja tiek atjaunināti tikai iestatījumi):

  • Content-Type: application/json
  • Pieprasījuma pamatteksts ir labojuma (patch) JSON (bez ietvara data)

B režīms - multipart/form-data (izmantojiet, augšupielādējot failus):

  • JSON daļa data (neobligāta) - labojums. Sūtiet tikai tad, ja vēlaties mainīt laukus. Izlaidiet pilnībā, ja vēlaties augšupielādēt tikai avataru vai logotipu.
  • faila daļa avatar (neobligāta) - aizstājiet avataru
  • faila daļa whitelabel_logo (neobligāta) - aizstājiet White Label logotipu (attiecas tikai uz gadījumiem, kad Jūsu konts iekļauj zīmola pielāgošanu)

PATCH pieprasījumā visas trīs daļas nav obligātas, taču vismaz vienai ir jābūt klāt, lai izsaukumam būtu jēga.

Pilns pieprasījuma pamatteksts (maksimālais lauku skaits)

Šeit var nosūtīt jebkuru lauku, ko atbalsta POST /v1/management/bots. Tālāk redzamais piemērs atspoguļo pilnu lauku klāstu; praksē Jūs sūtāt tikai tās atslēgas, kuras vēlaties mainīt (skatiet zemāk "Minimāls daļējs atjauninājums") - katra izlaistā (vai kā null nosūtītā) atslēga saglabā iepriekšējo vērtību neskartu.

{
  "name": "Helpdesk Bot",
  "role": {
    "rawPrompt": "You are a friendly support assistant for Acme Inc. Be concise.",
    "role": "CUSTOMER_SUPPORT",
    "language": "English",
    "responseLength": "Concise",
    "websiteAddress": "https://acme.com",
    "companyDescription": "Acme sells industrial widgets."
  },
  "conversation": {
    "welcomeMessage": "Hello there!",
    "queryRefinementEnabled": true,
    "conversationContinuityEnabled": true,
    "conversationRatingEnabled": true,
    "positiveRatingTooltip": "Helpful",
    "negativeRatingTooltip": "Not helpful",
    "suggestedQuestions": "Pricing\nShipping times\nReturns policy",
    "dynamicSuggestedFollowups": true,
    "dynamicFollowupsAutoIcons": true
  },
  "chatMemory": {
    "enabled": true,
    "summaryConversationsEnabled": true,
    "conversationSummaryPrompt": "Summarize the conversation in 3 sentences.",
    "clientSummaryPrompt": "Summarize what we know about the customer.",
    "clientSummaryPromptType": "DEFAULT",
    "conversationSummaryPromptType": "DEFAULT",
    "summariesToKnowledgeRatio": 50
  },
  "appearance": {
    "launcherColor": "#abcdef",
    "headerColor": "#abcdef",
    "titleColor": "#FFFFFF",
    "subtitleColor": "#FFFFFF",
    "clientMessageBubbleColor": "#000000",
    "clientMessageTextColor": "#FFFFFF",
    "responseMessageBubbleColor": "#F4F4F4",
    "responseMessageTextColor": "#000000",
    "chatSubheader": "AI assistant",
    "senderPlaceholder": "Type a message",
    "resetConversationTooltip": "Restart conversation",
    "chatAlignment": "right",
    "launcherBottomMargin": 20,
    "launcherSideMargin": 20,
    "displayShadow": true,
    "customCss": ".rcw-conversation-container { border-radius: 16px; }",
    "chatMessageLinkTarget": "_blank",
    "minimizedDisplayMode": "icon",
    "chatDesktopWidthPx": 400,
    "chatDesktopHeightPx": 600,
    "chatMobileSizePercent": 100,
    "messageFontSize": 14,
    "showChatbotBubblesDesktop": true,
    "showChatbotBubblesMobile": false,
    "chatbotBubblesDelaySeconds": 5,
    "welcomeScreenEnabled": false,
    "welcomeScreenQuestionsLabel": "Quick start",
    "welcomeScreenHideHumanContactForm": false,
    "welcomeScreenHideLiveChat": false,
    "headerActionsLayout": "DROPDOWN",
    "stackSuggestedQuestions": false,
    "suggestedQuestionsFontSize": 14,
    "suggestedQuestionsTextColor": "#000000",
    "suggestedQuestionsBackgroundColor": "#F4F4F4",
    "autoOpenChat": false,
    "autoOpenChatOnMobiles": false,
    "autoOpenChatDelay": false,
    "autoOpenChatDelaySeconds": 5,
    "simulateHumanTyping": true,
    "simulateHumanTypingDelay": 5,
    "footerMarkdown": "Powered by Acme"
  },
  "humanSupport": {
    "enabled": true,
    "email": "support@acme.com",
    "dialogMessage": "Leave us a message and we'll get back to you.",
    "thankYouMessage": "Thanks!",
    "emailMessageSubjectTemplate": "[Acme support] New message from {customerName}",
    "emailMessageContentTemplate": "{message}\n\n - \n{conversationTranscript}",
    "emailPlaceholder": "your@email.com",
    "messagePlaceholder": "How can we help?",
    "emailWithConversationContent": true
  },
  "leadCollection": {
    "enabled": true,
    "nameEnabled": true,
    "nameLabel": "Your name",
    "emailEnabled": true,
    "emailLabel": "Email",
    "phoneEnabled": false,
    "phoneLabel": "Phone",
    "leaveDetailsMessage": "Please leave your details.",
    "thankYouMessage": "Thanks!",
    "requireBeforeNewConversation": true,
    "emailNotificationEnabled": true,
    "emailNotificationAddress": "leads@acme.com",
    "emailWithConversationContent": true
  },
  "liveChat": {
    "enabled": false,
    "infoMessage": "Connecting you with a human agent...",
    "startMessage": "You are now chatting with our team.",
    "endMessage": "Live chat has ended.",
    "nameLabel": "Your name",
    "emailLabel": "Email",
    "schedule": "{\"monday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"tuesday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"wednesday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"thursday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"friday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"saturday\":{\"enabled\":false,\"from\":\"9:00\",\"to\":\"17:00\"},\"sunday\":{\"enabled\":false,\"from\":\"9:00\",\"to\":\"17:00\"},\"timezone\":\"Europe/Warsaw\"}",
    "outOfHoursMessage": "We are currently offline.",
    "closeModalMessage": "End the live chat session?",
    "closeModalConfirmLabel": "Yes, end",
    "closeModalCancelLabel": "Cancel",
    "closeModalTooltipText": "End live chat",
    "operatorHasJoinedLabel": "An agent has joined.",
    "operatorDidNotJoinInTimeLabel": "No agent available right now.",
    "waitingForOperatorToJoinLabel": "Waiting for an agent...",
    "waitingForOperatorSeconds": 60,
    "redirectToHumanSupportForm": true
  },
  "consent": {
    "newConversationRequirePolicyAccept": false,
    "humanSupportRequirePolicyAccept": false,
    "leadCollectionRequirePolicyAccept": true,
    "liveChatRequirePolicyAccept": false,
    "newConversationConsentDescription": "By starting a conversation you agree to our terms.",
    "privacyPolicyConsentCheckboxLabel": "I have read and accepted the privacy policy."
  },
  "whiteLabel": {
    "hideRoboAssistLogo": false,
    "whitelabelLogoLink": "https://acme.com",
    "assignToCustomDomain": false
  },
  "security": {
    "allowedDomains": "acme.com,support.acme.com",
    "spamFilterEnabled": true,
    "talkMessagesRateLimit": 30,
    "talkMessagesRateLimitDurationSeconds": 60,
    "talkMessagesRateLimitHitMessage": "Please slow down."
  },
  "advanced": {
    "model": "5",
    "temperature": 0.2,
    "chatContextSize": 32000,
    "botMessagesLimit": 2000,
    "internalLocale": "en_US",
    "productsViewEnabled": false
  }
}

Minimāls daļējs atjauninājums

Atjauniniet atsevišķu lauku ar PATCH, nosūtot tieši tās atslēgas, kuras vēlaties mainīt - viss pārējais tiek saglabāts.

{
  "appearance": {
    "launcherColor": "#abcdef"
  }
}

Curl piemēri

A režīms - vienkāršs JSON (vienkāršākais):

curl -X PATCH https://api.chatlab.com/aichat/v1/management/bots/4287 \
  -H "Authorization: Bearer mk_..." \
  -H "Content-Type: application/json" \
  -d '{"appearance":{"launcherColor":"#abcdef"}}'

B režīms - multipart (aizstājot avataru / logotipu):

curl -X PATCH https://api.chatlab.com/aichat/v1/management/bots/4287 \
  -H "Authorization: Bearer mk_..." \
  -F 'data={"appearance":{"launcherColor":"#abcdef"}};type=application/json' \
  -F 'avatar=@./new-avatar.png'

B režīms - aizstāt tikai avataru (nemainot laukus):

curl -X PATCH https://api.chatlab.com/aichat/v1/management/bots/4287 \
  -H "Authorization: Bearer mk_..." \
  -F 'avatar=@./new-avatar.png'

Atbildes pamatteksts (200)

Tāda pati forma kā GET /v1/management/bots/{bot_id} - bota pilna konfigurācija pēc labojuma piemērošanas, tostarp bloks meta. Bez lauka apiKey. Atgriež 404 not_found_error, ja bots nepastāv vai nepieder Jūsu kontam.

Zemāk redzamajā piemērā parādīta atbilde pēc iepriekš minētā labojuma Pilns pieprasījuma pamatteksts (maksimālais lauku skaits) piemērošanas botam no GET piemēra - mainītajos laukos redzamas jaunās vērtības, neskartie lauki ir saglabāti un meta.updatedAt laiks ir atjaunināts.

{
  "name": "Helpdesk Bot",
  "role": {
    "rawPrompt": "You are a friendly support assistant for Acme Inc. Be concise.",
    "role": "CUSTOMER_SUPPORT",
    "language": "English",
    "responseLength": "Concise",
    "websiteAddress": "https://acme.com",
    "companyDescription": "Acme sells industrial widgets."
  },
  "conversation": {
    "welcomeMessage": "Hello there!",
    "queryRefinementEnabled": true,
    "conversationContinuityEnabled": true,
    "conversationRatingEnabled": true,
    "positiveRatingTooltip": "Helpful",
    "negativeRatingTooltip": "Not helpful",
    "suggestedQuestions": "Pricing\nShipping times\nReturns policy",
    "dynamicSuggestedFollowups": true,
    "dynamicFollowupsAutoIcons": true
  },
  "chatMemory": {
    "enabled": true,
    "summaryConversationsEnabled": true,
    "conversationSummaryPrompt": "Summarize the conversation in 3 sentences.",
    "clientSummaryPrompt": "Summarize what we know about the customer.",
    "clientSummaryPromptType": "DEFAULT",
    "conversationSummaryPromptType": "DEFAULT",
    "summariesToKnowledgeRatio": 50
  },
  "appearance": {
    "launcherColor": "#abcdef",
    "headerColor": "#abcdef",
    "titleColor": "#FFFFFF",
    "subtitleColor": "#FFFFFF",
    "clientMessageBubbleColor": "#000000",
    "clientMessageTextColor": "#FFFFFF",
    "responseMessageBubbleColor": "#F4F4F4",
    "responseMessageTextColor": "#000000",
    "chatSubheader": "AI assistant",
    "senderPlaceholder": "Type a message",
    "resetConversationTooltip": "Restart conversation",
    "chatAlignment": "right",
    "launcherBottomMargin": 20,
    "launcherSideMargin": 20,
    "displayShadow": true,
    "customCss": ".rcw-conversation-container { border-radius: 16px; }",
    "chatMessageLinkTarget": "_blank",
    "minimizedDisplayMode": "icon",
    "chatDesktopWidthPx": 400,
    "chatDesktopHeightPx": 600,
    "chatMobileSizePercent": 100,
    "messageFontSize": 14,
    "showChatbotBubblesDesktop": true,
    "showChatbotBubblesMobile": false,
    "chatbotBubblesDelaySeconds": 5,
    "welcomeScreenEnabled": false,
    "welcomeScreenQuestionsLabel": "Quick start",
    "welcomeScreenHideHumanContactForm": false,
    "welcomeScreenHideLiveChat": false,
    "headerActionsLayout": "DROPDOWN",
    "stackSuggestedQuestions": false,
    "suggestedQuestionsFontSize": 14,
    "suggestedQuestionsTextColor": "#000000",
    "suggestedQuestionsBackgroundColor": "#F4F4F4",
    "autoOpenChat": false,
    "autoOpenChatOnMobiles": false,
    "autoOpenChatDelay": false,
    "autoOpenChatDelaySeconds": 5,
    "simulateHumanTyping": true,
    "simulateHumanTypingDelay": 5,
    "footerMarkdown": "Powered by Acme",
    "avatarUrl": "https://api.chatlab.com/aichat/content/avatar_a8f3b2c1_2026060110.png"
  },
  "humanSupport": {
    "enabled": true,
    "email": "support@acme.com",
    "dialogMessage": "Leave us a message and we'll get back to you.",
    "thankYouMessage": "Thanks!",
    "emailMessageSubjectTemplate": "[Acme support] New message from {customerName}",
    "emailMessageContentTemplate": "{message}\n\n - \n{conversationTranscript}",
    "emailPlaceholder": "your@email.com",
    "messagePlaceholder": "How can we help?",
    "emailWithConversationContent": true
  },
  "leadCollection": {
    "enabled": true,
    "nameEnabled": true,
    "nameLabel": "Your name",
    "emailEnabled": true,
    "emailLabel": "Email",
    "phoneEnabled": false,
    "phoneLabel": "Phone",
    "leaveDetailsMessage": "Please leave your details.",
    "thankYouMessage": "Thanks!",
    "requireBeforeNewConversation": true,
    "emailNotificationEnabled": true,
    "emailNotificationAddress": "leads@acme.com",
    "emailWithConversationContent": true
  },
  "liveChat": {
    "enabled": false,
    "infoMessage": "Connecting you with a human agent...",
    "startMessage": "You are now chatting with our team.",
    "endMessage": "Live chat has ended.",
    "nameLabel": "Your name",
    "emailLabel": "Email",
    "schedule": "{\"monday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"tuesday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"wednesday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"thursday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"friday\":{\"enabled\":true,\"from\":\"9:00\",\"to\":\"17:00\"},\"saturday\":{\"enabled\":false,\"from\":\"9:00\",\"to\":\"17:00\"},\"sunday\":{\"enabled\":false,\"from\":\"9:00\",\"to\":\"17:00\"},\"timezone\":\"Europe/Warsaw\"}",
    "outOfHoursMessage": "We are currently offline.",
    "closeModalMessage": "End the live chat session?",
    "closeModalConfirmLabel": "Yes, end",
    "closeModalCancelLabel": "Cancel",
    "closeModalTooltipText": "End live chat",
    "operatorHasJoinedLabel": "An agent has joined.",
    "operatorDidNotJoinInTimeLabel": "No agent available right now.",
    "waitingForOperatorToJoinLabel": "Waiting for an agent...",
    "waitingForOperatorSeconds": 60,
    "redirectToHumanSupportForm": true
  },
  "consent": {
    "newConversationRequirePolicyAccept": false,
    "humanSupportRequirePolicyAccept": false,
    "leadCollectionRequirePolicyAccept": true,
    "liveChatRequirePolicyAccept": false,
    "newConversationConsentDescription": "By starting a conversation you agree to our terms.",
    "privacyPolicyConsentCheckboxLabel": "I have read and accepted the privacy policy."
  },
  "whiteLabel": {
    "hideRoboAssistLogo": false,
    "whitelabelLogoLink": "https://acme.com",
    "assignToCustomDomain": false,
    "whitelabelLogoUrl": "https://api.chatlab.com/aichat/content/custom_logo_4287_2026060110.png"
  },
  "security": {
    "allowedDomains": "acme.com,support.acme.com",
    "spamFilterEnabled": true,
    "talkMessagesRateLimit": 30,
    "talkMessagesRateLimitDurationSeconds": 60,
    "talkMessagesRateLimitHitMessage": "Please slow down."
  },
  "advanced": {
    "model": "5",
    "temperature": 0.2,
    "chatContextSize": 32000,
    "botMessagesLimit": 2000,
    "internalLocale": "en_US",
    "productsViewEnabled": false
  },
  "meta": {
    "id": 4287,
    "createdAt": "2026-06-01T10:11:02Z",
    "updatedAt": "2026-06-01T12:45:08Z"
  }
}

GET /v1/usage

Skatiet pašreizējo abonementa lietojumu kontam, kuram pieder Management atslēga.

Atbildes pamatteksts (200)

{
  "subscriptionType": "standard",
  "messages": {"used": 4123, "limit": 11000, "remaining": 6877},
  "bots": {"used": 3, "limit": 5, "remaining": 2}
}
  • subscriptionType ir ar mazajiem burtiem rakstīts konta pašreizējā plāna identifikators (piemēram, piemērā redzamais standard). Plāni nāk no dinamiska kataloga, tāpēc konkrētais identifikatoru kopums laika gaitā var mainīties, plānus pārdēvējot vai pievienojot jaunus - uztveriet to kā necaurspīdīgu virkni, nevis fiksētu uzskaitījumu (enum).
  • messages.used / limit / remaining ir pašreizējā norēķinu perioda ziņojumu kredīti.
  • bots.used / limit / remaining uzskaita aktīvos botus attiecībā pret Jūsu konta botu ierobežojumu.

Ātruma ierobežojumu galvenes

Atbildes, kas sasniedz ātruma ierobežojuma pārbaudes posmu (t.i., autentifikācija un IP baltais saraksts ir veiksmīgi izieti), ietver:

X-RateLimit-Limit: 10
X-RateLimit-Remaining: 7
X-RateLimit-Reset: 1715430000
  • X-RateLimit-Limit - konkrētajai atslēgai faktiski piemērotais limits šim izsaukumam (pēc noklusējuma 10 vai Jūsu iestatītā rateLimitPerMinute vērtība, ja tā ir mazāka).
  • X-RateLimit-Remaining - grozā atlikušie žetoni uzreiz pēc šī izsaukuma veikšanas.
  • X-RateLimit-Reset - Unix laikspiedols sekundēs, kad kļūs pieejams nākamais žetons (tā nav pilna groza atiestatīšana; grozs tiek papildināts nepārtraukti). Kad grozs ir pilns, tas rāda pašreizējo laiku.

Atbildēs ar statusa kodu 429 rate_limit_exceeded tiek iestatīta arī galvene Retry-After, norādot pilnas sekundes, līdz atbrīvosies vismaz viens žetons.

Kļūdas pirms autentifikācijas (401 missing_api_key, 401 invalid_api_key, 403 ip_blocked) un 403 ip_not_whitelisted nesatur X-RateLimit-* galvenes - ātruma ierobežotājs tiek izmantots tikai pēc tam, kad autentifikācijas un IP pārbaudes ir veiksmīgas.

Kļūdu formāts

Tā pati struktūra kā Bot Talk API:

{
  "error": {
    "type": "permission_error",
    "code": "key_type_not_allowed",
    "message": "This endpoint requires a MANAGEMENT API key.",
    "param": null
  }
}

Validācijas kļūdās tiek izmantots code: "invalid_parameter" un ziņojuma sākumā tiek pievienots kļūdainā lauka ceļš, lai problemātisko vietu būtu viegli pamanīt:

{
  "error": {
    "type": "invalid_request_error",
    "code": "invalid_parameter",
    "message": "humanSupport.email Human support email is required when humanSupport.enabled=true"
  }
}

Nederīgas vērtības enum / slēgto kopu laukiem (piemēram, chatMemory.clientSummaryPromptType = "BOGUS") ietver lauka ceļu, noraidīto vērtību un atļauto vērtību sarakstu:

{
  "error": {
    "type": "invalid_request_error",
    "code": "invalid_parameter",
    "message": "chatMemory.clientSummaryPromptType 'BOGUS' is not a valid value. Allowed: CUSTOM, DEFAULT"
  }
}

Saistītā informācija

Informāciju par sarunu galapunktiem un SSE straumēšanu skatiet sadaļā Bot Talk API.