Analisando erros de envio de e-mails em jornadas no Marketing Cloud
- Juan Juan
- 2 de mai. de 2024
- 5 min de leitura
Atualizado: 18 de jun. de 2024
Olá Trailblazers! Tudo bem?
No artigo de hoje, trago para vocês uma forma de analisar um dos problemas de entregabilidade que mais permeiam a vida dos desenvolvedores de Marketing Cloud diariamente: o querido "Not Sent", ou "Não enviado", presente especificamente nos relatórios de atividades de envio em jornadas.

Muitas pessoas que desenvolvem jornadas no Marketing Cloud não sabem ao certo como visualizar os dados gerados por esse relatório, e realmente, não é tão intuitivo visualizá-los individualmente de uma forma user-friendly ou por meio de data views. Porém, é importante pontuar que o desenvolvimento para conseguir visualizar essas informações é bem simples e deve se tornar obrigatório na sua conta, principalmente se você utiliza filtros, scripts de exclusão e até listas de supressão automáticas.
Entendendo o relatório Not Sent
Tal qual a data view Bounce, o Not Sent apenas armazena informações a respeito dos motivos pelos quais algumas comunicações não conseguiram ser enviados pelo Marketing Cloud.
Extraindo dados do relatório Not Sent
Para conseguirmos extrair os dados desse relatório, faremos um processo bem parecido com o processo de inclusão de registros a listas de supressão por meio do FTP, como falamos nesse artigo! 😊
No final, precisaremos apenas de uma automação e uma extensão de dados para conseguirmos extrair essas informações, e explicaremos todos os passos a seguir:
1 - Criando uma extensão de dados de Not Sent para receber os dados extraídos.
Todo mundo sabe como é criado uma extensão de dados, mas para esse caso, é importante que a criemos com todos os campos com seus respectivos tipos e tamanho de caracteres padrão, desta maneira, não precisaremos mapear as colunas manualmente na hora de configurar a atividade de import na automação.
A lista de campos a serem criados para essa DE é:
Nome | Descrição | Tipo do campo | Comprimento |
ClientID | O identificador da conta do sistema associado ao conjunto de atributos | Numeric | Comprimento máximo padrão do sistema |
SendID or JobID | Identificador associado a um envio de e-mail | Number | Comprimento máximo padrão do sistema |
SubscriberKey | Identificador exclusivo do assinante. | String / Texto | 254 |
EmailAddress | Endereço de e-mail do assinante associado ao conjunto de atributos. Se o assinante tiver optado por não participar, for suprimido ou excluído pelo List Detective, esse valor poderá ser substituído pelo SubscriberKey se o endereço de e-mail não estiver disponível. | String / Texto | 254 |
SubscriberID | O identificador exclusivo do assinante gerado pelo sistema. | Number | Comprimento máximo padrão do sistema |
ListID | Identificador da lista para a qual o trabalho foi enviado | Number | Comprimento máximo padrão do sistema |
EventDate | Data do evento ocorrido | Data | |
EventType | Tipo do evento | String / Texto | |
BatchID | Identifica o lote associado a um evento de envio de e-mail acionado - o padrão é 0 para um envio de lista de marketing | Number | Comprimento máximo padrão do sistema |
TriggeredSendExternalKey | Chave externa associada a uma definição de envio acionado se a devolução resultou de uma solicitação de envio acionado | String / Texto | 100 |
Reason | Motivo detalhado pelo qual o e-mail não foi enviado | String / Texto | 200 |
No final, a grande maioria dos campos apresentados acima são os mesmos que os campos disponíveis em uma data view padrão (como job, open, click, unsubscribe, etc), o único campo que iremos analisar friamente é o "Reason", ou razão pela qual aquele envio terminou causando um erro.
Não esqueça de salvar a DE criada acima na pasta apropriada, normalmente junto com as outras DEs de Data Views e reports do SFMC! 😌
2 - Criando sua automação de Not Sent e configurando as atividades
Para essa automação, precisaremos configurar as seguintes atividades:
Atividade de Extração de Dados
Atividade de Transferência de Arquivos
Atividade de Importação de Dados
Para conseguir desenvolver essa solução, será necessário apenas repetir os passos listados a seguir:
2a - Criando a automação de Not Sent Essa é a parte mais simples dessa solução. 😅 Você precisará apenas criar uma nova automação e configurar a sua recorrência de preferência. Eu incentivo você a configurar uma recorrência diária, pois uma recorrência horária pode não performar tão bem.
2b - Desenvolvendo a atividade de Extração de Dados
Após selecionar a atividade de Extração de Dados (ou Data Extract) e arrastá-la até o primeiro slot do canvas da automação, iremos configurá-la dessa maneira:
Para o nome, podemos colocar qualquer nome de preferência.
O campo chave externa poderá estar em branco, pois uma vez configurada a atividade, a chave externa será incluída automaticamente.
Para o padrão de nome de arquivo, necessitaremos incluir alguns especificadores curinga relacionados a data como esta especificado acima. Os especificadores curinga nos ajudam a extrair e importar sempre o dado mais atualizado quando compartilhado com o FTP. Por exemplo: levando em consideração que hoje (a data que escrevi esse artigo), é dia 29 de Abril de 2024, o arquivo Not Sent gerado hoje teria o nome: Not_Sent_20240429.zip
O tipo de extração deve ser sempre o Tracking Extract, pois iremos selecionar exclusivamente a opção Not Sent na próxima tela.
Após terminar de configurar as principais propriedades dessa atividade, deveremos configurar quais visualizações de dados a atividade irá exportar e qual será o range de data a ser considerado.
Como falei acima, a boa prática é configurar essa automação para ter recorrência diária, logo, será necessário apenas escolher 1 dia de range, e a opção "Extract Not Sent" deverá ser unicamente escolhida.
2c - Desenvolvendo a atividade de Transferência de Arquivos para mover o arquivo
Após configurar a primeira atividade da automação, deveremos seguir para o desenvolvimento de uma sequência de atividades de transferência de dados, uma específica para mover nossos dados do Safehouse para o diretório /import do FTP, e outro para descompactar / dezipar o nosso arquivo.
A primeira configuração que deveremos fazer é incluir um nome específico para a atividade e indicar que estaremos Movendo um arquivo do Safehouse para outra pasta do FTP, nesse caso, a pasta /import
Na próxima tela, devemos simplesmente incluir o mesmo nome gerado na atividade anterior dentro do campo de "Nome do Arquivo". Caso passarmos um nome diferente, a atividade retornará um erro. O destino desse arquivo deverá ser o ExactTarget Enhanced FTP, ou algum diretório personalizado mas que seja possível mapeá-lo no momento do descompactamento e importação.
2d - Desenvolvendo a atividade de Transferência de Arquivos para descompactar o arquivo
Como você pode ter visto na telas anteriores, estaremos gerando e movendo o arquivo em formato .csv, mas sabemos que para importar esse arquivo para uma DE no Marketing Cloud, esse arquivo precisará exclusivamente ter um formato de .csv ou .txt. Para isso, utilizaremos uma nova atividade de Transferência de Dados, mas exclusivamente voltada para o processo de descompactamento do arquivo .zip
Sua configuração será extremamente parecida com a configuração da atividade passada, a única diferença é que no primeiro passo escolheremos a opção "Gerenciar Arquivo", e no segundo passo escolheremos a opção "Descompactar o arquivo".
2e - Desenvolvendo a atividade de Importação de Dados
Agora com as atividades de Transferências de Arquivos da sua automação criadas, é só questão de configurar corretamente a atividade de importação, no qual deverá ser configurada da maneira a seguir:
Local de Pasta: ExactTarget Enhanced FTP, ou algum diretório personalizado mapeado anteriormente
Nome do Arquivo: NotSent.csv (o nome do arquivo deve ser esse mesmo, pois é o arquivo .csv que esta armazenado dentro de cada pasta .zip com os especificadores coringa)
Formato de Data: Inglês Americano
Delimitador: Vírgula
Após passar pela página de configuração dessa atividade de importação, você deverá mapear a extensão de dados criada no passo 1 desse tutorial. Caso ela tenha os mesmos campos indicados acima, o processo do mapeamento poderá ser automático. Caso contrário, você deverá especificar o nome da coluna que receberá determinado dado do arquivo gerado.
Quando você finalizar a sua automação, poderá rodá-la, ativá-la, revisar se não retornou nenhum erro (se você seguir todos os passos indicados nesse artigo, tenho certeza que você não terá problemas!), e finalmente visualizar seus dados de falhas de envio na DE criada!
Agora você deve estar me perguntando: Ok Juan, mas como eu entendo o que pode levar um usuário a retornar Held ou Excluded by Send Time Filter?? Explicarei na sessão a seguir!
Analisando os dados de razão do relatório Not Sent
A lista de possíveis erros do Not Sent, bem como suas descrições, são:
Nome | Descrição |
Account Level Optout | Os assinantes optaram por não receber mais comunicações usando os recursos de feedback mantidos pelos provedores de e-mail. Em outras palavras, quando os destinatários do e-mail marcam as mensagens como “spam”, essas informações são retransmitidas para o Marketing Cloud, resultando em uma “desativação da assinatura”. |
Build Email Error | Um erro ocorreu no momento que se tentou "construir" a versão do e-mail que o usuário ia visualizar do lado do seu navegador |
Domain Exclusion | O endereço de e-mail foi excluído do domínio devido a recursos de exclusão de domínio. |
Excluded by Send Time Filters | Na grande maioria das vezes, o assinante foi excluído do envio graças a um script de exclusão, por isso ele foi filtrado apenas no momento que o envio teria ocorrido |
Held | Ocorreram bounces / retornos, porém, atendendo a determinadas condições, o Marketing Cloud não conseguiu captar essa informação e acabou fazendo com que o status fosse mantido (não entregável). |
Invalid Email Address | O endereço de e-mail não existe no domínio, ou o domínio é inválido |
List Detective Exclusion | Endereços de e-mail excluídos pela funcionalidade padrão do SFMC - List Detective. |
Send Failure | O email não foi enviado por algum motivo, embora a causa específica não tenha sido especificada. |
Unsubscribed Master | Um assinante com status de assinatura cancelada. |
Caso alguma variação de resposta do campo Reason não estiver especificado acima, deixe um comentário abaixo e incluiremos no futuro!
Conclusão
Ao implementar a análise do relatório Not Sent no Marketing Cloud, você terá uma visão clara dos motivos de falha de envio, permitindo ajustes precisos para melhorar a entregabilidade e a eficácia das suas comunicações.
Comments