Ir para o conteúdo

Webhooks

Webhooks são uma maneira prática do Mailtop fornecer a outras aplicações informações em tempo real. Mas, em quais lugares do Mailtop podemos usar webhooks?

Fluxos de automação

Os fluxos de automação do Mailtop possuem uma ação denominada "Chamar webhook". Nesta ação, o Mailtop envia para a aplicação receptora os dados do contato, da lista e do fluxo de automação.

Os dados são enviados via POST com codificação UTF-8, e Content-Type application/json.

{
  "lista": {
    "id": 1,
    "nome": "Lista 1",
    "email_padrao": "admin@mailtop.com.br",
    "nome_padrao": "Admin Mailtop",
    "created_at": "2020-04-27T11:49:10.840-03:00",
    "updated_at": "2020-04-27T11:49:10.840-03:00",
    "pontuacao": 80
  },
  "contato": {
    "id": 1,
    "email": "admin+contato1@mailtop.com.br",
    "nome": "Admin",
    "sobrenome": "Contato 1",
    "pontuacao": 150,
    "created_at": "2020-04-27T11:49:10.958-03:00",
    "updated_at": "2020-04-27T11:49:12.820-03:00",
    "origem": {
      "id": 1,
      "nome": "Formulário"
    },
    "campos_contato": []
  },
  "fluxo_automacao": {
    "id": 1,
    "nome": "Fluxo de Exemplo",
    "pontuacao": 25,
    "created_at": "2020-04-27T11:49:11.789-03:00",
    "updated_at": "2020-04-27T11:49:11.789-03:00"
  }
}

Como ler os dados que o Mailtop envia

É responsabilidade de cada aplicação ler e interpretar os dados recebidos, já que existem várias linguagens diferentes disponíveis para isso. Mas nós vamos mostrar alguns exemplos de como fazer isso.

PHP

Em qualquer versão do php, use file_get_contents( "php://input" ) para obter os dados. A documentação deste wrapper está aqui.

<?php
$jsonEnviado = file_get_contents( "php://input" );

Você deve usar php://input ao invés de $_POST porque o $_POST funciona apenas quando se recebe o envio de um formulário, com enctype="multipart/form-data" ou enctype="application/x-www-form-urlencoded". E não é este o caso aqui. Uma boa explicação sobre o assunto pode ser encontrada nesta postagem do StackOverflow.

Se quiser iterar nestes dados, basta usar, depois disso, json_decode( $jsonEnviado ) para transformar o $jsonEnviado em um objeto.

<?php
$jsonEnviado = file_get_contents( "php://input" );
$dados = json_decode( $jsonEnviado );