# Integração de webhook de entrada

<Aside type="caution" icon="setting" title="Necessária a ajuda do desenvolvedor">
 Você precisará da ajuda de sua equipe de desenvolvimento para configurar a integração. Por favor, compartilhe este guia com eles.
</Aside> 

Webhooks de entrada permitem que serviços externos enviem eventos diretamente para o Pushwoosh. Quando um sistema de terceiros aciona um webhook, o Pushwoosh autentica a solicitação, identifica o assinante e dispara o evento mapeado. O evento pode então iniciar ou avançar uma jornada.

Use webhooks de entrada para conectar ferramentas como CRMs, plataformas de e-commerce ou serviços de análise sem construir ou manter seu próprio servidor.
Cada webhook de entrada aciona um evento do Pushwoosh quando uma solicitação correspondente é recebida e processada com sucesso.

## Antes de começar

Prepare o seguinte antes de abrir a configuração do webhook.

1. **Decida qual evento do Pushwoosh o webhook deve disparar.** Escolha um evento existente do seu projeto que você deseja acionar a partir do serviço de terceiros. Por exemplo, `CheckoutSuccess`. Se você ainda não tiver um evento adequado, [crie um](/pt/product/audience-data-and-segmentation/events/custom-events/) com os atributos que deseja preencher a partir dos dados recebidos.

2. **Certifique-se de que seu serviço de terceiros pode enviar webhooks.** O serviço deve ser capaz de enviar uma solicitação HTTP POST para uma URL externa quando o evento que lhe interessa acontecer, por exemplo, um novo pedido ou o envio de um formulário.

3. **Obtenha um payload JSON de amostra do seu serviço de terceiros.** Este é um pequeno exemplo dos dados que o serviço envia em cada evento. Você precisará dele para mapear os campos do payload para os atributos de evento do Pushwoosh.

## Criar um webhook

1. Na sua conta Pushwoosh, vá para **Configurações** → **Integrações** → **Webhooks de entrada** e clique em **Configurações**.

<img src="/integrations-inbound-webhook-1.webp" alt="Página de integrações com o cartão de Webhooks de entrada e o botão Configurações para abrir a configuração do webhook"/>

2. Clique em **Criar webhook** para abrir o fluxo de configuração.

<img src="/integrations-inbound-webhook-2.webp" alt="Tela de criação de webhook com nome, evento, payload de amostra e mapeamento de identificador de usuário"/>

3. Insira um nome para o webhook para que você possa identificá-lo na lista mais tarde.

4. Selecione o evento do Pushwoosh que deve ser disparado quando o webhook receber uma solicitação válida. Você pode escolher entre os eventos que já existem no seu projeto. Se precisar criar um evento primeiro, consulte [Eventos](/pt/product/audience-data-and-segmentation/events/custom-events/).

<Aside type="note">
Um webhook aciona apenas um evento.
</Aside>

<img src="/integrations-inbound-webhook-3.webp" alt="Tela de configuração de webhook com o menu suspenso de eventos do Pushwoosh para selecionar o evento a ser disparado na solicitação recebida"/>

5. Em **Corresponder dados de entrada**, cole um payload JSON de amostra do seu serviço de terceiros. O Pushwoosh carrega os campos do payload nos menus suspensos automaticamente.

<Aside type="note">
Se você atualizar o payload mais tarde, clique em **Recarregar opções de seleção** para atualizar os menus suspensos. Isso redefinirá seu mapeamento de campo atual. Você precisará remapear seus atributos.
</Aside>

Payload de amostra:

```json
{
  "user_id": "12345",
  "email_address": "jane@example.com",
  "mobile": "+15551234567",
  "purchase_date": "2024-03-15",
  "order_number": "ORD-001",
  "price": 99.99,
  "payment_state": "success"
}
```

6. Em **Identificar usuários por**, selecione como o Pushwoosh deve corresponder a solicitação recebida a um usuário:

- **ID do Usuário:** corresponde pelo ID de usuário interno no Pushwoosh.
- **E-mail:** corresponde pelo endereço de e-mail.
- **Telefone:** corresponde pelo número de telefone.
- **HWID:** corresponde por dispositivo, navegador ou identificador de e-mail.

Em **Campo do payload**, selecione o campo que contém o valor correspondente.

<img src="/integrations-inbound-webhook-5.webp" alt="Menus suspensos Identificar usuários por e Campo do payload com dica de ferramenta de ID do Usuário e HWID na tela Corresponder dados de entrada"/>

7. Mapeie cada atributo de evento para um campo do payload. Em cada linha de mapeamento:

- **Atributo do evento:** o nome do atributo no Pushwoosh. Selecione a partir dos atributos definidos para este evento.
- **Campo do payload:** o campo do payload de entrada que contém o valor.

Por exemplo, mapeie `email` para `email_address`, `total` para `price` e `order_id` para `order_number`.

<img src="/integrations-inbound-webhook-4.webp" alt="Linhas de mapeamento de Atributo do evento e Campo do payload com payload de amostra e botão Recarregar opções de seleção"/>

Clique em **+ Adicionar atributo** para adicionar uma linha. Clique em **×** para remover uma.

8. Quando a configuração estiver concluída, clique em **Habilitar**. A janela **URL do Webhook** será aberta. 
<Aside type="caution" icon="setting" title="Necessária a ajuda do desenvolvedor">
Os próximos passos exigem acesso às configurações de webhook do seu serviço de terceiros. Compartilhe a URL e o Segredo com sua equipe de desenvolvimento.
</Aside>

Copie os valores e cole-os nas configurações de webhook do seu sistema externo:

