Quando você faz uma integração usando os mais de 50 conectores que temos na plataforma da Kondado, a nossa plataforma se encarrega de “ler” os dados dessas origens e inserir no seu Data Warehouse ou Data Lake.
Quando esse conector é uma ferramenta (por exemplo Google Ads, Facebook ou Pipedrive), nós fazemos essa leitura via API para obter as informações que você deseja.
Webhooks podem ser considerados como “APIs reversas”: ao invés de a nossa plataforma ler de forma pró-ativa as informações, é o conector que envia os dados para a nossa plataforma e nós inserimos do webhook para o Data Warehouse.
Adicionando o conector
1) Antes de adicionar um webhook, é importante que você leia esse post sobre como gerenciar os seus tokens de acesso e crie um token que será responsável por autenticar o seu webhook.
2) Uma vez na nossa plataforma, vá para a seção de adicionar conectores, selecione o conector de webhook e adicione-o. Não é necessário fornecer informações de acesso nesse momento, basta dar um nome para o seu novo conector e salvá-lo.
3) Com o conector adicionado, vá para a seção de integrações e clique em “Nova integração”
4) Siga o fluxo normal de criação de integrações, selecionando o novo conector de webhooks como origem
5) Uma vez criada a integração, acesse-a e, na barra de endereço do seu navegador, copie o id da integração, que é o código numérico ao final de “app.kondado.com.br/pipelines/XXXX“
Enviando informações para o seu webhook
O seu novo webhook aceita requisições do tipo POST e irá enviar para o seu destino o body da chamada, que deve ser do tipo JSON.
O endereço do seu webhook é composto da seguinte forma:
URL Base
https://k1.kondado.com.br
Parâmetros obrigatórios
- pipeline_id: código da sua integração, obtido no passo (5)
- key: chave do seu token, obtido no passo (1)
- token: o seu token, obtido no passo (2)
Exemplo de URL
Combinando a URL base e os parâmetros, a sua chamada irá se parecer com a seguinte:
https://k1.kondado.com.br?pipeline_id=835212&token=oseutokenaqui&key=achavedoseutokenaqui
Com a sua URL criada, basta adicioná-la na sua ferramenta ou aplicação e fazer posts nela com o body que deseja enviar ao seu datawarehouse.
ATENÇÃO: Cuidado para não confundir token e key ao adicioná-los na URL. Para diferenciá-los com maior facilidade, lembre-se que a key terá um formato com hífens, como por exemplo “d538b946-9d55-405a-9bd2-72d74b1cb8f5” e o token será uma longa sequencia de números e letras, mas sem hífens
Veja um exemplo de utilização de webhooks
Códigos de resposta do webhook
A resposta da URL retornará o código 200 em caso de sucesso e 400 em caso de falha. Na resposta, haverá um JSON, cujo formato pode ser:
Inserção bem-sucedida
A inserção bem-sucedida retornará um JSON no formato abaixo, onde a variável “success” virá como true e haverá uma outra variável “data”, que contém informações sobre o request.
{ "success": true, "data": { "__kdd_request_id": "rydjemeilmsqkqvjtfkc", "__kdd_request_unix_timestamp": 1577015690.3118637 } }
- __kdd_request_id: id da execução do webhook, que será inserido no seu data warehouse
- __kdd_request_unix_timestamp: UNIX timestamp (em UTC) que indica quando o request aconteceu. Também será inserido no seu data warehouse
Você pode usar as variáveis enviadas em “data” para manter algum tipo de log na sua aplicação.
A inserção bem sucedida não significa que o seus dados serão processados. Após receber uma resposta de sucesso, os dados ainda passarão por uma validação de autenticação em um segundo momento e a resposta negativa de autenticação não será retornada – os dados apenas serão descartados. A resposta positiva você poderá conferir uma vez que os dados sejam inseridos no seu destino
Inserção mal-sucedida
A inserção mal-sucedida retorna um JSON como o abaixo, onde “success” será false e a variável “error” trará o código de erro encontrado.
{ "success": false, "error": "ERROR_CODE" }
Códigos de erro e os seus significados:
- MISSING_PARAMETER: parameter_key. Indica que a URL está mal-formatada e o parâmetro indicado por parameter_key não foi fornecido (lembrando que são obrigatórios os parâmetros pipeline_id, key e token)
- INVALID_PARAMETER: parameter_key: o valor do parâmetro informado é inválido
- NO_PARAMETERS_PROVIDED. Indica que a URL está mal formatada e nenhum parâmetro foi fornecido
- NO_BODY_PROVIDED. Indica que nenhum body foi fornecido durante o POST
Integrações
Gráfico de relacionamento entre tabelas
Post raw JSON
- __kdd_request_body irá receber o JSON do post
Campo | Tipo | |
---|---|---|
__kdd_request_id |
text |
|
__kdd_request_unix_timestamp |
float |
|
__kdd_requester_key |
text |
|
__kdd_request_body |
text |