Changelog
O que há de novo.
Cada melhoria para a plataforma, como ele envia.
· EmailService
Um dia de aquecimento nada foi enviado não conta
Um dia de aquecimento costumava ser o N-th 24 horas desde o início se ou não qualquer coisa correu, assim que girando o aquecimento em dias antes da primeira campanha Passou silenciosamente os seus dias de baixo volume. Um dia que termina sem tentativas é agora repetido: ele e cada dia posterior deslizar para a frente por todos os dias que foi não utilizado, qualquer número de uma vez, enquanto dias que foram usados manter o seu janelas e história. A conclusão se move com eles, e o estado de aquecimento Relatórios ociososDaysSkipped. A execução é estabelecida antes que o caminho de envio conte qualquer coisa, então um envio é jamais contados contra um dia que está prestes a ser repetido; e quando o contadores não podem ser lidos a execução é deixada como está em vez de fechar Um dia em zeros.
· kamo-internal
Uma campanha que a infra- estrutura não pode enviar diz porquê e como corrigi- la
EmailService agora pausa uma campanha em vez de falhar em seus destinatários um por um, quando ele não pode enviá-lo: seu De está fora do relé da plataforma domínio, ou não há remetente a granel em tudo. Recusa enviar, programar e retomar enquanto a causa permanece, e relata-lo na campanha como Enviar Blocker. - o editor e a vista de progresso mostram um banner com a causa, o sentença própria do servidor e a correção como dois passos: alterar o De (ou usar o provedor padrão) e retomar, ou abrir o remetente em massa configurações e retomar. Continuar fica desactivado enquanto o rascunho ainda tem a causa - Retomar agora salva o rascunho primeiro, então um corrigido De atinge o infra- estrutura em vez da campanha ser retomada como armazenada e recusada outra vez - o envio, o calendário ou o currículo recusados são apresentados no mensagem do servidor, não só em um brinde, ea campanha é re-ler então seu status e bloqueador são atuais - a grelha de campanhas marca uma campanha bloqueada ao lado do seu estatuto, com a razão sobre pairar - os erros da API da campanha preferem a mensagem humana ao invés de uma mensagem nua código da máquina, e transportar o status e código
· kamo-internal
O aquecimento diz que dias ociosos não contam e desenha as datas que deslizaram
Um dia de aquecimento em que nada é enviado não conta mais: os slides de execução para a frente e o dia repete ao enviar currículos, o que faz com que a mudança aquecimento antes da primeira campanha segura. O painel agora diz isso, ao lado o interruptor e novamente nas notas ociosas e não iniciadas. Quando dias foram ignorados, o anel dia diz quantos, com o A programação avançou com tantos. Cada telha de programação mostra a sua data, e a dica do gráfico o nomeia, lido a partir de cada dia como a infra- estrutura tem agora em vez de contar desde o primeiro, então as datas deslizadas são o um desenhado. No /marketing/email, um aquecimento ocioso sem nada à espera diz como "on, começa com sua próxima campanha" em vez de reivindicar entrega está sendo Apagado.
· EmailService
E- mail da campanha o relé da plataforma recusaria falhas de uma vez em vez de ser tentado novamente
O relé envia apenas como seu próprio domínio e responde a qualquer outra coisa com um 451, então uma campanha de quem está em outro domínio usado para tentar cada receptor três vezes, cada tentativa de aquecimento, antes de alguém aprender O De quem estava errado. Quando o provedor da org é o anfitrião e porto do relé e o domínio de From não é o domínio de envio do relé, o destinatário é agora marcado falhou com a correção em seu erro: sem SMTP, sem repetição, não supressão, e nada contou contra o aquecimento ou sua fenda.
· EmailService
O aquecimento do novo anfitrião segura o e-mail de campanha de uma org e o libera no ritmo do aquecimento
Enquanto o aquecimento de uma org está ligado, o expedidor deixa suas campanhas sozinho e um lançador envia-lhes uma mensagem de cada vez, o mais cedo possível através das campanhas do org, nunca passar do limite horário de uma campanha e Nunca depois do aquecimento do dia. Ele corre cada segundo sob o aluguer próprio do expedidor, para que os dois nunca podem enviar o mesmo destinatário de vagens diferentes. As configurações, dias decididos e freio de segurança vivem no provedor de massa blob criptografado; contadores ao vivo em Redis e são reconstruídos a partir de linhas de destinatários se perdeu. GET, PUT e reset endpoints em /api/email/bulk-provider/aquecimento relatar o estado, horário, fila e saúde. Ambos os caminhos agora enviam através de um método por beneficiário, que reivindica o row SENDING antes que o relé vê-lo. Os contadores da campanha estão escritos sem salvar a campanha, a varredura de envio interrompido incluído; Costumava colocar uma campanha pausada no meio do lote de volta ao SENDING.
· kamo-internal
Linhas de destinatários transportam contatadas, e linhas já enviadas mantêm sua marca ao lado do status
O destinatário do EmailService DTO agora relata se a campanha já enviou por e-mail cada endereço. O mapper leva-o através, juntamente com LastError, e preenche o ID da campanha que o DTO deixa de fora. Uma linha já contactada nunca é mantida pelo aquecimento e nunca enviada por e-mail novamente, assim que a grade de progresso não dá mais a nota de aquecimento, e quando seu último resultado é qualquer coisa, mas enviado o chip de status mantém um pequeno Marca "já enviada". Na etapa de destinatários, uma linha marcada "Já enviada" também mostra como esse envio terminou quando não simplesmente saiu.
· kamo-internal
A campanha de campo diz quando o retransmissor de massa iria recusá-lo
A própria campanha From field, defaulted from the bulk provider, adverte quando o endereço está fora do domínio do provedor, como correio que pode pousar em spam. No relé da plataforma que não é um risco, mas uma certeza: O EmailService falha todos os destinatários de uma campanha cujo domínio From não é o domínio de envio do relé ("O relé de massa apenas envia como @domínio"). Então, quando o provedor de massa carrega um relé de plataforma, um fora-domínio de é um erro: o campo está marcado, um alerta diz o que vai acontecer e oferece predefault do provedor quando isso está no domínio do relé, e pré-voo bloqueia o envio até ser corrigido. Organizações por conta própria SMTP provedor ainda obter o aviso de spam mais suave.
· EmailService
Cada mensagem de campanha nomeia sua linha de destinatários em X-Kamo-Ref
O relé em massa registra o cabeçalho contra o seu ID de fila e tira- o antes entrega, assim que os resultados da entrega podem ser combinados com a linha de destinatário exato. Os testes do compositor também prendem o resto do que uma mensagem de campanha deixa com: De endereço e nome da campanha, cada um caindo para o grosso provedor; um nome de exibição que não pode iniciar um cabeçalho próprio; o cancelar a subscrição da caixa de correio no domínio de onde o correio é na verdade; e a Responder-Para somente quando a campanha define um.
· EmailService
Os relatórios de entrega do relé saltam, bloqueiam e contam o correio da campanha após a entrega
* ******************************* leva os relatórios do retransmissor da plataforma do que se tornou de cada mensagem, correspondente à linha do destinatário pela cabeçalho X-Kamo-Ref ou, não sendo assim, a última linha enviada para o endereço em nos últimos sete dias. Um salto duro (5.1.x, 5.2.1, 5.4.4) marca a linha BOUNCED e suprime A morada. Um bloco (5.7.x) marca que falhou mas mantém o endereço, uma vez que a recusa foi do remetente, não da caixa postal. Qualquer outra coisa permanente é Um simples fracasso. A razão do adiamento é mantida na fila até a entrega. Apenas linhas ainda SENT são movidas, e o aquecimento conta cada relatório uma vez, contra o dia em que a mensagem foi enviada, assim o repórter pode reenviar um lote com segurança.
· EmailService
A programação do aquecimento, ritmo e regras de saúde
Um novo IP de envio é acelerado ao longo de quatorze dias de aquecimento. Os dias 1-7 seguintes a horário fixo por ritmo (conservador, equilibrado, agressivo); a partir do 8o dia cada dia cresce pela porcentagem do ritmo apenas se o dia anterior foi saudável por suas taxas de rejeição, bloqueio e diferimento, e de outra forma detém. Cada dia é decidiu uma vez e manteve a razão. As mensagens são passadas a partir do que resta do dia, com nervosismo mesquinho e a pausa ocasional, nunca mais rápido do que quatro vezes a taxa constante e Nunca tão tarde que o resto do orçamento do dia já não se encaixa. A travamento de segurança pára um dia que os receptores estão bloqueando ou saltando.
· kamo-internal
Banner de ritmo quente no /marketing/email
Enquanto o aquecimento do novo anfitrião está a andar, as campanhas saem muito mais lentamente. do que as suas próprias configurações dizem, e nada na campanha disse porquê. A campanhas espaço de trabalho e uma visão de progresso de uma campanha agora carregam um magro banner com o dia, envia hoje contra o boné, o próximo envio e o que está esperando, vinculando para as configurações de aquecimento, e um destinatário em fila explica que está sendo detido. O banner é escondido enquanto o aquecimento está desligado ou completo, e sempre que o aquecimento não pode ser lido.
· kamo-internal
Cliente remetente de massa digitado com erros de campo e os parâmetros de aquecimento
O cliente conhecia um status de provedor chamado PENDING que a infra- estrutura nunca envia, então um remetente que foi salvo mas ainda não testado caiu para "Não configured". Agora lê-se PENDING SETUP (ainda aceitando PENDING) e normaliza todo o estado em um lugar: o resumo da conexão, quando o senha última alteração, o relé da plataforma e se o membro pode Faça-o. As falhas voltam como BulkEmailApiError, carregando o status HTTP e, para um 400, o campo de formulário a infra-estrutura nomeada, para que o formulário possa colocar a mensagem nesse campo e um 403 pode ser mostrado como um estado de acesso em vez de um erro. 204s vazios são tolerados, e um salvar ou aquecimento escrever que responde com um reconhecimento nu é seguido por um GET em vez de ser adotado como o estado, que é o que em branco o formulário após cada salvar. Adiciona as chamadas de aquecimento: GET e PUT / Bulk-fornecedor / aquecimento e POST /fornecedor/aquecimento/redefinição.
· kamo-internal
Regra de conexão, predefinições e modelo de visão de aquecimento atrás do remetente em massa
As peças puras sobre as novas telas são construídas, cada uma com testes: - regra de conexão porta-primeira da infra-estrutura, espelhado para que o formulário possa dizer como KamoCRM se conectará antes de tudo ser salvo: 465 é TLS implícito com o registo, 587 é STARTTLS com o registo do que a Segurança disser, qualquer outra porta com atualizações STARTTLS e login, e qualquer outra coisa é texto simples sem login - predefinições de um clique para o relé da plataforma e provedores comuns - a forma como um valor: o que é sujo, o corpo salvo, e validação que só pede um nome de utilizador e uma senha quando a ligação entrar - preparação da instalação e as etapas de um envio de teste - a rampa de aquecimento, contagem regressiva, enviar ritmo e números de tabela de programação useBulkWarmup pesquisa o aquecimento a cada 15 segundos enquanto a aba é visível, pausas enquanto está escondido, pára em um 403, e aplica escreve optimicamente com retrocesso.
· kamo-internal
Reconstruiu a aba remetente em massa com um novo painel de aquecimento da máquina
A aba Enviar e-mail em massa é reconstruída de um formulário longo em um conjunto de cartas sobre um rascunho do estado salvo: - um masthead com o status ao vivo (um remetente salvo mas não testado agora lê "Precisa de um teste"), quem ele envia como, a conexão armazenada em uma linha e quando foi testado pela última vez - um trilho de prontidão de quatro passos: ligação, remetente, teste passado, aquecimento - a conexão, com predefinições, um controle None / STARTTLS / SSL-TLS, a sugestão quando um porto bem conhecido é digitado, e uma conta ao vivo de como O KamoCRM irá realmente ligar- se, avisando quando a porta substituir a Segurança escolhida - sessão que é apenas interactiva quando a ligação entra e linha de senha que diz se um é salvo e quando, com Substituir e Remover encenado até salvar - a identidade do remetente com uma visualização da caixa de entrada, alertando quando a plataforma o relé recusaria o domínio De - uma barra de gravação pegajosa, erros da infra- estrutura colocada no seu campo, e o estado salvo retirado da própria resposta do salvamento - um teste em linha que atrai para onde a mensagem chegou, marcando fase que recusou O novo painel de aquecimento do host fica abaixo: ligado/desligado, ritmo, o dia atual como um 14 segment anel, hoje envia contra o boné com um vivo contagem regressiva para o próximo envio, totais, saúde da entrega e quanto dele os relatórios de relé, o calendário de 14 dias com a decisão de cada dia e um contra o gráfico real, os envios horários de hoje e as diferenças entre envia recentes, a fila, o freio de segurança com retomar agora, e Reiniciar. Um membro sem o direito de alterar o remetente recebe uma aba somente de leitura, e um recusou a leitura obtém um estado de acesso em vez de um erro.
· EmailService
Uma campanha não pode ser enviada ou agendada sem um remetente de email
O expedidor costumava aceitar tal campanha e depois ignorá-la em cada tick, deixando-o no SENDING com nada mais do que uma linha de log. sendNow e agendar agora recusá-lo com uma mensagem dizendo onde configurar o remetente. Uma máquina e uma porta configuradas é suficiente; ela não precisa ter sido verificada.
· EmailService
A configuração do provedor api responde com o estado salvo e nomeia o campo que ele recusa
PUT agora retorna o estado de configuração completo em vez de {sucesso: true}, que em branco o formulário após cada gravação. Os campos são validados do lado do servidor e recusado como 400 {error, field}; um login só é necessário quando a conexão vai realmente assinar. Uma senha em branco mantém a armazenada, clearPassword remove-o e senhaAtualizadoAos registros quando um foi definido. Status vai voltar para PENDING SETUP apenas quando um campo relevante para a entrega mudou. Cada gravação para a bolha criptografada agora passa por uma travada read- modify- write que mantém as chaves que não possui, porque a bolha é Está prestes a levar o aquecimento também. O estado mostra como o EmailService irá Connect, e a org plataforma é mostrado as configurações de seu relé interno. O envio do teste diz onde falhou (conectar, TLS, login, remetente, destinatário, dados) com uma pequena correção para cada.
· kamo-internal
Visualize o e-mail como enviado, um público personalizado / sem modelo e um real Do campo
Visualização: uma janela que mostra a saída do próprio editor buildBodyHtml () - the string Salvar lojas e o expedidor envia - assim o cabeçalho do público, assinatura e rodapé e o rodapé de conformidade estão todos lá e não pode deriva do verdadeiro e-mail. Área de trabalho e vistas móveis, "preview as" any destinatário ou uma amostra, os tokens de mesclagem preencheram a forma como o EmailService os preenche, Um envelope em forma de caixa de entrada e uma moldura em forma de caixa de areia. Atingível da composição passo, a barra de rodapé, e uma visão de progresso da campanha enviada. Público: "Personalizado / Sem Modelo" não envolve nada em torno do corpo. Está salvo como escopo de empresa com assinaturaScope NONE (que o servidor armazena e nunca lê), e a grade de campanhas o rotula como Personalizado. De: seu próprio Dos campos de nome e endereço, predefinidos do e-mail em massa provedor e editável por campanha, com um reset ao padrão e um aviso Quando o endereço estiver fora do domínio do prestador. Isto substitui o remetente derivado do público e do rádio sem resposta. Destinatários: endereços que a campanha já enviou estão marcados "Já enviado", com um aviso de que eles nunca mais serão enviados por e-mail novamente; EmailService agora informa isto por destinatário.
· KlusterServices
Assine hello.kamocrm.com com sua própria chave de cliente, pelo próprio domínio From
O correio da campanha sai como hello.kamocrm.com através do postfix-bulk. Tem a sua própria chave DKIM (cliente selecionador, publicado como cliente. domainkey.hello), e use esld = false so a hello. mensagem kamocrm.com está assinada d=hello em vez de cair de volta para a chave de correio do pai, que falha o estrito Alinhamento DKIM (adkim=s) o domínio publica.
· KlusterServices
Postfix-bulk, um segundo relé de saída para correio de campanha, com resultados de entrega alimentados de volta
O correio da campanha agora sai através do seu próprio relé no k3m1 (egresso 47.181.8.87) Olá. kamocrm.com, assim as reclamações sobre o correio em massa nunca tocam no reputação de mail.kamocrm.com (47.181.8.84). - Relé de texto simples na porta 25 para EmailService somente (Política de Rede); aceita apenas @hello.kamocrm.com remetentes e recusa qualquer outra coisa com um 4xx, nunca 5xx, porque o expedidor de campanha suprime qualquer 5xx. - Um guarda de saída faz a entrega, a menos que a morada pública da cápsula é 47.181.8.87, assim o volume nunca pode deixar silenciosamente como outro IP. - A entrega-eventos sidecar lê o registo de correio e reporta cada campanha mensagem é entregue / diferido / salto / resultado expirado para EmailService, unida pelo cabeçalho X-Kamo-Ref, que é despojado antes da entrega. Aplicado à mão por enquanto: implement-services.yml aplica mail/ files pelo nome e ainda não os enumera.
· EmailService
Uma campanha e-mails um endereço no máximo uma vez, nunca
Endereços são combinados aparados e caso-insensível, e uma linha a campanha entregou-se ao relé (enviado, em voo, repelido, falhado ou repetido) está agora O seu registo permanente desse endereço: nunca suprimido, repor ou repor. - materializarRecipientes usados para apagar cada linha e reconstruir a lista em cada salvar, assim que editar uma campanha pausada colocar endereços já emalhados de volta no fila. Ele agora mantém o histórico, atualiza linhas ainda não contatadas no lugar, remove somente linhas sem contato que deixaram a lista, e nunca readiciona uma endereço a campanha entrou em contato, no entanto muitas vezes é adicionado. - O expedidor pede uma fila a enviar antes que o retransmissor o veja. Um acidente entre o relé que aceita uma mensagem e a linha que está marcada com o SENT Deixe-o em paz e envie-o novamente; agora ele permanece SENDING e uma varredura fecha como falhou sem tentar novamente. - Um destinatário adicionado enquanto uma campanha foi pausada nunca teve um tempo de lançamento, então Nunca foi enviado e a campanha nunca terminou. Tempos de lançamento agora ir para qualquer fila em fila que não tenha uma. - Um índice único de inicialização em (campaign id, lower(trim(email)))) suporta a regra na mesa. O endpoint da lista de destinatários agora retorna o nome de cada linha, valores de mesclagem, fonte e se foi contactado, por isso reabrir e salvar um projecto já não apaga a personalização. O endereço De volta para o provedor de massa, e o nome From é realmente enviado (foi armazenado e largado).
· kamo-internal
NoReply Outbound, uma auditoria de correio enviada apenas por Deus como endereço da plataforma NoReply
Uma terceira seção sob o Mail, mostrado apenas para os membros elegíveis para Deus, abre /mensagens/outbound/noreply: cada mensagem EmailService entregue ao relé como a plataforma NoReply endereço, o mais novo primeiro, com pesquisa, um Filtro enviado/fracasso e uma gaveta mostrando a mensagem completa. A página afasta quem não é elegível para Deus. Essa é a cortesia, não o bloqueio: os dados vêm do EmailService, que recusa qualquer sessão sem GD.
· EmailService
Um livro de cada mensagem enviada como a plataforma NoReply endereço, legível apenas por Deus
Gravado no EmailSmtpService no correio de um lugar atinge o relé, e decidido pelo endereço From, assim modelos transacionais, campanhas e as ações de artigos são todas cobertas sem optar. As recusas são registadas com a razão do relé e ainda retrown. A escrita é própria transação e nunca lança: uma linha de auditoria falhada não pode falhar ou voltar Um envio. GET /api/email/noreply-outbound lista o livro de registros (pesquisa, filtro de status, paging, corpos excluídos); /{id} retorna uma mensagem com seu corpo. Ambos requer GD na sessão e nada mais: o livro de registros abrange cada organização, para que nenhum direito org-scoped possa abri-lo. A tabela é criada na inicialização por NoReplyOutboundSchema, como o O livro dos artigos é.
· kamo-internal
Um link de rastreamento pode pousar no artigo de taxas de CRM em branco
Adiciona **************** para os destinos que o rastreador de links oferece /marketing/rastreamento, com seu próprio ícone. O caminho é local-livre como seus irmãos: o site de marketing 308 é para ************* e mantém ?descontagem= em todo o hop, o mesmo que /pricing (verificado contra o local ao vivo). A etiqueta e a dica da linha estão dentro kamo-tradução-dicionário 7a6fd4e2.
· kamo-marketing
Deixe um leitor enviar o artigo de assento-fee para alguém que eles conhecem
Um formulário de "passa-o" ao pé de... atingido de um chip no topo e uma linha após as sete perguntas. Os nomes dos leitores até três pessoas e nós e-mail cada um deles o artigo uma vez, com o nome do leitor nele; eles também podem abri-lo em seu próprio cliente de e-mail ou cópia o link em vez disso. POST /api/share-article gates it before EmailService vê-lo: mesma origem somente, um servidor *** verificado contra o serviço *** (o outro formulários aqui encaminhar a carga útil sem ninguém verificando), e auto-enviar Apenas para visitantes na UE/EEE, no Reino Unido e na Suíça. Avança um corpo construído a partir de campos delimitados, com o endereço de visitante nossa entrada gravado, para EmailService /api/internal/article-share, que impõe os limites e a lista de opt-out da plataforma org. A implantação lê INTERNAL AUTH SECRET da mlos-internal-auth existente secreto (opcional, então o site ainda começa sem ele) e ganha EMAIL SERVICE URL e CAPCHA SERVICE URL.
· EmailService
Enviar um artigo por e-mail para alguém, como uma org plataforma, com um opt-out de trabalho
Um visitante no site de marketing pode enviar o artigo do assento para até três Pessoas. POST /api/internal/partilha de artigos (X-Internal-Auth, como qualquer outro /api/endpoint interno) envia a cada um deles um e-mail como nível superior organização, de "<sender> via KamoCRM" com Resposta-Para o remetente. Reusa o que existe em vez de adicionar uma segunda cópia dele: - Opt-outs ao vivo em e-mail supressões, chaveado para o id da plataforma org, então um opt-out aqui nunca toca na lista de uma org hospedada e na lista de uma org nunca Bloqueia isto. O link é um token assinado (orgId'email, HMAC) que o Desobscribe Controller e página existentes agora aceitar ao lado da campanha tokens, com as mesmas campanhas de cabeçalhos RFC 8058 List-Unsubscribe. - A entrega passa por... DeliveryOptions (nome de exibição e cabeçalhos extras) assim De, a decisão SPF E o retransmissor fica decidido num só lugar. Uma carta de chamada não tem linha de modelo, então o contador de uso é ignorado para ele. Limites, contados de um livro de hashed criado na inicialização) assim cada pod concorda: três pessoas por pedido, predefinido apenas notas, 10 por dia por remetente e por endereço de visitante, 500 por dia em geral, um e-mail por endereço a cada 90 dias, nunca para um endereço suprimido. Também define bulk-email.unsubscribe-base-url na configuração do prod. O código o padrão está em branco, que envia mensagens de campanha sem o link de cancelamento.
· kamo-marketing
Coloque cada página em /sitemap.xml em si, e listar páginas apenas nas línguas que eles têm
/sitemap.xml foi um índice, então abrindo-o mostrou 79 nomes de arquivos em vez de as páginas do site. - /sitemap.xml é agora um <urlset> com cada página: 18.700 deles, cada um em o seu endereço em inglês, com todas as versões linguísticas em que hreflang alterna. Isso está dentro do protocolo 50.000-URL / 50 MB limite para um único arquivo; passado dele, o arquivo é rejeitado inteiro. Entradas do Changelog entrar sem seus suplentes, o que colocaria o arquivo perto de 60 MB. Cada página de entrada declara suas próprias línguas. - Os ficheiros por idioma, onde cada versão linguística é uma URL própria, mover para /sitemap-index.xml. robots.txt nomes de ambos os arquivos. - Uma página cuja cópia tem seu próprio espaço de mensagem está listado, e nomes alterna, apenas nos locais onde o espaço de nomes é realmente traduzido para: pelo menos 90% das suas cordas presentes, menos de 30% idênticas à Inglês (app/lib/mensage-locales.ts). A nova **************** artigo e /recursos não têm Tradução ainda. Eles estavam em todos os 21 locais, 20 deles a página em inglês sob outro prefixo. - Páginas de recolha ler a mesma medida ao vivo para «colecções» no lugar de O COLECÇÃO CONTENT LOCALES. Suaíli cópia da coleção tem foi traduzido desde que essa lista foi escrita, por isso 132 verdadeiras páginas suaíli estavam a apontar o canónico para o inglês.
· kamo-internal
Select de um departamento verifica os membros que está mostrando
Selecção por departamento da Pasta usada para mudar toda a lista para o modo seleccionado com nada Verifiquei, e leia "Feito" até pressionar novamente. Agora verifica cada membro que o departamento é mostrando (a pesquisa e o All / Online / Offline strip decidir quem) e vamos de qualquer um verificado fora dela. Ele sempre lê Selecionar, e está desativado para esse departamento sozinho enquanto a seleção é exatamente essas linhas; desmarcando uma, verificando alguém em outro lugar, ou um filtro que mostra diferente As filas trazem-no de volta. A própria linha do visualizador é deixada de fora: uma conversa em grupo ou reunião que eles começam inclui-los de qualquer maneira, e um de outra forma, enviar-lhes-ia um convite para conversar consigo mesmo. Desactivado com aria-desactivado assim que um usuário do teclado mantém o foco dentro da armadilha do painel, e escurecido com opacidade porque a cor do operador-label é!importante sob o vento de cauda 'importante: verdadeiro'.
· kamo-marketing
Anúncio de serviço público sobre quem mantém taxas de assento de software
Nova página no ************************* explicar, para não técnicos proprietários, como as plataformas de etiqueta branca revendidas funcionam: uma licença de agência plana, por assento taxas que a agência mantém, e o uso medido faturado no topo. Termina com as perguntas perguntar antes de assinar e como KamoCRM difere. Artigo entregue ao servidor com Artigo e BreadcrumbList JSON-LD, seu próprio OG cartão, uma calculadora de assento-fee, e CTAs para livre inscrição, demonstração, contato e telefone. Ligado do menu Recursos e hub, do banner do site como um PSA para o à esquerda do registo de alterações e listado no mapa do site.
· kamo-marketing
Listar cada página em cada idioma em que existe, e fazer cada página concordar
/sitemap.xml listou cada página uma vez, como sua URL em inglês. O changelog 17.843 as entradas não tinham nenhuma alternativa de idioma em tudo, e hreflang de cada página próprio nomeado todos os 21 locais se a página existia ou não neles. - Cada versão linguística é agora uma versão própria, carregando a página cheia, cluster de hreflang recíproco e x-default: formulário recomendado pelo Google, e o que obtém uma página localizada encontrada sem esperar por um rastreador para Siga uma ligação alternativa a ela. - Uma versão é listada apenas onde é seu próprio canônico: SITE LOCALES para Páginas escritas à mão, postagens no blog e páginas da lista changelog; COLECÇÃO CONTENT LOCALES para comparações, soluções, integrações e glossário; e para os artigos KB e entradas changelog, o locales KBService e SecurityService relatar uma tradução real para. Um eco dos ingleses não conta. Listando uma versão que canônicas para o inglês envia uma URL que não pode ser indexado. - Nomes de cada página <head> exatamente o mesmo conjunto. localeAlternates () toma o locales uma página existe em, e um locale fora deles canônicos para Inglês sem índice. Coleta de páginas em locais sem cópia de coleção usada para ser noindex enquanto todas as outras páginas ainda as nomeiam como alternativas. - O índice é dividido por seção (páginas, coleções, cada seção KB, páginas da lista changelog, entradas changelog), cada ficheiro com o seu último módulo e bem dentro dos limites de 50.000-URL / 50 MB. Os ficheiros Changelog são os mais antigos primeiro, para que um arquivo completo nunca mais mude. - Changelog list pages 2..N estão listados; cada um é seu próprio canônico. - /sitemap.json é um documento transmitido segurando cada página e cada URL do idioma. /api/sitemap serve o mesmo documento. - Uma fonte que não pode ser lida responde 503 em vez de um mapa parcial do site.
· KBService
Dizer em que locais cada artigo público é realmente traduzido
O site de marketing agora lista todas as versões linguísticas de cada help-center, documentação e artigo de referência API, e cada página de artigo nomeia os outros como seus suplentes hreflang. Nenhum dos dois poderia dizer uma tradução a partir de um eco: TranslateService responde instruções que não tem provedor para com a fonte inglesa, assim as linhas sw e ta repetem o título e o corpo em inglês palavra por palavra (medida 2026-09-11). Nomear aqueles apontaria motores de busca em páginas que canônicas voltam ao inglês. Os nós de árvore e as leituras simples agora carregam `locales`: os locais cujo título ou corpo difere do artigo em inglês. O corpo sozinho é suficiente - um árabe linha pode manter o título Inglês sobre um corpo traduzido. Computado em uma consulta por pedido do KbTranslatedLocalesService, que lê através da EntityManager para que não seja necessária a liberação da biblioteca compartilhada.

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