- Copie a **URL** e defina-a como o destino do webhook em seu serviço de terceiros.
- Copie o **Segredo** e cole-o em seu serviço externo como o valor do cabeçalho `Authorization`. O valor inclui o prefixo `Bearer`, então use-o como está. O Pushwoosh rejeita qualquer solicitação em que este cabeçalho esteja ausente ou não corresponda.

<img src="/integrations-inbound-webhook-7.webp" alt="Janela de URL do Webhook mostrando os campos URL e Segredo com botões de cópia para configuração do sistema externo"/>

9. A janela também mostra um **Exemplo de solicitação** com uma solicitação `POST` de amostra. Clique em **Copiar** no bloco de exemplo para copiar a solicitação completa. Use-a para enviar uma solicitação de teste e confirmar que o Pushwoosh aceita o webhook, ou compartilhe-a com sua equipe como um modelo para a integração.

<img src="/integrations-inbound-webhook-6.webp" alt="Janela de URL do Webhook com URL, Segredo e comando curl de Exemplo de solicitação para configuração do sistema externo"/>

Depois de habilitar o webhook, ele aparece na lista de Webhooks com o status habilitado e começa a aceitar solicitações.

## Lista de webhooks

A lista de webhooks de entrada mostra todos os webhooks em seu projeto.


Cada linha mostra:

- **Nome:** nome do webhook.
- **Evento:** o evento do Pushwoosh que é disparado quando o webhook recebe uma solicitação válida.
- **Status:** **Habilitado** ou **Desabilitado**.
- **Recebidas:** número de solicitações recebidas pelo webhook.
- **Última atualização:** quando o webhook foi alterado pela última vez.

<img src="/integrations-inbound-webhook-9.webp" alt="Lista de webhooks de entrada com pesquisa, filtros de status, colunas da tabela e menu de ação da linha aberto"/>
## Gerenciar webhooks
Abra o menu da linha para:

- **Editar configurações:** abre a configuração do webhook para que você possa alterar o nome, evento, mapeamento de campos e identificação do usuário.
- **Copiar URL:** abre a janela **URL do Webhook** com a **URL** e o **Segredo** para que você possa copiá-los novamente.
- **Log de atividades:** abre o log de solicitações para este webhook.
- **Excluir:** remove o webhook da lista.

Para um webhook habilitado, clique em **Desabilitar** para desativá-lo sem excluir a configuração. Para um webhook desabilitado, clique em **Habilitar** para começar a aceitar solicitações novamente.


### Visualizar o log de atividades

O log de atividades mostra todas as solicitações recebidas para o webhook selecionado.

**Painel de resumo**

No topo, revise o resumo das últimas 24 horas:

- **Acessos:** número total de solicitações recebidas.
- **Sucesso:** solicitações em que a autenticação foi aprovada, o usuário foi encontrado e o evento foi disparado.
- **Falha:** solicitações que não foram processadas. Uma solicitação com falha não interrompe o webhook. O Pushwoosh continua a aceitar e processar solicitações posteriores.

| Motivo da falha | O que significa |
| :---- | :---- |
| **Autenticação rejeitada** | O segredo compartilhado não corresponde à configuração do webhook. Se cinco solicitações consecutivas falharem com este erro, o Pushwoosh enviará uma notificação. Atualize o segredo para continuar. Nenhuma reativação é necessária. |
| **Campo identificador de usuário ausente** | O campo do payload mapeado para identificação do usuário não está presente na solicitação. |


<img src="/integrations-inbound-webhook-10.webp" alt="Log de atividades com resumo de Acessos, Sucesso, Falha e entradas de solicitação mostrando selo de status e payload JSON"/>

**Entradas de solicitação**

Cada entrada mostra o identificador do usuário (por exemplo, **ID do Usuário** ou **E-mail**), um selo de **Sucesso** ou **Falha**, o carimbo de data/hora da solicitação e uma prévia do payload JSON recebido. Clique em **Mostrar** para expandir os detalhes completos da solicitação.

<img src="/integrations-inbound-webhook-11.webp" alt="Entrada de solicitação do log de atividades com identificador de usuário, selo de Sucesso ou Falha, carimbo de data/hora, payload JSON e botão Mostrar"/>
## Visualizar eventos disparados por webhook no User Explorer

Quando uma solicitação de webhook é processada com sucesso, o Pushwoosh registra o evento no [User Explorer](/pt/product/audience-data-and-segmentation/user-explorer/). Onde ele aparece depende de como você identificou o usuário:

- **ID do Usuário, E-mail ou Telefone:** o evento é registrado no perfil do usuário. Abra o usuário e vá para o **Histórico de eventos**.
- **HWID:** o evento é registrado no dispositivo correspondente. Abra o usuário, encontre o dispositivo em **Dispositivos de usuário ativos** e vá para a guia **Histórico de eventos**.

Encontre o evento pelo nome e expanda-o para ver os atributos mapeados (por exemplo, `price` ou `products`) e o atributo `__webhook` com o ID do webhook.

<img src="/integrations-inbound-webhook-12.webp" alt="Guia Histórico de eventos do User Explorer mostrando evento de webhook de entrada com atributos expandidos, incluindo ID __webhook e campos de payload mapeados"/>
## Usar webhooks de entrada com jornadas

Depois que um webhook é habilitado e está disparando eventos com sucesso, use o evento selecionado como uma [entrada de jornada baseada em gatilho](/pt/product/customer-journey/journey-elements/entry-elements/trigger-based-entry/). Quando o webhook recebe uma solicitação válida, o Pushwoosh dispara o evento mapeado. Qualquer jornada que use este evento como um gatilho de entrada é iniciada automaticamente para o usuário correspondente.