Przejdź do treści
KAMOUniverse

Changelog

Co nowego.

Każde ulepszenie platformy, jak to wysyła.

  1. · kamo-internal

    Utwórz sesję dla czatów grupowych otwartych przez memberIds

    ChatTool zignorował rekwizyty.memberIds: grupa otwarta z pustą userId i brak sesjiGuid, więc 1:1 creates bać się wcześnie i Okno nigdy nie dostało sesji. Teraz, gdy memberIds jest obecny ChatTool Udziela sesji za pośrednictwem POST /sessions/chat/find-or-create ? memberIds (w tym samym punkcie końcowym używa się pierwszej ścieżki ChatBox; backend dodaje Sam rozmówca). Lista członków jest kluczowana jako stabilny posortowany ciąg znaków, więc Efekt nie na nowo natrzał na identyfikację tablicy, a rozwiązane przepływy przewodowe Za pomocą istniejącego zapisu, aby okno grupy było zakotwiczane w GUID Dedup.

  2. · APIService

    Przejść publiczny dla wiadomości e-mail OAuth callback

    Przewiń GET - do sesji EmailService bezzaowo (paski auth, brak przekierowania), odzwierciedlając oddzwoń RingCentral OAuth. Jest to stały publiczny przekierowanie URI zarejestrowane w Microsoft/Google/Zoho.

  3. · EmailService

    Naprawiono publiczne przekierowanie + zwrotne z powrotem na bramę

    Poczta elektroniczna Platformy OAuth (Microsoft 365 / Google / Zoho) nie miała ważnego miejsca publicznego przekierowanie URI: przekierowanie pochodziło z hosta wniosku, który w prod Jest to adres służby współżytku klastra, a jedynym operatorem callback był Tylko na nie. Dodaj pojedynczy stały, osiągalny publiczny przekierowanie URI używany dla obu Wniosek o pozwolenie i wymianę tokenów oraz publiczne oddzwonień GET Na adres dostawca przekierowuje przeglądarkę (org jest przenoszona w stanie, więc nie Sesja jest już wymagana). Zwraca samozamykającą się stronę HTML.

  4. · kamo-internal

    Gate lead contact-info przez przydział + nowe prawa do prywatności

    Odzwierciedlać trzy nowe prawa CRM. Na stronie głównej szczegółów, mask/zablokuj Podstawowe pola Kontaktu, Adres e-mail i pola adresu nieruchomości dla leadów Nieprzypisany do obecnego członka, chyba że posiada widok/edycję Prawa do kontaktu (i, dla nieprzydzielonych leadów, VIEW_UNASSIGNED_LEADS); Pole państwowe jest zawsze widoczne. Przełącz przydział bramy przydziału przydziału Assignment-pane Przejdź do ASSIGN_LEADS. Na siatce /liads, bramka do filtra Unassigned VIEW_UNASSIGNED_LEADS, upuść teraz puste filtry e-mail/ulica i Wartość kolumny e-mail i wyświetlaj nazwę nieruchomości-vs-mailing za pośrednictwem przewracania.

  5. · SecurityService

    Enforce lead contact-info praw do prywatności

    getAllLeads teraz zwraca szczupły LeadListDTO i ukrywa nieprzypisane tropy Od członków bez VIEW_UNASSIGNED_LEADS. getLeadByD. Kontakt masekLeadByD Informacje (zachwycony stan) dla przewodów nieprzydzielonych dzwoniącemu Utrzymuje VIEW_LEAD_CONTACT_INFO_OTHERS i 403s nieprzypisane leady dla tych Brak VIEW_UNASSIGNED_LEADS. aktualizacjiObraty bramek ręcznych zmiany (ASSIGN_LEADS) i edycje infotencji kontaktowych Liczenie pól nieruchomości hipotecznych tylko wtedy, gdy faktycznie się zmieniło. Obejście Boga.

  6. · kamo-shared-library

    Lead contact-info praw do prywatności + lista lean DTO

    Dodaj trzy prawa CRM (161-163): "Zasygnowane do innych: Widok / Edytuj Ołów Kontakt Info” i „Zobacz Owoce podpisane Unassign”. Dodaj LeadListDTO — szczupła Projekcja siatki /liads bez informacji kontaktowych z wyjątkiem Pole stanowe. Dodaj do striptizerki telefonu / Adres e-mail/mailing+property adres (zapasa państwa) dla zamkniętych czytelników.

  7. · kamo-register

    Wyślij typ członkostwa ze ścieżek /członka i /zespołu

    /zapisy zespołu tworzą TEAM_MEMBER (utworzony PROSPECT, oczekujący na aktywację administratora); / członek Zapisy tworzą MEMBER. RegisterFlow przyjmuje rekwizyt typu użytkownika dostarczony przez każdą ścieżkę Owijawka i włącza je do organu wnioskującego o rejestrację; backend tworzy dopasowanie Rodzaj członkostwa.

  8. · SecurityService

    /team tworzy TEAM_MEMBER (PROSPECT), /member tworzy datę porozumiewcza

    Rejestracja publiczna honoruje teraz członkaType, który wysyła strona rejestru (od / członka vs /team tworzy TEAM_MEMBER — jako PROSPECT, więc administrator musi je aktywować Zanim będą mogli się zalogować (na bramkę logowania) – i / członek tworzy numer podstawowy. Stosowany Zarówno na nowych, jak i istniejących ścieżkach użytkowania użytkowników poprzez utworzenieRegistrationMembership(). W tym, w powt. w poty, w pog w, w pot w tym, z w, w, w pot w, w pot w, w pot w, w pot w, w pot w, w pot w, w pot w, w Zwierciedło zapewnia ochronęNieruchomo (zawsze jest to miejsce w numerze bazy i pominięty, gdy org jest Własny dostawca zabezpieczeń). Wcześniej każda rejestracja utworzyła podstawowy MEMBER, więc wnioskodawca / drużynowy wylądował jako Członkostwo, a następnie nie można było dodać jako członek zespołu za pośrednictwem UI (409 już-członkostwo).

  9. · SecurityService

    Rozszerzenie telefonu zespołowego na zespół w zespole-członków-kontrakonta

    Filtr agenta /leads potrzebuje rozszerzenia telefonu roboczego do opcji etykietowania jako "Nazwij (odstępna 8080)". Rozszerzenie istnieje już w TeamMember (getPhoneWorkExtension), ale nie był serializowany – tylko goły numer był.

  10. · kamo-internal

    Popup-sługa pokazuje rodzic-org udostępnione tematy

    Wskaż, że temat sprzedaży biletu-rezynacji w nowym /api/support/topics/available punkt końcowy (własny-org + tematy współdzielone przez rodzicielstwo) Użytkownicy dzieci-org mogą skontaktować się z wsparciem swojego rodzica org org poprzez Skonfigurowany temat rodzica.

  11. · MediaService

    Surface parent-org podzieliły się tematami w popupie wspierającej zapytanie

    Użytkownicy Child-org nie mogli zobaczyć wspólnych tematów wsparcia dla rodziców org (przypisToOwnOrg-false) podczas żądania wsparcia, ponieważ tylko wyskakujące okienko Pobrane tematy własne-org. Dodaj GET /api/support/topics/dostępne (własne + Rogo-wspólne, bez MANAGE_SUPPORT gate) i napraw getParentOrgTopics do użycia Poprawione zapytanie AssignToOwnOrgFalse. Złożenie przeciwko rodzicowi-podzielonemu Temat już kieruje bilet do rodzica org za pośrednictwem createTicket.

  12. · SecurityService

    Nowe orgi dziecka dziedziczą bezpieczeństwo rodzicaProvidera

    Podczas tworzenia orgi dziecka z kamo-internal, ustaw bezpieczeństwo nowego orgiProvidera na Ochrona rodzica org (oznacz, pod którym jest stworzony), zamiast pozwolić mu Nie domyślnie wobec siebie. Pary z zapasem danych, które wyznaczają wszystkie istniejące orgi Zapewnienie bezpieczeństwa na najwyższym poziomie KamoCRM org, więc członkostwo odzwierciedla dla Wszystkie orgi i ich przyszłe dzieci.

  13. · kamo-login

    Pokaż powiadomienie związane z kontem na ?linked 1

    Po zarejestrowaniu istniejącego konta z nowym orgiem, przekierowuje tutaj z ?linked nr 1. Pokaż "Masz już konto Kamo - dodaliśmy tę organizację do To się stanie. Zaloguj się za pomocą istniejącego hasła." i wstępnie wypełnij wiadomość e-mail. Lustrami istniejące Obsługa ?email_verified.

  14. · kamo-register

    Obsługa odpowiedzi powiązanej z kontami dla istniejących użytkowników

    Gdy wprowadzona wiadomość e-mail jest już do konta ACTIVE, backend łączy to org do niego i zwraca KONTA_LINKED. Trasuj tych użytkowników prosto do logowania (?linked1) zamiast przepływu weryfikacji e-mail – logują się wraz ze swoją istniejącą Hasło. Nowi użytkownicy i rejestracje zastępców-znośniki utrzymują ścieżkę weryfikacji e-mail.

  15. · kamo-internal

    Podsłuchijczłonek / członek zespołu tworząc + Prospect-gate UI

    - Dodaj brakujące trasy proxy POST /api/security/members/create oraz /create-team-członek zespołu (te 405'd wcześniej, więc stworzenie nigdy nie dotarło do zaplecza). Status + ciało JSON przechodzi przez tak, aby 409 "już członek" ponownie wykorzystała formę - Działa. - MemberCreateForm: napraw pole Status członkostwa, na którym nałożyła się pływająca etykieta Oznaczenie zastępcze "Wybierz status" (sygnatariuszu kurki + wycięte OutlinedInput) i dodaj Należy pamiętać, że tylko "Aktywni" członkowie zespołu mogą się zalogować.

  16. · SecurityService

    Ponowne wykorzystanie istniejących użytkowników, lustro do zabezpieczeniaProvider, zalogin.

    Ponowne użycie (bez zduplikowanych kont dla tej samej osoby): - MemberCreateController ponownie wykorzystuje istniejącego użytkownika za pomocą osobistej poczty e-mail Sprawa-INSENSITIVELY (była wrażliwa na przypadek, brakujące starsze e-maile mixed-case). - SecurityController.register ponownie korzysta z istniejącego konta zamiast zawsze tworzyć nowy użytkownik: już członek org -> 409 ALREADY_MEMBER ("pros się zaloguj"); istniejące konto ACTIVE -> link org, zachować hasło, zwrócić konto_LINKED; Nieaktywowany symbol zastępczy (nigdy nie zweryfikowany ORAZ nigdy nie zalogował się) -> roszczą się do tego Wpisane hasło. Formularz publiczny nigdy nie może nadać globalnego hasła aktywnego konta. BezpieczeństwoPrzeszust dla zapewnienia: - Zarówno utworzenie członków / członków zespołu, jak i rejestr publiczny dzwonią teraz - tak więc każde nowe członkostwo również ląduje Pod adresem orwidenta org (jako podstawowy Członek). Brama aktywacyjna człon-członka zespołu: - login blokuje członka TeamMem członkowskiego, którego status członkostwa! ACTIVE z "Twoje konto Istnieje, ale nie jest aktywny w tym czasie”. Zwykli członkowie i aktywni członkowie zespołu przechodzą. Utwardnienie Org-resolution (X-Forwarded-Host rodzeństwo): - openanters i PortalController.resolveOrg użyj dezorientującego alias-fallback i upuść getServerName() fail-open (zawiesić zamkniętą zamiast przeciekać na platformę org).

  17. · kamo-shared-library

    Wzemne członkostwa w zabezpieczeniach + ponowne wykorzystanie / pochwy

    - userId): odwróć uwagę użytkownika orzistra ochrony org org jako podstawowy Członek (zadeptowany; no-op, gdy org Zabezpiecza się lub użytkownik już tam jest). Popara zasadę, że każdy nowy Członkostwo jest również w ramach platformy/zapalca zabezpieczenia org. - - niewrażliwe na przypadki, Bezpieczne posiłkowe adresy e-mail dla ponownego użycia konta cross-org (e-mail nie jest globalnie Wyjątkowy, więc jednoopysywnik rzucał). - - przestań resetować bezpieczeństwoProjer do siebie Każda edycja org (tylko zasypanie zapasowe, gdy jest zerowe), więc org dziecięcy zachowuje swój link do Od dostawcy platformy zależy lustro.

  18. · kamo-internal

    Zakładka Zadań druciek do prawdziwego zaplecza + delete akcji + liczba na żywo

    Dodaje Następne trasy proxy dla /liads/'id'/tasks[/ataskId] (zakładka getTasks/ addTask/updateTask/completeTask to 404ing), akcja deleteTask w Zasłona zadaniowa i czerpie statystykę "Otwarte zadania" z listy zadań na żywo, aby pozostała Aktualny jako TASK_CHANGED zdarzenia powtarzają zadania.

  19. · SecurityService

    Zadania Leadowe REST API + w czasie rzeczywistym TASK_CHANGED

    Wdraża zaplecza zakładkę /leads/view Tasks już dzwonił, ale to Nigdy nie istniał: GET/POST/PUT/DELETE (LeadTaskController + LeadTaskService) strzeżony jak punkty końcowe blokady. Każdy create/upend/delete emituje TASK_CHANGED, aby otworzyć widoki lead odświeży się na żywo.

  20. · kamo-shared-library

    Podmiot leadTask do zadań następczych

    Backs the /liads/view Tasks tab (wcześniej z przodu tylko stub z no Uporczywość). LeadTask (table LEAD_TASK) odzwierciedla frontendowy kształt TaskItem + LeadTaskDTO i repozytorium. Mutacje zadań nadają TASK_CHANGED na istniejącym wiodącym kanale w czasie rzeczywistym.

  21. · kamo-internal

    Datagrid w czasie rzeczywistym + widok na żywo z zamkami edycji per-pane

    /liads jest teraz w pełni na żywo przez websocket (NATS-STOMP): wiersze dodają/usuń/aktualnia Do aktywnego filtra automatycznie i zmienione komórki mrugają raz na inne Edycje członków; przycisk ślepego odświeżania jest usuwany. /leads/view/[id] ma zastosowanie na żywo Lead/history/takcję/stats aktualizuje i zyskuje ekskluzywne zamki edytujące z a) "Obecnie edytując" skład, odliczanie na żywo i automatyczne oszczędzanie na bezczynności / odłączaniu. Dodaje useLeadsRealtime hak, leadLocksApi + Następne trasy proxy i wielokrotnego użytku MemberContactCard (nazwisko + rozszerzenie robocze, click-to-call softphone / open-chat). Aktualizacje ołowiu łączą zwięzły z null-przechowywania, tak częściowe ładunki nigdy nie są puste komórki.

  22. · MediaService

    Org-guard the /topic/leads/rt/orgId ?subskrypcja w czasie rzeczywistym

    Cross-tenant SUBSCRIBE strażniczny dla nowego głównego tematu w czasie rzeczywistym, odzwierciedlający Istniejąca/ostrzeżenia /topij/społeczna: członek może subskrybować tylko własne Ołowiany strumień orgzaczny. Istniejące już : Przekaźniki security.leads.rt. do /topic/leads/rt/a, więc nie jest konieczna zmiana przekaźnika.

  23. · SecurityService

    Per-pane edit-lock REST API + automatyczny zamiatacz

    Dodaje /api/security/odźwierne/ogienia/zamki LeadLockService: ekskluzywna rezerwacja per-szenu, bicie serca, które Zresetuj 5-miliminowy TTL i planowaną zamiatacz, która automatycznie oszczędza buku Pojawi się i wydaj na czas bezczynności lub wygaśnięcie ważenia. Idle-wygaśnie jest Wymieszana jako absolutna epoka millis. Config under lead.lock. (configmap).

  24. · kamo-shared-library

    Wydanie NATS w czasie rzeczywistym + jednostka edycji per-pane

    Opublikuj org-scoped lead event na security.leads.rt.orgId (utworzony/aktualizowany/aktualizowany/ Usunięto z zmienionymi kluczami pola, za pomocą zapisanej w historii) tak: sektu /leads i /liads/view page może aktualizować na żywo. Zmienione klucze rejestru używane do kierowania mrugnięciem interfejsu użytkownika. Dodaje podmiot LeadPaneLock (table LEAD_PANE_LOCK, unikalny (LEAD_UID,PANE) i Repozytorium wspierające ekskluzywne zamki do edycji per-pane; wydawca emituje Wygaśnięcie bezczynności jako absolutny epokowy millis (numer bezpieczny w strefie czasowej) dla odliczania.

  25. · kamo-internal

    Zintegruj główne zakładki z nagłówkiem na pozostałych stronach Style A

    Następne do przeczesania stylu A-B, obejmujące strony, które nie przechodzą UstawieniaView: - /kb: KbNavBar staje się nagłówkiem gradient bohatera z Artykułami/Zasobami/ Zintegrowane karty Recenzje i działanie nowego artykułu w odpowiednim rodzaju; układ Okonie dzieli się promieniowe tło. - - mini nagłówek tylnej strzały + Ogólne/ Domeny zakładki MUI stają się nagłówkiem bohatera gradient ze zintegrowanymi zakładkami. - /leads/view/[id]: podstawowe karty rekordów przesuwają się do gradientu HeaderBar Nagłówek; edytor stanu / podstatusu jest dołączony do nagłówka Działania na właściwe (w stylu gradientu), zastępujące odrębną - Zakładka kartka.

  26. · kamo-internal

    Przeniesiej pręty dolnej liczenia do nagłówka w całym świecie, zakładki importu

    Stosuje obróbkę z taśmą dostawców do powierzchni ustawień CRM rodzeństwa, więc Samodzielny pasek podsumowujący "x ? y" na dole nie je już nieruchomości na stronie: - Połączenia społecznościowe i zautomatyzowane importy: działania nagłówkowe dolnej i dolnej linii Liczb linii stosuje się bezpośrednio nad przyciskami Refresh + Add/Crec. - Ręczny importuje pod-taby (Past Imports, Import Templates): liczba się przesuwa Lewa z ikony samotnego odświeżenia (kosmos- pomiędzy), upuszczając dolny pasek.

  27. · kamo-internal

    Przenieś dostawcę / liczbę produktów powyżej akcji nagłówka, odśwież dolny + Dodaj dostawcę

    Reuturetuje nieruchomość na stronie, do której używa się samodzielny dolny pasek podsumowania Zajmij — linia "x vendors - x produkty" teraz układa się ponad akcją Przyciski w nagłówku, a przyciski dolny-wyrównaj z blokiem tytułu.

  28. · kamo-internal

    Zintegruj podstawowe karty w nagłówku strony (Style B) na stronach Style A

    Każda strona gradient-bohatera, która renderowała swoje podstawowe zakładki w osobnej karcie Poniżej nagłówek teraz renderuje je wewnątrz samego nagłówka gradientu, dopasowując się /kon i / wsparcie. - UstawieniaView: tatkarka przesunęła się do nagłówka gradientu (przekonwertuje wszystkie nr 23 /settings/ strony na raz); kolumna pomocy, nagłówekAkcja, backHref i Tabu icon/glow/aprzypisW-sprawozdania Zachowane dodatki; hideTitle nadal trzyma swoje zakładki. - /leads/reports: zakładki raportów przesunęły się do nagłówka. - /hand (PipelineView): karty na rynek (z ikonami pionowymi) Nagłówek; stany jednorynkowe/nagranowe bez zmian.

  29. · kamo-internal

    Strzałka do tyłu w nagłówku powraca do /łowia

    Dodaj opcjonalny backHref/backTooltip do SettingsView, który renderuje biały Strzałka do tyłu po lewej stronie tytułu i prześlij stronę ustawień CRM, aby wysłać Członek z powrotem do /leads. Tooltip ponownie wykorzystywać istniejące zlokalizowane lead.view.header.backToBrowser ('Back to lead') string.

  30. · kamo-internal

    Odważne ustawienia "CRM:" prefiks, separatory rur, tylko podliska na kartach

    Przedstaw kartę ustawień CRM z pogrubionym napisem "Ustawienia CRM:" (nowy klucz), oddzielne linki z '' |' Zamiast nagiej przestrzeni i przełączaj linki z zawsze wystatekonymi na Niepowtkniona na hover.

Twój wszechświat czeka.

Rozpocznij bezpłatnie w kilka minut.Dodaj produkty, kiedy tylko będziesz gotowy — bez migracji, bez nowych logowań.

Bezpłatne na zawsze — nie wymaga karty kredytowej