Palīdzības centrs
Chat API

Management API

Pēdējo reizi atjaunināts:

Management API pārskats

Management API ir paredzēts aizmugursistēmas darbiem, kas neietver tērzēšanas ziņojumu sūtīšanu:

  • bota izveide programmatiski, izmantojot POST /v1/management/bots
  • konkrēta jums piederoša bota datu nolasīšana, izmantojot GET /v1/management/bots/{bot_id}
  • konkrēta bota atjaunināšana, izmantojot PATCH /v1/management/bots/{bot_id}
  • abonementa patēriņa nolasīšana, 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 modificēt jūsu botus vai nolasī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), ievadiet nosaukumu, pēc izvēles iestatiet atļauto IP adrešu sarakstu un ātruma ierobežojumu, un pēc tam apstipriniet.
  3. Atlasiet tikai tās atļaujas, kas nepieciešamas jūsu integrācijai, un nokopējiet pilno atslēgu no apstiprinājuma modālā loga. Vienkārša teksta formā tā tiek parādīta tikai vienu reizi.
  4. Glabājiet to savā serverī, nevis pārlūkprogrammas kodā vai publiskā repozitorijā. Lai pārbaudītu piekļuvi, veiciet tikai lasīšanas pieprasījumu, piemēram, GET /v1/usage ar usage atļauju.
  5. Atsauciet neizmantotās vai kompromitētās atslēgas Management API lapā.

Atslēga izskatās šādi: mk_abcdefghijklmnopqrstuvwxyz012345. Prefikss 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 ar ietilpību 10 un vienmērīgu papildināšanu ar ātrumu ~1 žetons ik pēc 6 sekundēm). Izveides brīdī šo vērtību var samazināt - iestatiet mazāku rateLimitPerMinute, un maksimālais limits samazināsies, līdz ar to proporcionāli mainoties papildināšanas ātrumam.

Atļaujas

Katra Management atslēga ietver jebkuru no trim tālāk norādītajām atļaujām. Izveides brīdī ir jāatlasa vismaz viena, 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

Pieprasījuma pamatteksta struktūra: ligzdotas 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 un redzamās cilnes sakrīt: ja mainīsiet consent.humanSupportRequirePolicyAccept, izmantojot API, redzēsiet, ka tā pati pārslēgpoga maina stāvokli cilnē Consent & Privacy (Piekrišana un konfidencialitāte) administratora lietotnē.

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

No ierakstāmajiem iestatījumiem tikai name atrodas augstākajā līmenī, jo tas identificē pašu botu, nevis pieder kādai konkrētai cilnei.

