Ir para o conteúdo
KAMOUniverse

Changelog

O que há de novo.

Cada melhoria para a plataforma, como ele envia.

  1. · SecurityService

    As demos marcaram uma pista, na liderança

    - Está bem. A seção Webinars da página principal chamou /api/webinar/leaders/{id} desde que foi escrito e nada o serviu — a API ao vivo responde 404, e o componente lê um 404 como "o recurso webinar está desligado" e não produz nada. Então, uma demo reservada do site de marketing criou um lead, ligou a reserva a ele, e nunca mostrou nele. Serviu aqui em vez de no MediaService, que possui as reservas, porque a pergunta que um chamador tem passar primeiro é "pode ler este lead": sessão válida, lead na organização do chamador, então LeadCommsReadGate — o próprio lead não precisa de direito, um não atribuído precisa de VER UNASSIGNED LEADS, alguém Precisa de VER LEAD CONTACT INFO OTHERS, Deus ignora. O portão é aquele que a guia de comunicações usa, chamado, não copiado. Negações são registradas através do PhiAccessAuditor; uma leitura não é, porque o A resposta não contém dados de contacto — a mesma linha que o endpoint de /communications/counts. LeadWebinarEntry é título, início/fim, nome do apresentador e os dois statuses. Nada sobre o participante além de saber se eles ainda estão vindo: o nome e endereço do visitante são Já está na página. Um visitante que cancela e registra novamente produz um segundo link para o mesmo participante linha, e a seção mostra que uma vez. Os cinco fracassos na suite completa. — que bandeiras **************** não esta) falham idênticamente na origem/principal sem esta Mudança. Este endpoint resolve uma sessão, de modo que a catraca não o nomeie. 2712 testes em verde.

  2. · kamo-internal

    Uma janela que o membro traz para as terras dianteiras com uma luz que você não pode perder

    Clicando em um hexhead, ou a tira de uma janela parada atrás, trouxe a janela para a frente com um leve sombra flor (strip) ou um 600ms brilho verde (hexhead) - fácil de perder enquanto as linhas rearranjam Dê a volta. Agora o quadro em si se ilumina: um anel dentro da borda da janela com dois cometas correndo rodeando-o, ondulando-se para fora da moldura e um brilho que mantém, cerca de 2,4s, em seguida, para fora. - Lit por cada gesto membro que traz uma janela para frente: um clique strip, um clique hexhead ou restaure (tool:focus) e qualquer abertura solicitada pelo membro. Os aumentos a chegar ficam quietos. - Um de cada vez: a mais nova chegada escurece a anterior, para que a janela iluminada seja sempre a única O membro acabou de ligar. - Movimento reduzido mantém a deixa e deixa cair o movimento: o anel e a luz brilhante para cima sem se mover. - Seu próprio par de cores em :root (--dock-arrival, --dock-arrival-ring); a barra de título já usa A marca, e um anel de marca desaparece ao longo dele.

  3. · kamo-shared-library

    Um selo visto por um apresentador, para que uma sessão reservada possa emblemá-los

    O número de webinars do ícone de suporte lê WebinarAttendee.dateViewed. Um apresentador não é uma fila de participantes, assim, uma sessão com eles foi e-mail e, em seguida, nunca mencionado no aplicativo: zero para a pessoa que tem de o gerir. **************************** (PRESENTER DATE VIEWED, null = ainda não mostrado) o apresentador atribuído, e ScheduledWebinarRepository ganha contaUnreviewedForPresenter / findUnreviewedForPresenter com o predicado das consultas dos participantes: o próprio apresentador SCHEDULED sessões sem selo. WebinarQueryParseTest analisa ambos contra o mapeamento. DDL, já aplicado ao banco de dados ao vivo como proprietário da tabela: TABELA ALTER public.scheduled webinar ADD COLUMN SE NÃO EXISTE a data apresentada(6) sem fuso horário; As cinco falhas na suite completa (SystemBugCountContractTest, PhiServiceTypeMappingTest, StorageDomainCoverageTest. RelatórioVisibilidade Teste) falhar de forma idêntica na origem/principal sem esta alteração.

  4. · kamo-marketing

    Um botão de demonstração ao vivo ao lado do Start Free Forever

    O herói doméstico ofereceu duas coisas: começar livre, ou ler os preços. Agora também oferece meia hora com uma pessoa. "Reservar uma demonstração ao vivo", com "30 minutos" em um segunda linha, senta-se à direita de Start Free Forever e abre /demo, o fluxo de reserva existente ("Meia hora com alguém que conhece o produto"). É o botão de vidro da tira CTA, a 56px de altura e raio. Iniciar Free permanece o primário. Os dois botões são agrupados com um intervalo de 12px, e Ver preços segue-los. O comprimento está em sua própria linha para a largura. Como uma linha, "Reserve um 30-Minute Live Demo" foi 291px e caiu em Start Free em 1280, 1366 e 1440 de largura. Duas linhas fazem 196px, e o par se encaixa na coluna de cópia de 1280 para cima e em 768. Só em 1024 (uma coluna de 361px) e em telefones faz empilhar por baixo. Medida em Chrome a 390, 768, 1024, 1280, 1366, 1440 e 1920, sem transbordar horizontalmente em qualquer um deles. Ver Preços agora envolve sua própria linha em larguras de laptop, e que expôs a sua border-bottom: TouchOtimized eleva o link para 44px de altura uma vez que a página é ocioso, então a borda sat 18px sob o texto e lido como um divisor. É um texto sublinhado agora, com o texto centrado no seu box. As chaves foram para o dicionário kamo-tradução primeiro (7ed8a400).

  5. · kamo-marketing

    Uma página para campanhas de e-mail ilimitadas e gotejamentos, vinculada de onde quer que pertença

    /email-marketing vende o que enviou em 2026-09-16 ( campanhas de difusão, gotejamento, enviando domínios): ilimitado, e 100% livre com Business e Enterprise. Um elemento ousado da página é o controle deslizante de cada página de preços de email-marketing abre com ("Como muitos contatos que você tem?"), exceto que movê-lo nunca muda a conta. Não cita ninguém. preço do outro, per 206f9f3: o argumento é o modelo de medição (camadas de contato, licenças de envio, automação mantida para planos superiores), e a única figura na página é o nosso $0. Tudo. As alegações foram verificadas em relação ao produto: - 14 gatilhos de gotejamento, enviar janelas no fuso horário do próprio contato, e condições de abertura / clique com pulo ou saída (dripCatalog). - Cinco das dez receitas, desenhadas com seus verdadeiros gatilhos, timings e saídas (dripRecipes.ts). - Um aquecimento de 14 dias com um freio de segurança em blocos e saltos (Aquecimentos, AquecimentoPlan). - Listar razões de higiene, rejeição/supressão de reclamações, cancelamento de assinatura de um clique e hosts SMTP personalizados. - "Unlimited" significa nenhum plano-based cap: nada em medidores de EmailService um org, e a página diz Que o aquecimento e enviar janelas definir o ritmo. Links em: o navegador e rodapé, uma categoria /features, um /cartão de produto, uma chamada sob o /pricing plan cards, o roteiro (Bulk Email Campaigns move-se para Lançado), o mapa do site e sitemap, e um nono cartão na página inicial de "Pare de Pagar por Nove Ferramentas Diferentes". Um servidor strip (EmailMarketingStrip) vai sob a matriz de características em cada comparação concorrente, sob "O que é realmente fornecido" em cada página do setor, em cinco termos glossários e em ambos os recursos artigos. PLATFORM CAPABILIDADES, que se autodenomina a lista do que KamoCRM fornece, agora lista E-mail marketing. Quatro páginas da indústria disseram que as gotas de gotejamento agora são praticáveis: cursos on-line, hotéis, fitness-studios e comércio electrónico. Sua cópia é corrigida, mantendo o que ainda não foi construído (plataforma de curso e gatilhos de frequência, tempo de permanência, segmentação LTV, SMS) como e cada item se move para uma -r3 i18nKey. Verificado em uma construção de produção local: cada guarda, uma rota pré-renderizada e um Chrome sem cabeça sonda (42 verificações) a 390, 1440 e 2560 de largura, sem rolagem horizontal, sem erros de consola, nenhuma chave de mensagem bruta, uso do teclado da barra deslizante e guias de receita, e um link no corpo da página de Cada página acima. O lado do dicionário é kamo-tradução-dicionário 3ecaefa5.

  6. · kamo-marketing

    Jogue o carretel kamo14, e deixe-o ser pausado

    O movimento cambaleante recortado (novo tiro logotipo de fechamento, caso contrário quadro idêntico, mesmo 66s tempo de execução e timings do capítulo) é publicado sob seu próprio nome. O kamo13 a escada é servida imutável e suas listas de reprodução e segmentos URLs o que quer que o mestre ?v= diz, então um substituto no local nunca alcançar um visitante de retorno. A abertura herói oferecido reiniciar e mudo, mas nenhuma maneira de parar o filme uma vez Estava a tocar. Um controle de pausa/play agora lidera a linha de controle, e tocando a imagem também a alterna; retomar mantém a posição. O controle segue os eventos de jogo/pausa do próprio elemento, por isso ele permanece direito quando a execução termina ou o navegador pausa a reprodução em si. Isto cobre ambas as páginas que incorporam o abertura (casa e página de taxas de Alto Nível); / relógio já pausa através da Controlos nativos.

  7. · KlusterServices

    Codifique o carretel kamo14

    O carretel de marketing foi recatado (novo tiro logotipo de fechamento) e carregado como público/kamo14.mp4. Obtém um novo nome em vez de substituir o kamo13 no lugar porque a escada é servida imutável: o ?v= do mestre não alcança o variantes de listas de reprodução ou segmentos, que mantêm as suas URLs relativas. O trabalho de codificação agora constrói público/hls/kamo14/ e kamo14-poster.*, e o MediaMTX live canal loops a escada kamo14. O nome do caminho live/kamo13 é inalterado.

  8. · kamo-internal

    Janelas que não se encaixam nas filas atrás dele

    Uma janela de ferramentas que não se encaixa na linha da frente agora está em uma fileira atrás dela, uma tira de título maior por linha: sua barra de título 42px e 10px do corpo mostrar acima a linha na frente, como as abas de uma pilha de pastas. Isto substitui o cascata, que colocou todas as janelas sobre a fileira e enterrou a maioria deles. As linhas são a ordem da janela estabelecida no primeiro ajuste (toolDockPlacement, layoutDockStack: uma janela vai para a linha mais dianteira com espaço para ele, então a primeira fila nunca fica meio vazia enquanto uma janela que se encaixa espera atrás. Cada linha partilha uma altura. Quando a tira mais traseira passasse pelo topo margem, cada janela dá lugar juntos, e a altura volta como o linhas vazias. A linha, o elevador e a altura da tira são escritos em cada janela no mesmo relé que dockX (dockRows), e nunca são persistidos. Quem está na frente é uma reordenação (toolDockTiers): - Um clique em uma tira troca lugares com a janela da frente o membro mais utilizado recentemente. A recorrência é rastreada apenas a partir de gestos de membros (dockMemberUse), porque o contador z também sobe para aumentos de entrada. - Uma janela que o membro abre, restaura de seu hexhead, coloca de volta do o painel, docas ou elevações de uma notificação está sentado na frente, negociando com a janela frontal usada LEAST recentemente. Janelas criadas por mensagens recebidas Vão para onde houver espaço, para que nunca tomem o lugar do que está em uso. - Uma gota na doca mantém o lugar onde foi largado; o menos recentemente janelas da frente usadas passo para trás para dar espaço. - Uma janela frontal fechada ou minimizada é substituída pela janela em pé Mais perto e nada se mexe. - Uma janela mais larga que vem para a frente, dá passos menos recentes para trás. até caber. No ecrã (ToolWindowShell, ToolDock): - Uma janela atrás é cortada à sua tira, que também é a sua área de sucesso. Sua o corpo está inerte, por isso não precisa de foco ou tecla e não pinta nenhuma barra de rolagem. Pinta sob todas as janelas da frente e nunca é dito que está focado. - O título da tira é um botão (para frente, teclado acessível), mostra a contagem não lida, e diminui com cada linha mais para trás. - Fecha, minimiza, maximiza e flutua botões agir sobre ele onde está. Um arrastar que começa em uma tira não é também um clique, e nenhum é um duplo-clique. - Vindo para a frente, a janela cai e se desdobra para o slot enquanto o negociado um dobra e se levanta para trás. Ambos funcionam na curva 340ms da doca, em seguida, um sombra florescer e uma varredura de luz marcam a chegada. Andar por uma tira levanta-a e descobre um pouco mais. Uma janela nascida por trás espreita por trás a linha na frente; um nascido na frente sobe para fora da borda inferior, opaco. - Movimento reduzido mantém as linhas e o sombreamento e deixa cair todo o movimento. - As costuras são só na primeira fila. A costura de altura pára onde o mais traseiro strip encontra a margem superior, e anuncia que o teto. Encontrado no caminho, e corrigido: o dock renderizado janelas em ordem de loja, assim qualquer reordenar (incluindo arrastar- reordenar, antes desta alteração) fez Reagir a janela de movimento elementos em torno do documento. Um elemento movido perde o estado DOM: um log rolado para 300 voltou em 0, um elemento de mídia de reprodução é pausado, e a transição Levando uma janela para seu novo slot é deixado cair. ToolDock agora renderiza janelas em ordem de criação, que é segura porque cada janela é fixa em sua própria Nível pintado. Verificado no Chrome real com toda a doca em corpos de janelas aparados: 64 Controlos medidos. Eles cobrem fileiras, clipes e testes, corpos inertes e barras de rolagem, foco, hover, ambas as direções de troca, teclado, botões de strip, altura dar e tirar, arrastar de uma tira, reduzir o movimento, maximizar e restaurar, viewport re-flow, uma queda após a linha da frente, o teto da costura e preservado posições de rolagem, além de screencasts em tempo real de cada transição. Novos testes de unidade e provedor cobrem o layout, reordens, empilhamento, shell e dock.

  9. · kamo-marketing

    Sete conjuntos de links que correspondem ao navegador, e carreiras vai para o site de carreiras

    O rodapé agora lista recursos, serviços, preços, empresa, recursos, Soluções e Legal, nessa ordem. São os cinco melhores navegadores. categorias mais os dois ninhos sob Recursos, e cada conjunto detém o Os links do navegador sob os rótulos do navegador. Os rótulos vêm do 'nav' namespace, que é traduzido em cada local, então isso não adiciona nenhuma cópia. As traduções do rodapé eram idênticas à chave. Duas ligações existem apenas aqui em baixo: Assista ao filme em Características, e o Cookie Botão de configurações em Legal. O produto era o velho cabeçalho e desapareceu. Preços e soluções obter conjuntos de seus próprios, e Legal já não envolve sozinho numa segunda fila. Carreiras é https://careers.kamocrm.com/ em todo lugar que aparece: Menu da empresa (desktop e móvel), o rodapé, o cartão de página da empresa e o mapa do site. A URL vive em app/lib/careers-site.ts. /as carreiras são agora redirecionamento permanente lá, como /vs, então resultados de pesquisa, favoritos e links externos alcançar os papéis abertos também. A página de marketing que substitui disse que não havia vagas enquanto o site de carreiras lista um. A página, seu componente cliente, layout e imagem OG são excluídos. A rota saiu. do mapa do site (SITEMAP EXCLUDED, com a razão), fora da visão de página contador (UNCOUNTED STATIC ROUTES) e fora das páginas da caça, porque um palco não pode se esconder em uma página que redireciona fora do site. A caça escolhe páginas por módulo de índice a lista, então as páginas de palco de hoje reembaralhar uma vez em Implementar, o mesmo que um dia de capotamento. O link não é novamente hospedado por locatário do registro./login. As ligações são. Apenas www.kamocrm.com serve este site hoje. Cinco dos oito inquilinos domínios que verifiquei não têm carreiras. DNS em tudo, então carreiras. ser um elo morto neles. Disposição: o rodapé usa a largura completa em vez da coluna 1280px, e a linha da marca (logo e tagline, ícones sociais e telefone) fica acima da Sets. Os conjuntos são 2 colunas em um telefone, 3 de sm, 4 de md e uma linha de 7 de xl. Títulos e rótulos podem quebrar dentro de uma palavra. Uma tradução palavra pode ser maior do que uma coluna 149px (de "Dienstleistungen", "Anwendungsentwicklung"), e sem 'max-w-full' uma ligação em bloco cresce para a sua palavra mais longa e empurra para além da coluna. Verificado na página em execução, não na fonte. Em /en/sobre os sete cabeçalhos renderizar em ordem, e cada link resolve para sua /en rota, exceto Carreiras, que é https://careers.kamocrm.com/. Cliques reais em Carreiras em dropdown da empresa desktop, o menu móvel e o rodapé https://careers.kamocrm.com/. /en/carreiras e /de/carreiras respondem 308 Ele, e /carreiras passam por /en/carreiras. Medi todas as colunas em 390, 768, 1024, 1280, 1440, 1920 e 2560px em en, 390, 768 e 1280 em de, ru e fr, e em 768 e 1280 em ta: nenhum elemento transborda sua coluna e não existe nenhum rolagem de página horizontal. as chaves de check-i18n foram testadas com novo rodapé (uma chave de navegação falsa falha). teste npm, verificação, tsc e npm run build (com seus protetores pré e pós-construção) estão limpos.

  10. · kamo-internal

    Drip campanhas em /marketing/email — gatilhos, um construtor visual, pessoas e desempenho

    /marketing/email recebe um switch Broadcasts / Drips (?view=drips). A vista de gotejamentos lista cada gotejamento como um cartão com seu gatilho, sua sequência e contagens ao vivo, KPI e abas de status, pesquisa e classificação, e inicia um novo gotejamento em branco ou a partir de dez receitas (bem-vindo novos leads, saudações de aniversário, conhecer o seu novo agente, alegou introdução de lead, criação de status, reacoplamento de não aberturas, acompanhamento de link clicado, membro da equipe e membro a bordo, e mais). /marketing/email/drop é o construtor: - Trigger: um novo lead (por mão, importado, integrações; mercados, fornecedores, produtos), um status ou Submódulo de/para, uma reatribuição, um crédito ou um crédito gratuito para todos, aniversários e aniversários, um membro da equipe ou conta de membro criada, um e-mail de campanha enviado / aberto / link clicado, sem engajamento com uma campanha após N dias, terminando outro gotejamento, ou as pessoas adicionadas à mão. - E-mails em uma tela: adicionar, duplicar, arrastar para reordenar, uma espera antes de cada um (minutos a semanas, a partir do e-mail antes dele), uma janela de envio por e-mail ou para o gotejamento (dias, horas, tempo da organização), e uma condição (apenas se o e-mail anterior foi ou não aberto ou clicado, caso contrário, salte- a ou deixe o gotejamento). - Configurações: De e Responder-Para exatamente como uma campanha (os catadores compartilhados), o modelo de assinatura, que pode juntar novamente (uma vez, depois de sair com um arrefecimento, ou reiniciar), e quando as pessoas saem (uma mudança de estado, uma reatribuição, um clique). - Uma tira de prontidão, Salvar (Ctrl/Cmd+S), Ativar com uma explosão, Pausar, Arquivo, Duplicar, Excluir; não salva as edições são guardadas e a mudança de um colega chega ao vivo. - Pessoas: quem está no gotejamento, onde está e quando seu próximo email vai, a linha do tempo de cada pessoa, adicionar Pessoas à mão, matar alguém. Desempenho: ligado / em progresso / terminado / à esquerda, um funil de e-mail, e atividade viva. Um novo gotejamento, em branco ou a partir de uma receita, não é criado até o seu primeiro salvamento, como com uma nova campanha, então cada o e-mail é armazenado com o modelo e o rodapé de conformidade. Modelo e rodapé do editor de campanha contexto movido para o usoCampaignEmailTemplate, compartilhado com o construtor (corpos salvos e pedidos comparação idêntica antes e depois). CountUp agora escreve um primeiro alvo de 0 em vez de um traço. EmailService serve /api/email/drips e frames "drop" no tópico de campanhas; o inglês está no dicionário.

  11. · kamo-marketing

    Cada página mostra quantas vezes foi visualizada

    Um contador de visão agora fica no pé de cada página, na linha inferior do rodapé ao lado do Sitemap e Voltar ao topo: um olho cuja íris é o hexágono do site, e a figura em rolos de odómetro nos próprios dígitos do leitor (Bengali, árabe, Grupo de Hindi). A primeira vez que a pílula está na tela os movimentos cambaleantes giram em lugar da esquerda, e quando esta visita foi o que acabou de contar o último o movimento cambaleante vira por um enquanto um +1 sobe dele. O foco do hover ou do teclado abre uma cartão com a figura e o que ele mede; um toque abre-o no toque; um clique gira as bobinas novamente. Movimento reduzido recebe a figura eo cartão, e Nada que viaje. Não custa nada na página: - Nada sobre uma vista é lido enquanto uma página renderiza. Cada rota ainda está pré- rendered (check- static-routes: 247, sentinelas intactas); o HTML carrega uma tamanho do placeholder, para que o swap não mova a linha. - A contagem é de um POST através da fila ociosa compartilhada, após a página ter carregado, e conta e responde no mesmo pedido. Um leitor que sai antes do slot ocioso ainda conta: ocultar página e navegação no local enviar um sinal para uma vista não enviada. - Os rolos, seu movimento e sua folha de estilo são um pedaço separado, obtido apenas quando o rodapé chega dentro de 800px do ecrã. - "Nenhum número" responde 200 com visualizações nulas, nunca 404 ou 503, então um KBService O reinício não pode colocar um erro no console em cada página. Onde uma visão conta **************************** um artigo de base de conhecimentos conta com o artigo, por guid, então a figura faz parte dos dados do artigo em KBService e segue-o através de renomeações e movimentos; todas as outras páginas contam em seu caminho sem o locale, assim /en/pricing e /fr/pricing share one Imagina. Um caminho só conta se este site o servir: a rota existe e sua lesma nomeia um concorrente real, termo glossário, serviço, post no blog, publicado artigo (no seu caminho canônico) ou entrada changelog. Crawlers, ligar unsfurlers, auditorias e webdriver são mostrados a figura sem adicionar a ele, e o mesmo navegador enviando a mesma página duas vezes em cinco segundos é uma visão. Cada contador começa a partir de um número desenhado entre 312.384 e 1.200.384 quando o seu linha é criada, colocada pela prioridade do mapa do site da página para que a página inicial comece alta e uma entrada do changelog baixa. As prioridades do mapa do site foram transferidas para SITEMAP PRIORITY para que ambos leiam uma lista; o kb- sections.ts substitui as duas cópias da verificação KB SECTIONS o contador teria feito três. A fileira inferior do rodapé empilha a marca feita sob a linha de copyright: com o contador adicionado, o três lado a lado não cabe mais em 1440px. check-page-views.ts (pré-construir e testar) falha na compilação quando uma rota dinâmica é não em routes.ts, quando um layout ou o rodapé pára de montar o contador, ou quando tudo menos o seu manipulador de rota importa o resolvedor. Provado pela exclusão uma entrada de rota, a Rodapé montar e inventar uma entrada antiga: cada falha. Necessidades KBService 167981e (os endpoints /interno/página) e rodapé.pageViews* chaves (5909948c); até o KBService estar ao vivo A pílula simplesmente não aparece.

  12. · KBService

    Conte as vistas do site de marketing, no artigo ou na página

    KBService agora responde ao contador de visualização kamo-marketing mostra no pé de Todas as páginas. Dois endpoints, ambos {"views": n} com a visualização contada incluído: * ******************************* {importância, contagem} POST /interno/páginas/páginas {caminho, importância, contagem} Um artigo de base de conhecimento conta com o próprio artigo (KB ARTICLE VIEWS, por uid), então sua contagem o segue através de renomeia e se move em /kb; o guid deve nomeia um artigo público publicado, pela mesma regra o artigo público utilização de endpoints. Cada outra página conta em seu caminho abaixo do prefixo locale (MARKING PAGE VIEWS). Cada escrita é um upsert nativo com o total lido Na mesma transacção, tentou novamente um conflito Yugabyte. Em /interno, não /api/kb/public: APIService encaminha todo o /api/kb/** de api.kamocrm.com e a cadeia de segurança deste serviço permite tudo, então um o endpoint da contagem haveria um loop do curl público afastado de qualquer figura. A o novo InternalAuthFilter necessita do X-Internal-Auth (mlos-internal-auth, agora montado opcionalmente) em todo o prefixo /interno, decidido sobre o caminho servlet decodificado, e responde 503 em vez de abrir quando o segredo está faltando. A marketing site's route handler é o único chamador e toma todas as decisões sobre o que conta: somente páginas reais, rastreadores mostraram a figura sem adicionar para isso, uma repetição de um navegador dentro de cinco segundos contou uma vez. A figura inicial de um contador é desenhada uma vez, quando a sua linha é criada, entre 312.384 e 1.200.384. O chamador passa uma importância de 0 para 1 (a página prioridade do mapa do site) e PageViewSeed coloca o sorteio em uma banda ao redor dele, então o homepage começa alta e uma entrada changelog baixa; os extremos as extremidades do alcance sem aperto. A semente é armazenada separadamente da contada views, então o tráfego real permanece legível. As linhas aparecem no primeiro pedido; count=false cria um sem contar, para rastejantes e para semeadura. create page views.sql é o DDL, aplicado à mão no banco de dados antes este push e correspondência o que Hibernate gera para a biblioteca compartilhada entidades (verificadas nos pontos 6.2 e 6.5). O ConfigMap ganha interna.auth.secret, Assim como a cópia do acordo. 23 novos testes: a gama de sementes e bandas, caminhos canônicos e guids, que uma indicação de uma visualização é executada, e os parâmetros através do filtro real (sem segredo, secreto errado, secreto desmarcado, mau caminho, artigo desconhecido). Removendo o filtro prefixo verificar e inverter a bandeira de contagem cada uma transformá-los vermelho.

  13. · kamo-shared-library

    Contadores de página para o site de marketing

    Duas tabelas por trás da contagem de vista kamo-marketing agora mostra no pé de cada página, escrita pelos endpoints /internal/pagage-views do KBService. KbArticleView (KB ARTICLE VIEWS) conta as opiniões de um artigo de base de conhecimento sobre o artigo, chaveado por seu uid, assim que a contagem faz parte do artigo e segue ele quando é renomeado ou movido em /kb. É uma mesa própria em vez de uma coluna em KB ARTICLES: a linha do artigo é salva inteira pelo JPA, então um contador em seria lido quando um editor abrisse o artigo e salvo, descartando todas as visões no meio. As cascatas de chave estrangeiras na banco de dados, porque o KbArticle não mapeia esta linha e uma remoção Hibernate de uma de outra forma o artigo falharia. MarketingPageView (MARKETING PAGE VIEWS) conta todas as outras páginas em seu caminho abaixo do prefixo locale, então /en/pricing e /fr/pricing compartilham um número. Ambos manter SEED COUNT, a figura inicial uma linha é criada com, além de VER CONT, as visualizações realmente contadas; a página mostra sua soma, e real O tráfego permanece legível da mesa. Os repositórios expõem apenas as três afirmações de que uma visão precisa: um nativo upsert que conta, um que sementes sem contar, e o total, lido após a escrita na mesma transação. Sem salvar (): um contador carregado, incrementado e salvo de volta perde visualizações simultâneas. Verificado offline: uma fábrica de sessões constrói mais de onze entidades KB mais estes em Hibernate 6.2.13 (KBService, e os outros serviços Boot 3.1) e 6.5.3 (Boot 3.3), e o script de esquema que ele escreve coincide com a DDL aplicada por Mão, incluindo ON DELETE CASCADE. ddl-auto não está em nenhum lugar, exceto o inicializador, então nenhum outro serviço toca nas tabelas.

  14. · kamo-internal

    O Logotipo Lifestyle, um quarto logotipo por marca e a marca d'água de fundo padrão

    Comportamento & Rotulagem ganha um slot Logo do Lifestyle ao lado do logotipo completo, do logotipo simples e do ícone da aba, nas linhas da empresa e do software (branco-label). É preciso arte de pixel e vetores iguais: SVG ou um raster é mantido exatamente como escolhido, um EPS/AI/PDF é convertido no caminho para dentro (nenhum navegador pode desenhar um), e um raster oferece "Convert to vector", que abre o ImageToSVGConverter compartilhado apenas quando o O membro pergunta. Como o ícone da aba, cada slot tem um interruptor (um upload o liga, o servidor também) e um legenda que diz o que uma superfície de estilo de vida realmente vai desenhar, da forma não salva. O logotipo do estilo de vida é padrão para o logotipo completo quando não definido. Para cada marca, resolveLogoVariant em tema / brand.ts é a cadeia: o logo do estilo de vida do software quando em uso, caso contrário, o logotipo completo do software quando ele substitui a empresa, caso contrário o logotipo de estilo de vida da empresa quando em uso, caso contrário, o logotipo completo da empresa. lifestyleLogo.ts afirma a mesma cadeia de legendas; um teste é executado tanto em todos os 32 estados de forma. Background Watermark oferece logo do estilo de vida primeiro, e é o padrão: valores nulos e desconhecidos resolvem para LIFESTYLE, que desenha o logotipo completo até que um logotipo de estilo de vida exista, então nenhuma mudança de marca d'água de org até carregar um. Cada lugar que pinta a marca d'água (BackgroundWatermark, Backdrop, o erro e Páginas não encontradas) agora passa por resoluçãoWatermark Variant / watermarkLogoFile. - /network/create: um grupo de logotipos de estilo de vida com a mesma ingestão, carregado após a org existe como type=lifestyle; o coletor de marca d'água oferece o Lifestyle primeiro e o formulário é padrão para ele. - Assistente de configuração: Logotipos recebe slots de estilo de vida empresa e branco-label (mostrando o vivo quando em uso), Fundo oferece a marca d'água Lifestyle, e orgDetails resolve o padrão da mesma forma. - O esquema da rota das orgs lê bgWatermark como uma sequência simples. É .parse()s, então o antigo ["NONE", "FULL", "Simples"] enum teria jogado em todo o registro de org para uma linha Lifestyl; Organization. fromJSON resolve valores desconhecidos. Os quatro campos de estilo de vida montar o registro org através do OrgContext e o DynamicMetaLoader mantém **************** de config.json. Precisa dos tipos de upload do kamo-shared-library f22a867d e do serviço de segurança (empurrado primeiro), e do chaves de dicionário (empurrada primeiro, em cada local).

  15. · SecurityService

    Carregamentos de logotipo de estilo de vida, chaves config.json e a marca d'água LIFESTYLE

    O logotipo de estilo de vida é um quarto logotipo por marca (empresa e white-label), a versão decorativa do marca d'água de fundo agora desenha por padrão. Seu backback é o logotipo completo. - upload-logo leva tipo = estilo de vida e tipo = estilo de vida-software. O arquivo mantém sua extensão real (A arte fotográfica é bem-vinda, rastreando um raster é a escolha do membro no momento do upload) sob A coluna ext grava-o e o upload liga o logotipo. no contrato dos ícones da aba. Um raster também é espelhado sob o nome .svg como um stand-in, como o full logos, então uma superfície que ainda não leu a extensão ainda mostra a própria obra de arte do org. - config.json nomes logotipoLifestyleExt / logotipoLifestyleSoftwareExt apenas enquanto esse logotipo está em uso (carregado e ligado); ausente significa que o logótipo completo está lá. - A carga de criação mantém bgWatermark LIFESTYLE em vez de deixá-lo nulo. * * ************* adiciona as quatro colunas nulas. Aplicado à mão no vivo cluster em 2026-09-16, antes da mudança de entidade de kamo-shared-library foi empurrada.

  16. · kamo-shared-library

    Colunas de logotipo estilo de vida e LifeSTYLE como padrão de marca d'água

    O logotipo de estilo de vida é uma quarta peça de arte de marca por marca, ao lado do logotipo completo, o simples logo e o ícone da aba: a versão decorativa que a marca d'água de fundo desenha por padrão. Está. forma exatamente como o par ícone tab: logo lifestyle ext (e seu software twin) é escrito apenas por Segurança Endpoint de upload do serviço a partir do arquivo armazenado, e dobra como o marcador "um existe"; logo lifestyle habilitado é o interruptor ao lado dele. PUT /org/ {id} pode alterar os dois interruptores, nunca o extensões. bg watermark agora documenta o LIFESTYLE, ao qual cada cliente resolve nulo. É o logotipo completo para contanto que uma org não tem logotipo de estilo de vida em uso, então nada que ninguém vê muda até que um é carregado. As quatro colunas vêm de... live cluster antes deste push: qualquer serviço Java construído após ele SELECT-los em cada org lido.

  17. · EmailService

    Campanhas de gotejamento

    Um gotejamento é uma sequência automatizada de e-mails que uma pessoa entra quando algo acontece: um lead chega (à mão, importado, ou de uma integração), o estatuto ou as alterações de substatus, um chumbo é transferido ou reclamado com um crédito, aniversário ou aniversário do lead vem, um membro da equipe ou conta de membro é criado, um email de campanha é enviado, aberto, clicado ou vai sem resposta, alguém termina outro gotejamento, ou um membro os adiciona à mão. Cada email tem o seu próprio espera, envia a janela (no fuso horário das orgs ou do contacto) e condição em como o email anterior fez. Enviando. Um e- mail de gotejamento está em espera numa campanha de edição oculta por (passo, ciclo) Por isso sai exactamente como uma campanha. e-mail: opt-out e verificação de elegibilidade, hosts do lançador, aquecimento e enviar janela, DKIM, rastreamento, cancelar a assinatura, saltos e a caixa de saída encenada. Edições são deixado fora da lista de campanhas, o instantâneo, o widget inicial e o progresso e quadros de engajamento, e os terminais de campanha respondem 404 para um. Motor (drip/DripEngine): a cada 5s em sua própria linha sob locação e-mail-drip-engine, ele drena email drip triggers (exits first, then inscrições), varre aniversários e aniversários uma vez por dia de org-local, e move cada pessoa devida em: espera a contagem de quando o email anterior foi realmente enviado, um salto ou opt-out termina a execução, uma pessoa é lida novamente antes de cada e-mail (merge tokens: first name, agent name, market and the rest), e uma execução terminada Vamos começar com pingos acorrentados. Reentrada é uma vez, novamente após terminar (com arrefecimento) ou reiniciar; as regras de saída eliminam as pessoas numa mudança de estado, a reatribuição ou um clique em um link de gotejamento. API: /api/email/drips (lista, opções, CRUD, ativar, pausar, arquivo, arquivo, duplicado, pessoas, inscrição manual, remoção, timelines, atividade), VER BULK MAIL para ler e dirigir BULK MAIL para mudar. Live: digite "drop" quadros sobre o tema campanhas, coalescido por segundo. A campanha envia, primeiro abre e os cliques de link (agora com o URL) são entregues O DripTrigger Recorder da biblioteca partilhada de kamo. As tabelas e as colunas de edição foram aplicado à mão antes deste compromisso.

  18. · SecurityService

    Um chumbo importado é registado como importado

    LeadImportController criou cada linha com a criação de dois argumentos, então um o histórico do lead disse API fonte com ninguém agindo, exatamente como um enviado através da API de entrada do fornecedor. Nada poderia distinguir uma importação de uma integração, e campanhas de gotejamento que começam em "uma nova liderança chega" oferecem a escolha entre leads adicionados à mão, importados ou de integrações. As linhas agora são criadas com origem IMPORT. Construído contra a biblioteca partilhada com kamo b5b56d6d, cujo histórico de chumbo também fornece novos leads, alterações de status, reatribuições, direitos de crédito e contas de novos membros para o motor de gotejamento.

  19. · kamo-internal

    Resposta do editor de campanha é uma escolha — NoReply, E-mail do membro ou Personalizado, NoReply por padrão

    A resposta de texto livre sob o From torna-se CampaignReplyToPicker, três opções que cada um diz onde responde terra: - NoReply (padrão): NoReply@<the campanha's From domain>, por exemplo, NoReply@hello.kamocrm.com, "que não recebe e- mail" - E-mail dos membros: edição do membro, mostrada pelo endereço. Uma campanha cujas respostas já vão para um companheiro de equipa mantém mostrar ao companheiro de equipa até que alguém escolha a opção novamente. Um membro sem e-mail no perfil não o pode escolher. - Personalizado: uma caixa marcada como ele é digitado, a forma como EmailService verifica-lo em salvar. A lógica é ************* ler uma campanha (uma de antes da escolha é personalizada quando tem um endereço, NoReply quando não), escolher, mostrar o endereço, e construir os campos de salvamento (replyTo, replyToMode, RespostaAos membros). Um endereço personalizado inacabado retém Salvar e aparece na lista de verificação de envio. A antevisão mostra A resposta-para o destinatário será obtida.

  20. · kamo-shared-library

    Ativadores de campanha de gotejamento, gravados onde leads e membros mudam

    As campanhas de gotejamento começam quando algo acontece no CRM, então os lugares que mudar leads e membros agora entregar esses eventos para o motor de gotejamento do EmailService: - LeadHistoryService: um lead criado (com a forma como chegou: à mão, importado, ou a partir de uma integração ou forma), um status ou sub-status mudança com ambos de um membro da equipa para outro. - Está bem. um pool lead reivindicado pela crédito (pago ou free-for-all), que não registra nenhum histórico de chumbo próprio. - Serviço de Membro: uma conta de membro ou membro da equipa criada. O espelho da plataforma linha não é um novo membro do provedor org e não começa nada. DripTriggerRecorder escreve-los para ************* que o drenos de motor. Ele só escreve para uma org cujos gotejamentos ativos ouvir para esse tipo (gatilho ou regra de saída, ler no máximo a cada 30s), mãos sobre após a causa transaction commits, e escreve em seu próprio tópico e conexão, então um lead escrever nunca pode falhar ou voltar por causa de um gotejamento. Um Vazio criado pelo chumbo (um teste chumbo ou uma duplicata) não é alguém para receber. EmailCampaignEntity maps gotejamento id, gotejamento step id e gotejamento cycle: a gotejamento email envia através de uma campanha de edição oculta por (passo, ciclo), para manter cada enviar a garantia que uma campanha tem. As colunas e tabelas foram aplicadas à mão Antes deste commit (emailservice *************************************

  21. · kamo-marketing

    Aberto no mensal, e vender termos de 1 e 3 anos como bloqueio na taxa de hoje

    A maioria dos compradores vem para comparar o que eles pagariam sem compromisso, então HOME TERM é agora mensal. /pricing, a tira plano homepage, /calculador e A marcação do produto ainda está aberta no mesmo prazo. Os termos mais longos são o que o trilho vende a partir de lá: uma taxa mais baixa por assento, o preço de hoje para todo o termo. - A sobrancelha do trilho diz "Tranque na taxa de hoje para 1 ou 3 anos", e um frase sob o trilho diz o que o termo selecionado faz: mensal não tem autorização; anual e 3 anos manter o preço de hoje para 12 meses ou 3 anos, mesmo que os nossos preços subam. Todas as três notas compartilham uma célula de grade, então escolher um termo nunca move as cartas abaixo, em qualquer idioma (medido em en, de e ja). Ambas as linhas são equilibradas, então um telefone nunca encaderna uma Palavra. - As linhas de termo de cartão e calculadora levam com "Rate travado para N meses". - No mensal o cartão é salvo linha deixa "sobre o termo", que em um... período mensal apenas repetiu o valor mensal ao lado dele. - A tira da página inicial tem a legenda do seu preço "por lugar num período de {meses} ano", que no mensal iria ler como um prazo de 0,083 anos; agora diz faturado mensalmente, com o bloqueio de 1 e 3 anos ao lado dele. - A descrição da pesquisa nomeia o preço de três anos como um bloqueio, e a página de oferta expirada aponta para a mesma coisa. check-product-offers fixou o padrão de três anos ($49, 32,83). Ele agora alfineta mensalmente ($69, 46.23), então uma mudança silenciosa de padrão ainda falha na compilação. A cópia está no dicionário kamo-tradução, escrito à mão em todos os 20 locais traduzidos. O mesmo push restaura 340 valores hoje a sincronização quebrou, que tinha falhado no guarda de cópia pré-construção deste repo para cada construção desde então.

  22. · EmailService

    As respostas de uma campanha vão para NoReply, o e-mail do membro ou um endereço personalizado — NoReply por padrão

    A Resposta-Para do editor torna-se três opções (CampaignReplyTo), mantidas na coluna response to existente. Não há DDL. - NO REPLY (coluna vazia, o padrão): Resposta: NãoReply@<the From's domain>, soletrada por NoReplySenderService Como qualquer outra morada do NoReply. O destinatário vê antes de escrever que ninguém lê, e postfix-k3m1-inbound recusa o que é enviado para lá. - MEMBRO (membro: <id>): o e-mail do membro que o escolheu, olhou para cima quando cada mensagem é composta (CampanhaReplyToMembers, mantido cinco minutos), então um endereço alterado é seguido. Um membro sem e-mail cai voltar para NoReply em vez de nomear um endereço que ninguém recebe. - CUSTOM (um endereço): verificado em salvar, nu e com um domínio pontilhado; qualquer outra coisa é um 400 dizendo porquê. Salva carrega respostaToMode e respostaToMemberId. Respostas podem ir para o membro salvar, ou ficar com o membro já escolhido quando um companheiro de equipa salva, mas nunca para outro membro escolhido pelo ID. Um editor de antes da escolha enviar apenas um endereço: um é CUSTOM, nenhum é NO REPLY. O modelo de leitura da campanha adiciona respostaToMode e respostaToMemberId, e responderPara se tornar o endereço que o editor mostra (o endereço personalizado ou o e-mail do membro).

  23. · kamo-internal

    Hosts E-Mail de saída mostra os relés em massa como servidores de recepção vê-los

    Um cartão "Bulk relés" acima dos hosts da plataforma: o relé compartilhado de cada domínio de envio da organização deixa através de (contact.kamocrm.com, 47.181.8.86) e da própria organização da plataforma (hello.kamocrm.com, 47.181.8.87). - Factos: de onde sai o correio de cada relé, de onde o EmailService o atinge no cluster, e para o retransmitir se seu login está configurado e quantos domínios verificados enviam através dele. - Verificações, cada direito, diferentes, ausentes ou não respondidas: endereço do nome (A), sua política de remetente (SPF), onde vão os saltos (MX, que para o relé compartilhado deve voltar para seu próprio endereço), o endereço ao contrário DNS (PTR) e a chave de assinatura do relé da plataforma (DKIM). Um disco que não está certo mostra o que deveria estar ao lado O que o DNS tem. - Reverse DNS diz que é definido pelo provedor de internet que possui o endereço, então ninguém procura por ele no DNS Host. Uma pesquisa que não tem resposta é "Não podia verificar", nunca "errado". - Leiam o relatório. Nunca é pesquisado, uma verificação falhada mantém o que está na tela, e sem MANAGEM OUTBOUND EMAIL HOSTS não renderiza nada.

  24. · KlusterServices

    Saltos para os domínios de envio das organizações chegam ao EmailService através do postfix-k3m1-inbound

    Uma campanha enviada através do relé compartilhado tem sua From no domínio de envio da organização como seu envelope remetente, e esse domínio é um CNAME para contatar. kamocrm.com, cujo MX é 47.181.8.86 — este pod. Então... servidor de recepção que aceitou uma mensagem e não conseguiu entregá-la depois de tudo escreve seu relatório de entrega Aqui, e até agora foi recusado. - Os domínios de envio vêm do EmailService (relay-senders?format=domínios: VERIFIED e FAILING), lido em começar e a cada minuto. Apenas os nomes simples das máquinas chegam a uma tabela e uma busca sem resposta mantém a última lista. - Cada domínio leva apenas o remetente nulo, ou seja, rebotes e servidores verificando se o endereço existe. Qualquer um. outro recebe 550 "Este endereço envia email mas não o recebe". - O que é levado vai para uma tubulação `bounds` (o comando de carretel do postfix principal, com seu próprio carretel) e um beyonds-mail sidecar, o postfix principal cancelscribe mail.py com INCLUDE RAW, publica-o para **************************** - stack.loans, mail.stack.loans e contact.kamocrm.com funcionam exatamente como antes, e nada aqui envia para A Internet. Testado em uma cápsula alpina descartável com o mesmo script: null remetente 250, uma pessoa 550, postmaster@ e abuso@ 250, outros domínios e parecidos 554, um DSN com seu token e a fila vazia, uma mudança de lista aplicada Em um minuto, e uma busca sem resposta mantendo a última lista.

  25. · EmailService

    Salta para os domínios de envio de org vêm para casa, os envios de teste são assinados, e o DNS dos relés é lido

    Assincronia salta. O remetente de envelopes de uma campanha é seu De dentro do domínio de envio da organização, cujo MX (através do CNAME para contact.kamocrm.com) é o próprio endereço do relé compartilhado. postfix-k3m1-inbound levará Relatórios de entrega lá e postá-los para POST ******************* A forma de ingestão da queixa: - DeliveryStatusReport lê um relatório RFC 3464 real (mensagem/entrega-status) e os tokens no Mensagem devolvida. Um salto de prosa nunca é adivinhado. - BounceMailService registra uma falha permanente (Action: failed, 5.x.x) como BOUNCED na linha do destinatário o nomes de fichas, através do caminho de entrega-evento que os relés já usam. Um atraso, uma resposta automática ou um relatório sem token muda nada, e um relatório de reclamação de spam é entregue ao consumo de reclamações. - relé-senders?format=domínios lista os domínios VERIFIED e FAILING enviando o inbound aceita relatórios para. Testes enviados de Configurações → Email → Envios são assinados por DKIM com a chave do domínio From, exatamente como campanha mail é (DkimSigning, compartilhado com CampaignRecipientSender), então um teste através do relé compartilhado mostra o que uma campanha vai. O DNS dos relés. GET **************************** (MANAGEME OUTBOUND EMAIL HOSTS) cada relé, seu nome é um registro e SPF, seu MX (para o relé compartilhado, de volta para o seu próprio endereço), o Inverta o DNS do seu endereço e a chave DKIM do relé da plataforma. O solucionador DNS ganha buscas PTR.

  26. · KlusterServices

    Postmaster@ e Abuse@contact.kamocrm.com chegar KamoCRM — o nome do relé compartilhado recebe suas verificações

    contact.kamocrm.com é o nome do relé de org compartilhado (47.181.8.86 do PTR, MX contact.kamocrm.com), e seu MX é 47.181.8.86 → k3m1, onde as respostas pós-fix-k3m1-inbound. Os fornecedores de caixas de correio autorizam quem executa um IP através do postmaster@/abuse@ de seu domínio PTR, então aqueles agora terra: postmaster@ na caixa postal do postmaster, abuse@ e fbl@ em abuse@hello.kamocrm.com, que as principais mãos postfix para a reclamação do EmailService entrada com uma cópia para o chefe do correio. Reiniciar a ligação pós-fix-k3m1 aprovada pela Sage.

  27. · kamo-internal

    Bulk Email Obtém Configuração de Domínio e sub-tabs, /marketing/email explica o que está faltando, campanhas obter um De escolher

    Configurações → Email → Bulk Email é agora quatro sub-tabs em ? sub=: Configuração de Domínio · Envio · Opt Out · Entregabilidade. O membro pousa na Configuração de Domínio até que um domínio de envio seja verificado e no Envio Depois. Até então, os outros sub-tabs mostrar um bloqueio e manter o foco; abrindo um explica o que ele é para, até onde o melhor domínio chegou, e links de volta. Opt Out e Deliverity manter a sua direito (MANAGE EMAIL OPT OUTS ou o proprietário) e mover-se para dentro inalterado; o antigo ?tab=opt-out e ?tab=ligações de entrega redirecionadas para sua sub-tab, e a entrada do menu e o cartão de pouso seguem. Cada sub-tab coloca suas próprias palavras no trilho de ajuda. A configuração do domínio é construída para alguém que nunca editou DNS: um herói com os três passos e o um em que eles estão (ou "Bulk email is ready to send"), um cartão por domínio com pontos de registro ao vivo e "Verificado há 8 segundos · verificando automaticamente", e um fluxo de add-a-domínio inline (o domínio org) Preenchido e arrumado no borrão com a alteração explicada, um clique enviando nomes, uma visualização ao vivo, e uma pesquisa debotada que diz por que um nome não pode ser usado antes de Continuar). Configuração de um domínio (? domain=) mostra as etapas detectadas do provedor de DNS, cada registro em palavras simples com botões de cópia e seu estado vivo ("vemos X, deve ser Y", a correção para cada código de dica), Copiar tudo como instruções, a alternativa não-CNAME por trás de uma divulgação, Verifique agora, Remova (recusado na frente enquanto em uso, com a razão do servidor mostrada se ele ainda se recusa), e um momento de sucesso que leva a "Escolha seu endereço From". Tudo lê-se GET ************* através do proxy existente e fica ao vivo ************* nenhuma sondagem, leituras silenciosas, escreve adoptar o todo o estado, e uma leitura falhada ou recusada é um erro ou nota de acesso, nunca uma lista vazia. /marketing/email: sem campanhas e sem domínio verificado o estado vazio é um explicador (por que, três passos, "Set up my domain", ou quem pode terminá-lo sem MANAGEM EMAIL SETTINGS); uma campanha lista recebe um banner compacto que absorve a linha sem hosts, e um domínio FAILING é nomeado em vermelho com uma ligação à sua configuração. Nada aparece enquanto carrega ou em uma leitura falhada. O banner de bloqueio de envios links NO SENDING DOMAIN e FROM DOMAIN NOT Verified to Domain Setup. O editor de campanha From é um seletor: o remetente padrão, ou um endereço em um domínio verificado (parte local, domínio, Do nome), salvo como deEmail/fromName; um salvo De um domínio não verificado é avisado com um link para a sua configuração. configuraçõesMenuTabCoverage aprende & sub= e verifica se cada sub-tab vinculado existe.

  28. · EmailService

    O e- mail da campanha é assinado como, enviado de e encaminhado pelo seu domínio de envio verificado

    Uma campanha pode nomear o seu próprio De um domínio verificado; caso contrário, ele vai como o remetente de massa da org — que deve-se estar em um domínio verificado (saveSender recusa qualquer outra coisa). CampanhaDe escolhe o relé por esse domínio, porque SPF é decidido pelo endereço um relé sai de: um domínio verificado de uma org através do relé de org compartilhado (47.181.8.86), o hello.kamocrm.com de KamoCRM só através do relé de plataforma (47.181.8.87), qualquer outro hospedeiro para ambos, e um não verificado Do nada. O libertador leva o devido destinatário primeiro, em seguida, um host pronto sua campanha pode usar; uma campanha sem Outras campanhas vão. O e- mail como domínio verificado de uma org é assinado pelo DKIM após o seu último saveChanges, com a sessão proibida de Convertendo-o para 8bit no caminho. Novos bloqueadores de envio NO SENDING DOMAIN e FROM DOMAIN NOT Verified. Os relatórios de entrega contam contra o aquecimento do relé que a campanha enviou. A campanha de envio do KamoCRM não é afetada: noreply@hello.kamocrm.com é gerenciada por plataforma, então mantém deixando por .87, e o relé compartilhado é desligado na rotação de KamoCRM.

  29. · EmailService

    API da Configuração de Domínio, mapa de remetente do relé compartilhado e uma varredura que confirma registros ao vivo

    **************************** GET the tab (VIEW BULK EMAIL), GET lookup for the add form, POST add, POST {id}/check, DELETE (MANAGE BULK EMAIL); todas as respostas de escrita com a aba inteira e uma recusa nomeia o seu campo. **************************** dá postfix-orgs seu domínio verificado mapa. A visão geral ganha domínios {prontos, verificados, pendentes, falhando} para o portal. EnvioDomainSweep re-ler DNS na cadência (15s enquanto um domínio está sendo configurado) sob uma locação, em um thread próprio: cada tarefa @Scheduled aqui compartilha o thread de agendamento único da Spring com o lançador que envia mensagens de campanha a cada segundo, e esperando em servidores de nomes lá iria parar o envio.

  30. · EmailService

    Enviando domínios — adicione um, leia seu registro DNS por registro, verifique-o, saiba o que um endereço pode fazer

    Um domínio de envio (news.acme.com) é mantido no blob de provedor de massa criptografado da org com sua chave DKIM. EnviandoDomainChecker lê o que os receptores verão — SPF avaliado para o endereço do relé compartilhado, nossa chave no seu selector, uma política da DMARC no domínio ou numa empresa-mãe — para os registos recomendados (um CNAME a contact.kamocrm.com, DKIM TXT, DMARC) e a alternativa SPF TXT + MX, e nomeia os erros habituais: um nome de zona duplicada, um CNAME de Cloudflare proxied, um nome que já tem registros, um CNAME em outro lugar, dois Registros SPF, muitas pesquisas, uma chave colada curta, uma política mal formada ou herdada, e 'seu registro é O lado de KamoCRM ainda não está ao vivo. EnvioDomainService adiciona (limpando um URL ou endereço colado, recusando kamocrm.com aos inquilinos), cheques, remove (não enquanto é o remetente padrão ou de uma campanha ativa), e move status: PENDING/FAILING → VERIFIED em um passe; VERIFIED → FALHANDO apenas após duas falhas de seis horas de intervalo; uma falha DNS muda Nada. Responde ao caminho de envio — ORG VERIFIED (com a chave de assinatura), PLATFORM MANAGED (hello.kamocrm.com, apenas para KamoCRM) ou UNVERIFIED – e constrói o mapa de remetente do relé compartilhado de verificado domínios. As mudanças publicam o número

Seu universo está esperando.

Comece gratuitamente em minutos.Adicione produtos sempre que estiver pronto — sem migração, sem novos logins.

Gratuito para sempre — não é necessário cartão de crédito