Changelog
Qué hay de nuevo.
Cada mejora de la plataforma, a medida que se envía.
· kamo-shared-library
Añadir la entidad LeadCallback, status enum y repositorio
Respalda la función de devolución de llamada de visión de plomo: un récord de callback de propiedad de plomo (PENDING/CONTACTED/CANCELED) teclado de plomoUid, con una referencia suave a el evento del calendario de EmailService espejo.
· kamo-internal
Crear una sesión para chats de grupo abiertas por miembrosIds
ChatTool ignoró accesorios.memberIds: un grupo abierto llegó con un vacío userId and no sessionGuid, por lo que el 1:1 createSession se rescató temprano y el la ventana nunca tuvo una sesión. Ahora cuando miembroIds está presente ChatTool resuelve la sesión a través de POST /sessions/chat/find-or-create . memberIds . (el mismo punto final de la ruta inicial de ChatBox, MembresMemberIds, utiliza; el backend añade el que se llama). La lista de miembros está clavada como una cuerda estable ordenada por lo que el efecto no vuelve a disparar en la identidad de la matriz, y los flujos de guid resueltos a través de la devolución existente para que la ventana de grupo sea GUID-anclada para desupr.
· APIService
Paso público para el correo electrónico de la llamada al proveedor de OAuth
Adelante GET ********** a EmailService sesión sin sesiones (strips auth, sin seguir dirección), reflejando el callback RingCentral OAuth. Este es el URI de redirable de redirijo público registrado con Microsoft/Google/Zoho.
· EmailService
Redirija pública fija . gateway-warded callback
El correo electrónico de la plataforma OAuth (Microsoft 365 / Google / Zoho) no tenía público válido redireccionar URI: la redirección se derivaba del host de solicitud, que en prod es la dirección de servicio clúster-internal, y el único manejador de devolución de llamada era Sólo POST. Añadir un único URI de redireccionable fijo y públicamente utilizado para ambos la solicitud de autorización y el intercambio simónico, y una devolución pública de GET que el proveedor redirija el navegador a (org se lleva en estado, por lo que no se requiere sesión). Devuelve una página HTML de autocierre.
· kamo-internal
Puerta lidera la información de contacto mediante asignación y nuevos derechos de privacidad
Espejo los tres nuevos derechos de CRM. En la página de detalles de plomo, máscara/bloquea el Contacto principal, direcciones de correo y campos de direcciones de la propiedad para pistas no asignado al miembro actual a menos que tengan la vista/editar derechos de contacto (y, para pistas no asignadas, VIEW-UNASSIGNED-LEADS); El campo estatal siempre es visible. Cambiar la cádita de la cronel de Assignment a ASSIGN-LEADS. En la cuadrícula / deriva, puerta la opción de filtro sin asignar por VIEW-UNASSIGNED-LEADS, suelta los filtros de correo electrónico/street ahora vacía y el valor de la columna de correo electrónico, y mostrar el estado de envío de datos de propiedad a través de una voltereta.
· SecurityService
Aplicar los derechos de privacidad de contacto-info de contacto
getAllLeads ahora devuelve la magra LeadListDTO y esconde pistas no asignadas de miembros sin VERDAZADOTMLADAS. getLeadById masks contact info (estado preservado) para pistas no asignadas al llamante a menos que tener a ViEW.LEAD-CONTACT-INFO-OTHERS, y 403s líderes no asignados para aquellos carente de la actualización de las puertas de ley de la nueva asignación manual de las puertas de Líder (ASSIGN-LEADS) y las ediciones de información de contacto **************** contar los campos de propiedad hipotecaria sólo cuando realmente cambió. Dios, el bypass.
· kamo-shared-library
Línos de los derechos de privacidad de la información de contacto principal . Lista inclinación DTO
Añadir tres derechos de CRM (161-163): "Asignado a otros: Ver/Editar plomo Contact Info" y "View Unssigned Leads". Añadir LeadListDTO . proyección para la red /leads que no lleva información de contacto excepto la el campo estatal. Añadir ************* para desnudar el teléfono/ Dirección de e-mail/mailing.propperty (conservado en el estado) para lectores cerrados.
· kamo-register
Envíe el tipo de membresía desde los caminos /miembro y /equipo
/Inscripción de equipos crean un TEAM-MEMBER (creado PROSPECT, pendiente de activación del administrador); /miembro Las insérveas crean un miembro. RegisterFlow toma un miembroType prop suministrado por cada ruta envuelve e incluyelo en el cuerpo de solicitud de registro; el backend crea la coincidencia Tipo de membresía.
· SecurityService
/equia crea un TEAM-MEMBER (PROSPECT), /member crea un MIEMBROS
Registro público ahora honra al miembroTipo el sitio de registro envía (del /miembro vs /team path): /equipo crea un TEAM-MEMBER como PROSPECT, por lo que un administrador debe activarlos antes de que puedan iniciar sesión (por la puerta de entrada de entrada) y /member crea una base. Aplicado a las vías de reutilización de nuevos usuarios y existentes a través de crearRegistraMembership(). El el espejo de protección se mantiene sin cambios (siempre una base, y saltó cuando el org es su propio proveedor de seguridad). Anteriormente cada registro de registro creó una base, por lo que un solicitante /equipo aterrizó como un Y luego no se pudo añadir como miembro del equipo a través de la IU (409 ya-a-miembro).
· SecurityService
Exponga extensión telefónica de trabajo de miembros del equipo en equipos-miembros-contratistas
El filtro /leads Agent necesita la extensión del teléfono de trabajo para etiquetar las opciones como "Nombre (ext 8080) ". La extensión ya existe en TeamMember (getPhoneWorkExtension) pero no fue serializado - sólo el número desnudo era.
· kamo-internal
Solicitar apoyo popup muestra temas compartidos de parent-org
Señalan el menú menú menú en el nuevo /api/support/topics/ endpoint disponible (propio-org . . . . . . . . . . . . . . . . para que los usuarios de niños-org pueden ponerse en contacto con el apoyo de su padre org a través de la el tema configurado de los padres.
· MediaService
Surface parent-org temas compartidos en la ventana de apoyo a la petición
Usuarios de Child-org no pudieron ver temas de apoyo compartido de su padre org (asignToOwnOrg=false) al solicitar apoyo, porque el popup solamente Lía temas propios. Añadir GET /api/support/topics/available (propiedad de parent-compartido, no MANAGE-SUPPORT gate) y arreglar getParentOrgTopics para usar la corregida AssignToOwnOrgConseguir. Presentación contra un parentesco compartido El tema ya dirige el ticket a la org padre a través de createTicket.
· SecurityService
Nuevos orgs de niño heredan la seguridad de sus padresProvider
Al crear un niño org de kamo-internal, establezca la seguridad de la nueva orgProvider a la seguridad de la org de origenProvider (el org que ha creado bajo) en lugar de dejarlo por defecto a sí mismo. Parejas con el relleno de datos que apunta a cada org existente seguridadProvidador en el KamoCRM org de nivel superior, por lo que la membresía se compromete con los todos los orgs y sus futuros hijos.
· kamo-login
Mostrar aviso vinculado a la cuenta en ?linked=1
Cuando se registra la conexión de una cuenta existente a un nuevo org, se rediride aquí con ?linked=1. Mostrar "Ya tienes una cuenta de Kamo. - Sí. Inicia sesión con tu contraseña existente". y prellene el correo electrónico. Espejos de los existentes Manejo verificado.
· kamo-register
Maneda respuesta vinculada a la cuenta para los usuarios existentes
Cuando el correo electrónico introducido ya pertenece a una cuenta ACTIVE, el backend enlaza esto org a ella y devuelve ACCOUNT-LINKED. Ruta a los usuarios directamente a iniciar sesión (?linked=1) en lugar del flujo de verificación de correo electrónico. contraseña. Los nuevos usuarios y los usuarios-titir-reclamaciones de registro mantienen la ruta de verificación-email.
· kamo-internal
Miembro de alambre/miembro del equipo crear .
- Añadir las rutas de proxy POST desaparecidas /api/security/members/crear y /-equipo-miembro (estos 405'd antes, así que la creación nunca llegó al backend). Estado de manejo de reutilización de la forma. funciona. - MemberCreateForm: arreglar el campo de Estado de membresía donde la etiqueta flotante se superpuso el marcador de posición "Seleccionar un estado" (etiqueta de reducción de la entrada exterior), y añadir un Observe que sólo los miembros del equipo "Activo" pueden iniciar sesión.
· SecurityService
Reutilizar los usuarios existentes, espejo a la seguridadProvidador, inicio de inicio de equipo de la puerta
Reutilizar (sin cuentas duplicadas para la misma persona): - MemberCreateController reutiliza ahora a un usuario existente por correo electrónico personal caso-INSENSITIVLY (fue correos electrónicos de casos sensibles al legado perdidos). - SecurityController.register reutiliza una cuenta existente en lugar de crear siempre un nuevo usuario: ya un miembro de la zona de org - 409 ALREADY-MEMBER ("agrada sesión"); cuenta ACTIVE existente - . vincular el org, mantener su contraseña, devolver ACCOUNT-LINKED; marcador de posición no activado (nunca verificado Y nunca se ingresó en sesión) - . reclamarlo con el contraseña mecanografiada. Una forma pública nunca puede sobrescribir la contraseña global de una cuenta activa. securityProvider espejo: - Tanto la creación interna/miembro del equipo como el registro público que ahora se llaman **************** por lo que cada nueva membresía también aterriza bajo la seguridad de la org de la organización (como miembro de base). Puerta de activación del miembro del equipo: - iniciar sesión bloquea un TeamMember cuyo estado de membresía -= ACTIVE con "Tu cuenta existe, pero no está activa en este momento". Pasan los miembros regulares y los miembros del equipo activo. Erección de resolución de org (hermanos X-Forwarded-Host): - getExternalProviders y PortalController.resolveOrg usan el alias-fallback resolver y suelta el getServerName() fail-open (fracasado en lugar de filtrar la plataforma org).
· kamo-shared-library
Membresía SecurityProvider mejo el espejo de la reutilización/partch groundwork
- ******************* userId): espere un usuario en la seguridad de orgProvider org como miembro de base (dedupedido; sinop cuando el org se asegura o el usuario ya está allí). Respalda la regla de que cada nuevo la membresía también aterriza bajo la plataforma/security-provider org. - **************** case-insensible, busto de correo electrónico multiplicidad segura para la reutilización de cuentas cruzadas (el correo electrónico no es global único, por lo que un buscador único opcional tiraría). - **************** para restablecer la seguridadProvider a sí mismo cada org edit (sólo backfill cuando es nulo), por lo que un niño org mantiene su vínculo con el proveedor de la plataforma del espejo depende.
· kamo-internal
Pestaña Tareas de alambre a un backend real . . . . . . . . . .
Añade las próximas rutas de representación para /leads/-id-/.kId[/--taskId] (la pestaña getTasks/ añadirLas llamadas de Task/updateTask/completeTask fueron 404ing), una acción de deleteTask en el la cuadrícula de tareas y deriva la estadística de 'Open Tasks' de la lista de tareas en vivo para que se quede corrientes como tareas de refetch de TASKK-CHANGED eventos.
· SecurityService
Tareas de lidero REST API - TASK-CHANGED en tiempo real
Implementa el backend la pestaña /leads/view Tasks ya estaba llamando, pero que Nunca existió: GET/POST/PUT/DELETE ************* (LeadTaskController - LeadTaskService), org-guarded como los endpoints de bloqueo. Cada creación/actualizado/borrado emite TASK-CHANGED para que las vistas de plomo abiertas se refresque en directo.
· kamo-shared-library
Entidad LeadTask para tareas de seguimiento de plomo
Respalda la pestaña /leads/view Tasks (anteriormente un talón solo frontend sin persistencia). LeadTask (table LEAD-TASK) refleja la forma frontend TaskItem ******************* . LeadTaskDTO y repositorio. Mutaciones de tareas transmiten TASK-CHANGED en el canal de plomo existente en tiempo real.
· kamo-internal
Comprar en tiempo real y vista de plomo en vivo con cerraduras de edición porpano
La cuadrícula /leads está ahora totalmente en vivo a través de websocket (NATS-STOMP): filas add/remove/actualización contra el filtro activo automáticamente y las celdas cambiadas parpadeando una vez para otros las ediciones de los miembros; se elimina el botón de actualización de muerte. /leads/view/[id] se aplica en vivo actualizaciones de plomo/history/task/stats y ganancias per-pan excluyentes de edición exclusiva con un Lista de 'actuales edición', cuenta atrás en vivo y salve automáticamente en ocioso/desconexión. Añade usoLeadsCon gancho en tiempo, leadLocksApi - Siguientes rutas proxy, y un reutilizable MemberContactCard (nombre de extensión de trabajo, click-to-call softphone / chat abierto). Las actualizaciones de plomo se fusionan sin reservas de modo que las cargas útiles parciales nunca en blanco.
· MediaService
Org-guard the /topic/leads/rt/-orgId- en tiempo real
Guarda de sub-inquilino SUBSCRIBE para el nuevo tema principal en tiempo real, reflejando el existente /tópico/social/de alimentación de guardia: un miembro sólo puede suscribirse a los suyos La corriente de plomo de org. El existente ************* ya relés security.leads.rt.* a /topic/leads/rt/*, por lo que no se necesita ningún cambio de relé.
· SecurityService
API REST REST de perpaneed de edición automática
Adds /api/security/leads/-id/locks **************** respaldado por LeadLockService: exclusiva reserva per-pane, borrador-buffering heartbeats que restablecer un TTL de 5 minutos ocioso, y un barredor programado que se guarda automáticamente el amortiguado borrador y lanzamientos en ocioso-expiring o presencia-grace timeout. La apariencia de mentiroso es emitida como época absoluta. Config bajo plomo.lock.* (configmap).
· kamo-shared-library
Publicación de NATS en tiempo real - entidad de edición por panele
Publicar eventos de pista de plomo org-scoped en security.leads.rt.-orgIdá (creado/updado/ eliminado con teclas de campo cambiado, historia-aprobada) por lo que la rejilla /leads y /leads/view page puede actualizarse en vivo. ************* ahora devuelve las claves de registro modificadas utilizadas para conducir el parpadeo de UI. Añade la entidad LeadPaneLock (table LEAD-PANE-LOCK, única (LEAD-UID,PANE)) y repositorio que respalda las cerraduras exclusivas de edición per-pane; el editor emite el idle-expiry como época absoluta millis (número seguro de zona horaria) para la cuenta regresiva.
· kamo-internal
Integrar las pestañas primarias en la cabecera en las páginas de Style A restantes
Seguimiento del barrido Style A-B, cubriendo páginas que no se derutan a través ConfiguraciónVista: - /kb: KbNavBar se convierte en una cabecera de héroe de gradiente con los Artículos/Recursos/ Revisa las fichas integradas y la acción del Nuevo Artículo Armonización del derecho; diseño consigue el fondo radial compartido. - ************* el mini cabecero de la flecha trasera . General/ Domains MUI pestañas se convierten en una cabecera de héroe de gradiente con pestañas integradas. - /leads/view/[id]: las pestañas de registro primario se mueven en el gradiente HeaderBar cabecera; el editor de estado en línea/sub-estatuto se adjunta a la cabeza acciones alineadas con la derecha (estilo para el gradiente), sustituyendo la separación Tarjeta de pestañas.
· kamo-internal
Reubicar barras de conteo de fondo en la cabecera a través de lo social, importa pestañas
Aplica el tratamiento con los proveedores-tab a la superficie de los ajustes de CRM de hermanos para que el "x x y" barra de resumen en la parte inferior ya no come bienes raíces de página: - Conexecciones sociales e importaciones automatizadas: acciones de cabecera en la parte inferior-alineación y Las pilas de línea de conteo directamente por encima de la actualización. - Sub-tabs de Importaciones manuales (Impalgas, Plantillas de Importación): el conteo se mueve a la izquierda del icono de la actualización solitaria (espacio-entre), dejando caer la barra inferior.
· kamo-internal
Máve el conteo de proveedores/productos por encima de las acciones de cabecera, actualización delineación inferior . Añadir Vólor
Recaptura la página de bienes raíces la barra de resumen de abajo independiente a la que se utiliza ocupar la línea "x vendors x products" ahora se apila por encima de la acción botones en la cabecera, y los botones alinear hacia abajo con el bloque de título.
· kamo-internal
Integrar las pestañas primarias en el encabezado de la página (Etil B) a través de páginas de estilo A
Cada página de gradiente-héroe que hizo sus pestañas primarias en una tarjeta separada debajo de la cabecera ahora los hace dentro de la cabecera de gradiente en sí, a juego /cuenta y /apoto. - ConfiguraciónView: barra de pizarra se movió en la cabecera de gradiente (convierte todo 23 /settings/* páginas a la vez); columna de ayuda, headerAction, backHref, y tab icono/brillo/alinelos desconservados extras dejuste; hideTítu aún mantiene sus fichas. - /leads/reports: las fichas de los informes se movieron en la cabecera. - /commerce (PipelineView): pestañas por mercado (con iconos verticales) movidas en la cabecera; estados de un solo mercado/a bordo sin cambios.
· kamo-internal
La flecha trasera en la cabecera vuelve a /líleads
Añadir un backHref/backTooltip opcional a ConfiguraciónView que renderiza un blanco flecha posterior izquierda del título, y alambre la página de configuración de CRM para enviar el de vuelta a /lías. Tooltip reutiliza el localizado existente leads.view.header.backToBrowser ('Volver a liderar') cadena.

Tu universo está esperando.
Comience gratis en minutos y agregue productos cuando esté listo, sin migración ni nuevos inicios de sesión.
Gratis para siempre: no se requiere tarjeta de crédito