Bot Settings sānjoslā pašlaik ir 16 apakšcilnes, un 13 no tām atbilst iepriekš minētajām sadaļām. Trīs apakšcilnes, kurām nav atbilstošas sadaļas, ir Flow, Actions un Forms - visas trīs ir aplūkotas zemāk sadaļā "Ārpus API tvēruma". Pārējā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. Atbildē tiek pievienoti divi papildu elementi:

  • meta - tikai lasāms: bota ID un laika zīmogi. Noņemiet to, lai pārvērstu GET atbildi par derīgu POST pamattekstu.
  • apiKey - iekļauts tikai izveides brīdī - jaunizveidotā 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 POST/PATCH pieprasījumā:

  • appearance.avatarUrl - pilns publiskais URL bota avatara attēlam (piem., https://api.chatlab.com/aichat/content/avatar_xyz.png). Veiciet GET pieprasījumu tieši uz to, lai lejupielādētu failu. Lai to mainītu, augšupielādējiet jaunu failu, izmantojot multipart daļu avatar (skatiet PATCH).
  • whiteLabel.whitelabelLogoUrl - pilns publiskais URL white-label galvenes logotipam. Tāds 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, izmantojot white-label pielāgoto domēnu, tie atgriežas piesaistīti šim domēnam (piem., https://api.acme.com/aichat/content/...).

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

Lomas un uzvednes veidošana

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

Zars A - role.role ir CUSTOMER_SUPPORT, SALES vai LEAD_COLLECTION_AGENT (balstīts uz veidnēm)

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

  • role.role - lomas nosaukumu (piem., "Customer Support") un automātiski pievienotus lomai specifiskus norādījumus
  • name - bota nosaukumu, kas ievietots ievadteikumā
  • role.language - "Auto Detect" pārslēdz botu, lai tas pielāgotos lietotāja valodai; jebkura cita vērtība (piem., "English", "Polish") kļūst par "Output in {language}, unless user uses another language"
  • role.responseLength - 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 automātiski iegūstat lomai pielāgotu uzvedību un drošības barjeras.

Zars B - role.role ir CUSTOM (izsaucēja nodrošināts prompt)

Aizmugursistēma izmanto role.rawPrompt kā lomas prompt un beigās pievieno platformas fiksētos norādījumus par atbildes garumu. Tas darbojas neatkarīgi no role.responseLength: izvēles iestatījums Concise/Normal/Detailed netiek pievienots CUSTOM lomai. Tāpat language, websiteAddress un companyDescription tiek saglabāti, bet netiek iekļauti šajā lomas uzvednē. Vēlamo valodu, mērķa atbildes garumu vai uzņēmuma kontekstu iekļaujiet pašā rawPrompt. Papildus var tikt nodrošinātas arī izpildlaika instrukcijas un iegūtais konteksts, tāpēc rawPrompt neveido visu modeļa ievadi. Iepriekš definētās lomas toņa instrukcijas netiek pievienotas, taču CUSTOM izvēle nenoņem visas platformas instrukcijas.

Izmantojiet CUSTOM tikai tad, ja uz veidnēm balstītais prompt neatbilst jūsu lietojumam (piemēram, nepieciešama ļoti specifiskai nozarei pielāgota personība, savi drošības ierobežojumi vai nestandarta izvades formāts).

Uzskaitījuma (enum) / ierobežotas vērtību kopas lauki

Uzskaitījumu un ierobežoto vērtību lauki noraida nederīgas vērtības ar kļūdu 400 invalid_parameter. Citi lauki ir vienkāršas virknes, pat ja lietotāja saskarne piedāvā fiksētu sarakstu. Izmantojiet dokumentēto pareizrakstību un pārbaudiet savus datus, nevis pieņemiet, ka katra neatbalstītā virkne tiks noraidīta.

  • 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., Auto Detect, English, Polish, Spanish, German, French, Italian, Portuguese, Dutch, Russian, Chinese (Simplified), Japanese, Arabic, Hindi un vēl ~80 citas. Vērtība tiek saglabāta burtiski un ievietota prompt veidnē, tāpēc divburtu ISO kodi (en, pl) un citas sarakstā neesošas vērtības netiek noraidītas API līmenī, bet rada kļūdainu instrukciju, piemēram, "Output in en, unless...". Ja izveides brīdī šis lauks tiek izlaists, noklusējuma vērtība ir Auto Detect.
  • advanced.model - skatiet sadaļu "AI teksta modeļi" zemāk. Šī ir virkne, nevis pārbaudīts uzskaitījums pieprasījuma shēmā; izmantojiet atbalstītu vērtību, nevis patvaļīgu modeļa nosaukumu.
  • advanced.chatContextSize - izmantojiet 8000, 16000 vai 32000, kas atbilst lietotāja saskarnei. Vērtības, kas pārsniedz konta maksimumu, tiek klusi ierobežotas; DTO nepiespiež šo trīs vērtību kopu.
  • chatMemory.clientSummaryPromptType - DEFAULT, CUSTOM
  • chatMemory.conversationSummaryPromptType - DEFAULT, CUSTOM
  • appearance.chatAlignment - left, right
  • appearance.minimizedDisplayMode - icon, minified, pill
  • appearance.chatMessageLinkTarget - _blank, _self
  • leadCollection.requireBeforeNewConversation - Būla pārslēgpoga. 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ā vienkāršas virknes vai skaitļi, bet kuriem faktiski ir specifiska struktūra, diapazoni vai administratora saskarnes īpatnības, par kurām vērts zināt.

  • advanced.temperature - pieņemamais 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 invalid_parameter.

  • chatMemory.summariesToKnowledgeRatio - vesels skaitlis procentos, no 10 līdz 90; lietotāja saskarnē tiek izmantots solis 10, bet API pieņem jebkuru veselu skaitli šajā diapazonā. Noklusējums ir 50. Ja atmiņa ir iespējota un konteksts ir lielāks par 8k, tas sadala zināšanu un atmiņas budžetu pēc tam, kad atskaitīta vieta prompt un nesenajai sarunai, nevis visu modeļa kontekstu. Pie 8k šis iestatījums kopsavilkumu budžetu nepiešķir.

  • liveChat.schedule - JSON, kas iekodēts kā virkne, nevis ligzdots JSON objekts tīklā. Serveris saglabā neapstrādāto virkni burtiski; administratora lietotne to parsē klienta pusē, renderējot darba laika redaktoru. Pēc parsēšanas virknes struktūra sastāv no viena ieraksta katrai nedēļas dienai plus timezone atslēgas:

    • 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., "Europe/Warsaw", "America/New_York")

    Vērtības piemērs (ievērojiet ārējās pēdiņas un ekranētās iekšējās pēdiņas - tas ir viens virknes lauks, nevis ligzdots 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 pārsūtīšana uz Live Chat tiek bloķēta. Iekšējās struktūras pārbaude tiek veikta tikai klienta pusē administratora lietotnē - kļūdainu JSON vai neatpazītas atslēgas API pieņem kā parastu virkni, un tās izpaudīsies kā renderēšanas kļūda vēlāk, kad cilvēks atvērs botu administratora panelī. Pirms sūtīšanas pārbaudiet struktūru savā pusē.

  • conversation.positiveRatingTooltip / conversation.negativeRatingTooltip - īsi paskaidrojumi, kas tiek rādīti pie sarunas novērtēšanas pogām 👍 / 👎, ja ir iestatīts 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 iespēja atbilstoši 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 iespēja atbilstoši jūsu konta ierobežojumiem. Klikšķa mērķa URL pielāgotajam logotipam, ja ir iestatīts hideRoboAssistLogo=true un pielāgotā logotipa fails ir augšupielādēts, izmantojot multipart daļu whitelabel_logo.

  • appearance.simulateHumanTypingDelay - sekundes (nevis milisekundes), vesels skaitlis no 0 līdz 200. Pauze starp secīgiem bota ziņojumiem, ja ir ieslēgts simulateHumanTyping=true. Noklusējums ir 5.

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

  • advanced.internalLocale - IETF lokāles un reģiona kods formā ll_CC (ar pasvītrojumu, NEVIS ll-CC ar defisi). Pieņemtās vērtības nāk no fiksēta ~95 lokāļu saraksta: 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 daudzas citas. Tikai divburtu koda ("en") vai BCP-47 ("en-US") nosūtīšana nav atļauto vērtību sarakstā. Noklusējums ir en_US. Šī ir lokāle, ko izmanto datumu/skaitļu formatēšanai logrīka saskarnē, un tā atšķiras no role.language (bota sarunas izvades valodas).

  • security.talkMessagesRateLimit / security.talkMessagesRateLimitDurationSeconds - veseli skaitļi (sūtīt kā JSON skaitļus, piem., 30, nevis "30"). Iestatiet ziņojumu limitu uz 0, lai atspējotu šo sesijas ierobežojumu. To iespējojot, norādiet pozitīvu ilgumu. Aizmugursistēma uzspiež N ziņojumus vienā sesijā norādītajā sekunžu ilgumā, pirms apmeklētājam tiek parādīts security.talkMessagesRateLimitHitMessage.

  • advanced.botMessagesLimit - vesels skaitlis (JSON skaitlis, piem., 1000). 0 nozīmē, ka nav papildu ierobežojuma katram botam, un joprojām tiek piemērots konta kredītu budžets; pretējā gadījumā tam jābūt skaitļa 1000 daudzkārtnim (1000, 2000, 10000, ...). Tādas vērtības kā 100 vai 1500 tiek noraidītas ar kļūdu 400 invalid_parameter. Šis ir ikmēneša bota kredītu limits, nevis vienas sarunas ziņojumu skaits. Kartētājs neierobežo šo vērtību atbilstoši konta budžetam; konta budžets joprojām ierobežo faktisko patēriņu.

AI teksta modeļi (advanced.model)

Izmantojiet precīzu modeļa identifikatoru, kas tiek atgriezts laukā advanced.model, nolasot botu, kas konfigurēts ar jūsu izvēlēto modeli sadaļā Settings > Model & Advanced (Iestatījumi > Modelis un papildu iestatījumi). Pašreizējais noklusējums izveides brīdī ir 5.6-LUNA. Identifikatori ir reģistrjutīgi un atšķiras no rādītajiem nosaukumiem; piemēram, 5.6-LUNA tiek attēlots kā GPT 5.6-luna.

Modeļu katalogs laika gaitā mainās. Nepieņemiet, ka patvaļīga virkne vai pakalpojumu sniedzēja publiskais modeļa ID tiek atbalstīts tikai tāpēc, ka pieprasījuma shēma pieņem teksta virkni. Nolasiet saglabāto konfigurāciju un pārbaudiet izveidoto tērzēšanas botu pirms tā ieviešanas.

Lauku uzziņa (pilna pieprasījuma shēma)

Atbalstītās sadaļas un lauki ar to tipiem un svarīgākajiem ierobežojumiem. PATCH semantika: jebkurš izlaists (vai kā null nosūtīts) lauks atstāj saglabāto vērtību nemainītu. Tāda pati struktūra tiek izmantota atbildei (atskaitot multipart bināro saturu; plus tikai lasāmais bloks meta katrā atbildē un apiKey tikai izveides atbildē).

Augstākais līmenis

Lauks Tips Ierobežojums Apraksts
name string maks. 150, obligāts izveides brīdī 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

Tikai atbildē iekļautie papildinājumi:

  • meta: { id, createdAt, updatedAt } - tikai lasāms.
  • apiKey - string, atrodas 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; izvēlas uzvednes veidni (skatīt "Loma un uzvednes veidošana")
language string pilns valodas nosaukums angliski (English, Polish, ...) vai Auto Detect Galvenā valoda, kas tiek ievadīta uzvednes veidnē
responseLength string ∈ {Concise, Normal, Detailed} Vēlamais AI atbildes detalizācijas līmenis
websiteAddress string Vietne, kas tiek izmantota uzvednes kontekstam
companyDescription string Uzņēmuma apraksts, kas tiek izmantots uzvednes kontekstam
rawPrompt string Pielāgota sistēmas uzvedne - tiek izmantota 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 pēc atvēršanas
queryRefinementEnabled boolean Ja patiess, pirms RAG izgūšanas precizē apmeklētāja jautājumu
conversationContinuityEnabled boolean Ja patiess, atgriezušies apmeklētāji turpina savu pēdējo sarunu
conversationRatingEnabled boolean Ja patiess, rāda īkšķa augšup/lejup sarunas novērtēšanas vadīklas
positiveRatingTooltip string Rīka padoms uz pozitīvā vērtējuma pogas
negativeRatingTooltip string Rīka padoms uz negatīvā vērtējuma pogas
suggestedQuestions string Ar rindiņas pārtraukumu atdalīti ieteiktie jautājumi / sarunas aizsācēji
dynamicSuggestedFollowups boolean Ja patiess, AI pēc katras atbildes piedāvā papildu jautājumu ieteikumus
positiveRatingMessage string Ziņa, kas tiek parādīta pēc pozitīvas atsauksmes
negativeRatingMessage string Ziņa, kas tiek parādīta pēc negatīvas atsauksmes
hideSuggestedQuestionsAfterFirstUse boolean Paslēpt statiskos ieteikumus pēc izmantošanas
dynamicFollowupsAutoIcons boolean Ja patiess, AI automātiski izvēlas emocijzīmju ikonas dinamiskajiem papildu ieteikumiem

§ chatMemory

Lauks Tips Ierobežojums Apraksts
enabled boolean Čata atmiņas funkcijas galvenais slēdzis
summaryConversationsEnabled boolean Saglabāt kopsavilkumus par katru sarunu
conversationSummaryPrompt string Pielāgota uzvedne, ko izmanto katras sarunas apkopošanai
conversationSummaryPromptType string (enum) ∈ {DEFAULT, CUSTOM} Vai izmantot noklusējuma vai pielāgoto kopsavilkuma uzvedni
clientSummaryPrompt string Pielāgota uzvedne, ko izmanto klienta profila apkopošanai starp sarunām
clientSummaryPromptType string (enum) ∈ {DEFAULT, CUSTOM} Noklusējuma pret pielāgotu klienta profila uzvedni
summariesToKnowledgeRatio int 10-90 (UI solis 10) Pieejamā zināšanu/atmiņas budžeta % daļa, kas atvēlēta kopsavilkumiem kontekstos virs 8k

§ appearance

Lauks Tips Ierobežojums Apraksts
launcherLabelLine1 string maks. 60 Palaidēja teksta pirmā rinda
launcherLabelLine2 string maks. 60 Palaidēja teksta otrā rinda
launcherTextColor string Palaidēja teksta krāsa
launcherDismissEnabled boolean Atļaut aizvērt palaidēju
widgetFontFamily string inter, system, nunito, lato, montserrat, poppins, source-serif, jetbrains-mono Logrīka fontu saime
chatDrawerEnabled boolean Iespējot atvilktnes tipa attēlojumu
launcherColor string (hex) Palaidēja (čata ikonas) fona krāsa
headerColor string (hex) Čata galvenes fona krāsa
titleColor string (hex) Čata galvenes virsraksta krāsa
subtitleColor string (hex) Čata 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 parādīts zem čata virsraksta
senderPlaceholder string Viettura teksts ziņas ievades laukā
resetConversationTooltip string Rīka padoms uz pogas "atiestatīt sarunu"
chatAlignment string (enum) ∈ {left, right} Pie kuras ekrāna malas čats tiek piesaistīts
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 Krītošā ēna zem logrīka
customCss string Neapstrādāts CSS, kas tiek ievadīts logrīka iframe
chatMessageLinkTarget string (enum) ∈ {_blank, _self} Kā tiek atvērtas saites bota ziņās
minimizedDisplayMode string (enum) ∈ {icon, minified, pill} Minimizētais stāvoklis: palaidēja ikona, kompakta sūtītāja josla vai kapsula
chatDesktopWidthPx int Logrīka platums datora ekrānā
chatDesktopHeightPx int Logrīka augstums datora ekrānā
chatMobileSizePercent int Mobilā logrīka izmērs kā % no skatloga
messageFontSize int Ziņas teksta fonta lielums (px)
showChatbotBubblesDesktop boolean Rādīt peldošos uzrunas burbuļus datora ekrānā
showChatbotBubblesMobile boolean Rādīt peldošos uzrunas burbuļus mobilajās ierīcēs
chatbotBubblesDelaySeconds int Aizkave pirms uzrunas burbuļu parādīšanās (sekundēs)
launcherIconFullSize boolean Rādīt pielāgoto palaidēja ikonu no malas līdz malai, nevis ar atkāpi
welcomeScreenEnabled boolean Rādīt Welcome Screen (sveiciena ekrānu), nevis uzreiz atvērt čatu
welcomeScreenQuestionsLabel string Etiķete virs ieteiktajiem jautājumiem sveiciena ekrānā
welcomeScreenHideHumanContactForm boolean Paslēpt cilvēka saziņas formas 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 tiešsaistes čata 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 ICONS vai DROPDOWN Kā Live Chat un cilvēka saziņas forma tiek piedāvāti čata galvenē: ICONS (atsevišķa ikona katram) vai DROPDOWN (sagrupēti galvenes izvēlnē). Botiem, kas izveidoti pirms 2026-09-02, noklusējums ir ICONS
stackSuggestedQuestions boolean Sakā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 čatu datora ekrānā
autoOpenChatOnMobiles boolean Automātiski atvērt čatu 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 čata
avatarUrl string tikai lasāms Pilns publiskais avatara URL; lai to mainītu, augšupielādējiet, izmantojot multipart daļu avatar

Multipart POST/PATCH pieprasījumos: avatar (faila daļa). GET / atbilžu pamattekstos faila saturs tiek izlaists - tiek pārsūtīts tikai URL.

§ humanSupport

Lauks Tips Ierobežojums Apraksts
enabled boolean Human Support (klientu atbalsta) plūsmas slēdzis
email string obligāts (stingra pārbaude izveidē), ja enabled=true Adrese, kas saņem klientu atbalsta e-pastus
dialogMessage string Iedrošinājuma ziņa, kas tiek parādīta virs formas
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 laukumā
emailWithConversationContent boolean Ja patiess, iekļaut sarunas atšifrējumu e-pasta pamattekstā
customFormId long esošas pielāgotas formas id Aizstāt iebūvēto saziņas formu ar pielāgotu formu. Izveidojot, lauka izlaišana izmanto iebūvēto formu; PATCH gadījumā null atstāj pašreizējo izvēli nemainītu
customFormMapping string JSON kodēta virkne Pasaista pielāgotās formas laukus ar klientu atbalsta e-pasta laukiem

requirePolicyAccept atrodas sadaļā consent.humanSupportRequirePolicyAccept, nevis šeit.

§ leadCollection

Lauks Tips Ierobežojums Apraksts
enabled boolean Potenciālo klientu formas slēdzis
nameEnabled boolean Ievākt vārdu
nameLabel string Etiķete uz vārda ievades lauka
emailEnabled boolean Ievākt e-pastu
emailLabel string obligāts (stingra pārbaude izveidē), ja enabled=true UN emailEnabled=true Etiķete uz e-pasta ievades lauka
phoneEnabled boolean Ievākt tālruņa numuru
phoneLabel string obligāts (stingra pārbaude izveidē), ja enabled=true UN phoneEnabled=true Etiķete uz tālruņa ievades lauka
leaveDetailsMessage string obligāts (stingra pārbaude izveidē), ja enabled=true Ziņa, kas aicina apmeklētāju atstāt savu kontaktinformāciju
thankYouMessage string obligāts (stingra pārbaude izveidē), ja enabled=true Apstiprinājums, kas tiek parādīts pēc iesniegšanas
requireBeforeNewConversation boolean Ja true, forma ir jāiesniedz pirms sarunas sākšanas; ja false, AI izlemj, kad parādīt formu
emailNotificationEnabled boolean Nosūtīt e-pastu īpašniekam katru reizi, kad tiek ievākts potenciālais klients
emailNotificationAddress string Paziņojumu saņēmējs (noklusējumā konta e-pasts)
emailWithConversationContent boolean Ja patiess, iekļaut sarunas atšifrējumu paziņojumā

| customFormId | long | esošas pielāgotas formas id | Aizstāt iebūvēto potenciālo klientu formu ar pielāgotu formu. Izveidojot, lauka izlaišana izmanto iebūvēto formu; PATCH gadījumā null atstāj pašreizējo izvēli nemainītu | | customFormMapping | string | JSON kodēta virkne | Pasaista pielāgotās formas laukus ar vārdu / e-pastu / tālruni |

Savstarpējo lauku stingrais noteikums izveidē: enabled=true prasa vismaz vienu no emailEnabled vai phoneEnabled. requirePolicyAccept atrodas sadaļā consent.leadCollectionRequirePolicyAccept, nevis šeit.

§ liveChat

Lauks Tips Ierobežojums Apraksts
enabled boolean Live Chat funkcijas slēdzis
infoMessage string Paskaidrojošā ziņa pirms nodošanas operatoram
startMessage string Ziņa, kas tiek parādīta, sākoties tiešsaistes sesijai
endMessage string Ziņa, kas tiek parādīta, beidzoties tiešsaistes sesijai
nameLabel string Etiķete uz vārda ievades lauka tiešsaistes čata sākotnējā formā
emailLabel string Etiķete uz e-pasta ievades lauka tiešsaistes čata sākotnējā formā
schedule string JSON kodēta virkne (nedēļas dienu slēdži + from/to + timezone) Tiešsaistes čata darba grafiks - precīzu struktūru skatīt sadaļā "Strukturēti lauki un diapazoni"
outOfHoursMessage string Ziņa, kas tiek parādīta ārpus darba laika
closeModalMessage string Modālā loga "vai aizvērt tiešsaistes čatu?" 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 uz čata aizvēršanas elementa
operatorHasJoinedLabel string Etiķete, kas tiek parādīta, kad operators pievienojas
operatorDidNotJoinInTimeLabel string Etiķete, kas tiek parādīta, ja neviens operators nepievienojas noildzes laikā
waitingForOperatorToJoinLabel string Etiķete, kas tiek parādīta, gaidot operatoru
waitingForOperatorSeconds int Laiks, kurā operatoram jāpieņem saruna (sekundēs)
redirectToHumanSupportForm boolean Ja patiess, novirzīt uz Human Support formu, ja neviens operators nepieņem sarunu
requireAdminOnline boolean Pieprasīt pieejamu operatoru saskaņā ar klātbūtnes iestatījumiem
presenceMode string Klātbūtnes režīms; izmantojiet vērtību no bota, kas konfigurēts saskarnē
hideHumanSupportWhenLiveChatAvailable boolean Paslēpt saziņas formu, kad tiešsaistes čats ir pieejams
missedEmailEnabled boolean noklusējums true Nosūtīt e-pastu bota īpašniekam, ja tiešsaistes čata pieprasījums palika neatbildēts. Vecākiem botiem nav iestatīts, kas tiek interpretēts kā iespējots

requirePolicyAccept atrodas sadaļā 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 klientu atbalsta formas iesniegšanas
leadCollectionRequirePolicyAccept boolean Pieprasīt piekrišanu privātuma politikai pirms potenciālo klientu formas iesniegšanas
liveChatRequirePolicyAccept boolean Pieprasīt piekrišanu privātuma politikai pirms tiešsaistes čata 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; attiecas konta ierobežojumi Paslēpt noklusējuma ChatLab logotipu kājenē
whitelabelLogoLink string White Label iespēja; attiecas konta ierobežojumi URL, uz kuru ved pielāgotais kājenes logotips
assignToCustomDomain boolean pieejams ar CUSTOM_DOMAIN funkciju Uzturēt čatu 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 multipart daļu whitelabel_logo

Multipart POST/PATCH pieprasījumos: whitelabel_logo (faila daļa). GET / atbilžu pamattekstos faila saturs tiek izlaists - tiek pārsūtīts tikai URL.

§ security

Lauks Tips Ierobežojums Apraksts
allowedDomains string Ar komatu atdalīts to domēnu saraksts, 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 pilnvērtīgas balss sarunas
voiceId string pakalpojumu sniedzēja balss id (piem., alloy) Kura sintētiskā balss runā
model string piem., GPT-REALTIME-MINI, GEMINI-LIVE, ELEVENLABS-* Balss modelis. Rēķins 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 uzvedne, ko izmanto tikai balss sarunās
welcomeMessage string Izrunātais ievada teksts
language string valodas kods Primārā balss valoda
additionalLanguages string ar komatu atdalīti valodu kodi Papildu valodas, kuras balss aģents pieņem
maxDurationSeconds int Stingrs maksimālais vienas balss sarunas ilgums
maxDurationMessage string Ziņa, kas tiek parādīta, kad ir sasniegts maksimālais ilgums

§ multilingual

Lauks Tips Ierobežojums Apraksts
enabled boolean Daudzvalodu režīma slēdzis
mode string AUTODETECT vai FIXED_LIST Kā bots izvēlas atbildes valodu
baseLanguage string valodas kods Valoda, kurā 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 NONE, MAIN vai DYNAMIC 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 pakļauts konta ierobežojumiem; skatīt sadaļu "AI teksta modeļi" augstāk LLM identifikators (piem., 5.6-LUNA)
temperature decimal 0.0-1.0 Izlases temperatūra (atbilst saskarnes slīdnim)
chatContextSize int ∈ {8000, 16000, 32000}; klusi pielāgots Jūsu konta limitam Konfigurētais konteksta budžets, tostarp instrukcijas, vēsture un zināšanas
botMessagesLimit long 0 vai skaitlis, kas dalās ar 1000 (piem., 1000, 2000, 10000) Ikmēneša bota ziņu kredītu limits (0 = nav papildu bota limita; joprojām spēkā ir konta budžets)
internalLocale string lokāles kods formātā ll_CC Logrīka saskarnes tekstu lokāle (atšķiras no role.language)
productsViewEnabled boolean Ja patiess, čatā parādīt e-komercijas Offer Cards
includeProductsInKnowledgeBase boolean Ja patiess, indeksēt produktu katalogu kā daļu no zināšanu bāzes

Ārpus API tvēruma

Administratora saskarnē ir redzamas dažas sadaļas, kuras šajā Management API versijā ar nolūku nav pieejamas:

  • Apmācība un dzēšana - šie galapunkti neļauj skatīt visu botu sarakstu, pārvaldīt apmācības datu kopas vai dzēst botus. Šīm darbplūsmām izmantojiet lietotni.
  • Cilne Flow (plūsma) - vizuālais sarunas plūsmas redaktors (posmi un pārejas). Nav pieejams caur Management API.
  • Cilne Actions (darbības) - pārvaldītās e-komercijas / rezervāciju integrācijas, AI Search un pielāgotās API funkcijas. Rīku izsaukšana (tool calling) nekad nav bijusi Management API daļa.
  • Pats pielāgoto formu veidotājs - pielāgoto formu izveide un rediģēšana nav pieejama. Tomēr Jūs varat piesaistīt esošu formu botam, izmantojot leadCollection.customFormId un humanSupport.customFormId.
  • Pielāgotas čata atvēršanas / aizvēršanas ikonas - customLauncherIconVisible, openChatIcon, closeChatIcon. API atklāj tikai galvenās avatar un whitelabel_logo multipart daļas.
  • IP un valstu saraksti - paši ieraksti ir pieejami tikai administratoram. Tiek atklāts tikai interpretācijas režīms ar security.countryFilterMode.

Galapunkti

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, veicot otru PATCH pieprasījumu un 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ā formātā
  • 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 noņemšanas iespēju)

JSON daļā 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.

Pieprasījuma pamatteksta piemērs

Š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 pieņ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.6-LUNA",
    "temperature": 0.4,
    "chatContextSize": 16000,
    "botMessagesLimit": 1000,
    "internalLocale": "en_US",
    "productsViewEnabled": false
  }
}

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

  • name - obligāts, ne vairāk kā 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 - ne vairāk kā 255 rakstzīmes
  • humanSupport.enabled=true prasa, lai būtu iestatīts humanSupport.email
  • leadCollection.enabled=true prasa, lai vismaz viens no laukiem leadCollection.emailEnabled vai leadCollection.phoneEnabled būtu patiess (true); tam kanālam, kurš ir ieslēgts, obligāti nepieciešama arī atbilstošā etiķete, kā arī leaveDetailsMessage un thankYouMessage
  • advanced.chatContextSize tiek ierobežots līdz konta maksimālajam atbalstītajam konteksta izmēram. Neuzskatiet, ka citi skaitliskie lauki tiek ierobežoti automātiski.

