Abikeskus
Chat API

Management API

Viimati uuendatud:

Management API ülevaade

Management API on mõeldud haldustoiminguteks, mis ei hõlma vestlussõnumite saatmist:

  • roboti programmiline loomine päringuga POST /v1/management/bots
  • teile kuuluva konkreetse roboti andmete lugemine päringuga GET /v1/management/bots/{bot_id}
  • konkreetse roboti uuendamine päringuga PATCH /v1/management/bots/{bot_id}
  • tellimuse kasutusmahtude lugemine päringuga GET /v1/usage

Haldusvõtmed (Management keys) on seotud teie kontoga, mitte ühegi konkreetse robotiga. Need hoitakse teadlikult lahus Bot Talki võtmetest, et kompromiteeritud vestlusvõti ei saaks muuta teie roboteid ega lugeda arveldusandmeid.

Baas-URL

https://api.chatlab.com/aichat

Kõik selles artiklis toodud lõpp-punktid on selle baas-URL-i suhtes relatiivsed.

Alustamine

  1. Avage administraatorirakendus ja liikuge jaotisse Account Settings > Management API (Konto seaded > Management API).
  2. Klõpsake nupul Create Management Key (Loo haldusvõti), sisestage sellele nimi, soovi korral määrake lubatud IP-aadresside loend (IP whitelist) ja päringulimiit ning kinnitage.
  3. Valige ainult need õigused, mida teie integratsioon vajab, ja kopeerige täielik võti õnnestumise modaalavast. Lihttekstina kuvatakse seda ainult üks kord.
  4. Salvestage see oma serverisse, mitte brauserikoodi ega avalikku repositooriumi. Juurdepääsu kontrollimiseks tehke kirjutuskaitstud päring, näiteks GET /v1/usage koos usage õigusega.
  5. Tühistage kasutamata või kompromiteeritud võtmed Management API lehel.

Võti näeb välja selline: mk_abcdefghijklmnopqrstuvwxyz012345. Eesliide mk_ eristab seda Bot Talki võtmetest (ck_).

Autentimine

Authorization: Bearer mk_abcdefghijklmnopqrstuvwxyz012345

