# Integração Webhook

**URL:** <http://forum.catacliente.com.br/t/integracao-webhook/77>\
**Category:** Integrações\
**Tags:** integrações\
**Created:** [Agosto 22, 2022, 6:41pm UTC](http://forum.catacliente.com.br/t/integracao-webhook/77 "2022-08-22T18:41:43Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jessica.martins](http://forum.catacliente.com.br/user_avatar/forum.catacliente.com.br/jessica.martins/32/89_2.png) [@jessica.martins](http://forum.catacliente.com.br/u/jessica.martins)\
**Post date:** [Agosto 22, 2022, 6:41pm UTC](http://forum.catacliente.com.br/t/integracao-webhook/77/1 "2022-08-22T18:41:43Z")

</div>

## **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:

 ![Captura de tela 2024-03-15 101104](http://forum.catacliente.com.br/uploads/default/original/1X/70acb37f92cafc2e01634b20dcc65147cf35332f.png)

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](http://forum.catacliente.com.br/uploads/default/original/1X/32231ae82a0eb2cd1cfe12a1f8d7f7fb29407aab.png)

Figura 2 - Exemplo de webhook executado com sucesso

![Captura de tela 2024-03-15 101124](http://forum.catacliente.com.br/uploads/default/original/1X/0db24ea90b3a63d12f9c922e9c9254ce33b4e3dc.png)

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:

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

```

## **Formato do Webhook**

```auto
{
 "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 da última mensagem enviada pelo usuário ao contato. Esta data é atualizada cada vez que o usuário envia uma mensagem ao contato após o aceite do convite de conexão. |
| 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)**

```auto
<?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/](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.