Lauki, kuru vērtība serverī ir null, no JSON pamatteksta tiek izlaisti - pārraides tīklā nonāk tikai tie lauki, kuriem vērtība nav null.

Atbildes pamatteksta piemērs (201)

Tāda pati struktūra kā pieprasījumam, papildus iekļaujot tikai lasāmo meta bloku un vienreizējo apiKey augšējā līmenī. Tikai lasāmos failu URL (appearance.avatarUrl, whiteLabel.whitelabelLogoUrl) serveris aizpilda tad, kad tika augšupielādētas atbilstošā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.6-LUNA",
    "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ša teksta formātā tā tiek parādīta tikai vienu reizi un vēlāk no API vairs nav iegūstama; saglabājiet to savā pusē nekavējoties.

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_..."

Atbildes pamatteksta piemērs (200)

Tāda pati struktūra kā POST atbildei, izņemot vienreizējo apiKey. Tiek iekļauts meta bloks. Ja bots nepastāv vai nepieder jūsu kontam, tiek atgriezta kļūda 404 not_found_error.

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

{
  "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.6-LUNA",
    "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"
  }
}

Bota klonēšana

Pieprasījuma pamattekstam POST /v1/management/bots un atbildes pamattekstam GET /v1/management/bots/{bot_id} ir vienāda struktūra, tādēļ klonēšana ir trīs soļu process: iegūstiet avotu ar GET, noņemiet servera pārvaldītos identifikācijas laukus un nosūtiet rezultātu ar POST.

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 augstākā līmeņa bloku meta. Objekts meta (id, createdAt, updatedAt) tiek pārvaldīts servera pusē un ir tikai lasāms - tā atstāšana POST pamattekstā nekādu kaitējumu nenodara (serveris to ignorē), taču tā dzēšana skaidri norāda nolūku un saglabā datu saturu tīru. Pēc izvēles varat rediģēt lauku name, lai klons būtu atšķirams no avota.

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

