Relatório de Importação por Webhook
Relatório de Importação por Webhook
Envio do Relatório
Você pode se inscrever para receber um webhook contendo o resumo da importação de anúncios. Os dados do relatório serão enviados via protocolo HTTP no verbo POST, passando um JSON com as informações no endpoint especificado e homologado por nosso time.
Contrato JSON:
{
"id": "625190f0-8b5a-4866-8eb2-0167d71a09a4",
"company": "VIVAREAL",
"type": "FEEDS_INTEGRATION_REPORT",
"description": "A Simple Description Provided by ZAP+",
"details": {
"date": "2020-09-30T19:21:13",
"total": 200,
"updated": 1886,
"created": 0,
"deleted": 0,
"unchanged": 0,
"error": 134,
"warning": 0,
},
"link": "http://grupozap.com.br/report.html",
"errors": [
{
"errorMessage": "O campo preços deve estar entre 200 e 900000",
"externalIds": ["AP0511 ", "SO1009", "SO1683", "SO1648", "SO1677", "GA0086"],
"listingsQuantity": 6
},
{
"errorMessage": "O campo imagens é obrigatório",
"externalIds": ["LO0666", "TE0621"],
"listingsQuantity": "2"
},
{
"errorMessage": "O campo área útil requer que ao menos um valor seja fornecido",
"externalIds": [ "CA0345", "SO1655", "AP1587", "SO1701", "AP1615", "SO1605", "AP1629", "SO1686", "SL0148"],
"listingsQuantity": "9"
}
],
"warnings": [
{
"message": "O campo videoTourLink não é um link válido",
"externalIds": ["AP0511", "SO1009", "SO1683"],
"listingsQuantity": 3,
},
{
"message": "O campo addressNumber não está preenchido",
"externalIds": ["AP0512", "AP0513", "AP0514", "SO1010", "SO1684"],
"listingsQuantity": 5,
}
]
}
Onde:
- id: Campo identificador do webhook;
- company: Tipo do contrato do cliente (VIVAREAL, ZAP, GRUPOZAP, ZAP_OLX);
- type: Tipo de webhook enviado (FEEDS_INTEGRATION_REPORT);
- description: Uma descrição sucinta a respeito do webhook enviado;
- details: Informações específicas do relatório de integração;
- date: Data de execução/criação do relatório;
- total: Nº de anúncios contratados;
- updated: Nº de anúncios atualizados na carga;
- created: Nº de anúncios criados na carga;
- deleted: Nº de anúncios deletados na carga;
- unchanged: Nº de anúncios que não sofreram alterações na carga;
- error: Nº de anúncios com erro na carga;
- warning: Nº de anúncios com aviso na carga;
- link: URL contendo o arquivo do relatório enviado;
- errors: Listagem das críticas sobre os anúncios.
- warnings: Listagem dos avisos sobre os anúncios (temos um limite de no máximo 1.000 warnings a serem enviados).
Observação
Inclusões de novos campos no payload podem ocorrer sem aviso prévio, portanto, ao realizar a integração observe se sua aplicação possui capacidade de extensibilidade sem que ocorra mal funcionamento.
Cadastro do endpoint
Para realização do cadastro da URL (endpoint) do Software/CRM para recebimento dos webhooks referentes ao relatório de importação, valide seu endpoint e depois nos envie as informações preenchendo o formulário abaixo:
*Caso encontre problemas para acessar o formulário, tente acessar diretamente através do link
Timeout
Nosso sistema de integração de eventos aguardará 30 segundos antes de fechar a conexão com a URL configurada, caso seu sistema não responda nesse intervalo com um status HTTP 2XX o evento entrará na política de tratamento de erros descrita abaixo. Recomendamos que seu sistema responda o mais rápido possível as nossas requisições, caso exista algum processamento mais pesado para ser realizado, é ideal que seja feito de forma assíncrona.
Tratamento de erros
Se a URL configurada estiver indisponível ou retornando algum erro, não serão realizadas retentativas. Nós registraremos em nossos sistemas a tentativa mal sucessidade e caso o cliente deseje receber o lead em sua ferramenta de gestão, necessitará abrir uma solicitação ao time de suporte.
Dicas
Testes
Para ver as requisições enviadas em cada evento sem a necessidade de expor um serviço para a internet, você pode usar algum site para receber e logar as nossas requisições
- https://webhook.site/ - Cria um endpoint público e mostra as requisições completas recebidas nele
- https://requestbin.com/ - Tem a opção de criar a visualização das requisições pública ou privada (login pelo GitHub ou Google)
Além destes em uma rápida pesquisa no Google é possível encontrar diversos outros.
Respostas
- Sempre responda com um status HTTP 2XX, caso contrário o evento entrará na política de tratamento de erros.
- Responda o mais rápido possível, deixe processamentos mais pesados para serem feitos de forma assíncrona, lembre-se temos um timeout para considerar a requisição não concluída.
Dúvidas, Sugestões ou Problemas
Caso tenha alguma dúvida, sugestão ou problemas durante a implementação da integração do relatório, envie um e-mail para chamado.integracao@olxbr.com que iremos responder assim que possível.