---
title: "Receive a configured inbound webhook"
description: "Applies saved field mappings to the contact. Call Disposition (call_disposition_code) and Call Outcome (call_outcome) require a mapped Call ID (call_id). Call Outcome accepts a workspace-defined key and derives its standard disposition. Both the disposition column and structured-output mirror are saved. Agent-entered outcomes are preserved. Invalid inputs return 400, workspace mismatches return 403, and ambiguous call identifiers return 409."
---

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

Path: Channel Automation API › Webhooks

`POST /webhooks/{webhook_id}`

Applies saved field mappings to the contact. Call Disposition (call_disposition_code) and Call Outcome (call_outcome) require a mapped Call ID (call_id). Call Outcome accepts a workspace-defined key and derives its standard disposition. Both the disposition column and structured-output mirror are saved. Agent-entered outcomes are preserved. Invalid inputs return 400, workspace mismatches return 403, and ambiguous call identifiers return 409.

## Path parameters

- `webhook_id` (`post/webhooks/webhook_id.path.webhook_id`; string, required)

## Request body

_Required._

## Example request

```json
{}
```

## Code samples

### cURL

```bash
curl --request POST \
  --url 'https://api.channelautomation.com/webhooks/<webhook_id>' \
  --header 'Content-Type: application/json' \
  --data '{}'
```

### TypeScript

```typescript
const url = 'https://api.channelautomation.com/webhooks/<webhook_id>';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({})
};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://api.channelautomation.com/webhooks/<webhook_id>"

payload = {}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
```

## Responses

### 200

Contact and mapped call outcome saved

### 400

Invalid mapped call outcome or missing Call ID

### 403

Workspace mismatch

### 409

Ambiguous call identifier

### 500

Webhook processing failed


Source: https://developer.channelautomations.com/api/post-webhooks-webhook-id/index.md
