Jurnal de schimbări
Ce e nou.
Fiecare îmbunătățire a platformei, pe măsură ce se livrează.
· kamo-internal
Web Chat Integrare fil
Faza 2 nucleul tab-ului de integrare Web Chat: rute BFF proxyning la faza 1a MediaService CRUD, un client tipat și /setări/fetures/chat tab în cazul în care un org enumeră integrarea, creează unul (numele + originile site-ului necesare + moduri AI/Suport), și devine brut tasta site-ului + fragment de inmatriculare o dată. Design personalizator și disponibilitatea Lista de verificare sunt fazele ulterioare.
· kamo-register
Kamo-register onorează software-ul auth logo + nume
- DynamicMetaLoader: citeste identitatea software-ului + auth selectors from config.json, rezolva titlu tab, continuă aut logo/name stare la sesiuneStorage - brand.ts + TemeLogo: inregistreaza logo-uri auto-urmeaza identitatea auth-logo (reactiv) - utilizează AuthName: numele de înregistrare (aterizare + flux) urmează identitatea auth-name, reactiv la sarcina de configurare tematică; cade înapoi la companie
· kamo-login
Kamo-login onorează logo-ul auth software + titlu tab
- DynamicMetaLoader: citeste identitatea software-ului + auth selectors from config.json, set tab titlu de la numele rezolvat (authNameBrandSource), persistă starea auth-logo la sesiuneStorage - brand.ts + ThemeLogo: login logo-uri auto-urmează identitatea auth-logo (compania/software), re-rezolvat pe sarcina de configurare tematică; nu sunt necesare modificări ale call-site-ului
· kamo-internal
LabelManager identitate software UI + titlu tab intern
- Informatii Companie: numele software/numele scurt + numele de login/registru + selectatorii tab-titlu - Branding: upload-uri complete/simplu logo, comutaţii de suprafeţe Selectoare de identitate (semnal de apă, navpri, logo-uri de autentificare/înregistrare) - suprafeţe legale forţate comunicate ca întotdeauna-companie (documente/email/facturi/etc.) - aspect: titlu fila browser intern rezolva prin intermediul internTabBrandSource
· kamo-internal
Ghidaj org în 3 etape (creare → finisare DNS → intrare)
Generalizează-l pe primul erou într-un singur panou de ghidare conştient de scenă. privind numărul de organe deținute de membru + statutul DNS (din /api/security/org/my-reţeles): creați dns Introdu-l pe proprietarul 1, DNS complet → introduce-l (intra-ca OTK → intern. <domeniul >) Odată ce deţin o a doua org, nici un panou arată ei cunosc corzile. DNS-pending reflectă exact regula paginii rețelei (domeniul custom & & domeniuSetupComplete===fals; a *.kamocrm.com org nu are nevoie de DNS). Fiecare etapă are propria familie de accent (Persoane/Munca/Crm), pictogramă și copiere; CTA este un link pentru creare/dns și un asinc introduce acțiunea pentru etapa gata. Seif (fără panou) pe orice eroare de preluare.
· kamo-internal
Dual company/software responsor + livration + consum
- Organization.ts: livreaza identitatea software-ului + selectoare per-suprafata prin OrgContext - Brand.ts: *************** (+vitest, 8 cazuri) - TemaLogo: logoSoftware/logoFullSoftware variante - NavPri: logo navpri + text follow the Intern Software Logo Selector - Backdrop: filigran onorează identitatea software-ului (ambele căi)
· SecurityService
Tipuri de upload software + config.json coace
- upload Logo: obiect explicit-cheie comutator *************** cu respingerea implicit, astfel încât un software upload nu poate bloca logo-ul companiei.svg - copyFolder: conservă logo-urile software încărcate pe șablon re-copiere - config.json: coace identitatea software-ului + auth-suprafață selectatoare pentru autentificare/înregistrare - teste: UploadLogoObjectKeyTest, buildConfigJson
· kamo-shared-library
Adaugă coloane de branding cu etichetă albă în organizație
· kamo-shared-library
Câmpuri de branding a software-ului Persist via patchOrganization whitelist
· kamo-internal
Primul erou CTA pentru membrii de pe platforma org
Arată un erou la bord în partea de sus a placii de lansare acasă invita un Membru KamoCRM-platformă (nu membru al echipei) care nu a creat încă o copil org pentru a roti în sus prima lor organizație alb-etichetă. Un proeminent Butonul CTA și o linie "click aici" leagă ambele rute către /rețea/creare; şi copia indică "My {ranches} " nav de mai sus. Gated on userInfo.memberType ==Member + organization.isTopLevel; stays Ascuns cu excepţia cazului în care /api/securitate/org/my-reţelele confirmă că nu deţin niciun copil Orgaţi-vă şi veţi fi în siguranţă la orice greşeală. Urmează instrumentul Limba de proiectare panou (accentul persoanelor, kglass, eticheta operatorului, casa Usor, cu motor redus). Strings sub casa. Primul Org.
· VOIPService
TURN-REST Acreditari obiectiv pentru softphone mobil
GET /api/voip/turn/credentials ments efemeral coturn creads (HMAC-SHA1 over) "<expiry>:<memberId>" cu secretul static-aut comun) atât de nativ/celular WebRTC poate transmite prin 47.181.8.84:3478. Auth prin același X-***-Token SIP utilizări ale obiectivului; returnări configurate: false (numai STUN) atunci când secretul este absent. Fire KAMO TURN SECRET din *** (opțional).
· SecurityService
Expuneți per-org primarColor + URL-uri logo pe /mi-rețele
Fiecare rând de org poartă acum prima Color (Organization.colors.colorPri, '#'-prefix pentru a se potrivi config.json) și logo-ul derivatUrl/logoSimpleUrl (theme.<domain>/public/ logo-uri și per-org hex-cap de frontieră culori.
· MediaService
Snapshot web-chat de integrare id pe suport vizitator + bilet
Rezolva integrarea WebChat prin crearea KeyHash (enabled-filtrate, consistent cu boottrap() / AI-prompt rezoluție) o dată în creareSuportSesssion și timbre ID-ul său pe ambele PublicChatVisitor și SuportTicket pentru atribuirea per-website. Null/blank keyHash sau nici o potrivire activată integrarea lasă coloanele nule.
· AIService
Per-integrare publică AI prompt + atribuirea sesiunii
Upgrade public-chat sistem-prompt cascada de la per-org la per-integrare: PublicAiChatController citește acum X-Public-Chat-Key-Hash antet (nullable) transmis de APIService și Trece la ************* care rezolvă problema WebChatIntegration by hash și preferă AiSystemPrompt peste AiOrgSettings implicit, care se încadrează înapoi la prompt generic. ă AiChatSesssion este, de asemenea, ştampilat cu webChatIntegrationId pentru atribuirea stabilă care supraviețuiește rotație cheie. Extras cascada într-o soluție statică, testată în unitate Prompt ajutor (integrare-wins / org-fallback / generic-fallback / ok ).
· APIService
GET /api/public-chat/bootstrap gateway route
Adăugați obiectivul boottrap care reutilizează conducta proxyWithAuth existentă (validarea cheii + originea opt-in + domeniul de aplicare PUBLIC CHAT + limita ratei + X-Public-Chat-Key-Hash) și proxies la obiectivul de boottrap MediaService.
· MediaService
Rezolvator de configurare a bootstrap public-chat
Adaugă un GET intern *** *** *** *** *** *** care rezolvă o WebChatIntegration by X-Public-Chat-Key-Hash and returns its resoluted design/comportament config (completat implicit prin WebChatDefaultConfig.merge astfel încât o cheie cu nici un rând de integrare încă redă ca widget-ul de astăzi). Se întoarce la org PublicChatApiKey activ atunci când nici o integrare există; 404 atunci când hash cheie nu se rezolvă deloc.
· MediaService
WebChatIntegration CRUD (minte cheie + integrare, org-scoped)
Managementul cu vedere spre Org API pentru fila de setări faza-2. On creați, menționați PublicChatApiKey (aceeași abordare cheie-gen ca publicChatKeyController) alături de rândul WebChatIntegration și înapoiază cheia brută o dată. Lista/obținerea/actualizarea/eliminarea sunt proprietatea org verificat; actualizarea busturi cache (task-5) bootstrap atunci când designConfig sau modificări activate.
· kamo-shared-library
Adaugă coloane de atribuire WEB CHAT INTEGRATION ID pentru vizitatori/bilet/ai-sesiune
· kamo-shared-library
Entitatea de integrare WebChat + repo + DTO + configurare de proiectare implicită
· kamo-internal
Adaugă "Access Copilot Mobile App" puncte de intrare acasă + NavPri
Ambele suprafeţe expediază un eveniment de interacţiune deschisă pe care NavTop îl ascultă pentru a deschide Centrul de Interacţiuni în fila Setup Mobile App. Acasă arată o etichetat pilula sub controlul tapetului; NavPri arată o pictogramă logo sub pilula de studiu (etichetă atunci când este extinsă, vârful uneltei atunci când sa prăbușit). Ambele poarta de ALLOW MOBILE ACCESS dreapta.
· kamo-internal
Poartă parola QR, fila cu o singură linie, antet stânga logo, cod 10 min
- Membrul trebuie să-şi reintroducă parola (server verificat prin /api/mobile-access-otk, care ments OTK numai pe succes) înainte de QR este dezvăluit la un calculator deja semnat-in de la hapsân-l. - QR/OTK trăieşte acum 10 minute (600s); numărătoarea inversă apoi se reblochează. - eticheta fila fortata pe o linie; logo-ul mutat la stanga titlului pentru a salva spatiul vertical; a eliminat pastila "Configurare pentru.".
· SecurityService
POST *********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
Verifica parola apelantului propriu (passwordEncoder. meciuri împotriva sesiunii lor utilizator) fără a schimba nimic. Folosit de ruta mobil-acces-otk BFF astfel încât configurarea QR este menţionată numai după reconfirmarea parolei.
· kamo-internal
Configurați tab-ul de acces mobil
Noua a treia filă în NavTopPanel (de culoare ALLOW MOBILE ACCESS dreapta): arată o marcă QR codarea unei legături profunde OTK de scurtă durată (kamocopilot://configurare) care semnează membru pe telefonul lor și defaults aplicația la org curent. Reîmprospătare automată OTK înainte de expirare; lustruirea MU cu culoarea primară a orgului. Adaugă
· kamo-shared-library
Adaugă dreptul general al copilotului mobil la ALLOW MOBILE ACCESS (167)
Nou RolRightType (ServiceType=null → Grupul General) Gating 'Setup Mobile Access' interaction-center tab. RoleRightsSyncService îl completează la toate rolurile privind repornirea serviciului de securitate; apare sub Permisiuni generale în editorul de roluri.
· AIService
Pe-org publice prompt, om-mână pe nici un furnizor, anon zilnic mesaj capac
· kamo-shared-library
Adaugă o cerere de numărare a utilizării pentru cota de chat publică
· APIService
Verificați *** PoW la marginea sesiunii publice crea (înființat atunci când sarcina utilă prezentă)
· MediaService
Bust APIService cheie cache imediat pe tasta de chat public pentru a comuta / șterge
· MediaService
Persist crearea hash cheie pe public-chat vizitator + bilet pentru atribuire
· kamo-shared-library
Adaugă publicDailyMessageCap la AiOrgSettings pentru cota de chat

Universul tău te așteaptă.
Începeți gratuit în câteva minute.Adăugați produse oricând sunteți pregătit — fără migrare, fără autentificări noi.
Gratuit pentru totdeauna — nu este necesar un card de credit