Päringu saatmisel võtmega mk_ lõpp-punkti /v1/chat (või mis tahes muusse Bot Talki lõpp-punkti) tagastatakse kood 403 key_type_not_allowed. Võtme ck_ saatmisel teele /v1/management/* tagastatakse sama tõrge.

Piirangud

  • Maksimaalselt 5 aktiivset Management API võtit kasutaja kohta
  • Maksimaalselt 10 päringut minutis võtme kohta (token bucket, maht 10, sujuv täitmine umbes 1 luba iga 6 sekundi järel). Loomise ajal allapoole konfigureeritav - määrake väiksem rateLimitPerMinute, misjärel ülempiir langeb ja täitmismäär kohandub sellega proportsionaalselt.

Õigused

Iga haldusvõti sisaldab mis tahes alamhulka kolmest allpool toodud õigusest. Loomisel tuleb valida vähemalt üks; vastasel juhul lükatakse päring tagasi veaga 400 invalid_request_error. Lõpp-punkti kutsumisel võtmega, millel puudub nõutav õigus, tagastatakse kood 403 insufficient_permissions.

  • bot_read - nõutav päringu GET /v1/management/bots/{bot_id} jaoks
  • bot_management - nõutav päringute POST /v1/management/bots ja PATCH /v1/management/bots/{bot_id} jaoks
  • usage - nõutav päringu GET /v1/usage jaoks

Päringu keha kuju: administraatori liidese vahekaarte peegeldavad pesastatud jaotised

POST ja PATCH võtavad vastu JSON-keha, mis on jaotatud 13 sektsiooni. Iga sektsioon vastab alamvahekaardile administraatorirakenduse külgribal Bot Settings, seega on JSON-i võtmed ja nähtavad vahekaardid omavahel kooskõlas: kui muudate API kaudu väärtust consent.humanSupportRequirePolicyAccept, näete sama lüliti olekumuutust administraatorirakenduse vahekaardil Consent & Privacy (Nõusolek ja privaatsus).

  • role - roboti profiil (persona), algne viip (raw prompt), vastuse pikkus, keel, veebisaidi / ettevõtte kontekst (vahekaart Role & Behavior)
  • conversation - tervitussõnum, päringu täpsustamine, vestluse jätkuvus, hindamise lüliti + kohtspikrid, soovitatud küsimuste sisu + dünaamilised jätkuküsimused (vahekaart Chat Conversation)
  • chatMemory - vestlusmälu lüliti, kokkuvõtete viibad, konteksti jaotus (vahekaart Summaries & Memory)
  • appearance - värvid, tekstid, mõõtmed, kohandatud CSS, tervituskuva, soovitatud küsimuste kujundus, automaatse avanemise käitumine, inimese trükkimise simulatsioon, jaluse markdown (vahekaart Appearance)
  • humanSupport - inimesega kontakteerumise vorm (vahekaart Human Contact Form)
  • leadCollection - müügivihjete kogumise vorm (vahekaart Lead Collection)
  • liveChat - üleandmine reaalajas vestlusele (vahekaart Live Chat)
  • consent - kõik neli privaatsuspoliitika nõusolekulülitit koos nõusolekukuva tekstiga (vahekaart Consent & Privacy)
  • whiteLabel - logo peitmine, kohandatud logo link, kohandatud domeenil majutamine (vahekaart Whitelabel)
  • security - lubatud domeenid, rämpspostifilter, vestluse päringulimiidid (vahekaart Security)
  • voice - häälsisend ja häälvestlused: mudel, hääl, keeled, viip, kestuse ülempiir (vahekaart Voice Conversation)
  • multilingual - mitmekeelne režiim, põhikeel, pakutavad keeled, teadmusbaasi keelekäsitsus (vahekaart Languages)
  • advanced - LLM-mudel, temperatuur, konteksti suurus, roboti sõnumite limiit, sisemine lokaat, Offer Cards (vahekaart Model & Advanced)

Kirjutatavatest seadetest asub tipptasemel ainult name, kuna see tuvastab roboti, mitte ei kuulu ühele konkreetsele vahekaardile.

Külgribal Bot Settings on praegu 16 alamvahekaarti, millest 13 vastavad ülaltoodud jaotistele. Kolm alamvahekaarti, millel puudub vastav sektsioon, on Flow, Actions ja Forms - kõiki kolme käsitletakse allpool jaotises "API ulatusest väljas". Need 13, mis vastavad, on Appearance, Chat Conversation, Role & Behavior, Human Contact Form, Lead Collection, Live Chat, Whitelabel, Consent & Privacy, Security, Model & Advanced, Summaries & Memory, Voice Conversation ja Languages.

Päringu keha ja vastuse keha on sama kujuga. Vastus lisab kaks täiendust:

  • meta - kirjutuskaitstud: roboti ID ja ajatemplid. Eemaldage see, et muuta GET-vastus kehtivaks POST-kehaks.
  • apiKey - olemas ainult loomisel - äsja loodud uue roboti Bot Talk API võti.

Kaks välja ühises struktuuris on kirjutuskaitstud - need tagastatakse vastuses, kuid neid ignoreeritakse, kui proovite neid saata päringutega POST/PATCH:

  • appearance.avatarUrl - roboti avatari pildi täielik avalik URL (nt https://api.chatlab.com/aichat/content/avatar_xyz.png). Baitide allalaadimiseks tehke otse GET-päring. Selle muutmiseks laadige üles uus fail mitmeosalise vormingu osana avatar (vt PATCH).
  • whiteLabel.whitelabelLogoUrl - White Labeli päise logo täielik avalik URL. Sama loogika nagu välja avatarUrl puhul. Selle muutmiseks laadige üles uus fail mitmeosalise vormingu osana whitelabel_logo (vt PATCH).

Mõlemad URL-id kasutavad praeguse päringu skeemi + hosti + kontekstiteed, seega White Labeli kohandatud domeenil tagastatakse need selle domeeniga seotuna (nt https://api.acme.com/aichat/content/...).

PATCH-päringul terve sektsiooni vahelejätmiseks saatke väärtuseks null; sektsioonisisese üksiku välja vahelejätmiseks saatke selle väärtuseks null. Välja tasemel saadetud null ei tühjenda kunagi salvestatud väärtust - see tähendab ainult "ära muuda".

Rolli ja viiba koostamine

Süsteemiviip, mille LLM tegelikult saab, ehitatakse üles ühel kahest viisist, olenevalt väärtusest role.role. Teadmine, kummale harule te paigutute, näitab, millised väljad on olulised ja milliseid küll salvestatakse, kuid ignoreeritakse.

Haru A - role.role väärtus on CUSTOMER_SUPPORT, SALES või LEAD_COLLECTION_AGENT (mallipõhine)

Taustaprogramm paneb viiba kokku sisseehitatud mallist ja ignoreerib välja role.rawPrompt täielikult (väärtus jääb robotisse salvestatuks, kuid seda ei kasutata). Mall hõlmab järgmist:

  • role.role - rolli silt (nt "Customer Support") ja automaatselt lisatavad rollispetsiifilised juhised
  • name - roboti nimi, mis lisatakse ava己lausesse
  • role.language - "Auto Detect" lülitab roboti kasutaja keelt järgima; mis tahes muu väärtus (nt "English", "Polish") teisendatakse kujule "Output in {language}, unless user uses another language"
  • role.responseLength - seotud sihtotsese sõnade arvuga: Concise ≈ 50 sõna, Normal ≈ 100, Detailed ≈ 200
  • role.websiteAddress - valikuline; kui see pole tühi, lisatakse lõppu "for the users of the website {url}"
  • role.companyDescription - valikuline; kui see pole tühi, lisatakse enne rollijuhiseid täiendava lõiguna

See on enamiku robotite puhul soovitatav haru - saate tasuta rollile kohandatud käitumise ja turvapiirded.

Haru B - role.role väärtus on CUSTOM (kutsuja määratud viip)

Taustaprogramm kasutab rolliviibana välja role.rawPrompt ja lisab platvormi fikseeritud juhised vastuse pikkuse kohta. See on eraldi väljast role.responseLength: valikulist seadistust Concise/Normal/Detailed rolli CUSTOM puhul ei lisata. Samuti salvestatakse väljad language, websiteAddress ja companyDescription, kuid neid ei lisata sellesse rolliviipa. Lisage soovitud keel, vastuse pikkuse eesmärk või ettevõtte kontekst ise otse välja rawPrompt. Samuti saab edastada täiendavaid käitusaegseid juhiseid ja hangitud konteksti, seega ei moodusta rawPrompt kogu mudeli sisendit. Eelseadistatud rolli tooni juhiseid ei lisata, kuid valiku CUSTOM tegemine ei eemalda kõiki platvormi juhiseid.

Kasutage valikut CUSTOM ainult siis, kui mallipõhine viip teie kasutusjuhuga ei sobi (nt vajate väga valdkonnaspetsiifilist persooni, omaenda turvapiiranguid või ebastandardset väljundvormingut).

Enum- ja piiratud väärtustega väljad

Enum-väljad ja piiratud väärtustega väljad lükkavad vigased väärtused tagasi koodiga 400 invalid_parameter. Muud väljad on lihtsõned, isegi kui kasutajaliides pakub fikseeritud loendit. Kasutage dokumenteeritud kirjaviisi ja valideerige oma andmed, selle asemel et eeldada, et iga toetamata sõne lükatakse tagasi.

  • role.role - CUSTOMER_SUPPORT, SALES, LEAD_COLLECTION_AGENT, CUSTOM
  • role.responseLength - Concise, Normal, Detailed
  • role.language - täielik ingliskeelne keelenimetus administraatori rippmenüüst, nt Auto Detect, English, Polish, Spanish, German, French, Italian, Portuguese, Dutch, Russian, Chinese (Simplified), Japanese, Arabic, Hindi ja ligikaudu 80 muud. Väärtus salvestatakse muutmata kujul ja asendatakse viibamallis, mistõttu kahetähelisi ISO-koode (en, pl) ja muid loendiväliseid väärtusi API tagasi ei lükka, kuid need tekitavad vigase juhise nagu "Output in en, unless...". Loomisel määramata jätmise korral on vaikeväärtus Auto Detect.
  • advanced.model - vaadake allpool jaotist "Tehisintellekti tekstimudelid". See on sõne, mitte päringuskeemis valideeritud enum; kasutage toetatud väärtust, mitte suvalist mudelinime.
  • advanced.chatContextSize - kasutage väärtusi 8000, 16000 või 32000, mis vastavad kasutajaliidesele. Konto maksimumist suuremad väärtused piiratakse vaikimisi; DTO seda kolme väärtusega komplekti rangelt ei jõusta.
  • chatMemory.clientSummaryPromptType - DEFAULT, CUSTOM
  • chatMemory.conversationSummaryPromptType - DEFAULT, CUSTOM
  • appearance.chatAlignment - left, right
  • appearance.minimizedDisplayMode - icon, minified, pill
  • appearance.chatMessageLinkTarget - _blank, _self
  • leadCollection.requireBeforeNewConversation - tõeväärtuse lüliti. true sunnib kasutajat enne vestluse alustamist müügivihje vormi täitma; false laseb tehisintellektil otsustada, millal vormi kuvada (vaikimisi).

Struktureeritud väljad ja vahemikud

Väljad, mis näevad välja nagu lihtsad sõned või numbrid, kuid millel on tegelikult spetsiifilised kujud, vahemikud või administraatoriliidese eripärad, mida tasub teada.

  • advanced.temperature - lubatud vahemik on 0.0 kuni 1.0, vastates administraatoriliidese liugurile. Väljaspool seda vahemikku olevad väärtused lükatakse tagasi veaga 400 invalid_parameter.

  • chatMemory.summariesToKnowledgeRatio - täisarvuline protsent vahemikus 10-90; kasutajaliides kasutab samme 10, kuid API aktsepteerib kõiki vahemikku jäävaid täisarve. Vaikeväärtus on 50. Kui mälu on lubatud ja kontekst on suurem kui 8k, jagab see teadmiste ja mälu eelarve pärast viiba/hiljutise vestluse reserveerimist, mitte kogu mudeli konteksti. 8k juures selle seadistusega kokkuvõtte eelarvet ei eraldata.

  • liveChat.schedule - sõnena kodeeritud JSON, mitte võrgus edastatav pesastatud JSON-objekt. Server salvestab toorsõne muutmata kujul; administraatoriliides parsib seda graafiku redaktori kuvamisel kliendipoolselt. Pärast parsimist on sõne struktureeritud nii, et selles on üks kirje iga nädalapäeva kohta pluss võti timezone:

    • iga nädalapäeva võti (monday-sunday) vastab väärtusele {enabled: boolean, from: "H:MM", to: "H:MM"} 24-tunnises ajavormingus
    • timezone on IANA ajavööndi nimi (nt "Europe/Warsaw", "America/New_York")

    Näidisväärtus (pange tähele välimisi jutumärke ja varjestatud sisemisi jutumärke - see on üks sõneväli, mitte pesastatud objekt):

    "{\"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\"}"
    

    Väljaspool märgitud aegu kuvatakse külastajale teade liveChat.outOfHoursMessage ja reaalajas vestlusele üleandmine blokeeritakse. Sisemise struktuuri valideerimine toimub ainult kliendipoolselt administraatori liideses - valesti vormindatud JSON või tundmatud võtmed võetakse API poolt vastu tavalise sõnena ning need ilmnevad renderdusveana alles siis, kui inimene roboti hiljem administraatoripaneelis avab. Valideerige struktuur enne saatmist oma poolel.

  • conversation.positiveRatingTooltip / conversation.negativeRatingTooltip - lühikesed sildid, mida kuvatakse vestluse hindamise nuppudel 👍 / 👎, kui conversation.conversationRatingEnabled=true. Vaiketekstid on "I like the response" / "I don't like the response". Nähtavad lõppkasutajatele.

  • whiteLabel.hideRoboAssistLogo - White Labeli funktsioon, mis allub teie konto piirangutele. Peidab jaluserea "Powered by ChatLab". Kui teie konto ei sisalda White Labeli tuge, salvestatakse väärtus küll ära, kuid seda ignoreeritakse ja jalust kuvatakse alati.

  • whiteLabel.whitelabelLogoLink - White Labeli funktsioon, mis allub teie konto piirangutele. Kohandatud logo sihtkoha URL klõpsamisel, kui hideRoboAssistLogo=true ja mitmeosalise vormingu osa whitelabel_logo kaudu on üles laaditud kohandatud logofail.

  • appearance.simulateHumanTypingDelay - sekundid (mitte millisekundid), täisarv vahemikus 0-200. Paus roboti järjestikuste sõnumimullide vahel, kui simulateHumanTyping=true. Vaikeväärtus on 5.

  • appearance.autoOpenChatDelaySeconds - sekundid, täisarv. Viivitus enne vidina automaatset avanemist, kui autoOpenChat=true ja autoOpenChatDelay=true.

  • advanced.internalLocale - IETF-i lokaadi-regiooni kood kujul ll_CC (alakriipsuga, MITTE sidekriipsuga ll-CC). Lubatud väärtused pärinevad fikseeritud loendist, milles on umbes 95 lokaati: 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 ja paljud teised. Ainult kahetähelise koodi ("en") või BCP-47 ("en-US") saatmine ei ole lubatud loendis. Vaikeväärtus on en_US. Seda lokaati kasutatakse vidina raamistikus kuupäeva/numbri vormindamiseks ja see erineb parameetrist role.language (roboti vestlusliku väljundi keel).

  • security.talkMessagesRateLimit / security.talkMessagesRateLimitDurationSeconds - täisarvud (saatke JSON-i numbritena, nt 30, mitte "30"). Seansipõhise piirangu keelamiseks määrake sõnumilimiidiks 0. Selle lubamisel sisestage positiivne kestus. Taustasüsteem jõustab N sõnumit seansi kohta määratud kestuse jooksul (sekundites), enne kui külastajale kuvatakse teade security.talkMessagesRateLimitHitMessage.

  • advanced.botMessagesLimit - täisarv (JSON-i number, nt 1000). 0 tähendab, et robotipõhist lisapiirangut pole ja kehtib konto üldine krediidieelarve; muul juhul peab see olema 1000 kordne (1000, 2000, 10000, ...). Väärtused nagu 100 või 1500 lükatakse tagasi veaga 400 invalid_parameter. See on igakuine roboti krediidilimiit, mitte vestlusepõhine sõnumite arv. Mudelivastendaja ei piira seda väärtust konto eelarve järgi; tegelikku kasutust piirab endiselt konto üldine eelarve.

Tehisintellekti tekstimudelid (advanced.model)

Kasutage täpset mudeli identifikaatorit, mis tagastatakse väljal advanced.model, kui loete jaotises Settings > Model & Advanced (Seaded > Mudel ja täpsemad seaded) teie soovitud mudeliga konfigureeritud robotit. Praegune vaikeväärtus loomisel on 5.6-LUNA. Identifikaatorid on tõstutundlikud ja erinevad kuvatavatest nimedest; näiteks 5.6-LUNA kuvatakse nimena GPT 5.6-luna.

Mudelite valik muutub aja jooksul. Ärge järeldage, et suvaline sõne või teenusepakkuja avalik mudeli ID on toetatud pelgalt seetõttu, et päringuskeem aktsepteerib sõnet. Lugege salvestatud konfiguratsioon tagasi ja testige saadud chatbotit enne selle avalikustamist.

Väljade teatmik (täielik päringu skeem)

Toetatud jaotised ja väljad koos nende tüüpide ning oluliste piirangutega. PATCH-semantika: iga väli, mis jäetakse välja (või saadetakse väärtusena null), jätab salvestatud väärtuse muutmata. Sama struktuuri kasutatakse ka vastuses (miinus mitmeosaline binaarsisestu; pluss kirjutuskaitstud plokk meta igas vastuses ning apiKey ainult loomise vastuses).

Kõrgeim tase

Väli Tüüp Piirang Kirjeldus
name string max 150, loomisel kohustuslik Boti kuvatav nimi
role object Vaadake § role
conversation object Vaadake § conversation
chatMemory object Vaadake § chatMemory
appearance object Vaadake § appearance
humanSupport object Vaadake § humanSupport
leadCollection object Vaadake § leadCollection
liveChat object Vaadake § liveChat
consent object Vaadake § consent
whiteLabel object Vaadake § whiteLabel
security object Vaadake § security
advanced object Vaadake § advanced

Ainult vastuses esinevad täiendused:

  • meta: { id, createdAt, updatedAt } - kirjutuskaitstud.
  • apiKey - string, olemas ainult päringu POST /v1/management/bots vastuses - vastloodud Bot Talk võti uue boti jaoks, tagastatakse täpselt üks kord.

§ role

Väli Tüüp Piirang Kirjeldus
role string (enum) CUSTOMER_SUPPORT, SALES, LEAD_COLLECTION_AGENT, CUSTOM Persoona eelseadistus; valib viiba malli (vaadake "Role and prompt construction")
language string täielik ingliskeelne keelenimi (English, Polish, ...) või Auto Detect Põhikeel, mis suunatakse viiba malli
responseLength string ∈ {Concise, Normal, Detailed} Tehisintellekti vastuse soovitud detailsus
websiteAddress string Veebisait, mida kasutatakse viiba kontekstina
companyDescription string Ettevõtte kirjeldus, mida kasutatakse viiba kontekstina
rawPrompt string Kohandatud süsteemiviip - kasutatakse muutmata kujul ainult siis, kui role=CUSTOM

§ conversation

Väli Tüüp Piirang Kirjeldus
welcomeMessage string Esimene sõnum, mida külastajale avamisel kuvatakse
queryRefinementEnabled boolean Kui tõene, täpsustatakse külastaja küsimust enne RAG-otsingut
conversationContinuityEnabled boolean Kui tõene, jätkavad naasvad külastajad oma viimast vestlust
conversationRatingEnabled boolean Kui tõene, kuvatakse pöial üles / pöial alla vestluse hindamise nupud
positiveRatingTooltip string Positiivse hindamisnupu kohtspikker
negativeRatingTooltip string Negatiivse hindamisnupu kohtspikker
suggestedQuestions string Reavahetusega eraldatud soovitatud küsimused / vestluse alustajad
dynamicSuggestedFollowups boolean Kui tõene, pakub tehisintellekt pärast iga vastust dünaamilisi jätkuküsimusi
positiveRatingMessage string Sõnum, mida kuvatakse pärast positiivset tagasisidet
negativeRatingMessage string Sõnum, mida kuvatakse pärast negatiivset tagasisidet
hideSuggestedQuestionsAfterFirstUse boolean Peida staatilised soovitused pärast kasutamist
dynamicFollowupsAutoIcons boolean Kui tõene, valib tehisintellekt dünaamilistele jätkuküsimustele automaatselt emotikonid

§ chatMemory

Väli Tüüp Piirang Kirjeldus
enabled boolean Vestlusmälu funktsiooni pealüliti
summaryConversationsEnabled boolean Salvesta vestlusepõhised kokkuvõtted
conversationSummaryPrompt string Kohandatud viip, mida kasutatakse iga vestluse kokkuvõtmiseks
conversationSummaryPromptType string (enum) ∈ {DEFAULT, CUSTOM} Kas kasutada vaikimisi või kohandatud kokkuvõtteviipa
clientSummaryPrompt string Kohandatud viip, mida kasutatakse kliendi kokkuvõtmiseks läbi vestluste
clientSummaryPromptType string (enum) ∈ {DEFAULT, CUSTOM} Vaikimisi vs kohandatud kliendiprofiili viip
summariesToKnowledgeRatio int 10-90 (kasutajaliidese samm 10) % saadaolevast teadmiste/mälu mahust, mis eraldatakse kokkuvõtetele üle 8k kontekstide puhul

§ appearance

Väli Tüüp Piirang Kirjeldus
launcherLabelLine1 string max 60 Käivitusnupu teksti esimene rida
launcherLabelLine2 string max 60 Käivitusnupu teksti teine rida
launcherTextColor string Käivitusnupu teksti värv
launcherDismissEnabled boolean Luba käivitusnupu sulgemine
widgetFontFamily string inter, system, nunito, lato, montserrat, poppins, source-serif, jetbrains-mono Vidina kirjatüübi perekond
chatDrawerEnabled boolean Luba külgsahtli (drawer) esitusviis
launcherColor string (hex) Käivitusnupu (vestluse ikooni) taustavärv
headerColor string (hex) Vestluse päise taustavärv
titleColor string (hex) Vestluse päise pealkirja värv
subtitleColor string (hex) Vestluse päise alapealkirja värv
clientMessageBubbleColor string (hex) Külastaja sõnumimulli värv
clientMessageTextColor string (hex) Külastaja sõnumi teksti värv
responseMessageBubbleColor string (hex) Boti vastusemulli värv
responseMessageTextColor string (hex) Boti vastuse teksti värv
chatSubheader string Vestluse pealkirja all kuvatav tunnuslause
senderPlaceholder string Kohatäitetekst sõnumi sisendväljal
resetConversationTooltip string Nupu "reset conversation" (lähtesta vestlus) kohtspikker
chatAlignment string (enum) ∈ {left, right} Kummale ekraani poolele vestlus ankurdatakse
launcherBottomMargin int 0-500 Käivitusnupu kaugus allservast (px)
launcherSideMargin int 0-500 Käivitusnupu kaugus külgservast (px)
displayShadow boolean Rippvari vidina all
customCss string Puhas CSS, mis süstitakse vidina iframe'i
chatMessageLinkTarget string (enum) ∈ {_blank, _self} Kuidas boti sõnumites olevad lingid avanevad
minimizedDisplayMode string (enum) ∈ {icon, minified, pill} Minimeeritud olek: käivitusikoon, kompaktne sisestusriba või kapsel (pill)
chatDesktopWidthPx int Töölauavidina laius
chatDesktopHeightPx int Töölauavidina kõrgus
chatMobileSizePercent int Mobiilividina suurus protsendina vaateavast
messageFontSize int Sõnumiteksti fondi suurus (px)
showChatbotBubblesDesktop boolean Kuva hõljuvaid kutsumulle töölaual
showChatbotBubblesMobile boolean Kuva hõljuvaid kutsumulle mobiilis
chatbotBubblesDelaySeconds int Viivitus enne kutsumullide ilmumist (sekundites)
launcherIconFullSize boolean Kujunda kohandatud käivitusikoon servast servani, mitte süvistatult
welcomeScreenEnabled boolean Kuva Welcome Screen (avakuva) otse vestlusesse minemise asemel
welcomeScreenQuestionsLabel string Silt soovitatud küsimuste kohal avakuval
welcomeScreenHideHumanContactForm boolean Peida päises inimkontaktvormi toiming sel ajal, kui kuvatakse Welcome Screen. See ilmub uuesti pärast külastaja esimest sõnumit. Enne 2026-09-02 loodud bottidel on vaikeväärtus true
welcomeScreenHideLiveChat boolean Peida päises reaalajas vestluse toiming sel ajal, kui kuvatakse Welcome Screen. See ilmub uuesti pärast külastaja esimest sõnumit. Enne 2026-09-02 loodud bottidel on vaikeväärtus true
headerActionsLayout string ICONS või DROPDOWN Kuidas reaalajas vestlust ja inimkontaktvormi vestluse päises pakutakse: ICONS (kumbki eraldi ikoonina) või DROPDOWN (rühmitatuna päisemenüüsse). Enne 2026-09-02 loodud bottidel on vaikeväärtus ICONS
stackSuggestedQuestions boolean Paiguta soovitatud küsimused vertikaalselt üksteise alla (mitte kõrvuti)
suggestedQuestionsFontSize int Soovitatud küsimuste elementide fondi suurus (px)
suggestedQuestionsTextColor string (hex) Soovitatud küsimuste elemendi teksti värv
suggestedQuestionsBackgroundColor string (hex) Soovitatud küsimuste elemendi taustavärv
autoOpenChat boolean Ava vestlus töölaual automaatselt
autoOpenChatOnMobiles boolean Ava vestlus mobiilis automaatselt
autoOpenChatDelay boolean Kasuta enne automaatset avamist viivitust
autoOpenChatDelaySeconds int Automaatse avamise viivitus (sekundites)
simulateHumanTyping boolean Jaga boti vastus tippimisanimatsiooniga mullideks
simulateHumanTypingDelay int 0-200 Viivitus sõnumimullide vahel (sekundites)
footerMarkdown string max 255 Kohandatud jaluse markdown, mida kuvatakse vestluse all
avatarUrl string read-only Avatari täielik avalik URL; selle muutmiseks laadige fail üles mitmeosalise avatar osa kaudu

Mitmeosaline päringutes POST/PATCH: avatar (failiosa). GET / vastuste kehad jätavad faili sisu välja - võrgus edastatakse ainult URL.

§ humanSupport

Väli Tüüp Piirang Kirjeldus
enabled boolean Inimtoe (Human Support) voo lüliti
email string nõutav (range loomiskontroll), kui enabled=true Aadress, mis võtab vastu klienditoe e-kirju
dialogMessage string Vormi kohal kuvatav julgustav sõnum
thankYouMessage string Pärast saatmist kuvatav kinnitus
emailMessageSubjectTemplate string Klienditoe töötajale saadetava e-kirja teemarea mall
emailMessageContentTemplate string Klienditoe töötajale saadetava e-kirja sisumall
emailPlaceholder string E-posti sisendvälja kohatäide
messagePlaceholder string Sõnumi tekstiala kohatäide
emailWithConversationContent boolean Kui tõene, lisatakse e-kirja sisusse vestluse transkriptsioon
customFormId long olemasoleva kohandatud vormi id Asendage sisseehitatud kontaktvorm kohandatud vormiga. Loomisel kasutab väljajätmine sisseehitatud vormi; PATCH-päringu puhul jätab null praeguse valiku muutmata
customFormMapping string JSON-kodeeringus string Seob kohandatud vormi väljad inimtoe e-kirja väljadega

requirePolicyAccept asub jaotises consent.humanSupportRequirePolicyAccept, mitte siin.

§ leadCollection

Väli Tüüp Piirang Kirjeldus
enabled boolean Müügivihjete vormi lüliti
nameEnabled boolean Kogu nime
nameLabel string Nime sisendvälja silt
emailEnabled boolean Kogu e-posti aadressi
emailLabel string nõutav (range loomiskontroll), kui enabled=true JA emailEnabled=true E-posti sisendvälja silt
phoneEnabled boolean Kogu telefoninumbrit
phoneLabel string nõutav (range loomiskontroll), kui enabled=true JA phoneEnabled=true Telefoni sisendvälja silt
leaveDetailsMessage string nõutav (range loomiskontroll), kui enabled=true Sõnum, mis julgustab külastajat oma andmeid jätma
thankYouMessage string nõutav (range loomiskontroll), kui enabled=true Pärast saatmist kuvatav kinnitus
requireBeforeNewConversation boolean Kui true, tuleb vorm enne vestluse algust esitada; kui false, otsustab tehisintellekt, millal vormi kuvada
emailNotificationEnabled boolean Saada omanikule e-kiri iga kord, kui müügivihje on kogutud
emailNotificationAddress string Teavituse saaja (vaikimisi konto e-posti aadress)
emailWithConversationContent boolean Kui tõene, lisatakse teavitusse vestluse transkriptsioon

| customFormId | long | olemasoleva kohandatud vormi id | Asendage sisseehitatud vihjevorm kohandatud vormiga. Loomisel kasutab väljajätmine sisseehitatud vormi; PATCH-päringu puhul jätab null praeguse valiku muutmata | | customFormMapping | string | JSON-kodeeringus string | Seob kohandatud vormi väljad nime / e-posti / telefoniga |

Väljadeülene range loomisreegel: enabled=true nõuab vähemalt ühe välja emailEnabled või phoneEnabled lubamist. requirePolicyAccept asub jaotises consent.leadCollectionRequirePolicyAccept, mitte siin.

§ liveChat

Väli Tüüp Piirang Kirjeldus
enabled boolean Funktsiooni Live Chat (reaalajas vestlus) lüliti
infoMessage string Üleandmiseelne selgitav sõnum
startMessage string Sõnum, mida kuvatakse reaalajas seansi alguses
endMessage string Sõnum, mida kuvatakse reaalajas seansi lõpus
nameLabel string Nime sisendvälja silt reaalajas vestluse eelvormis
emailLabel string E-posti sisendvälja silt reaalajas vestluse eelvormis
schedule string JSON-kodeeringus string (nädalapäevade lülitid + from/to + timezone) Reaalajas vestluse töögraafik - täpse struktuuri leiate jaotisest "Structured fields and ranges"
outOfHoursMessage string Sõnum, mida kuvatakse väljaspool tööaega
closeModalMessage string Modaalakna "sulge reaalajas vestlus?" pealkiri
closeModalConfirmLabel string Kinnitusnupu silt sulgemise modaalaknas
closeModalCancelLabel string Loobumisnupu silt sulgemise modaalaknas
closeModalTooltipText string Vestluse sulgemise nupu kohtspikker
operatorHasJoinedLabel string Silt, mida kuvatakse operaatori liitumisel
operatorDidNotJoinInTimeLabel string Silt, mida kuvatakse juhul, kui operaator ei liitunud ajalimiidi jooksul
waitingForOperatorToJoinLabel string Silt, mida kuvatakse operaatori ootamise ajal
waitingForOperatorSeconds int Operaatori reageerimise ooteaeg (sekundites)
redirectToHumanSupportForm boolean Kui tõene, suunatakse vestlus edasi inimtoe vormile, kui ükski operaator ei liitu
requireAdminOnline boolean Nõua vaba operaatori olemasolu vastavalt kohalolekuseadetele
presenceMode string Kohalolekurežiim; kasutage kasutajaliideses konfigureeritud boti väärtust
hideHumanSupportWhenLiveChatAvailable boolean Peida kontaktvorm, kui reaalajas vestlus on saadaval
missedEmailEnabled boolean vaikimisi true Saada boti omanikule e-kiri, kui reaalajas vestluse päringule ei vastatud. Vanematel bottidel määramata, mida tõlgendatakse lubatuna

requirePolicyAccept asub jaotises consent.liveChatRequirePolicyAccept, mitte siin.

§ consent

Väli Tüüp Piirang Kirjeldus
newConversationRequirePolicyAccept boolean Nõua privaatsuspoliitikaga nõustumist enne uue vestluse alustamist
humanSupportRequirePolicyAccept boolean Nõua privaatsuspoliitikaga nõustumist enne inimtoe vormi esitamist
leadCollectionRequirePolicyAccept boolean Nõua privaatsuspoliitikaga nõustumist enne müügivihjete vormi esitamist
liveChatRequirePolicyAccept boolean Nõua privaatsuspoliitikaga nõustumist enne reaalajas vestluse seansi alustamist
newConversationConsentDescription string Vestluse alguses kuvatava nõusolekuekraani sissejuhatav tekst
privacyPolicyConsentCheckboxLabel string Nõusoleku märkeruudu kõrval olev tekst (sisaldab tavaliselt linki privaatsuspoliitikale)

§ whiteLabel

Väli Tüüp Piirang Kirjeldus
hideRoboAssistLogo boolean funktsioon White Label; sõltub konto limiitidest Peida jalusest ChatLabi vaikelogo
whitelabelLogoLink string funktsioon White Label; sõltub konto limiitidest URL, kuhu kohandatud jaluselogo viitab
assignToCustomDomain boolean piiratud funktsiooniga CUSTOM_DOMAIN Majuta vestlust konfigureeritud kohandatud domeenil
whitelabelLogoUrl string read-only White Label logo täielik avalik URL; selle muutmiseks laadige fail üles mitmeosalise whitelabel_logo osa kaudu

Mitmeosaline päringutes POST/PATCH: whitelabel_logo (failiosa). GET / vastuste kehad jätavad faili sisu välja - võrgus edastatakse ainult URL.

§ security

Väli Tüüp Piirang Kirjeldus
allowedDomains string Komadega eraldatud domeenide loend, millel on lubatud vidinat manustada (tühi = valge nimekiri puudub)
spamFilterEnabled boolean Luba botipõhine rämpspostifilter sissetulevatele sõnumitele
countryFilterMode string BLACKLIST või WHITELIST Kuidas riikide nimekirju tõlgendatakse. Nimekirjad ise jäävad ainult administraatorile
talkMessagesRateLimit int >= 0; 0 keelab Maksimaalne kasutaja sõnumite arv piirangu aknas
talkMessagesRateLimitDurationSeconds int >= 0 Päringupiirangu akna pikkus (sekundites)
talkMessagesRateLimitHitMessage string Sõnum, mida kuvatakse külastajale päringupiirangu ületamisel

§ voice

Väli Tüüp Piirang Kirjeldus
inputEnabled boolean Luba külastajal sõnumeid dikteerida (kõne tekstiks)
conversationEnabled boolean nõuab paketis häälefunktsiooni olemasolu Luba täielikud häälvestlused
voiceId string teenusepakkujapõhine hääle id (nt alloy) Milline sünteetiline hääl kõneleb
model string nt GPT-REALTIME-MINI, GEMINI-LIVE, ELEVENLABS-* Häälemudel. Arveldatakse minutipõhiselt, tariifid erinevad mudeliti
turnDetection string teenusepakkujapõhine Rääkimiskorra tuvastamise režiim
audioPrompt string Täiendav süsteemiviip, mida kasutatakse ainult häälekordade puhul
welcomeMessage string Suuline avafraas
language string keelekood Peamine hääle keel
additionalLanguages string komadega eraldatud keelekoodid Lisakeeled, mida hääleagent aktsepteerib
maxDurationSeconds int Ühe häälvestluse range ajapiirang
maxDurationMessage string Sõnum, mida kuvatakse limiidi täitumisel

§ multilingual

Väli Tüüp Piirang Kirjeldus
enabled boolean Mitmekeelse režiimi lüliti
mode string AUTODETECT või FIXED_LIST Kuidas bot valib vastuse keele
baseLanguage string keelekood Keel, milles boti enda tekstid on koostatud
languages string komadega eraldatud keelekoodid Külastajale pakutavad keeled
knowledgeLanguageMode string NONE, MAIN või DYNAMIC Kuidas käsitletakse teistes keeltes olevaid teadmisi
knowledgeLanguageFallback string keelekood Keel, mida kasutatakse vaste puudumisel

§ advanced

Väli Tüüp Piirang Kirjeldus
model string sõltub konto limiitidest; vaadake ülalpool "AI text models" Suure keelemudeli (LLM) identifikaator (nt 5.6-LUNA)
temperature decimal 0.0-1.0 Diskreetimistemperatuur (vastab kasutajaliidese liugurile)
chatContextSize int ∈ {8000, 16000, 32000}; kohandatakse vaikselt teie konto limiidile Konfigureeritud kontekstimaht, sealhulgas juhised, ajalugu ja teadmised
botMessagesLimit long 0 või arvu 1000 kordne (nt 1000, 2000, 10000) Boti igakuine sõnumikrediitide limiit (0 = täiendav botilimiit puudub; konto limiit kehtib endiselt)
internalLocale string lokaadikood kujul ll_CC Lokaat vidina raami siltide jaoks (erineb parameetrist role.language)
productsViewEnabled boolean Kui tõene, kuvatakse e-kaubanduse tootekirjed Offer Cards vestluse sees
includeProductsInKnowledgeBase boolean Kui tõene, indekseeritakse tootekataloog teadmusbaasi osana

API ulatusest väljas

Administraatori kasutajaliideses on mõned valdkonnad, mis ei ole selles Management API versioonis tahtlikult kättesaadavad:

  • Treenimine ja kustutamine - need lõpp-punktid ei väljasta kõigi bottide nimekirja, ei halda treeningandmestikke ega kustuta botte. Kasutage nende töövoogude jaoks rakendust.
  • Vahekaart Flow - visuaalne vestlusvoo redaktor Flow Editor (astmed ja üleminekud). Ei ole Management API kaudu kättesaadav.
  • Vahekaart Actions - hallatud e-kaubanduse ja broneerimise integratsioonid, AI Search ning kohandatud API-funktsioonid. Tööriistade väljakutsumine (tool calling) ei ole kunagi olnud Management API osa.
  • Kohandatud vormide koostaja ise - kohandatud vormide loomine ja muutmine ei ole API kaudu toetatud. Saate aga siduda olemasoleva vormi botiga väljade leadCollection.customFormId ja humanSupport.customFormId kaudu.
  • Kohandatud vestluse avamise ja sulgemise ikoonid - customLauncherIconVisible, openChatIcon, closeChatIcon. API teeb kättesaadavaks ainult peamised mitmeosalised failiosad avatar ja whitelabel_logo.
  • IP- ja riiginimekirjad - kirjed ise on kättesaadavad ainult administraatorile. Kättesaadav on ainult tõlgendusrežiim välja security.countryFilterMode kaudu.

Lõpp-punktid

POST /v1/management/bots

Looge uus bot. Toetatud on kaks samaväärset Content-Type tüüpi; valige neist sobivam.

Režiim A - tavaline JSON (soovitatav, kui te ei pea samas päringus üles laadima avatari / logo):

  • Content-Type: application/json
  • Päringu keha on boti konfiguratsiooni JSON (ilma ümbriseta data)
  • Faile (avatar / logo) saab laadida üles hiljem teise PATCH-päringuga, kasutades režiimi B

Režiim B - multipart/form-data (kasutage failide üleslaadimisel samas päringus):

  • Content-Type: multipart/form-data; boundary=...
  • JSON-osa data (nõutav, Content-Type: application/json) - boti konfiguratsioon ülaltoodud pesastatud kujul
  • failiosa avatar (valikuline) - boti avataripilt
  • failiosa whitelabel_logo (valikuline) - White Label logo (kehtib ainult juhul, kui teie konto sisaldab funktsiooni White Label)

JSON-is on nõutav ainult name; iga teise välja väärtuseks saab vaikimisi sama väärtus, mille määraks administreerimisliidese viisard.

Näidispäringu keha

See on maksimaalne data JSON - iga jaotis on täidetud. Saatke ainult need jaotised, mida vajate; kõik ülejäänu võtab vaikeväärtused.

{
  "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
  }
}

Valideerimisreeglid koos vastavate veateadetega:

  • name - nõutav, kuni 150 märki
  • advanced.temperature - vahemikus 0.0 kuni 1.0
  • chatMemory.summariesToKnowledgeRatio - täisarv vahemikus 10 kuni 90 (protsent, sammuga 10)
  • appearance.launcherBottomMargin, appearance.launcherSideMargin - vahemikus 0 kuni 500
  • appearance.footerMarkdown - kuni 255 märki
  • humanSupport.enabled=true nõuab välja humanSupport.email määramist
  • leadCollection.enabled=true nõuab, et vähemalt üks väljadest leadCollection.emailEnabled või leadCollection.phoneEnabled oleks seatud väärtusele true; sisselülitatud kanali puhul on nõutav ka selle silt ning väljad leaveDetailsMessage ja thankYouMessage
  • advanced.chatContextSize piiratakse automaatselt konto maksimaalse toetatud kontekstisuurusega. Ärge eeldage, et teisi numbrilisi välju automaatselt piiratakse.

Väljad, mille väärtus serveris on null, jäetakse JSON-i kehast välja - võrgu kaudu edastatakse ainult mitte-null väärtustega väljad.

Näidisvastuse keha (201)

Sama struktuur nagu päringul, millele lisanduvad kirjutuskaitstud plokk meta ja ühekordne apiKey tipptasemel. Kirjutuskaitstud failide URL-id (appearance.avatarUrl, whiteLabel.whitelabelLogoUrl) täidab server siis, kui vastavad multipart-osad üles laaditi.

{
  "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"
}

Väli apiKey kuvatakse ainult loomisel - see on vastloodud Bot Talki võti, mis on seotud uue botiga. Lihtteksti näidatakse vaid korra ja seda ei saa hiljem API kaudu enam pärida; salvestage see kohe oma poolel.

Vastuse päis Location sisaldab uue boti URL-i (/v1/management/bots/{id}).

Curli näited

Režiim A - tavaline JSON (kõige lihtsam):

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žiim B - multipart koos avatariga:

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}

Tagastab teile kuuluva boti praeguse konfiguratsiooni.

Curli näide

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

Näidisvastuse keha (200)

Sama struktuur nagu POST-vastusel, välja arvatud ühekordne apiKey. Kaasas on plokk meta. Tagastab veakoodi 404 not_found_error, kui boti ei eksisteeri või see ei kuulu teie kontole.

Praegune avatar ja White Label logo esitatakse täielike kirjutuskaitstud URL-idena (appearance.avatarUrl, whiteLabel.whitelabelLogoUrl) - samal skeemil, hostil ja kontekstiteel, mis teenindas seda päringut. Saate baidid kätte, tehes otse GET-päringu neile URL-idele; kummagi faili asendamiseks laadige PATCH-päringuga üles uus fail multipart-osade avatar / whitelabel_logo kaudu. Neid URL-i välju eiratakse, kui need saadetakse päringu kehas.

{
  "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"
  }
}

Boti kloonimine

Päringu POST /v1/management/bots keha ja päringu GET /v1/management/bots/{bot_id} vastuse keha on sama struktuuriga, seega koosneb kloonimine kolmest etapist: tehke lähtebotile GET-päring, eemaldage serveri hallatavad identifitseerimisväljad ja tehke tulemusega POST-päring.

1. Tehke lähtebotile GET-päring.

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

2. Eemaldage ülataseme meta-plokk. Objekt meta (id, createdAt, updatedAt) on serveri hallatav ja kirjutuskaitstud - selle jätmine POST-päringu kehasse ei tekita probleeme (server ignoreerib seda), kuid selle eemaldamine muudab kavatsuse selgeks ja hoiab andmemahu puhtana. Soovi korral muutke välja name, et kloon oleks lähtebotist eristatav.

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

3. Tehke klooni loomiseks puhastatud kehaga POST-päring. Päringu keha täieliku struktuuri ja valideerimisreeglite kohta vaadake ülaltoodud kirjeldust 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

Vastus sisaldab uue boti välja meta.id ning vastloodud võtit apiKey (klooni Bot Talk võti). Võtme apiKey lihttekst tagastatakse ainult selles loomisvastuses - kopeerige see enne vastuse keha sulgemist; hiljem pole seda võimalik enam vaadata.

See kopeerib toetatud seaded, mitte täielikult treenitud chatboti. Treenimissisu, vestlusajalugu, integratsioone/toiminguid, Flow'd ja vormimääratlusi need lõpp-punktid ei klooni. Konfigureerige need rakenduses eraldi.

Täiendavad hoiatused:

  • Faile ei kloonita. appearance.avatarUrl ja whiteLabel.whitelabelLogoUrl on kirjutuskaitstud ning viitavad lähteboti failidele. Kui vajate kloonil sama avatari või White Labeli logo, laadige failid lähteaadressidelt alla ja laadige need üles mitmeosaliste avatar / whitelabel_logo osadena - kas loomise POST-päringuga (režiim B) või järgneva PATCH-päringuga.
  • Bot Talk võtmeid ei kloonita. Igal botil on oma Bot Talk võtmete kogum. Loomise POST-päringu tagastatud üksik apiKey on ainus automaatselt loodud võti; vajadusel looge lisavõtmeid boti vahekaardilt API.

PATCH /v1/management/bots/{bot_id}

Uuendage ühte või mitut välja teile kuuluva boti puhul. Muudetakse ainult JSON-is olevaid jaotisi / välju; kõik väljajätmised (või väärtusena null saadetud väljad) jäetakse puutumata. Saadetud jaotise piires kehtib iga välja puhul osalise uuendamise loogika.

Aktsepteeritakse kahte samaväärset Content-Type päist (samamoodi nagu POST puhul):

Režiim A - tavaline JSON (soovitatav ainult seadete uuendamisel):

  • Content-Type: application/json
  • Päringu keha on muudatuste JSON (ilma data ümbriseta)

Režiim B - multipart/form-data (kasutage failide üleslaadimisel):

  • data JSON-osa (valikuline) - muudatused. Saatke ainult siis, kui soovite välju muuta. Jätke täielikult välja, kui soovite üles laadida ainult avatari või logo.
  • avatar failiosa (valikuline) - asendab avatari
  • whitelabel_logo failiosa (valikuline) - asendab White Labeli logo (kehtib ainult siis, kui teie konto sisaldab White Label funktsiooni)

Kõik kolm osa on PATCH-päringus valikulised, kuid päringu toimimiseks peab vähemalt üks neist olema määratud.

Näidispäringu keha (mitu jaotist)

Siin võib saata mis tahes välja, mida aktsepteerib POST /v1/management/bots. Allolev näide demonstreerib mitut jaotist, mitte igat toetatud välja; praktikas saadate ainult need võtmed, mida soovite muuta (vt allpool "Minimaalne osaline uuendamine") - iga väljajäetud (või väärtusega null saadetud) võti jätab salvestatud väärtuse muutmata.

{
  "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
  }
}

Minimaalne osaline uuendamine

Tehke üksikule väljale PATCH-päring, saates täpselt need võtmed, mida soovite muuta - kõik muu säilitatakse.

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

C选题 näited

Režiim A - tavaline JSON (kõige lihtsam):

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"}}'

Režiim B - mitmeosaline vorm (avatari / logo asendamisel):

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'

Režiim B - asendage ainult avatar (välju muutmata):

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

Vastuse keha (200)

Sama struktuur nagu päringul GET /v1/management/bots/{bot_id} - boti täielik konfiguratsioon pärast muudatuste rakendamist, sealhulgas plokk meta. Välja apiKey ei ole. Tagastab veakoodi 404 not_found_error, kui boti pole olemas või see ei kuulu teie kontole.

Allolev näide näitab vastust pärast ülaltoodud Täieliku päringukeha (mitu jaotist) muudatuste rakendamist GET-näite botile - muudetud väljad kajastavad uusi väärtusi, puutumata väljad säilitatakse ja meta.updatedAt uueneb.

{
  "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

Lugege Management võtit omava konto praegust tellimuse kasutust.

Vastuse keha (200)

{
  "subscriptionType": "your-plan-id",
  "messages": {"used": 4123, "limit": 11000, "remaining": 6877},
  "bots": {"used": 3, "limit": 5, "remaining": 2}
}
  • subscriptionType on konto praeguse paketi väiketähtedega identifikaator (your-plan-id on näitlik kohatäide). Paketid pärinevad dünaamilisest kataloogist, seega võib täpne identifikaatorite kogum aja jooksul pakettide ümbernimetamisel või lisamisel muutuda - käsitlege seda läbipaistmatu stringina, mitte fikseeritud enumina.
  • messages.used / limit / remaining tähistavad jooksva kalendrikuu sõnumikrediite, mis lähtestuvad kuu esimesel päeval, mitte tellimuse uuendamise päeval. Need on kaalutud krediitide, mitte toorete vastuste arvu järgi.
  • bots.used / limit / remaining arvestavad teile kuuluvaid bote (sealhulgas peatatud bote) teie konto botide kogulimiidi suhtes.

Päringupiirangu päised

Vastused, mis jõuavad päringupiirangu etapini (st autentimine ja IP-lubatud nimekiri on läbitud), sisaldavad järgmist:

X-RateLimit-Limit: 10
X-RateLimit-Remaining: 7
X-RateLimit-Reset: 1715430000
  • X-RateLimit-Limit - võtmepõhine limiit, mida sellele päringule tegelikult rakendati (vaikimisi 10 või teie konfigureeritud rateLimitPerMinute, kui see on väiksem).
  • X-RateLimit-Remaining - kohe pärast seda päringut saldosse jäänud märgid (tokens).
  • X-RateLimit-Reset - Unixi ajatempli sekundid, millal järgmine märk muutub kättesaadavaks (mitte kogu saldo täielik lähtestamine; saldot täidetakse pidevalt). Kui saldo on täis, on see praegune aeg.

Vastuste 429 rate_limit_exceeded korral määratakse ka Retry-After, mida väljendatakse täissekundites kuni vähemalt ühe märgi vabanemiseni.

Autentimiseelsed vead (401 missing_api_key, 401 invalid_api_key, 403 ip_blocked) ja 403 ip_not_whitelisted ei sisalda X-RateLimit-* päiseid - piirangut kontrollitakse alles pärast autentimise ja IP-kontrollide edukat läbimist.

Vigade vorming

Sama ümbris nagu Bot Talk API puhul:

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

Valideerimisvead kasutavad väärtust code: "invalid_parameter" ja lisavad ebaõnnestunud välja teekonna sõnumi algusesse, et vigast jaotist oleks lihtne märgata:

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

Loetelu / piiratud väärtuste hulga väljade vigased väärtused (nt chatMemory.clientSummaryPromptType = "BOGUS") sisaldavad välja teekonda, tagasilükatud väärtust ja lubatud väärtuste loendit:

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

Seotud teemad

Vestluste lõpp-punktide ja SSE voogedastuse kohta vaadake jaotist Bot Talk API.