7 min de leituraIntegrações

Rastreamento de cliques em links do Salesforce: cliques no registro do contato

O Salesforce rastreia cliques apenas nos e-mails que ele mesmo enviou. Três caminhos para levar cliques de links curtos até um registro, e o único que funciona fora do e-mail.

Marius Voß
DevRel · edge infra
Um clique em link curto chegando como webhook e se tornando um registro de clique vinculado a um contato e a um campaign member do Salesforce

O Salesforce registra um clique quando foi o próprio Salesforce que enviou o link. O Account Engagement reescreve as URLs em seus próprios e-mails e atribui o clique a um prospect, e os custom redirects estendem isso a links que você cola em outros lugares. Essa é toda a história nativa.

Tudo o mais que a sua empresa envia não produz clique algum no CRM. O follow-up de um representante pela própria caixa de e-mail, uma sequência de SMS, um QR code em um estande de conferência, um anúncio pago, uma newsletter de parceiro: tudo invisível. Fechar essa lacuna exige um link rastreado que você controla e um webhook que grava no Salesforce, e as decisões interessantes estão no que gravar, não em como enviar. Para o mesmo problema em outro CRM, cliques em links do HubSpot na timeline do contato cobre o formato da integração.

O que as ferramentas nativas cobrem

Dois mecanismos, ambos restritos a mensagens enviadas pelo próprio Salesforce.

O rastreamento de cliques em e-mail no Account Engagement reescreve cada link por meio de um subdomínio de rastreamento, de modo que o clique é registrado no prospect que recebeu o e-mail. Funciona bem, e só funciona ali.

Os custom redirects vão um passo além: você gera uma URL rastreada e a usa em um banner, um post em rede social ou um documento, e os cliques aparecem como atividade do prospect. Duas restrições moldam a utilidade disso na prática. Cliques repetidos do mesmo prospect são limitados dentro de uma janela de tempo, então a contagem deliberadamente não é um total bruto. E a atribuição a um prospect nomeado depende de o visitante já estar identificado, o que, para tráfego frio, significa que o clique é registrado sem uma pessoa vinculada.

O Marketing Cloud tem seu próprio modelo de link rastreado com o mesmo princípio: ele mede o que enviou.

Nada disso é uma crítica. É um escopo, e conhecer o escopo mostra exatamente para que serve a terceira rota.

A lacuna e como fechá-la

O padrão é curto. Seu encurtador dispara um webhook a cada clique. Um endpoint o recebe, verifica e o transforma em um registro.

Três decisões de implementação definem se isso é um trabalho de fim de semana ou um incidente recorrente.

Publique um platform event em vez de gravar diretamente. Um platform event desacopla a ingestão da decisão sobre o que um clique significa. A integração publica Link_Click__e; os subscribers decidem se isso atualiza um campaign member, cria uma task, ou não faz nada para essa campanha. Quando o marketing muda de ideia sobre o que um clique deve disparar, você edita um flow em vez de um consumidor de webhook.

Verifique a assinatura antes de confiar no payload. O endpoint é público por definição. Confira o HMAC contra o segredo compartilhado, rejeite em caso de divergência e nunca extraia o identificador de contato do corpo da requisição sem validá-lo contra algo que você mesmo emitiu.

Deduplique pelo identificador do clique. A entrega do webhook tenta novamente após um timeout, o que significa que o mesmo clique pode chegar duas vezes. Armazene o identificador e torne a gravação idempotente; a alternativa é um contato com quatro registros de clique idênticos por causa de um único toque. Rate limits e idempotência em uma API de links cobre a mesma disciplina do lado de saída.

Um clique em um link curto passando por um webhook assinado e um platform event até um registro de clique do Salesforce e uma atualização de campaign member

Vinculando um clique a uma pessoa, com honestidade

É aqui que as integrações mentem discretamente, então vale a pena dizer isso com todas as letras.

Um clique carrega o que quer que o link carregasse. Se você gerou um link curto distinto por destinatário, o payload identifica o destinatário e você pode gravar no registro dele com confiança. Se quatrocentas pessoas receberam o mesmo link, você tem quatrocentos cliques e nenhum nome, e nenhum join engenhoso recupera isso.

Então decida caso a caso. Sequências de outbound e follow-ups um a um justificam um link por destinatário, gerado via API no momento em que a mensagem entra na fila. Campanhas amplas não justificam, e contagens no nível de campanha são o resultado honesto: cliques por campanha, por meio, por link, vinculados ao objeto Campaign em vez de a indivíduos. Encurtadores de URL para equipes de vendas B2B mostra onde a versão por destinatário se paga.

A única coisa a não fazer é inferir identidade a partir de um endereço IP ou de uma coincidência de horário. Isso erra com frequência suficiente para contaminar um relatório de pipeline, e na Europa é uma decisão de tratamento de dados que você prefere não ter de defender.

Configurando isso agora? Os webhooks do Elido assinam cada entrega e tentam novamente com backoff, e a referência de webhooks na documentação lista os campos do payload de clique que você vai mapear.

O que gravar, e onde

Quatro destinos, em ordem crescente de quanto raciocínio exigem.

  • Um custom object de clique. Click__c com lookups para Contact e Campaign, além de link, parâmetros de campanha, país, dispositivo e timestamp. Essa é a escolha durável; os relatórios permanecem rápidos e o feed de atividades permanece legível.
  • Status de campaign member. Mover um member de Sent para Responded no primeiro clique é a automação mais útil por aqui, porque alimenta todo relatório de campanha que você já tem.
  • Uma task, com moderação. Útil para links de alto valor, nos quais um representante deve ver o toque no próprio feed. Péssima como padrão, porque alguns milhares de tasks por semana enterram tudo o mais.
  • Um campo de rollup no contato. A data do último clique e uma contagem acumulada são baratas de manter e respondem à maioria das perguntas que um representante faz sem abrir uma related list.

