---
title: "Event"
method: POST
path: "Webhook"
tags: ["Webhook"]
---

# Event

`POST Webhook` (webhook)

Roark POSTs a JSON payload to every endpoint subscribed to one of the events listed below. Every payload uses the same envelope (`event`, `version`, `timestamp`, `data`); the `event` field is the discriminator that selects the matching `data` shape.

Acknowledge with any 2xx response within 10 seconds. Non-2xx responses and timeouts are retried with exponential backoff.

**Events**
- `call.analysis.completed`
- `call.analysis.failed`
- `call.analysis.cancelled`
- `call.evaluation.completed`
- `call.evaluation.failed`
- `simulation.run_plan_job.started`
- `simulation.run_plan_job.completed`
- `simulation.run_plan_job.failed`
- `simulation.run_plan_job.cancelled`
- `simulation.job.started`
- `simulation.job.completed`
- `simulation.job.failed`
- `simulation.job.cancelled`
- `metric_collection.job.completed`
- `metric_collection.job.failed`
- `chat.analysis.completed`
- `chat.analysis.failed`
- `issue.opened`
- `issue.resolved`

## Payload

- union
  - CallAnalysisCompletedWebhook
    - `event` 'call.analysis.completed', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `callId` string, uuid, required — The call this analysis ran on
      - `callAnalysisJobId` string, uuid, required — The completed call analysis job
      - `projectId` string, uuid, required — Project the call belongs to
  - CallAnalysisFailedWebhook
    - `event` 'call.analysis.failed', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `callId` string, uuid, required — The call this analysis ran on
      - `callAnalysisJobId` string, uuid, required — The completed call analysis job
      - `projectId` string, uuid, required — Project the call belongs to
      - `errorMessage` string — Failure reason if available
  - CallAnalysisCancelledWebhook
    - `event` 'call.analysis.cancelled', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `callId` string, uuid, required — The call this analysis ran on
      - `callAnalysisJobId` string, uuid, required — The completed call analysis job
      - `projectId` string, uuid, required — Project the call belongs to
  - CallEvaluationCompletedWebhook
    - `event` 'call.evaluation.completed', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `evaluationJobId` string, uuid, required — The completed evaluation job
      - `projectId` string, uuid, required — Project the evaluation belongs to
  - CallEvaluationFailedWebhook
    - `event` 'call.evaluation.failed', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `evaluationJobId` string, uuid, required — The completed evaluation job
      - `projectId` string, uuid, required — Project the evaluation belongs to
      - `errorMessage` string — Failure reason if available
  - SimulationRunPlanJobStartedWebhook
    - `event` 'simulation.run_plan_job.started', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `simulationRunPlanJobId` string, uuid, required — The run plan job this event is about
  - SimulationRunPlanJobCompletedWebhook
    - `event` 'simulation.run_plan_job.completed', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `simulationRunPlanJobId` string, uuid, required — The run plan job this event is about
  - SimulationRunPlanJobFailedWebhook
    - `event` 'simulation.run_plan_job.failed', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `simulationRunPlanJobId` string, uuid, required — The run plan job this event is about
      - `status` string — Terminal status of the job
      - `reason` string — Human-readable reason for the failure
  - SimulationRunPlanJobCancelledWebhook
    - `event` 'simulation.run_plan_job.cancelled', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `simulationRunPlanJobId` string, uuid, required — The run plan job this event is about
  - SimulationJobStartedWebhook
    - `event` 'simulation.job.started', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `simulationJobId` string, uuid, required — The simulation job this event is about
      - `simulationRunPlanJobId` string, uuid, required — Parent run plan job
  - SimulationJobCompletedWebhook
    - `event` 'simulation.job.completed', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `simulationJobId` string, uuid, required — The simulation job this event is about
      - `simulationRunPlanJobId` string, uuid, required — Parent run plan job
      - `callId` string, uuid — The call produced by this simulation job, if any
  - SimulationJobFailedWebhook
    - `event` 'simulation.job.failed', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `simulationJobId` string, uuid, required — The simulation job this event is about
      - `simulationRunPlanJobId` string, uuid, required — Parent run plan job
      - `status` string — Terminal status of the job
      - `reason` string — Human-readable reason for the failure
  - SimulationJobCancelledWebhook
    - `event` 'simulation.job.cancelled', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `simulationJobId` string, uuid, required — The simulation job this event is about
      - `simulationRunPlanJobId` string, uuid, required — Parent run plan job
  - MetricCollectionJobCompletedWebhook
    - `event` 'metric_collection.job.completed', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `metricCollectionJobId` string, uuid, required — The metric collection job that completed
      - `projectId` string, uuid, required — Project the job ran in
      - `callIds` string[], required — Calls included in the job
      - `policyIds` string[], required — Metric policies that matched and triggered the job (empty for user-triggered jobs)
  - MetricCollectionJobFailedWebhook
    - `event` 'metric_collection.job.failed', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `metricCollectionJobId` string, uuid, required — The metric collection job that completed
      - `projectId` string, uuid, required — Project the job ran in
      - `callIds` string[], required — Calls included in the job
      - `policyIds` string[], required — Metric policies that matched and triggered the job (empty for user-triggered jobs)
      - `errorMessage` string — Failure reason if available
  - ChatAnalysisCompletedWebhook
    - `event` 'chat.analysis.completed', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `chatId` string, uuid, required — The chat this analysis ran on
      - `projectId` string, uuid, required — Project the chat belongs to
  - ChatAnalysisFailedWebhook
    - `event` 'chat.analysis.failed', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `chatId` string, uuid, required — The chat this analysis ran on
      - `projectId` string, uuid, required — Project the chat belongs to
      - `errorMessage` string — Failure reason if available
  - IssueOpenedWebhook
    - `event` 'issue.opened', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `issueId` string, uuid, required — The issue that was opened
      - `alertId` string, uuid, nullable, required — Alert configuration that produced the issue, or null for non-alert sources
      - `projectId` string, uuid, required — Project the issue belongs to
      - `source` 'TREND_ALERT' | 'SINGLE_CALL_ALERT' | 'TRACE_FAILURE' | 'MANUAL' | 'API' | 'AGENT', required — What produced the issue (trend alert, AI clustering, manual triage, API, ...)
      - `title` string, nullable, required — Issue title at the time it opened, when available
      - `severity` 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL', nullable, required — Issue severity, or null when the producer did not set one
      - `groupKey` string, nullable, required — Group key identifying the issue dimension (per the alert config); null for non-alert sources
      - `openedAt` string, date-time, required — When the issue was first opened
      - `value` number, nullable, required — Triggering metric value, or null when the alert tracks presence/absence
  - IssueResolvedWebhook
    - `event` 'issue.resolved', required — Event name
    - `version` '1.0', required — Payload schema version
    - `timestamp` string, date-time, required — ISO 8601 timestamp when the webhook was generated
    - `data` object, required
      - `issueId` string, uuid, required — The issue that was opened
      - `alertId` string, uuid, nullable, required — Alert configuration that produced the issue, or null for non-alert sources
      - `projectId` string, uuid, required — Project the issue belongs to
      - `source` 'TREND_ALERT' | 'SINGLE_CALL_ALERT' | 'TRACE_FAILURE' | 'MANUAL' | 'API' | 'AGENT', required — What produced the issue (trend alert, AI clustering, manual triage, API, ...)
      - `title` string, nullable, required — Issue title at the time it opened, when available
      - `severity` 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL', nullable, required — Issue severity, or null when the producer did not set one
      - `groupKey` string, nullable, required — Group key identifying the issue dimension (per the alert config); null for non-alert sources
      - `openedAt` string, date-time, required — When the issue was first opened
      - `value` number, nullable, required — Triggering metric value, or null when the alert tracks presence/absence
      - `resolvedAt` string, date-time, required — When the issue was resolved

## Acknowledgement `200`

Acknowledged. Any 2xx response is treated as success.

---

[API](https://skmtc.dev/roarkhq/apis/roark-analytics-api.md) · [All operations](https://skmtc.dev/roarkhq/apis/roark-analytics-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/roarkhq/roark-analytics-api/revisions/1d61b68e9429/schema)
