---
title: "Webhook: events_webhook"
method: POST
path: "events_webhook"
---

# Webhook: events_webhook

`POST events_webhook` (webhook)

Upon an event on the platform, we'll send you the results to the URL you registered within the dashboard

## Payload

- union
  - WebhookSimulationResultEvaluated — Represents a simulation result evaluated event.
    - `type` string — Type of webhook payload
    - `id` integer, required — The ID of the simulation result
    - `digital_human_id` integer, required — The ID of the digital human
    - `status` 'INITIALIZING' | 'QUEUED' | 'READY' | 'DISPATCHED' | 'RUNNING' | 'CONVERSATION_ENDED' | 'EVALUATING' | 'COMPLETED' | 'NO_CONNECTION' | 'NO_ANSWER' | 'CALL_DROPPED' | 'OUT_OF_FUNDS' | 'SYSTEM_ERROR' | 'CUSTOM_ERROR' | 'CANCELLED' — Enum representing the possible states of a test result. Canonical taxonomy lives in livekit_agent/docs/test_result_status_redesign.md. Kept in sync across livekit_agent, bluejay_middleware, evals, and text_agent.
    - `simulation_run_id` integer, required — The ID of the simulation run that this simulation result belongs to
    - `simulation_id` integer, required — The ID of the simulation that this simulation result belongs to
    - `agent_id` integer, required — The ID of the agent that this simulation result belongs to
    - `folder_id` string, uuid, nullable — The ID of the folder that the agent belongs to
    - `result` object, nullable — Please use the evaluations instead
    - `custom_metrics` CustomMetric[], nullable — Please use the custom metrics in the evaluations instead
      - `name` string, required — The name of the custom metric
      - `description` string, required — The description of the custom metric
      - `response_type` string, required — The response type of the custom metric
      - `response_value` string, required — The response value of the custom metric
      - `reasoning` string, nullable — The reasoning of the custom metric
      - `min_value` number, nullable — The minimum value of the custom metric
      - `max_value` number, nullable — The maximum value of the custom metric
      - `category` string, nullable — The category of the custom metric
      - `tags` string[], nullable — The tags of the custom metric
      - `scoring_guidance` string, nullable — The scoring guidance of the custom metric
      - `enum_options` string[], nullable — The enum options of the custom metric
      - `human_edited` boolean, nullable — Whether this metric result was manually overridden by a human
      - `human_response_value` string, nullable — Human-overridden response_value; null when no override applied
      - `human_reasoning` string, nullable — Human-overridden reasoning; null when no override applied
      - `override_reason_code` string, nullable — Structured reason for the latest human override. One of: ai_hallucination, overly_strict_success_criteria, overly_strict_system_prompt, other.
      - `override_notes` string, nullable — Freeform notes from the human reviewer accompanying the latest override
      - `last_edited_by` string, nullable — User id of the most recent human reviewer
      - `last_edited_at` string, date-time, nullable — Timestamp of the most recent human override
    - `evaluations` Evaluation[], nullable — The evaluations of the simulation result
      - `id` string — Unique identifier for the evaluation result
      - `created_at` string, date-time — When this evaluation result was created (defaults to now in UTC)
      - `hallucination` boolean, nullable — Whether the agent exhibited hallucination during the call
      - `hallucination_reasoning` string, nullable — Reasoning behind the hallucination, if applicable
      - `redundancy` boolean, nullable — Whether the agent exhibited redundancy during the call
      - `redundancy_reasoning` string, nullable — Reasoning behind the redundancy, if applicable
      - `agent_speak_percentage` number, nullable, required — Percentage of the call where the agent was speaking
      - `avg_agent_latency` number, nullable, required — Average latency of the agent's responses during the call
      - `latency` Latency
        - `avg_agent_latency` number, nullable — Average latency
        - `max_agent_latency` number, nullable — Maximum latency
        - `p50_agent_latency` number, nullable — 50th percentile latency
        - `p90_agent_latency` number, nullable — 90th percentile latency
        - `p95_agent_latency` number, nullable — 95th percentile latency
        - `p99_agent_latency` number, nullable — 99th percentile latency
      - `filler_ignored_latency` FillerIgnoredLatency
        - `avg_filler_ignored_latency` number, nullable — Average filler ignored latency
        - `p50_filler_ignored_latency` number, nullable — 50th percentile filler ignored latency
        - `p90_filler_ignored_latency` number, nullable — 90th percentile filler ignored latency
        - `p95_filler_ignored_latency` number, nullable — 95th percentile filler ignored latency
        - `p99_filler_ignored_latency` number, nullable — 99th percentile filler ignored latency
      - `num_turns` integer, nullable — Total number of turns taken by the agent during the call
      - `call_summary` string, nullable — Summary of the call, if applicable
      - `custom_evals` union — List of custom evaluations performed during the call
        - unknown[]
          - unknown
        - object
      - `custom_evals_success_rate` number, nullable — Success rate of the custom evaluations performed during the call
      - `goal_success` boolean, nullable — Whether the goal was successfully achieved during the call
      - `goal_reasoning` string, nullable — Reasoning behind the goal success, if applicable
      - `pronunciation_score` number, nullable — Pronunciation score of the agent during the call
      - `pronunciation_reasoning` string, nullable — Reasoning behind the pronunciation score, if applicable
      - `sentiment_label` string, nullable — Overall sentiment label for customer utterances
      - `sentiment_score` number, nullable — Overall sentiment score for customer utterances
      - `sentiment_scores` object, nullable — Per-label sentiment scores for customer utterances
      - `custom_metrics` CustomMetric[], nullable — Custom metrics associated with the evaluation
        - `name` string, required — The name of the custom metric
        - `description` string, required — The description of the custom metric
        - `response_type` string, required — The response type of the custom metric
        - `response_value` string, required — The response value of the custom metric
        - `reasoning` string, nullable — The reasoning of the custom metric
        - `min_value` number, nullable — The minimum value of the custom metric
        - `max_value` number, nullable — The maximum value of the custom metric
        - `category` string, nullable — The category of the custom metric
        - `tags` string[], nullable — The tags of the custom metric
        - `scoring_guidance` string, nullable — The scoring guidance of the custom metric
        - `enum_options` string[], nullable — The enum options of the custom metric
        - `human_edited` boolean, nullable — Whether this metric result was manually overridden by a human
        - `human_response_value` string, nullable — Human-overridden response_value; null when no override applied
        - `human_reasoning` string, nullable — Human-overridden reasoning; null when no override applied
        - `override_reason_code` string, nullable — Structured reason for the latest human override. One of: ai_hallucination, overly_strict_success_criteria, overly_strict_system_prompt, other.
        - `override_notes` string, nullable — Freeform notes from the human reviewer accompanying the latest override
        - `last_edited_by` string, nullable — User id of the most recent human reviewer
        - `last_edited_at` string, date-time, nullable — Timestamp of the most recent human override
      - `human_edited` boolean, nullable — Whether any result in this evaluation was manually overridden by a human
      - `human_goal_success` boolean, nullable — Human-overridden goal_success; null when no override applied
      - `human_goal_reasoning` string, nullable — Human-overridden goal_reasoning; null when no override applied
      - `human_hallucination` boolean, nullable — Human-overridden hallucination verdict; null when no override applied
      - `human_hallucination_reasoning` string, nullable — Human-overridden hallucination reasoning; null when no override applied
      - `human_redundancy` boolean, nullable — Human-overridden redundancy verdict; null when no override applied
      - `human_redundancy_reasoning` string, nullable — Human-overridden redundancy reasoning; null when no override applied
      - `human_pronunciation_score` number, nullable — Human-overridden pronunciation score; null when no override applied
      - `human_pronunciation_reasoning` string, nullable — Human-overridden pronunciation reasoning; null when no override applied
      - `override_goal_reason_code` string, nullable — Reason for the human override of goal_success.
      - `override_goal_notes` string, nullable — Freeform notes from the reviewer for the goal override.
      - `override_hallucination_reason_code` string, nullable — Reason for the human override of hallucination.
      - `override_hallucination_notes` string, nullable — Freeform notes from the reviewer for the hallucination override.
      - `override_redundancy_reason_code` string, nullable — Reason for the human override of redundancy.
      - `override_redundancy_notes` string, nullable — Freeform notes from the reviewer for the redundancy override.
      - `override_pronunciation_reason_code` string, nullable — Reason for the human override of pronunciation_score.
      - `override_pronunciation_notes` string, nullable — Freeform notes from the reviewer for the pronunciation override.
      - `last_edited_by` string, nullable — User id of the most recent human reviewer
      - `last_edited_at` string, date-time, nullable — Timestamp of the most recent human override
      - `agent_audio_clarity` number, nullable — Agent audio: audio clarity score 0-100 (higher better)
      - `user_audio_clarity` number, nullable — User audio: audio clarity score 0-100 (higher better)
    - `created_at` string, date-time, nullable — The creation time of the simulation result
    - `start_time` string, date-time, nullable — The start time of the simulation result
    - `end_time` string, date-time, nullable — The end time of the simulation result
    - `duration` integer, nullable — The duration of the simulation result
    - `latency` number[], nullable — The latency of the simulation result
    - `events` Event[], nullable — The events of the simulation result
      - `title` string, required — Title of the event
      - `start_offset_ms` integer, required — Start offset of the event in milliseconds
      - `description` string, nullable — Description of the event
      - `end_offset_ms` integer, nullable — End offset of the event in milliseconds
      - `tags` string[], nullable — List of tags associated with the event
      - `metadata` object, nullable — Additional metadata associated with the event
    - `tool_calls` ToolCallData[], nullable — The tool calls of the simulation result
      - `name` string, required
      - `start_offset_ms` integer, required
      - `description` string, nullable
      - `parameters` object, nullable
      - `output` unknown
    - `tags` string[], nullable — The tags of the simulation result
    - `metadata` object, nullable — The metadata of the simulation result
  - WebhookObservabilityCallEvaluated — Represents an observability call evaluated event.
    - `id` string, required — Unique identifier for the call
    - `agent_id` string, required — ID of the agent associated with the call
    - `external_agent_id` string, nullable — External ID of the agent associated with the call
    - `recording_url` string, nullable, required — URL to the recording file (supported formats: .mp4, .wav, .m4a)
    - `start_time_utc` string, required — When the call started, in UTC
    - `participants` ParticipantResponse[], required — List of call participants
      - `role` 'AGENT' | 'USER' | 'DIGITAL_HUMAN' | 'agent' | 'digital_human', required — Role of a participant in a call or simulated conversation.
      - `spoke_first` boolean, nullable — Whether the participant spoke first in the call
      - `name` string, nullable — Name of the participant
      - `phone_number` string, nullable — Phone number of the participant (if applicable)
    - `call_direction` 'INBOUND' | 'OUTBOUND' — Enum representing the direction of a call.
    - `interface` 'PHONE' | 'WEB' — Enum representing the interface used for a call.
    - `status` 'INITIALIZING' | 'QUEUED' | 'EVALUATING' | 'COMPLETED' | 'INCOMPLETED', required — Enum representing the possible states of a call.
    - `created_at` string, date-time — When this request was created (defaults to now in UTC)
    - `transcript_url` string, nullable — URL to the transcript file (supported formats: .txt, .json)
    - `tool_calls` ToolCallData[], nullable — List of tool calls made during the call
      - `name` string, required
      - `start_offset_ms` integer, required
      - `description` string, nullable
      - `parameters` object, nullable
      - `output` unknown
    - `events` Event[], nullable — List of events that occurred during the call
      - `title` string, required — Title of the event
      - `start_offset_ms` integer, required — Start offset of the event in milliseconds
      - `description` string, nullable — Description of the event
      - `end_offset_ms` integer, nullable — End offset of the event in milliseconds
      - `tags` string[], nullable — List of tags associated with the event
      - `metadata` object, nullable — Additional metadata associated with the event
    - `tags` string[], nullable — List of tags associated with the call
    - `duration_ms` integer, nullable — Duration of the call in milliseconds
    - `evaluations` Evaluation[], nullable — List of evaluations associated with the call
      - `id` string — Unique identifier for the evaluation result
      - `created_at` string, date-time — When this evaluation result was created (defaults to now in UTC)
      - `hallucination` boolean, nullable — Whether the agent exhibited hallucination during the call
      - `hallucination_reasoning` string, nullable — Reasoning behind the hallucination, if applicable
      - `redundancy` boolean, nullable — Whether the agent exhibited redundancy during the call
      - `redundancy_reasoning` string, nullable — Reasoning behind the redundancy, if applicable
      - `agent_speak_percentage` number, nullable, required — Percentage of the call where the agent was speaking
      - `avg_agent_latency` number, nullable, required — Average latency of the agent's responses during the call
      - `latency` Latency
        - `avg_agent_latency` number, nullable — Average latency
        - `max_agent_latency` number, nullable — Maximum latency
        - `p50_agent_latency` number, nullable — 50th percentile latency
        - `p90_agent_latency` number, nullable — 90th percentile latency
        - `p95_agent_latency` number, nullable — 95th percentile latency
        - `p99_agent_latency` number, nullable — 99th percentile latency
      - `filler_ignored_latency` FillerIgnoredLatency
        - `avg_filler_ignored_latency` number, nullable — Average filler ignored latency
        - `p50_filler_ignored_latency` number, nullable — 50th percentile filler ignored latency
        - `p90_filler_ignored_latency` number, nullable — 90th percentile filler ignored latency
        - `p95_filler_ignored_latency` number, nullable — 95th percentile filler ignored latency
        - `p99_filler_ignored_latency` number, nullable — 99th percentile filler ignored latency
      - `num_turns` integer, nullable — Total number of turns taken by the agent during the call
      - `call_summary` string, nullable — Summary of the call, if applicable
      - `custom_evals` union — List of custom evaluations performed during the call
        - unknown[]
          - unknown
        - object
      - `custom_evals_success_rate` number, nullable — Success rate of the custom evaluations performed during the call
      - `goal_success` boolean, nullable — Whether the goal was successfully achieved during the call
      - `goal_reasoning` string, nullable — Reasoning behind the goal success, if applicable
      - `pronunciation_score` number, nullable — Pronunciation score of the agent during the call
      - `pronunciation_reasoning` string, nullable — Reasoning behind the pronunciation score, if applicable
      - `sentiment_label` string, nullable — Overall sentiment label for customer utterances
      - `sentiment_score` number, nullable — Overall sentiment score for customer utterances
      - `sentiment_scores` object, nullable — Per-label sentiment scores for customer utterances
      - `custom_metrics` CustomMetric[], nullable — Custom metrics associated with the evaluation
        - `name` string, required — The name of the custom metric
        - `description` string, required — The description of the custom metric
        - `response_type` string, required — The response type of the custom metric
        - `response_value` string, required — The response value of the custom metric
        - `reasoning` string, nullable — The reasoning of the custom metric
        - `min_value` number, nullable — The minimum value of the custom metric
        - `max_value` number, nullable — The maximum value of the custom metric
        - `category` string, nullable — The category of the custom metric
        - `tags` string[], nullable — The tags of the custom metric
        - `scoring_guidance` string, nullable — The scoring guidance of the custom metric
        - `enum_options` string[], nullable — The enum options of the custom metric
        - `human_edited` boolean, nullable — Whether this metric result was manually overridden by a human
        - `human_response_value` string, nullable — Human-overridden response_value; null when no override applied
        - `human_reasoning` string, nullable — Human-overridden reasoning; null when no override applied
        - `override_reason_code` string, nullable — Structured reason for the latest human override. One of: ai_hallucination, overly_strict_success_criteria, overly_strict_system_prompt, other.
        - `override_notes` string, nullable — Freeform notes from the human reviewer accompanying the latest override
        - `last_edited_by` string, nullable — User id of the most recent human reviewer
        - `last_edited_at` string, date-time, nullable — Timestamp of the most recent human override
      - `human_edited` boolean, nullable — Whether any result in this evaluation was manually overridden by a human
      - `human_goal_success` boolean, nullable — Human-overridden goal_success; null when no override applied
      - `human_goal_reasoning` string, nullable — Human-overridden goal_reasoning; null when no override applied
      - `human_hallucination` boolean, nullable — Human-overridden hallucination verdict; null when no override applied
      - `human_hallucination_reasoning` string, nullable — Human-overridden hallucination reasoning; null when no override applied
      - `human_redundancy` boolean, nullable — Human-overridden redundancy verdict; null when no override applied
      - `human_redundancy_reasoning` string, nullable — Human-overridden redundancy reasoning; null when no override applied
      - `human_pronunciation_score` number, nullable — Human-overridden pronunciation score; null when no override applied
      - `human_pronunciation_reasoning` string, nullable — Human-overridden pronunciation reasoning; null when no override applied
      - `override_goal_reason_code` string, nullable — Reason for the human override of goal_success.
      - `override_goal_notes` string, nullable — Freeform notes from the reviewer for the goal override.
      - `override_hallucination_reason_code` string, nullable — Reason for the human override of hallucination.
      - `override_hallucination_notes` string, nullable — Freeform notes from the reviewer for the hallucination override.
      - `override_redundancy_reason_code` string, nullable — Reason for the human override of redundancy.
      - `override_redundancy_notes` string, nullable — Freeform notes from the reviewer for the redundancy override.
      - `override_pronunciation_reason_code` string, nullable — Reason for the human override of pronunciation_score.
      - `override_pronunciation_notes` string, nullable — Freeform notes from the reviewer for the pronunciation override.
      - `last_edited_by` string, nullable — User id of the most recent human reviewer
      - `last_edited_at` string, date-time, nullable — Timestamp of the most recent human override
      - `agent_audio_clarity` number, nullable — Agent audio: audio clarity score 0-100 (higher better)
      - `user_audio_clarity` number, nullable — User audio: audio clarity score 0-100 (higher better)
    - `annotations` unknown[], nullable — Annotations associated with the call
      - unknown
    - `metadata` object, nullable — Additional metadata associated with the call
    - `custom_metrics` unknown[], nullable — Please use the custom metrics in the evaluations instead
      - unknown
    - `conversation_ended_by` 'AGENT' | 'USER' | 'DIGITAL_HUMAN' | 'agent' | 'digital_human' — Role of a participant in a call or simulated conversation.
    - `type` string — Type of webhook payload
  - WebhookSimulationResultEnded — Represents a simulation result ended event.
    - `type` string — Type of webhook payload
    - `id` integer, required — The ID of the simulation result
    - `digital_human_id` integer, required — The ID of the digital human
    - `status` 'INITIALIZING' | 'QUEUED' | 'READY' | 'DISPATCHED' | 'RUNNING' | 'CONVERSATION_ENDED' | 'EVALUATING' | 'COMPLETED' | 'NO_CONNECTION' | 'NO_ANSWER' | 'CALL_DROPPED' | 'OUT_OF_FUNDS' | 'SYSTEM_ERROR' | 'CUSTOM_ERROR' | 'CANCELLED' — Enum representing the possible states of a test result. Canonical taxonomy lives in livekit_agent/docs/test_result_status_redesign.md. Kept in sync across livekit_agent, bluejay_middleware, evals, and text_agent.
    - `simulation_run_id` integer, required — The ID of the simulation run that this simulation result belongs to
    - `created_at` string, date-time, nullable — The creation time of the simulation result
    - `start_time` string, date-time, nullable — The start time of the simulation result
    - `end_time` string, date-time, nullable — The end time of the simulation result
    - `duration` integer, nullable — The duration of the simulation result
  - WebhookOutboundSimulationStarted — Represents an outbound simulation started event.
    - `type` string — Type of webhook payload
    - `agent_id` integer, required — The ID of the agent that this simulation belongs to
    - `simulation_id` integer, required — The ID of the simulation
    - `simulation_run_id` integer, required — The ID of the simulation run
    - `digital_humans` DigitalHuman[], required — The digital humans that were run for this simulation run
      - `id` integer, required — The ID of the digital human
      - `name` string, required — The name of the digital human
      - `phone_number` string, required — The phone number of the digital human
      - `associated_simulation_result_ids` integer[] — The IDs of the simulation results that were created for this digital human

## Acknowledgement `200`

Webhook received successfully

---

[API](https://skmtc.net/getbluejay/apis/bluejay-api.md) · [All operations](https://skmtc.net/getbluejay/apis/bluejay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getbluejay/bluejay-api/versions/f48cef80963f/schema)