3. Nosūtiet attīrīto pamattekstu ar POST, lai izveidotu klonu. Pilnu pamatteksta struktūru un validācijas nosacījumus skatiet iepriekš minētajā POST /v1/management/bots aprakstā.

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 ģenerētu apiKey (klona Bot Talk atslēgu). Lauka apiKey vienkāršā teksta vērtība tiek atgriezta tikai šajā izveidošanas atbildē - iekopējiet to pirms atbildes pamatteksta aizvēršanas; vēlāk to vairs nevarēs iegūt.

Tādējādi tiek nokopēti atbalstītie iestatījumi, nevis pilnībā apmācīts robots. Apmācības saturs, sarunu vēsture, integrācijas/darbības, Flow un veidlapu definīcijas ar šiem galapunktiem netiek klonētas. Konfigurējiet tos atsevišķi lietotnē.

Papildu brīdinājumi:

  • Faili netiek klonēti. Lauki 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 baitu datus no avota URL un augšupielādējiet tos kā daļas avatar / whitelabel_logo pieprasījumā multipart - vai nu izveidošanas POST pieprasījumā (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. Viena apiKey, kas tiek atgriezta izveidošanas POST pieprasījumā, ir vienīgā, kas tiek ģenerēta automātiski; papildu atslēgas pēc nepieciešamības izveidojiet bota cilnē API.

PATCH /v1/management/bots/{bot_id}

Atjauniniet vienu vai vairākus laukus sev piederošam botam. Tiek modificētas tikai tās sadaļas / lauki, kas norādīti JSON; viss izlaistais (vai nosūtītais kā null) paliek nemainīts. Katram laukam nosūtītajā sadaļā tiek piemērota daļējas atjaunināšanas semantika.

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

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

  • Content-Type: application/json
  • Pieprasījuma pamatteksts ir modifikācijas JSON (bez ietvara data)

B režīms - multipart/form-data (izmantojiet failu augšupielādei):

  • data JSON daļa (pēc izvēles) - modifikācija. Sūtiet tikai tad, ja vēlaties mainīt laukus. Pilnībā izlaidiet, ja vēlaties tikai augšupielādēt avataru vai logotipu.
  • avatar faila daļa (pēc izvēles) - aizstājiet avataru
  • whitelabel_logo faila daļa (pēc izvēles) - aizstājiet White Label logotipu (attiecas tikai tad, ja Jūsu kontā ir iekļauts White Label)

PATCH pieprasījumā visas trīs daļas ir pēc izvēles, taču, lai izsaukumam būtu jēga, jābūt norādītai vismaz vienai.

Pieprasījuma pamatteksta piemērs (vairākas sadaļas)

Šeit var nosūtīt jebkuru lauku, ko pieņem POST /v1/management/bots. Tālāk sniegtajā piemērā ir parādītas vairākas sadaļas, nevis visi atbalstītie lauki; praksē Jūs sūtāt tikai tās atslēgas, kuras vēlaties mainīt (skatiet sadaļu "Minimāls daļējs atjauninājums" tālāk tekstā) - katra izlaistā atslēga (vai nosūtītā kā null) atstāj saglabāto 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ājiet tikai avataru (bez lauku izmaiņām):

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 struktūra kā GET /v1/management/bots/{bot_id} - bota pilnā konfigurācija pēc modifikācijas piemērošanas, ieskaitot bloku meta. Lauka apiKey nav. Atgriež 404 not_found_error, ja bots nepastāv vai nepieder Jūsu kontam.

Tālāk sniegtajā piemērā parādīta atbilde pēc iepriekš minētā Pilna pieprasījuma pamatteksta (vairākas sadaļas) ielāpa 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 tiek 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

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

Atbildes pamatteksts (200)

{
  "subscriptionType": "your-plan-id",
  "messages": {"used": 4123, "limit": 11000, "remaining": 6877},
  "bots": {"used": 3, "limit": 5, "remaining": 2}
}
  • subscriptionType ir konta pašreizējā plāna identifikators ar mazajiem burtiem (your-plan-id ir ilustratīvs vietturis). Plāni tiek ņemti no dinamiska kataloga, tādēļ precīzs 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.
  • messages.used / limit / remaining ir pašreizējā kalendārā mēneša ziņojumu kredīti, kas tiek atiestatīti mēneša pirmajā dienā, nevis abonementa atjaunošanas dienā. Tie tiek aprēķināti pēc kredītu svara, nevis kā vienkāršs atbilžu skaits.
  • bots.used / limit / remaining uzskaita piederošos botus, tostarp apturētos botus, attiecībā pret Jūsu konta kopējo botu limitu.

Ātruma ierobežojumu galvenes

Atbildēs, kas sasniedz ātruma ierobežošanas posmu (t.i., autentifikācija un IP baltais saraksts ir veiksmīgi izieti), ir iekļauts:

X-RateLimit-Limit: 10
X-RateLimit-Remaining: 7
X-RateLimit-Reset: 1715430000
  • X-RateLimit-Limit - šim izsaukumam faktiski piemērotais ierobežojums vienai atslēgai (pēc noklusējuma 10 vai jūsu konfigurētais rateLimitPerMinute, ja tas ir mazāks).
  • X-RateLimit-Remaining - žetoni, kas palikuši grozā uzreiz pēc šī izsaukuma.
  • X-RateLimit-Reset - Unix laikspiedols sekundēs, kad kļūst pieejams nākamais žetons (tā nav pilnīga groza atiestatīšana; grozs tiek papildināts nepārtraukti). Kad grozs ir pilns, šis ir pašreizējais laiks.

Atbildēs 429 rate_limit_exceeded tiek iestatīta arī galvene Retry-After, kas izteikta veselās sekundēs, līdz atbrīvojas 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 - ierobežotājs tiek pārbaudīts tikai pēc tam, kad autentifikācijas un IP pārbaudes ir veiksmīgas.

Kļūdu formāts

Tāda 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 uzskaitījuma / slēgtās kopas 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ītie raksti

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