Integração Webhook

Visão Geral

Este documento visa mostrar como é feita a integração de uma conta de CRM externa com a plataforma de prospecção utilizando o Webhook.

O Webhook disponível no Catacliente envia para outros sistemas as informações dos contatos que demonstraram interesse no assunto definido em uma determinada campanha.

Quando um Webhook é disparado?

O webhook é disparado quando um usuário atribui pela primeira vez ou reclassifica o nível de
interesse para um contato. O webhook não é disparado caso o nível de interesse seja removido de um contato.

Passo-a-passo da integração

Na tela de configuração do Webhook, informe a URL de destino no campo especificado:

Figura 1 - Tela de configuração do webhook

O botão “Testar Webhook” envia uma requisição de teste para a URL informada e validará se o
webhook foi enviado com sucesso. Exemplos de retorno:

Captura de tela 2024-03-15 101116

Figura 2 - Exemplo de webhook executado com sucesso

Captura de tela 2024-03-15 101124

Figura 3 - Exemplo de erro ao executar

Retorno do teste da execução da URL

A URL deve retornar para o Catacliente o código HTTP 200 e no corpo da resposta retornar um
JSON, ou uma string qualquer que não seja uma página HTML, ou uma string vazia para ser considerada uma execução válida.

Exemplos válidos de retorno:

{"message":"Workflow was started"}
{"success":true,"message":"Success"}
Accepted

Formato do Webhook

{
 "contact": {
 "id": 0,
 "name": "Contato Teste",
 "invite_date": "2021-01-22 12:28:47",
 "accept_date": "2021-01-22 12:28:47",
 "collect_date": "2021-01-22 12:28:47",
 "reply_date": null,
 "linkedin_public_id": "contato-teste",
 "current_company": "Empresa Teste",
 "current_company_link": "http:\/\/linkpara.empresa.teste",
 "role": "Teste",
 "location": "S\u00e3o Paulo, Brasil",
 "email": "teste@empresateste.com",
 "phone": null,
 "interest_level": 2,
 "skills": [{
 "skill": "skill 1",
 "endorsements": 1
 }, {
 "skill": "skill 2",
 "endorsements": 2
 }],
 "experiences": [{
 "experience": "Experi\u00eancia 1",
 "company_link": "http:\/\/linkpara.empresa.teste"
 }]
 },
 "contact_owner": {
 "id": 0,
 "name": "Usu\u00e1rio Teste",
 "email": "teste@teste.com"
 },
 "campaign": {
 "id": 0,
 "name": "Campanha Teste",
 "description": "Descri\u00e7\u00e3o da campanha teste"
 },
 "messages": [{
 "sender_name": "Usu\u00e1rio Teste",
 "message": "mensagem de teste",
 "date": "2021-01-22 12:28:47",
 "pending_message": 0
 }]
} 

Detalhamento dos campos disponíveis

Campo Descrição
contact.id Identificador numérico do contato.
contact.name Nome do contato.
contact.invite_date Data que o convite de conexão foi enviado.
contact.accept_date Data que o convite de conexão foi aceito
contact.collect_date Data que o contato foi inserido no sistema.
contact.reply_date Data em que o usuário respondeu à nota de convite.
contact.linkedin_public_id Identificador do perfil do usuário no LinkedIn.
contact.current_company Nome da empresa atual do contato.
contact.current_company_link URL da empresa atual do contato.
contact.role Cargo do contato.
contact.location Texto informando a localização do contato.
contact.email E-mail do contato.
contact.phone Telefone do contato (formato varia conforme o contato).
contact.interest_level Nível de interesse do contato. 1 – Interesse baixo 2 – Interesse médio 3 – Interesse alto
contact.skills Array com a lista de competências do contato. Dentro desse array, o campo “skill” informa o nome da competência, “endorsements” informa a quantidade de pessoas que confirmaram que o contato domina a competência em questão.
contact.experiences Array com a lista de experiências prévias do contato. Dentro desse array, o campo “experience” descreve o cargo que o usuário ocupou anteriormente, “company_link” informa a URL da empresa.
contact_owner.id Identificador numérico do usuário para o qual o contato está atribuído.
contact_owner.name Nome do usuário.
contact_owner.email E-mail do usuário.
campaign.id Identificador numérico da campanha usada.
campaign.name Nome da campanha.
campaign.description Descrição da campanha.
messages Array com a lista de mensagens trocadas com o contato.

Detalhamento do array de mensagens (messages)

Campo Descrição
sender_name Nome de quem enviou a mensagem.
message Conteúdo da mensagem.
date Data de envio da mensagem.
pending_message Flag que indica se a mensagem está pendente de envio ou não (apenas para mensagens enviadas pelo Catacliente). 0 – Mensagem não está pendente 1 – Mensagem ainda não foi enviada

Exemplo de recebimento de dados (PHP)

<?php
$json = file_get_contents('php://input');
// json convertido para array
$data = json_decode($json, true);
// processar o array $data ...
echo "Webhook recebido.";
?>

Integração com o Zapier

O Zapier fornece uma forma bem fácil de receber webhooks e processá-los. Para isso, basta seguir a documentação do próprio Zapier no link abaixo:
https://zapier.com/page/webhooks/

FAQ (Suporte)

1) Configurei o webhook, mas não aparece nada na ferramenta XYZ.
Verifique se foi informada uma URL válida durante a configuração dos webhooks. A URL informada deve ter sido criada especificamente para recebimento de webhook.

URLs de planilhas do Google e páginas iniciais de websites não processam dados enviados via POST. Ao usar a função de teste nessas URLs provavelmente será retornado HTTP 200, mas nada vai acontecer, pois nenhum processamento é feito pela URL de destino.

Também verifique se a URL é pública e não está bloqueada por logins e/ou firewalls para acesso
externo.

Observação: o Catacliente não é responsável pelo processamento dos dados pela URL informada
pelo cliente. O sistema apenas envia as informações, o que acontece depois disso não está no escopo de atuação do Catacliente.

2) O formato dos dados enviados pelo Catacliente não é compatível com o meu sistema. Preciso que o webhook envie dados em um formato diferente.

Não é possível mudar o formato do JSON enviado para o webhook. O padrão utilizado pelo
Catacliente foi criado de forma a conter todas as informações possíveis de um contato.

Caso seja necessário receber dados em outro formato, recomenda-se que a URL destino faça um
pré-processamento dos dados recebidos do Catacliente e os reenvie para o sistema que possui o formato personalizado. O sistema de integrações Zapier é uma ferramenta criada justamente com esse propósito.

3) Quero configurar o webhook para um usuário específico. É possível?

Webhooks são configurados apenas por empresa.