Changelog
Was ist neu?
Jede Verbesserung an der Plattform, wie sie geliefert wird.
· kamo-internal
Web-Chat-Integration Registerkarte Liste, erstellen, Schnipsel (BFF + UI)
Phase 2 Kern der Web Chat Integration Einstellungen Registerkarte: BFF Routen Proxying an den Phase-1a MediaService CRUD, einen getippten Client, und /settings/features/chat tab, wo eine org Integrationen auflistet, erstellt eine (Name + erforderlich Website Herkunft + AI / Unterstützungsmodi), und bekommt die roh Website-Schlüssel + Einbettung Schnipsel einmal. Design-Anpasser und Bereitschaft Checkliste sind spätere Phasen.
· kamo-register
Kamo-register ehrt Software auth Logo + Name
- DynamicMetaLoader: Software-Identität + auther Selektoren von config.json lesen, auflösen tab Titel, persist auth logo/name state to sessionStorage - brand.ts + ThemeLogo: Registerlogos folgen automatisch der auth-logo Identität (reaktiv) - useAuthName: Registername Text (Landung + Fluss) folgt der Au-Namen-Identität, reaktiv auf Thema Konfigurationslast; fällt zurück auf Unternehmen
· kamo-login
Kamo-login ehrt Software auth Logo + Tab-Titel
- DynamicMetaLoader: Software-Identität + auther Selektoren aus config.json lesen, Registerkarte setzen Titel von gelöstem Namen (authNameBrandSource), persist auth-logo state to sessionStorage - brand.ts + ThemeLogo: Login-Logo folgen Sie der auth-logo Identität (Firma/Software), re-re-resolved on theme config load; keine Call-Site-Änderungen erforderlich
· kamo-internal
LabelManager Software Identity UI + interner Tabtitel
- Firmeninfo: Softwarename/Kurzname + Login/Registername + Tab-Titelwähler - Branding: Software voll/einfache Logo-Uploads, Override-Kripps und pro Oberfläche Identitätswähler (Wasserzeichen, navpri, Login/registr Logos) - erzwungene, legale Oberflächen, kommuniziert als immer-Firma (Dokumente/E-Mail/invoices/etc.) - Layout: interner Browser-Tabtitel löst über internalTabBrandSource
· kamo-internal
3-stufige org onboarding Anleitung (erschaffen - Finish DNS n enter)
Verallern Sie den First-Org-Helden in eine einzige bühnenbewusste Führungstafel auf der Besitz-Org-Zählung des Mitglieds + DNS-Status (von /api/security/org/my-networks): erstellen - besitzt kein Kind org - starten Sie das erste White-Label org (/Netzwerk/erschaffen) dns - besitzt 1, DNS nicht verifiziert - beenden Domain-Setup (/setup/dns?orgId=..) enter - besitzt 1, DNS vollständig - geben Sie es ein (enter-as OTK - intern.<domain" Sobald sie eine zweite Org besitzen, zeigt keine Tafel, sie kennen die Seile. DNS-Ausgabe Spiegelt die Netzwerk-Seitenregel genau (custom domain && domainSetupComplete===false; ein *.kamocrm.com org braucht kein DNS). Jede Etappe bekommt ihre eigene Akzentfamilie (people/work/crm), Icon und Copy; CTA ist ein Link für create/dns und async geben Sie Aktion für die bereite Bühne. Fails sicher (keine Panel) auf jedem Fetch-Fehler.
· kamo-internal
Duale Firma/Software-Firechen-Fireverser + Lieferung + Verbrauch
- Organisation.ts: Software-Identität + pro-Stoide über OrgContext liefern - brand.ts: ************ (+ vitest, 8 Fälle) - ThemeLogo: logoSoftware/Logo - NavPri: navpri Logo + Text folgen der internen Software Logo-Auswahl - HintergrundWatermark + Backdrop: Wasserzeichen ehrt Software-Identität (beide Wege)
· SecurityService
Software Logo Upload-Typen + config.json backen
- uploadLogo: expliziter Objekt-Schlüsselschalter ************ mit der Ablehnung von Standard, so dass eine Software-Upload kann nie klonen das Unternehmen logo.svg - copyFolder: hochgeladene Softwarelogos auf Vorlagen-Recopy aufbewahren - config.json: Software-Identität backen + auth-surface Selektoren für Login/registrieren - Tests: UploadLogoObjectKeyTest, buildConfigJson Software-Fälle
· kamo-shared-library
Software-White-Label-Branding-Spalten zur Organisation hinzufügen
· kamo-shared-library
Bestehende Software-Branding-Felder über patchOrganisation Whitelist
· kamo-internal
First-org CTA Held für Mitglieder auf der Plattform org
Zeigen Sie einen Onboarding-Helden an der Spitze der Home Launchpad einladend KamoCRM-Plattform-Mitglied (kein Teammitglied), das noch keine Kind org zu spinnen ihre erste White-Label-Organisation. Eine prominente CTA-Button und ein Inline 'hier klicken' Link beide Route zu /network/create, und die Kopie zeigt auf das 'Meine {Zweig] n. Gated on userInfo.memberType === MEMBER + organisations.isTopLevel; bleibt versteckt, es sei denn /api/security/org/my-networks bestätigt, dass sie kein Kind besitzen org, und scheitert sicher (versteckt) auf jedem holen Fehler. Folgt dem Instrument Panel Designsprache (Personen-Akzent, kglass, Operator-Label, Haus Lockerend, reduziert-motion-gated). Strings unter home.firstOrg.
· VOIPService
TURN-REST Anmelde-Endpunkt für das mobile Softphone
GET /api/voip/turn/credentials prägt ephemere Coturn-Gleihs (HMAC-SHA1 über "<expiry" mit dem gemeinsamen statischen-Auth-Sekret) so muttersprachlich/zellulär WebRTC kann durch 47.181.8.84:3478 übertragen. Auth über den gleichen X-***-Token der SIP endpoint verwendet; Rücksendungen konfiguriert:falsch (nur STUN-only), wenn das Geheimnis fehlt. Wires KAMO_TURN_SECRET aus dem bestehenden *** (optional).
· SecurityService
Entlare per-org-PrimorColor + Logo URLs auf /my-networks
Jede org-Reihe trägt jetzt primärColor (Organization.colors.colorPri, '#'-prefixed zu config.json) und abgeleitetem LogoUrl/LogoSimpleUrl (Themen.<domain"/public/public/ Logos und per-org Hex-Kopf-Stärz-Brandfarben.
· MediaService
Snapshot Web-Chat Integrations-ID auf Support-Besucher + Ticket
Löst die WebChatIntegration durch Erstellung vonKeyHash (enabled-gefiltert, konsistent mit bootstrap()/AI-prompt Auflösung) einmal in erstellenSupportSession und stempelt seine ID auf beide PublicChatVisitor und SupportTicket für die Zuteilung pro Webseite. Null/blank keyHash oder keine passende Integration lässt die Spalten null.
· AIService
Per-Integration öffentliche KI-Prompt + Sitzungszuteilung
Upgrade der Public-Chat-System-prompt Wasserfall von per-org auf pro-integration: PublicAiChatController liest jetzt die X-Public-Chat-Key-Hash Header (nullable) weitergeleitet von APIService und gibt es an ************ weiter, das die WebChatIntegration von hash und bevorzugt seine aiSystemPrompt über die AiOrgSettings Standard, fallen zurück auf die generische prompt. Die behoben AiChatSession ist auch mit webChatIntegrationId für gestempelt stabile Zuordnung, die Schlüsselrotation übersteht. Extraktion der Wasserfall in eine statische, einheitsgeprüfte resolvePrompt Helfer (integration-wins / org-fallback / generisch-fallback / blank Handhabung).
· APIService
GET / api / Public Chat / Bootstrap Gateway Route
Bootstrap Endpunkt hinzufügen, der die bestehende ProxyWithAuth-Pipeline wiederverwenden (Schlüsselprüfung + Opt-in Ursprung + PUBLIC_CHAT Umfang + Tarif-Limit + X-Public-Chat-Key-Hash) und Proxys zum MediaService bootstrap Endpoint.
· MediaService
Public-chat bootstrap config resolver
Fügt einen internen GET ************ hinzu, der eine WebChatIntegration von X-Public-Chat-Key-Hash und gibt seine behoben design/besavior config (Standard-gefüllt via WebChatDefaultConfig.merge so ein Schlüssel ohne Integrationszeile macht immer noch wie das heutige Widget). Fällt zurück zum aktiven PublicChatApiKey's org, wenn keine Integration existiert; 404s, wenn der Schlüsselhash sich überhaupt nicht auflöst.
· MediaService
WebChatIntegration CRUD (Mints-Schlüssel + Integration, org-scoped)
Org-facing Management API für die Phase-2 Web-Chat Einstellungen Registerkarte. Auf erstellen, prägt die zugrunde liegende PublicChatApiKey (gleiche Key-Gen-Ansatz als PublicChatKeyController) neben der WebChatIntegration Reihe und gibt den Rohschlüssel einmal zurück. list/get/update/löschen sind org-ownership geprüft; Update sprengt den (Task-5) Bootstrap-Cache bei designConfig oder aktivierte Änderungen.
· kamo-shared-library
WEB_CHAT_INTEGRATION_ID-Beitragszugabe Spalten zu Besucher/Ticket/ai-session hinzufügen
· kamo-shared-library
WebChatIntegration Einheit + Repo + DTO + Standard Design Konfiguration
· kamo-internal
"Access Copilot Mobile App" Einstiegspunkte zu Hause + NavPri hinzufügen
Beide Flächen senden eine "Open-Interaction-Center"-Veranstaltung aus, die NavTop hört für das Interaction Center auf der Registerkarte Setup Mobile App zu öffnen. Home zeigt eine Beschriftete Pille unter der Tapete Kontrollen; NavPri zeigt ein Logo-Symbol unter der Testpille (Etikett, wenn erweitert, Tooltip, wenn zusammengebrochen). Beide von der ALLOW_MOBILE_ACCESS rechts.
· kamo-internal
Passwort-Gate QR, einzeiler Reiter, Logo-linker Kopf, 10-min Code
- Mitglied muss sein Passwort erneut eingeben (server-verifiziert über /api/mobile-access-otk, die den OTK nur bei Erfolg prägt) bevor der QR aufgedeckt wird, verhindert jemanden an einem bereits signierten Computer vom Greifen. - QR/OTK hat jetzt 10 Minuten (600s) das Leben; Countdown dann wieder schaltet. - Tab-Etikett zu einer Zeile gezwungen; Logo verschoben links des Titels, um vertikalen Raum zu sparen; entfernte die 'Konfigurieren für' Pille.
· SecurityService
POST ************ - Gate Mobiler Copilot QR
Überprüft das eigene Passwort des Anrufers (PasswortEncoder.matches gegen das ihrer Sitzung Benutzer) ohne etwas zu ändern. Wird von der Mobile-Access-otk BFF-Route so Setup QR wird erst nach erneuter Bestätigung des Passworts geprägt.
· kamo-internal
Mobilen Zugriffs-Tab einbauen - QR zur Installation + Auto-Konfiguration Mobile Copilot
Neuer 3. Tab in NavTopPanel (Gat von ALLOW_MOBILE_ACCESS rechts): zeigt einen Branded QR-Kodierung einer kurzlebigen OTK Deep Link (kamocopilot://configure), die die Mitglied auf ihrem Handy und die App standardmäßig auf die aktuelle org. Auto-Auffrischung das OTK vor Ablauf; poliertes MUI-Layout mit der Primärfarbe der org. Addiert
· kamo-shared-library
ALLOW_MOBILE_ACCESS (167) allgemein für Mobile Copilot hinzufügen
Neuer RoleRightType (serviceType=Null - Allgemeine Gruppe) gating the 'Setup Mobile Access' Interaktion-Center Registerkarte. RoleRightsSyncService verfüllt es für alle Rollen auf SecurityService Neustart; erscheint unter General Permissions im Rolleneditor.
· AIService
Per-Or-Anruf, Mensch-Handoff auf keinen Anbieter, anon tägliche Nachricht Kappe
· kamo-shared-library
Anon-Nutzungszählabfrage für öffentliche Web-Chat-Kontingente hinzufügen
· APIService
Verifizieren *** PoW am Rand auf öffentliche Sitzung erstellen (erzwungen, wenn Nutzlast vorhanden)
· MediaService
Bust APIService Schlüssel-Cache sofort auf Public-Chat-Taste toggle/löschen
· MediaService
Dauer der Erstellung von Schlüssel-Hist auf Public-Chat-Besucher + Ticket für die Zuteilung
· kamo-shared-library
Fügen Sie publicDailyMessageCap zu AiOrgSettings für anon Web-Chat-Kontingent

Euer Universum wartet.
Fügen Sie Produkte hinzu, wann immer Sie möchten – keine Migration, keine neuen Anmeldungen.
Für immer kostenlos – keine Kreditkarte erforderlich