Mapeie os parâmetros de campanha em campos em vez de fazer parsing deles depois. O utm_campaign no registro de clique é o que permite que um relatório de sales ops agrupe por campanha sem precisar de nenhum join.

Quatro etapas de configuração para o rastreamento de cliques do Salesforce, desde a criação do platform event até a verificação de assinatura e a automação de campaign member

Volume é a restrição que ninguém planeja

Os cliques chegam em rajadas. Uma newsletter para cinquenta mil pessoas produz milhares de cliques nos primeiros dez minutos, e uma integração ingênua transforma cada um deles em uma chamada de API.

Orgs do Salesforce têm cotas diárias de API, e a publicação de platform events tem suas próprias cotas. Vale a pena fazer essa conta antes do lançamento, não durante: pico de cliques por minuto contra a sua cota, e a resposta costuma ser que gravações por clique não cabem.

Três saídas, em ordem de preferência. Publique apenas eventos de limiar, de modo que o CRM saiba do terceiro clique em vez de cada clique. Agregue do seu lado e grave resumos horários para relatórios no nível de campanha. Ou agrupe em lote, retendo eventos brevemente e inserindo em massa. Webhooks versus polling para rastreamento de cliques cobre a troca para quando o volume pede exatamente a direção oposta.

Já vi isso falhar exatamente uma vez, às 9h de um dia de lançamento, e o conserto feito sob pressão é sempre mais tosco do que o conserto projetado com antecedência.

Testando antes de confiar

Cinco verificações. Envie um clique de teste assinado e confirme que ele vira um registro com a campanha anexada. Envie o mesmo clique duas vezes e confirme que existe apenas um registro. Envie um clique para um contato desconhecido e confirme que ele chega como uma linha não atribuída em vez de lançar um erro. Reenvie um payload com assinatura errada e confirme uma rejeição. Depois rode uma campanha real com baixo volume e concilie a contagem do encurtador contra a contagem de registros na mesma janela; uma diferença de alguns por cento é o acomodamento das retentativas de entrega, uma diferença de trinta por cento é um bug.

Leia a série cornerstone

Este post está no cluster de integrações. Encurtadores de URL para marketers é o cornerstone para o lado de relatórios, e webhooks para eventos de link cobre os formatos de payload em detalhe.

Relacionado no blog

Perguntas frequentes

O Salesforce rastreia cliques em links nativamente?

Ele rastreia cliques em links que ele mesmo enviou. O Account Engagement reescreve os links em seus e-mails por meio de um subdomínio de rastreamento e registra o clique no prospect, e os custom redirects estendem isso a links que você coloca em outros lugares. Qualquer coisa enviada fora dessas ferramentas, incluindo a própria caixa de e-mail de um representante, uma campanha de SMS ou um código impresso, não produz clique algum no Salesforce.

O que é um custom redirect no Account Engagement?

Um link rastreado gerado dentro do Account Engagement que registra um clique como atividade no registro do prospect. Ele serve bem para banners publicitários, posts em redes sociais e arquivos hospedados em outro lugar. Dois limites importam na prática: cliques repetidos do mesmo prospect são limitados dentro de uma janela curta, e o link só identifica uma pessoa quando o visitante já tem cookie.

Como faço para levar cliques de links curtos para o Salesforce?

Envie um webhook do encurtador para o Salesforce e grave um registro. O padrão limpo é publicar um platform event e deixar que um subscriber decida o que fazer com ele, de modo que o clique vire uma linha de custom object, uma task, ou uma mudança de status de campaign member sem que a sua integração precise saber qual. Verifique a assinatura, deduplique pelo identificador do clique e agrupe em lote sob carga.

Um clique pode ser atribuído a um contato específico?

Só se o link era exclusivo daquele contato. Um único link de campanha clicado por quatrocentas pessoas gera quatrocentos cliques anônimos, e nada no payload muda isso. Gere um link por destinatário quando a atribuição no nível de pessoa importar, e aceite relatórios no nível de campanha quando não importar.

Cliques devem virar tasks ou um custom object?

Um custom object, assim que o volume for real. Tasks são convenientes porque aparecem na timeline de atividades, e viram ruído a partir de alguns milhares de linhas por semana, além de inflar o armazenamento. Um custom object de clique com um lookup para Contact e Campaign mantém os relatórios rápidos e permite consolidar contagens sem tocar no feed de atividades.

O volume de cliques vai esbarrar nos limites de API do Salesforce?

Pode, e rapidamente. Uma campanha movimentada produz mais cliques por hora do que a cota diária de API de uma org pequena, então gravar uma chamada de API por clique é o erro a evitar. Agregue antes de enviar, publique eventos de limiar em vez de cada clique, ou agrupe em lote conforme uma programação.

Experimente Elido

Cole uma URL, obtenha um link curto

Sem cadastro. O link vive 30 dias. Cadastre-se para mantê-lo para sempre.

Grátis, sem necessidade de registo · 2 por dia

Experimente o Elido

Encurtador de URL hospedado na UE: domínios personalizados, análises profundas e API aberta. Plano gratuito - sem cartão de crédito.

Tags
salesforce link tracking
click tracking crm
platform events
custom redirects
webhooks
campaign member

Continuar lendo