Eventos de Webhook

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\"}",
}
AtributoDescrição
RequestUUID, identificador da requisição.
MessageDescrição detalhada do erro.
TypeClassificação de alto nível do erro.
CodeCó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.
ContextUma string JSON contendo pares de chave/valor como informações de contexto do erro.

Códigos de erro secundários

Código HTTPCódigo SecundárioDescrição
4004000Requisição inválida (Bad request)
4001Tipo de evento não encontrado
4002Falha na validação do corpo da requisição
4003Falha na análise do JSON do corpo da requisição
4004Regra ou fluxo de trabalho não especificado
4094091Enriquecimento assíncrono não é suportado pela execução síncrona
4014011Autenticação, geral
4012Autenticação, token inválido
404Não encontrado (Not found)
415Formato de arquivo não suportado
5005000Erro de servidor não tratado
5001Erro de acesso à entidade
5002Erro de conversão de esquema
5003Erro de enriquecimento de característica
5004Erro na execução da decisão
5005Erro de validação
5006Timeout na execução
90002Atributo ausente durante a execução
90003Busca de terceiros resultou em um erro "400 (bad request)"
90004Terceiro retornou um erro interno
90005Busca de terceiros retornou um erro de "resposta não disponível"
90006Busca de terceiros retornou um erro de autorização
90007Erro no armazenamento de entrada
90008Conflito no armazenamento de entrada
90010Erro na busca da lista de documentos
90011Timeout na espera do webhook de integração assíncrona
503Serviço indisponível (Service Unavailable)