O Sinky Studio permite o envio de notificações automáticas por meio de Webhooks sempre que uma decisão é tomada em um fluxo de trabalho. Essa funcionalidade permite que seus sistemas sejam informados em tempo real sobre os resultados das decisões, facilitando integrações assíncronas e reações automatizadas com base nos outputs dos fluxos.
Eventos de Webhook
O Sinky Studio disponibiliza eventos de Webhook integrados à etapa de decisão (nó de decisão) dentro dos workflows.
Você pode configurar webhooks diretamente no seu fluxo para cada decisão tomada. Ao atingir a etapa de decisão, o sistema enviará automaticamente o resultado da análise para a URL configurada.
O objeto de resultado do webhook é idêntico ao da API de Resultado do workflow.
A decisão será retornada dentro de nodeExecutions
, com o campo nodeType
igual a "decision"
.
{
"nodeId": "decision_004",
"nodeName": "Credit Decision",
"nodeType": "decision",
"status": "completed",
"startTime": "2024-01-15T14:21:30.700Z",
"endTime": "2024-01-15T14:21:45.200Z",
"executionTime": 14500,
"inputData": {
"approvalRecommendation": "approve",
"serasaScore": 750,
"requestedAmount": 50000.00,
"companyName": "Empresa Exemplo LTDA"
},
"outputData": {
"approved": true,
"reason": "Score Serasa acima do limite mínimo",
"creditLimit": 50000.00,
"interestRate": 2.5,
"paymentTerms": "12x",
"decidedAt": "2024-01-15T14:21:45.200Z",
"decidedBy": "system",
"validUntil": "2024-02-15T14:21:45.200Z"
},
"errors": []
},
Os erros seguem a mesma estrutura da API de Input.
Tratamento de Erros
Erros na execução do fluxo de trabalho
A seção errors
lista todos os erros que ocorreram durante a execução do fluxo de trabalho (se aplicável). Por exemplo, um erro http ocorreu durante uma chamada de integração de terceiros.
Erros podem estar presentes tanto na raiz do resultado quanto dentro das etapas (nodeExecutions
).
"errors":[
{
"message":"Third party internal error",
"code":90004,
"context":"{http_code=404, method=POST, request_body={\"phoneNumber\":\"2001001687\",],\"ssn\":\"xx\"}, response_body={\"status\":1012,\"description\":\"No CRM data available\",\"additionalInfo\":\"full ssn mismatch\"}}"
}
]
Erros Fatais
No caso de um erro fatal, o código HTTP não será 2xx. O corpo da resposta trará os detalhes do erro de acordo com as convenções HTTP.
Formato do Erro
Todos os erros retornarão com o mesmo formato base.
{
"requestId": "420f0910-a664-4671-8d16-29f05e28530a",
"message": "Event type not found, please check event type name in the input",
"type": "enrichment",
"code": 4001,
"context": "{\"missing_event_type\": \"get_eligibility_v2\"}",
}
Atributo | Descrição |
---|---|
Request | UUID, identificador da requisição. |
Message | Descrição detalhada do erro. |
Type | Classificação de alto nível do erro. |
Code | Código de erro indicando o tipo exato do erro. Cada tipo de erro tratado no sistema Sinky recebe um código de erro único. Veja abaixo a lista de possíveis códigos de erro secundários. |
Context | Uma string JSON contendo pares de chave/valor como informações de contexto do erro. |
Códigos de erro secundários
Código HTTP | Código Secundário | Descrição |
---|---|---|
400 | 4000 | Requisição inválida (Bad request) |
4001 | Tipo de evento não encontrado | |
4002 | Falha na validação do corpo da requisição | |
4003 | Falha na análise do JSON do corpo da requisição | |
4004 | Regra ou fluxo de trabalho não especificado | |
409 | 4091 | Enriquecimento assíncrono não é suportado pela execução síncrona |
401 | 4011 | Autenticação, geral |
4012 | Autenticação, token inválido | |
404 | Não encontrado (Not found) | |
415 | Formato de arquivo não suportado | |
500 | 5000 | Erro de servidor não tratado |
5001 | Erro de acesso à entidade | |
5002 | Erro de conversão de esquema | |
5003 | Erro de enriquecimento de característica | |
5004 | Erro na execução da decisão | |
5005 | Erro de validação | |
5006 | Timeout na execução | |
90002 | Atributo ausente durante a execução | |
90003 | Busca de terceiros resultou em um erro "400 (bad request)" | |
90004 | Terceiro retornou um erro interno | |
90005 | Busca de terceiros retornou um erro de "resposta não disponível" | |
90006 | Busca de terceiros retornou um erro de autorização | |
90007 | Erro no armazenamento de entrada | |
90008 | Conflito no armazenamento de entrada | |
90010 | Erro na busca da lista de documentos | |
90011 | Timeout na espera do webhook de integração assíncrona | |
503 | Serviço indisponível (Service Unavailable) |