> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clarionhealth.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook Configuration

> Configure an endpoint that receives webhooks for your organization

## Overview

Clarion delivers all webhooks for your organization to one endpoint. You configure that endpoint (URL and optional secret) using the endpoints below.

A single payload field, `webhook_event`, tells your receiver which event triggered the delivery. See [End of Call](/api-reference/webhooks/end-of-call) and [End of Sequence Report](/api-reference/webhooks/end-of-sequence-report) for the payload shapes.

## Delivery Model

* **One URL per organization.** Every webhook Clarion sends goes to this URL.
* **Opt-in per agent / campaign.** Whether a given voice agent or sequence definition emits a webhook is a separate per-entity setting managed in the Clarion dashboard. If the agent or campaign has webhooks disabled, no delivery is attempted.
* **Secret is optional.** If you set a `secret`, Clarion includes it as an `X-Clarion-Secret` header on every request so your receiver can verify the caller. Every request is also signed; see [Verifying Webhook Signatures](/api-reference/webhooks/verifying-webhook-signatures).

## Get the Current Webhook Configuration

<ParamField path="method" type="GET">
  `GET /config/organization/webhook`
</ParamField>

Returns the organization's current webhook configuration, or `null` if none is set.

### Response

<ResponseField name="id" type="integer">
  The unique identifier for the webhook configuration row.
</ResponseField>

<ResponseField name="organization_id" type="integer">
  The organization this webhook belongs to.
</ResponseField>

<ResponseField name="url" type="string">
  The endpoint Clarion will POST webhook payloads to.
</ResponseField>

<ResponseField name="secret" type="string | null">
  The optional shared secret sent as the `X-Clarion-Secret` header. `null` if no
  secret is configured.
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 timestamp when the configuration was created.
</ResponseField>

<ResponseField name="updated_at" type="string">
  ISO 8601 timestamp when the configuration was last updated.
</ResponseField>

## Create or Update the Webhook Configuration

<ParamField path="method" type="PUT">
  `PUT /config/organization/webhook`
</ParamField>

Upserts the organization's webhook configuration. If a row exists it is updated; otherwise it is created.

### Request Body

<ParamField body="url" type="string" required>
  The endpoint Clarion will POST webhook payloads to. Must be reachable from the
  public internet.
</ParamField>

<ParamField body="secret" type="string | null">
  Optional shared secret. When set, Clarion sends it in the `X-Clarion-Secret`
  header on every delivery. Pass `null` or omit to clear.
</ParamField>

### Response

Returns the saved configuration, with the same shape as `GET /config/organization/webhook`.

## Delete the Webhook Configuration

<ParamField path="method" type="DELETE">
  `DELETE /config/organization/webhook`
</ParamField>

Removes the organization's webhook configuration. After deletion, Clarion stops delivering webhooks for the organization until a new configuration is created.

Returns `204 No Content`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.