Webhooks

Callbacks e eventos

O Quality Spy pode notificar sistemas externos conforme o andamento do processamento, permitindo que a aplicação consumidora reaja sem depender apenas de consultas periódicas.

Linha do tempo dos eventos

  1. received
  2. transcription_completed
  3. transcription_failed
  4. evaluation_completed
  5. evaluation_failed
01

Eventos do processamento

received

Momento: quando o envio é recebido e registrado pela API.

Finalidade: sinalizar que a solicitação entrou no fluxo.

Consumidor: registrar o recebimento e correlacionar o evento ao identificador externo.

transcription_completed

Momento: quando a transcrição é concluída.

Finalidade: indicar que o texto da gravação ficou disponível para as próximas etapas.

Consumidor: atualizar o estado local e seguir aguardando a avaliação, quando aplicável.

transcription_failed

Momento: quando a etapa de transcrição falha.

Finalidade: permitir tratamento operacional da falha.

Consumidor: registrar a falha e acionar o fluxo interno definido para exceções.

evaluation_completed

Momento: quando a avaliação por IA é concluída.

Finalidade: informar que o resultado da avaliação pode ser consumido.

Consumidor: atualizar o status, buscar ou armazenar o resultado conforme o contrato do ambiente.

evaluation_failed

Momento: quando a etapa de avaliação por IA falha.

Finalidade: sinalizar que o processamento não produziu a avaliação esperada.

Consumidor: registrar a falha, manter idempotência e acionar análise ou reprocessamento conforme política interna.

02

Exemplo de payload

{
  "event": "evaluation_completed",
  "external_reference": "CALL-001",
  "status": "completed",
  "occurred_at": "2026-07-09T09:35:00Z"
}

Boas práticas para o receptor

  • Responder rapidamente com HTTP 2xx.
  • Processar o evento em fila própria.
  • Implementar idempotência.
  • Validar a autenticidade da origem conforme o mecanismo configurado.
  • Registrar tentativas sem expor segredos.
  • Aceitar reenvios.
  • Não depender da ordem perfeita de chegada.
  • Correlacionar eventos pelo identificador externo.
03

Falhas e retentativas

Quando o receptor não confirma o recebimento ou fica indisponível, o fluxo pode prever reenvios conforme a configuração do ambiente. A documentação pública desta página não define quantidade exata de tentativas nem intervalos.

04

Exemplos de receptor

<?php
$rawBody = file_get_contents('php://input');
$event = json_decode($rawBody, true);

if (!is_array($event)) {
    http_response_code(400);
    exit;
}

// Valide a origem conforme o mecanismo configurado no ambiente.
// Enfileire o processamento interno e responda rapidamente.
error_log('Callback recebido: ' . ($event['event'] ?? 'evento_desconhecido'));

http_response_code(204);