[RESOLVIDO] Segmentos com filtros do Mautic não atualizam

Se os segmentos com filtros do Mautic não atualizam, você pode estar com excesso de registros relativos à abertura de emails.

Neste artigo eu mostro como resolver este problema, com uma manutenção relativamente simples do banco de dados do Mautic.

Requisitos

Para realizar o procedimento, você vai precisar ter acesso ao terminal máquina onde o Mautic está instalado.

E conhecer os dados de acesso à base de dados MySql que o Mautic usa.

Alertas

O procedimento ensinado neste post atua diretamente na base de dados da sua instalação do Mautic.

Portanto recomendo fortemente que você realise o backup dessa base de dados MySql, antes de executar o procedimento.

E só realise este procedimento se souber exatamente o que está fazendo.

NÃO NOS RESPONSABILIZAMOS POR DANOS NA INSTALAÇÃO DO MAUTIC, PERDA DE DADOS OU OUTROS PROBLEMAS DECORRENTES DA SUA TENTATIVA DE USAR O PROCEDIMENTO QUE COMPARTILHAMOS NESTE POST.

A tarefas cron do Mautic que deu o alerta

O problema que me levou a escrever este artigo foi o seguinte:

eu possuía alguns segmentos com filtros que listavam, por exemplo, os leads (contatos) que haviam aberto algum dos meus emails, nas últimas 2 semanas.

Para manter essa lista atualizada, eu sempre precisava mudar a data de referência no filtro deste segmento.

Depois eu precisava aguardar as tarefas cron do Mautic, para que o segmento fosse recalculado.

Certo dia notei no log do meu servidor, que havia tarefas de manutenção do Mautic se sobrepondo.

Rodei então o comando de atualização dos segmentos para ver o que estava havendo.

O comando demorou muito para terminar e eu resolvi reconfigurar o Cron, aumentando o tempo entre os comandos.

Isso daria tempo do cálculo terminar, antes do próximo evento de atualização ser iniciado.

Com isso, me despreocupei sobre o assunto e a vida seguiu.

O segmento que parou de atualizar

Tempos depois, comecei a notar que o segmento de contatos que abriam os meus emails nas duas últimas semanas, não mudava de tamanho.

Eu sabia que havia algum problema.

Afinal, as pessoas abriam emails o tempo inteiro e esta lista deveria estar sempre mudando de tamanho.

E como este segmento é fundamental para manter uma boa entregabilidade dos meus emails, eu resolvi investigar a fundo a questão.

Atualizando manualmente os segmentos

Primeiro rodei novamente o comando de atualização dos segmentos.

Percebi que ele agora não estava mais lento, ele simplesmente não terminava.

Depois eu pensei o problema poderia ser causado pela grande quantidade de leads anônimos.

E acabei tendo trabalho para remover todos os leads anônimos inativos por mais de 30 dias.

Clicando no link a seguir você descobre como eu resolvi o problema com leads anônimos inativos. https://baquiebyte.eti.br/como-apagar-leads-anonimos-inativos-no-mautic/

Porém, mesmo após fazer isso, não mudou em nada o tempo de atualização dos segmentos.

Registros de abertura de emails no Mautic

Como consequência, eu tive que pesquisar mais para entender porque estava tão demorado para fazer aquela atualização.

Foi aí que eu resolvi fazer uma análise no banco de dados MySql, para descobrir qualquer anomalia entre as tabelas.

Ao rodar o mysqlcheck percebi que havia uma tabela que simplesmente não terminava de ser analisada.

Era a tabela mtc_email_stats e ainda havia uma tabela relacionada mtc_email_stats_devices.

Estas tabelas podem ter nomes diferentes na sua instalação, procure por tabela que terminem com “email_stats” e “email_stats“, para substituir as querys SQL que eu informo abaixo.

Use as querys abaixo para descobrir a quantidade de registros antigos que você deseja remover.

Lembre-se de adaptar às linhas ao nome da sua tabela em específico e à quantidade de dias que você deseja manter de informações na sua base de dados.

Descobrindo número total de registros de dispositivos dos leads que abriram emails enviados pelo Mautic:

mysql> select count(id) from mtc_email_stats_devices;

O número de registros de dispositivos dos leads que abriram emails enviados pelo Mautic, há mais de 120 dias:

mysql> select count(id) from mtc_email_stats_devices WHERE date_opened < CURDATE() - INTERVAL 120 DAY;

Número total de registros de status de abertura de emails enviados pelo Mautic:

mysql> select count(id) from mtc_email_stats;

E o número de registros de status de abertura de emails enviados pelo Mautic:, há mais de 120 dias:

mysql> select count(id) from mtc_email_stats WHERE date_sent < CURDATE() - INTERVAL 120 DAY;]

Aviso antes de remover os registros

A quantidade de registros na tabela “email_stats” era absurdamente grande.

Por isso precisei de uma estratégia para começar a apagar os dados, sem que meu terminal ficasse parado por horas.

E sem que eu soubesse o resultado das querys.

Então identifiquei os registros mais antigos com a query:

mysql> select id,date_sent from mtc_email_stats order by date_sent limit 10;
Datas dos registros de envio mais antigos do Mautic
Segmentos com filtro do Mautic não atualizam

E comecei a apagar os dados mês a mês, com as querys abaixo:

mysql> DELETE FROM mtc_email_stats where date_sent < '2018-05-01';
mysql> DELETE FROM mtc_email_stats where date_sent < '2018-06-01';
mysql> DELETE FROM mtc_email_stats where date_sent < '2018-07-01';

Você pode ver na imagem abaixo a quantidade de registros emovidos a cada vez e o tempo quelevou para executar cada query.

Temo que leva para apagar os registros de envio no Mautic
Temo que leva para apagar os registros de envio no Mautic

Continuei apagando assim, de mês em mês, 3 em 3 meses, até alcançar aproximadamente a data de 180 dias atrás.

Então eu usei o comando abaixo para apagar os registros de status de abertura de emails enviados pelo Mautic:, há mais de 120 dias:

mysql> DELETE FROM mtc_email_stats where date_sent < CURDATE() - INTERVAL 120 DAY;

A query acima deve te ajudar a manter a saúde da sua base de dados.

Principalmente, se você como eu, tem segmentos com filtros se referindo à data de abertura dos emails enviados.

Espero que este artigo te ajude a resolver o seu problema e se isso acontecer, comente aqui abaixo rapidamente o resultado.

A gente se vê no próximo artigo.

1 comentário em “[RESOLVIDO] Segmentos com filtros do Mautic não atualizam”

Deixe um comentário

Desenvolvido por Felipe Baqui