---
title: "ഇവന്റ്സ് കാറ്റലോഗ്"
description: "ThunderPhone അയയ്ക്കുന്ന എല്ലാ webhook ഇവന്റ് തരങ്ങളും."
---

ഓരോ വെബ്‌ഹുക്ക് ബോഡിയിലും, മൂല്യം ഈ പേജിലെ ഇവന്റ്
ടൈപ്പുകളിൽ ഒന്നായിരിക്കുന്ന `type` ഫീൽഡ് ഉണ്ടായിരിക്കും. നിങ്ങൾ ഒരു
[എൻഡ്‌പോയിന്റിലേക്ക്](/ml/webhooks/endpoints) സബ്‌സ്‌ക്രൈബ് ചെയ്യുമ്പോൾ, `events` അറേയിൽ
നിങ്ങൾ ആഗ്രഹിക്കുന്ന ഇവന്റ് ടൈപ്പുകൾ ഉണ്ടായിരിക്കണം (അല്ലെങ്കിൽ എല്ലാത്തിലേക്കും സബ്‌സ്‌ക്രൈബ് ചെയ്യാൻ
അത് ശൂന്യമായിരിക്കണം —
അവയെ വ്യക്തമായി പേരെടുത്ത് പറയുന്ന എൻഡ്‌പോയിന്റുകളിലേക്ക് മാത്രം
ഡെലിവർ ചെയ്യുന്ന ഓരോ ടേണിലെയും ഇവന്റുകളായ [`telephony.turn`](#telephony-turn) /
[`web.turn`](#web-turn) ഒഴികെ).

ഈ ഇവന്റുകൾ രണ്ട് ഡെലിവറി ശൈലികളിലൂടെ ലഭ്യമാക്കുന്നു:

* **എൻഡ്‌പോയിന്റ് ഡെലിവറികൾ** എല്ലായ്പ്പോഴും **തടസ്സപ്പെടുത്താത്ത**
  [വീണ്ടും ശ്രമിക്കലുകളുള്ള](/ml/webhooks/overview) അറിയിപ്പുകളാണ്: ഏതെങ്കിലും 2xx ഉപയോഗിച്ച് പ്രതികരിക്കുക;
  ഡ്യൂപ്ലിക്കേറ്റ് ഒഴിവാക്കുന്നതിനായി എൻവലപ്പിൽ `event_id` ഉണ്ടായിരിക്കും.
* **ബ്ലോക്കിംഗ്** എക്സ്ചേഞ്ചുകൾ പ്രവർത്തിക്കുന്നത്
  [ലെഗസി ഒറ്റ-URL വെബ്‌ഹുക്കിൽ](/ml/webhooks/overview) മാത്രമാണ്: 
  [`telephony.incoming` / `web.incoming`](/ml/webhooks/call-incoming)
  കോൺഫിഗറേഷൻ അഭ്യർത്ഥന (വെബ്‌ഹുക്ക്-മോഡ് നമ്പറുകളും വിജറ്റ് കീകളും, 10 s
  ടൈംഔട്ട്) കൂടാതെ വെബ്‌ഹുക്ക്-മോഡിലെ
  [ടൂൾ ഡിസ്പാച്ച്](/ml/tools/overview). നിങ്ങളുടെ പ്രതികരണം
  തത്സമയ കോളിനെ രൂപപ്പെടുത്തുന്നു.

താഴെയുള്ള ഉദാഹരണ പേലോഡുകൾ വയർ ക്രമത്തിലുള്ള എൻഡ്‌പോയിന്റ് എൻവലപ്പ്
കാണിക്കുന്നു (`data`, `event_id`, `type` എന്നിങ്ങനെ അക്ഷരമാലാക്രമത്തിൽ അടുക്കിയ കീകൾ);
ലെഗസി ഡെലിവറികളിൽ `event_id` ഇല്ലാതെ അതേ `data` ഉണ്ടായിരിക്കും.

## കോൾ ഇവന്റുകൾ

### `telephony.incoming`

ഒരു ഇൻബൗണ്ട് കോൾ നിങ്ങളുടെ [ഫോൺ നമ്പറുകളിൽ](/api-reference/phone-numbers) ഒന്നിലെത്തുമ്പോൾ അയയ്ക്കുന്നു. എൻഡ്പോയിന്റ് ഡെലിവറികൾ ഏജന്റ്-കോൺഫിഗർ ചെയ്തതോ വെബ്ഹുക്ക്-കോൺഫിഗർ ചെയ്തതോ ആയ **എല്ലാ** ഇൻബൗണ്ട് കോളുകൾക്കും അയയ്ക്കുന്ന ഫയർ-ആൻഡ്-ഫോർഗെറ്റ് അറിയിപ്പുകളാണ്. നിയോഗിച്ച ഏജന്റ് ഇല്ലാത്ത നമ്പറുകൾക്ക് ലെഗസി വെബ്ഹുക്കിൽ **തടയുന്ന** കോൺഫിഗറേഷൻ അഭ്യർത്ഥനയും ലഭിക്കും — പൂർണ്ണ അഭ്യർത്ഥന / പ്രതികരണ സ്കീമയ്ക്കായി [`telephony.incoming` / `web.incoming`](/ml/webhooks/call-incoming) കാണുക.

```json
{
  "data": {
    "call_id": 987654321,
    "from_number": "+14155550199",
    "to_number": "+15551234567"
  },
  "event_id": "3f6b2ad0-1c9e-4a57-9f2b-8f6f0f9d2f11",
  "type": "telephony.incoming"
}
```

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `agent_id` | integer \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `agent_name` | string \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |

### `telephony.complete`

ഇൻബൗണ്ട് അല്ലെങ്കിൽ ഔട്ട്ബൗണ്ട് ടെലിഫോണി കോൾ അവസാനിക്കുമ്പോൾ അയയ്ക്കുന്നു. തടയാത്തത്. ട്രാൻസ്ക്രിപ്റ്റ്, ലഭ്യമാകുമ്പോൾ റെക്കോർഡിങ് URL, ബില്ലിങ് സംഗ്രഹം എന്നിവ ഉൾക്കൊള്ളുന്നു. പേലോഡ് സ്കീമയ്ക്കായി [`telephony.complete` / `web.complete`](/ml/webhooks/call-complete) കാണുക.

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `agent_id` | integer \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `agent_name` | string \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |

### `telephony.tool`

ഒരു ടെലിഫോണി കോൾ [ഫങ്ഷൻ ടൂൾ](/ml/tools/overview) പ്രവർത്തിപ്പിച്ചതിന് ശേഷം അയയ്ക്കുന്നു. തടയാത്ത ഓഡിറ്റ് അറിയിപ്പ് — ഈ ഇവന്റ് ഡെലിവർ ചെയ്യുമ്പോഴേക്കും ടൂൾ പ്രവർത്തിപ്പിച്ചിട്ടുണ്ടാകും; ഇത് നിങ്ങളുടെ സ്വന്തം ഫങ്ഷൻ ടൂളുകളെ ഉൾക്കൊള്ളുന്നു (ബിൽറ്റ്-ഇൻ, നോളജ്-ബേസ്, ആപ്പ്-കണക്ഷൻ, അല്ലെങ്കിൽ MCP ടൂളുകൾ അല്ല).

```json
{
  "data": {
    "arguments": { "date": "2026-04-21" },
    "call_id": 987654321,
    "from_number": "+14155550199",
    "response": {
      "response": { "available_slots": ["9:00 AM", "2:00 PM"] },
      "status": 200
    },
    "to_number": "+15551234567",
    "tool_name": "search_appointments"
  },
  "event_id": "1f0a7c3e-52d4-4a0e-8f4b-b1a6a1c0d9e2",
  "type": "telephony.tool"
}
```

`response` എന്നത് പ്രവർത്തിപ്പിച്ച ഫലമാണ്: വിജയിക്കുമ്പോൾ `{"status": <http status>,
"response": <your endpoint's JSON>}`, അല്ലെങ്കിൽ പരാജയപ്പെടുമ്പോൾ
`{"status": <status>, "error": "<message>"}`.

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `agent_id` | integer \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `agent_name` | string \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |

### `telephony.turn`

ഒരു ടെലിഫോണി കോൾ **നടന്നുകൊണ്ടിരിക്കുമ്പോൾ**, സംസാരമുള്ള ഓരോ ടേണിനും അത് സംഭവിക്കുന്നതനുസരിച്ച് ഒരിക്കൽ അയയ്ക്കുന്നു — ഏജന്റിന്റെ സംസാരിച്ച പൂർത്തീകരണങ്ങളും വിളിക്കുന്നയാളുടെ ട്രാൻസ്ക്രൈബ് ചെയ്ത ടേണുകളും. [`GET /v1/calls/{call_id}/transcript`](/api-reference/calls#get-transcript) പോളുചെയ്യുന്നതിന് പകരം സാധാരണ വെബ്ഹുക്കുകളിലൂടെ തത്സമയ സംഭാഷണം പിന്തുടരാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു. തടയാത്തത്.

<Note>
  **വ്യക്തമായ സബ്സ്ക്രിപ്ഷൻ ആവശ്യമാണ്.** മറ്റെല്ലാ ഇവന്റ് തരങ്ങളിൽനിന്നും വ്യത്യസ്തമായി, ശൂന്യമായ `events` അറേ വഴി (എല്ലാത്തിലേക്കും സബ്സ്ക്രൈബ് ചെയ്യുക) ടേൺ ഇവന്റുകൾ ഒരിക്കലും ഡെലിവർ ചെയ്യില്ല. ഒരു എൻഡ്പോയിന്റിന്റെ `events` ലിസ്റ്റിൽ `telephony.turn` / `web.turn` വ്യക്തമായി ഉൾപ്പെട്ടാൽ മാത്രമേ അതിന് അവ ലഭിക്കൂ.
</Note>

```json
{
  "data": {
    "call_id": 987654321,
    "entry_type": "completion",
    "from_number": "+14155550199",
    "position": 7,
    "role": "assistant",
    "start_ms": 15200,
    "text": "How many employees does your company have?",
    "to_number": "+15551234567"
  },
  "event_id": "8d3f5a2c-7b1e-4c9a-b6d0-2e4f6a8c0d1e",
  "type": "telephony.turn"
}
```

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `agent_id` | integer \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `agent_name` | string \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `position` | integer | കോൾ ചരിത്രത്തിലെ ടേണിന്റെ ഇൻഡക്സ് — ക്രമീകരണത്തിനുള്ള സ്ഥിരമായ ഐഡന്റിറ്റി |
| `role` | string | `assistant` (ഏജന്റ് സംഭാഷണം) അല്ലെങ്കിൽ `user` (വിളിക്കുന്നയാളുടെ സംഭാഷണം) |
| `text` | string | എമിഷൻ സമയത്ത് അറിയാവുന്ന ടേണിന്റെ ട്രാൻസ്ക്രിപ്റ്റ് ടെക്സ്റ്റ് |
| `entry_type` | string | അടിസ്ഥാന ചരിത്ര എൻട്രി തരം: `completion` (ഏജന്റ്), അല്ലെങ്കിൽ `user_turn` / `span` (വിളിക്കുന്നയാൾ) |
| `start_ms`, `end_ms` | integer | കോൾ ആരംഭിച്ചതിനു ശേഷമുള്ള ms-ലെ ഓഡിയോ ഓഫ്സെറ്റുകൾ; എമിഷൻ സമയത്ത് പ്ലേഔട്ട് ടൈമിങ് ഇതിനകം അറിയാമായിരുന്നാൽ മാത്രം ഉണ്ടായിരിക്കും |

<Note>
  ഡെലിവറി കുറഞ്ഞത് ഒരിക്കലെങ്കിലും നടക്കുന്നതാണ്, ടേണുകൾ **ക്രമം തെറ്റി** എത്തിയേക്കാം: എൻവലോപ്പിലെ `event_id` ഉപയോഗിച്ച് ഡ്യൂപ്ലിക്കേറ്റുകൾ ഒഴിവാക്കി `position` പ്രകാരം ക്രമീകരിക്കുക. എമിഷന് ശേഷവും വിളിക്കുന്നയാളുടെ ട്രാൻസ്ക്രിപ്റ്റുകൾ പരിഷ്കരിക്കപ്പെട്ടേക്കാം; കോൾ-ശേഷമുള്ള [`telephony.complete`](/ml/webhooks/call-complete) ട്രാൻസ്ക്രിപ്റ്റാണ് ആധികാരികം. സംസാരിച്ച ടേണുകൾ മാത്രമേ എമിറ്റ് ചെയ്യൂ — ടൂൾ കോളുകൾ, വിസ്പറുകൾ, മറ്റ് ആന്തരിക എൻട്രികൾ എന്നിവ ഈ സ്ട്രീമിൽ ഒരിക്കലും കാണില്ല.
</Note>

### `web.incoming`

`telephony.incoming`-ന്റെ വെബ്-ചാനൽ തുല്യരൂപം; [വെബ് വിജറ്റ്](/ml/widget/overview) സെഷനോ ബിൽഡർ മൈക്ക് ടെസ്റ്റ് കോളോ ആരംഭിക്കുമ്പോൾ അയയ്ക്കുന്നു. എല്ലാ വെബ് സെഷനുകൾക്കുമുള്ള എൻഡ്പോയിന്റ് ഡെലിവറികൾ ഫയർ-ആൻഡ്-ഫോർഗെറ്റാണ്. `mode="webhook"`-ലെ പബ്ലിഷ് ചെയ്യാവുന്ന കീകൾക്ക് ലെഗസി വെബ്ഹുക്കിൽ **തടയുന്ന** കോൺഫിഗറേഷൻ അഭ്യർത്ഥനയും ലഭിക്കും — ആ തടയുന്ന അഭ്യർത്ഥനയ്ക്ക് വ്യത്യസ്ത രൂപമാണുള്ളത് (`origin_domain`, `publishable_key_prefix`; ഫോൺ നമ്പറുകളില്ല). [`telephony.incoming` / `web.incoming`](/ml/webhooks/call-incoming) കാണുക.

```json
{
  "data": {
    "call_id": 987654322,
    "from_number": "web",
    "origin_domain": "https://example.com",
    "publishable_key_prefix": "pk_live_a1b2",
    "to_number": "+15551234567"
  },
  "event_id": "9a2b4c6d-8e0f-4a1b-9c2d-3e4f5a6b7c8d",
  "type": "web.incoming"
}
```

`from_number` എപ്പോഴും അക്ഷരാർഥത്തിലുള്ള `"web"` ആണ്. വെബ്ഹുക്ക്-മോഡ് വിജറ്റ് സെഷനുകൾക്ക് `to_number` ശൂന്യമാണ് (കോൺഫിഗറേഷനുശേഷം സെഷന്റെ ഏജന്റ് നമ്പർ നിയോഗിക്കപ്പെടുന്നു); ബിൽഡർ മൈക്ക് ടെസ്റ്റ് കോളുകൾക്ക് `origin_domain`, `publishable_key_prefix` എന്നിവ ശൂന്യമാണ്.

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `agent_id` | integer \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `agent_name` | string \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |

### `web.complete`

`telephony.complete`-ന്റെ വെബ്-ചാനൽ തുല്യരൂപം; വെബ് വിജറ്റ് കോളുകളും (`direction: "web"`) ബിൽഡർ മൈക്ക് ടെസ്റ്റ് കോളുകളും (`direction: "test"`) ഉൾക്കൊള്ളുന്നു. തടയാത്തത്. `from_number` `"web"` ആയി സജ്ജീകരിച്ചും `origin_domain` ഉൾപ്പെടുത്തിയും, [`telephony.complete`](/ml/webhooks/call-complete)-ന്റെ അതേ പേലോഡ് രൂപമാണ് ഉപയോഗിക്കുന്നത്.

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `agent_id` | integer \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `agent_name` | string \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |

<Note>
  ലെഗസി ഒറ്റ-URL വെബ്ഹുക്കിൽ, ബിൽഡർ മൈക്ക് ടെസ്റ്റ് കോളുകൾ ചരിത്രപരമായി `telephony.complete` ആയി റിപ്പോർട്ട് ചെയ്യപ്പെടുന്നു — അവിടെ `direction: "web"` കോളുകൾ മാത്രമാണ് `web.complete` തരം ഉപയോഗിക്കുന്നത്. എൻഡ്പോയിന്റ് സിസ്റ്റം വെബ്, ടെസ്റ്റ് കോളുകൾ രണ്ടും `web.*`-ലേക്ക് മാപ്പ് ചെയ്യുന്നു. ചരിത്രപരമായ പേലോഡുകളിൽ ലെഗസി `direction` മൂല്യങ്ങളായ `widget` അല്ലെങ്കിൽ `mic` ഉണ്ടായേക്കാം.
</Note>

### `web.tool`

`telephony.tool`-ന്റെ വെബ്-ചാനൽ തുല്യരൂപം. `data`-യിൽ `from_number` / `to_number`-ന് പകരം `origin_domain` ഉൾപ്പെടുന്നു.

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `agent_id` | integer \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `agent_name` | string \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |

### `web.turn`

[`telephony.turn`](#telephony-turn)-ന്റെ വെബ്-ചാനൽ തുല്യരൂപം; വെബ് വിജറ്റ് കോളുകളും ബിൽഡർ മൈക്ക് ടെസ്റ്റ് കോളുകളും ഉൾക്കൊള്ളുന്നു. `from_number` / `to_number`-ന് പകരം `origin_domain` ഉള്ള അതേ പേലോഡ് രൂപമാണുള്ളത്. `telephony.turn` പോലെ, ഇതിന് **വ്യക്തമായ സബ്സ്ക്രിപ്ഷൻ** ആവശ്യമാണ് — ശൂന്യമായ `events` അറേയിലൂടെ ഇത് ഒരിക്കലും ഡെലിവർ ചെയ്യില്ല.

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `agent_id` | integer \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `agent_name` | string \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |

---

## വോയ്സ് ഇവന്റുകൾ

കസ്റ്റം വോയ്സ് സൃഷ്ടിക്കൽ അസിങ്ക്രണസ് ആണ്. ഈ നോൺ-ബ്ലോക്കിംഗ് ഇവന്റുകൾ നിങ്ങളെ
പോളിംഗ് ചെയ്യുന്നതിനുപകരം അന്തിമ ഫലത്തോട് പ്രതികരിക്കാൻ അനുവദിക്കുന്നു
[ക്ലോൺ വിശദാംശ എൻഡ്പോയിന്റ്](/api-reference/custom-voices#list-and-retrieve-clones).

`voice.ready`, `voice.failed` എന്നിവ `events: []` ഉള്ള ഓർഗനൈസേഷൻ-വ്യാപക
എൻഡ്പോയിന്റിലേക്ക് മാത്രമാണ് വിതരണം ചെയ്യുന്നത്. അവ വ്യക്തമായ ഇവന്റ് ഫിൽട്ടറുകളായി തിരഞ്ഞെടുക്കാനാകില്ല.

### `voice.ready`

ഒരു കസ്റ്റം വോയ്സിന്റെ പ്രോസസ്സിംഗ് പൂർത്തിയാക്കി അതിനെ ഒരു
ഏജന്റിന് അസൈൻ ചെയ്യാനാകുമ്പോൾ അയയ്ക്കുന്നു.

```json
{
  "data": {
    "voice": {
      "created_at": "2026-07-30T14:12:08.317Z",
      "display_name": "Support voice",
      "failure_reason": "",
      "gender": "female",
      "id": "cv_2f6f90b0e9a34ee8b39be7d1",
      "language": "en",
      "name": "custom:cv_2f6f90b0e9a34ee8b39be7d1",
      "status": "ready",
      "updated_at": "2026-07-30T14:13:31.605Z"
    }
  },
  "event_id": "2d5f0a61-e9b5-4a3c-b684-29d7d9e4b214",
  "type": "voice.ready"
}
```

### `voice.failed`

കസ്റ്റം വോയ്സ് പ്രോസസ്സിംഗ് സ്ഥിരമായ പരാജയത്തിലെത്തുമ്പോൾ അയയ്ക്കുന്നു.

```json
{
  "data": {
    "reason": "audio sample could not be processed",
    "voice": {
      "created_at": "2026-07-30T14:12:08.317Z",
      "display_name": "Support voice",
      "failure_reason": "audio sample could not be processed",
      "gender": "female",
      "id": "cv_2f6f90b0e9a34ee8b39be7d1",
      "language": "en",
      "name": "custom:cv_2f6f90b0e9a34ee8b39be7d1",
      "status": "failed",
      "updated_at": "2026-07-30T14:13:31.605Z"
    }
  },
  "event_id": "3493e985-1a75-4f77-a10a-e74af440cd31",
  "type": "voice.failed"
}
```

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `voice.id` | സ്ട്രിംഗ് | കസ്റ്റം വോയ്സിന്റെ പൊതു ID |
| `voice.name` | സ്ട്രിംഗ് | `custom:<public_id>` രൂപത്തിലുള്ള ഏജന്റ് വോയ്സ് മൂല്യം |
| `voice.display_name` | സ്ട്രിംഗ് | ഓർഗനൈസേഷന് ദൃശ്യമാകുന്ന വോയ്സ് പേര് |
| `voice.language` | സ്ട്രിംഗ് | ക്ലോണിന്റെ ഏക ഭാഷാ കോഡ് |
| `voice.gender` | സ്ട്രിംഗ് | `male`, `female`, അല്ലെങ്കിൽ ശൂന്യ സ്ട്രിംഗ് |
| `voice.status` | സ്ട്രിംഗ് | `voice.ready`-ന് `ready`; `voice.failed`-ന് `failed` |
| `voice.failure_reason` | സ്ട്രിംഗ് | വിജയിക്കുമ്പോൾ ശൂന്യം; പരാജയപ്പെടുമ്പോൾ പ്രോസസ്സിംഗ് പരാജയത്തിന്റെ വിശദാംശം |
| `voice.created_at`, `voice.updated_at` | ടൈംസ്റ്റാമ്പ് | ISO 8601 ടൈംസ്റ്റാമ്പുകൾ |
| `reason` | സ്ട്രിംഗ് | പരാജയ വിശദാംശം; `voice.failed`-ൽ മാത്രം ലഭ്യമാണ് |

---

## ഗുണനിലവാര ഇവന്റുകൾ

### `call.graded`

ഒരു കോളിനായുള്ള [AI ഗ്രേഡിംഗ് റൺ](/api-reference/calls#ai-call-grading)
പൂർത്തിയാകുമ്പോഴെല്ലാം അയയ്ക്കുന്നു. തടസ്സമില്ലാത്തത്.

```json
{
  "data": {
    "call_id": 987654321,
    "grade": {
      "call_outcome": "success",
      "created_at": "2026-04-20T18:25:11.002Z",
      "detected_issues": [],
      "graded_at": "2026-04-20T18:25:11.002Z",
      "grader_model": "heuristic-v1",
      "id": 5512,
      "score": 92,
      "status": "completed",
      "summary": "Caller asked about their policy and got a full answer…"
    }
  },
  "event_id": "7c1d2e3f-4a5b-4c6d-8e9f-0a1b2c3d4e5f",
  "type": "call.graded"
}
```

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `agent_id` | integer \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `agent_name` | string \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `grade.id` | integer | ഗ്രേഡ് ഐഡി |
| `grade.score` | integer \| null | 0–100 |
| `grade.call_outcome` | string | `success`, `failure`, `unknown`, അല്ലെങ്കിൽ `no_conversation` |
| `grade.summary` | string | ഒരു ഖണ്ഡികയിലുള്ള സംഗ്രഹം |
| `grade.detected_issues` | array | ഗ്രേഡർ കണ്ടെത്തിയ പ്രശ്ന സ്ട്രിംഗുകൾ |
| `grade.status` | string | എല്ലായ്പ്പോഴും `completed` — പൂർത്തിയായ റണ്ണുകൾ മാത്രമാണ് അയയ്ക്കുന്നത് |
| `grade.grader_model` | string | ഫലം സൃഷ്ടിച്ച ഗ്രേഡർ (ഉദാ. `heuristic-v1`) |
| `grade.graded_at`, `grade.created_at` | timestamp | |

<Note>
  ഒരു കോൾ ഒന്നിലധികം തവണ ഗ്രേഡ് ചെയ്യാനാകും — റെക്കോർഡിംഗ്
  ലഭ്യമായാൽ വേഗത്തിലുള്ള ഹ്യൂറിസ്റ്റിക് ഗ്രേഡിനെ തുടർന്ന് പലപ്പോഴും
  പൂർണ്ണ മോഡൽ ഗ്രേഡ് ഉണ്ടാകും, കൂടാതെ മാനുവൽ റീഗ്രേഡുകളും സാധ്യമാണ്.
  ഓരോ പൂർത്തിയായ റണ്ണും അതിന്റേതായ `call.graded` ഇവന്റ് അയയ്ക്കുന്നു;
  ഏറ്റവും പുതിയ `graded_at` ആധികാരികമായി പരിഗണിക്കുക.
</Note>

### `campaign.completed`

ഒരു കാമ്പെയ്ൻ `running`-ൽ നിന്ന് `completed`-ലേക്ക് മാറുമ്പോൾ ഒരിക്കൽ അയയ്ക്കുന്നു,
അതിന്റെ ഷെഡ്യൂൾ അവസാനിച്ചാലും എല്ലാ കോൺടാക്റ്റുകളും അന്തിമ നിലകളിലെത്തിയാലും.
റണ്ണർ റീട്രൈകൾ മറ്റൊരു ഇവന്റ് അയയ്ക്കില്ല. ഈ ഓർഗനൈസേഷൻ-തല ലൈഫ്‌സൈക്കിൾ ഇവന്റ്
ഓർഗനൈസേഷൻ-സ്കോപ്പുള്ള എൻഡ്‌പോയിന്റുകളിലേക്ക് മാത്രമേ വിതരണം ചെയ്യൂ, ഏജന്റ്-സ്കോപ്പുള്ള
എൻഡ്‌പോയിന്റുകളിലേക്ക് അല്ല. തടസ്സമില്ലാത്തത്.

```json
{
  "data": {
    "campaign_id": "3f6b2c9e-2a0d-4c63-b6d6-a708dc98f403",
    "name": "May win-back",
    "agent_id": 12,
    "status": "completed",
    "started_at": "2026-04-20T17:00:00Z",
    "completed_at": "2026-04-20T18:25:11Z",
    "counts": {
      "contacts_total": 150,
      "completed": 121,
      "failed": 11,
      "no_answer": 18,
      "remaining": 0
    }
  },
  "event_id": "8d8f52ce-6b46-423f-9dde-cea0b91ec135",
  "type": "campaign.completed"
}
```

നാല് ഫല കൗണ്ടുകളും പരസ്പരം വേറിട്ടതും `contacts_total`-ന്റെ ആകെത്തുകയുമാണ്:
`completed` വിജയകരമായ കോൺടാക്റ്റുകളെ ഉൾക്കൊള്ളുന്നു; `no_answer`-ൽ അന്തിമ ഫലം
മറുപടിയില്ലാത്ത, പരാജയപ്പെട്ടതോ ശ്രമങ്ങൾ തീർന്നതോ ആയ കോൺടാക്റ്റുകൾ ഉൾപ്പെടുന്നു;
`failed` മറ്റെല്ലാ അന്തിമ പരാജയപ്പെട്ടതോ ശ്രമങ്ങൾ തീർന്നതോ ആയ കോൺടാക്റ്റുകളെ ഉൾക്കൊള്ളുന്നു;
`remaining` കാത്തിരിക്കുന്ന, ഷെഡ്യൂൾ ചെയ്ത, അല്ലെങ്കിൽ നിലവിൽ വിളിച്ചുകൊണ്ടിരിക്കുന്ന
കോൺടാക്റ്റുകളെ ഉൾക്കൊള്ളുന്നു. ഏറ്റവും പുതിയ ശ്രമത്തിൽ മറുപടിയില്ലായിരുന്നാലും,
റീട്രൈക്കായി കാത്തിരിക്കുന്ന കോൺടാക്റ്റ് `remaining` ആണ്. ഒറ്റത്തവണയുള്ള പൂർത്തീകരണ
സ്നാപ്ഷോട്ടിന് മുമ്പ് പുരോഗതിയിലുള്ള കോളുകൾ പൊരുത്തപ്പെടുത്തുന്നു. `started_at`
കോൺഫിഗർ ചെയ്ത കാമ്പെയ്ൻ ആരംഭ സമയമാണ്, അല്ലെങ്കിൽ ആരംഭ സമയം കോൺഫിഗർ ചെയ്തിട്ടില്ലെങ്കിൽ
കാമ്പെയ്ൻ സൃഷ്ടിച്ച സമയമാണ്.

### `issue.reported`

ഒരു [പ്രശ്ന റിപ്പോർട്ട്](/api-reference/issue-reports) സൃഷ്ടിക്കുമ്പോൾ അയയ്ക്കുന്നു —
ഡാഷ്ബോർഡിൽ നിന്ന് ഒരു ഉപയോക്താവ് ഫയൽ ചെയ്തതായാലും (`source: "user"`),
കോൾ ഗ്രേഡിംഗ് സ്വയമേവ സൃഷ്ടിച്ചതായാലും (`source: "system"`). തടസ്സമില്ലാത്തത്.

```json
{
  "data": {
    "call_id": 987654321,
    "issue_report": {
      "created_at": "2026-04-20T18:25:11.002Z",
      "description": "Five-second silence before responding to the main question.",
      "id": 4321,
      "severity": "warning",
      "source": "system",
      "status": "open",
      "title": "Agent paused too long"
    }
  },
  "event_id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b",
  "type": "issue.reported"
}
```

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `agent_id` | integer \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `agent_name` | string \| null | ഏജന്റിനെ നിയോഗിച്ചിരുന്നെങ്കിൽ, കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `issue_report.severity` | string | `critical`, `warning`, അല്ലെങ്കിൽ `info` |
| `issue_report.status` | string | `open` അല്ലെങ്കിൽ `resolved` |
| `issue_report.source` | string | `user` (ഡാഷ്ബോർഡിൽ നിന്ന് ഫയൽ ചെയ്തത്) അല്ലെങ്കിൽ `system` (ഗ്രേഡിംഗ് സൃഷ്ടിച്ചത്) |

<Note>
  ഒരു കോൾ റീഗ്രേഡ് ചെയ്യുന്നത് അതിന്റെ സിസ്റ്റം സൃഷ്ടിച്ച പ്രശ്ന റിപ്പോർട്ടുകൾ
  പുനർനിർമിക്കുന്നു; ഇത് പുനർസൃഷ്ടിച്ച റിപ്പോർട്ടുകൾക്കായി `issue.reported`
  വീണ്ടും അയയ്ക്കുന്നു. അടിസ്ഥാന പ്രശ്നത്തിന് ഒരു അറിയിപ്പ് മാത്രം വേണമെങ്കിൽ
  `call_id` + `title` ഉപയോഗിച്ച് ഡ്യൂപ്ലിക്കേറ്റുകൾ ഒഴിവാക്കുക.
</Note>

### `issue.escalated`

ഒരു പ്രശ്ന പാറ്റേൺ ജീവനക്കാരുടെ അവലോകനത്തിനായി ThunderPhone-ലേക്ക് അയയ്ക്കുമ്പോൾ:
**ThunderPhone-ലേക്ക് റിപ്പോർട്ട് ചെയ്യുക** എന്നതിന് ശേഷം, അല്ലെങ്കിൽ AI ഉപയോഗിച്ച്
പരിഹരിക്കുക ഉപഭോക്തൃ-വശ പരിഹാരം സ്ഥിരീകരിക്കാൻ കഴിയാതെ പ്രശ്നം സ്വയമേവ റൂട്ട്
ചെയ്യുമ്പോൾ. ഓർഗനൈസേഷൻ-വ്യാപക എൻഡ്‌പോയിന്റുകൾക്ക് മാത്രമേ ഈ ഇവന്റ് ലഭിക്കൂ.

```json
{
  "data": {
    "automatic": false,
    "cluster_id": "7ac2844c-2df0-4fa8-a560-7378da649e19",
    "escalation_id": "ec99f52b-c8c0-41dd-a4f2-dd8a07b10894",
    "status": "open"
  },
  "event_id": "d8f8f420-7a42-45ba-bcf1-b747f9bbecda",
  "type": "issue.escalated"
}
```

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `automatic` | boolean | സ്വയമേവയുള്ള എസ്കലേഷനാണെങ്കിൽ `true`; മാനുവൽ എസ്കലേഷനാണെങ്കിൽ `false` |
| `cluster_id` | UUID | എസ്കലേറ്റ് ചെയ്ത പ്രശ്ന പാറ്റേൺ |
| `escalation_id` | UUID | എസ്കലേഷൻ റെക്കോർഡ് |
| `status` | string | ഇവന്റ് അയയ്ക്കുമ്പോൾ `open` |

ഇത് ഒരു അറിയിപ്പാണ്, തെളിവ് ബണ്ടിൽ അല്ല. പ്രശ്ന പാറ്റേണുമായി ഇത് ബന്ധിപ്പിക്കാൻ
`cluster_id` ഉപയോഗിക്കുക. [ThunderPhone-ലേക്ക് റിപ്പോർട്ട് ചെയ്യുക](/ml/guides/issues) കാണുക.

---

## ടെസ്റ്റ് കോൾ ഇവന്റുകൾ

### `test-call.completed`

ഒരു
[ടെസ്റ്റ്-കോൾ റൺ](/api-reference/test-calls#test-call-run-object)
ടെർമിനൽ സ്റ്റാറ്റസായ `completed` അല്ലെങ്കിൽ `failed` എന്നതിൽ എത്തുമ്പോൾ അയയ്ക്കുന്നു. ആരംഭത്തിൽ പരാജയപ്പെട്ട് ഒരിക്കലും കോൾ സൃഷ്ടിക്കാത്ത റണ്ണുകളും ഇതിൽ ഉൾപ്പെടും. ബ്ലോക്ക് ചെയ്യാത്തത്. ബാച്ച് CI റണ്ണുകൾ നിങ്ങളുടെ ചാറ്റ്/നോട്ടിഫിക്കേഷൻ സിസ്റ്റങ്ങളുമായി ബന്ധിപ്പിക്കാൻ ഉപയോഗപ്രദം.

```json
{
  "data": {
    "test_call_run": {
      "call_id": 987654321,
      "completed_at": "2026-04-20T18:25:04.822Z",
      "error_message": "",
      "id": 7110,
      "status": "completed",
      "target_id": 12,
      "target_type": "agent"
    }
  },
  "event_id": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
  "type": "test-call.completed"
}
```

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `agent_id` | integer \| null | നിയോഗിച്ചിട്ടുണ്ടെങ്കിൽ കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `agent_name` | string \| null | നിയോഗിച്ചിട്ടുണ്ടെങ്കിൽ കോൾ കൈകാര്യം ചെയ്ത ഏജന്റ് |
| `test_call_run.target_type` | string | `agent` അല്ലെങ്കിൽ `phone_number` |
| `test_call_run.target_id` | integer | `target_type`-നോട് പൊരുത്തപ്പെടുന്ന, റൺ ലക്ഷ്യമിട്ട ഏജന്റ് ID അല്ലെങ്കിൽ ഫോൺ-നമ്പർ ID |
| `test_call_run.status` | string | `completed` അല്ലെങ്കിൽ `failed` |
| `test_call_run.call_id` | integer \| null | കോൾ നടത്തുന്നതിന് മുമ്പ് റൺ പരാജയപ്പെട്ടാൽ `null` |
| `test_call_run.error_message` | string | വിജയിക്കുമ്പോൾ ശൂന്യം |

---

## അലേർട്ട് ഇവന്റുകൾ

### `alert.triggered`

**ഡെവലപ്പർ വെബ്‌ഹുക്കുകളിലേക്ക് ഡെലിവർ ചെയ്യുക** ചാനൽ പ്രവർത്തനക്ഷമമാക്കിയിട്ടുള്ള ഒരു [അലേർട്ട് റൂൾ](/ml/guides/alerts) അതിന്റെ പരിധി കടക്കുമ്പോൾ അയയ്ക്കുന്നു. ബ്ലോക്ക് ചെയ്യാത്തത്. ഒരു റൂൾ ഒരിക്കൽ ട്രിഗർ ചെയ്തശേഷം അതിന്റെ കൂൾഡൗൺ മാനിക്കും, അതിനാൽ തുടർച്ചയായ ലംഘനം ഓരോ കൂൾഡൗൺ വിൻഡോയ്ക്കും ഒരു ഇവന്റ് സൃഷ്ടിക്കും.

```json
{
  "data": {
    "comparator": "lt",
    "event_id": "b8e6a1d4-2c3f-4a5b-9c8d-7e6f5a4b3c2d",
    "fired_at": "2026-04-20T18:00:00+00:00",
    "metric": "success_rate",
    "metric_value": 71.4,
    "rule_id": "d2c3b4a5-6f7e-4d8c-9b0a-1c2d3e4f5a6b",
    "rule_name": "Success rate below 80%",
    "threshold": 80.0,
    "window_hours": 24
  },
  "event_id": "4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a",
  "type": "alert.triggered"
}
```

| ഫീൽഡ് | തരം | വിവരണം |
|-------|------|-------------|
| `event_id` (`data`-യിൽ) | UUID | അലേർട്ടിന്റെ **ട്രിഗർ ID** — എൻവലപ്പിന്റെ ഡെലിവറി `event_id`-യിൽനിന്ന് വ്യത്യസ്തം |
| `rule_id`, `rule_name` | UUID, string | ട്രിഗർ ചെയ്ത റൂൾ |
| `metric` | string | `success_rate`, `failure_rate`, `avg_score`, `call_volume`, അല്ലെങ്കിൽ `suite_regression` |
| `comparator` | string | `lt`, `lte`, `gt`, അല്ലെങ്കിൽ `gte` |
| `metric_value` | number | റൂൾ ട്രിഗർ ചെയ്തപ്പോൾ വിൻഡോയിലുടനീളമുള്ള മെട്രിക്കിന്റെ മൂല്യം |
| `threshold` | number | കോൺഫിഗർ ചെയ്ത പരിധി |
| `window_hours` | integer | അവസാനിക്കുന്ന മൂല്യനിർണയ വിൻഡോ |
| `fired_at` | timestamp | |

റൂളുകൾ, മെട്രിക്കുകൾ, കൂൾഡൗണുകൾ, ഇമെയിൽ / Slack ചാനലുകൾ എന്നിവ സൃഷ്ടിക്കാൻ [അലേർട്ടുകൾ ഗൈഡ്](/ml/guides/alerts) കാണുക.

---

## ബന്ധപ്പെട്ടവ

<CardGroup cols={2}>
  <Card title="telephony.incoming / web.incoming" icon="phone" href="/ml/webhooks/call-incoming">
    നിങ്ങൾ പ്രതികരിക്കേണ്ട ബ്ലോക്കിംഗ് ഇൻബൗണ്ട്-കോൾ പേലോഡ്.
  </Card>
  <Card title="telephony.complete / web.complete" icon="phone-slash" href="/ml/webhooks/call-complete">
    കോൾ-ശേഷമുള്ള ട്രാൻസ്ക്രിപ്റ്റും മെട്രിക്കുകളും.
  </Card>
  <Card title="വെബ്‌ഹുക്ക് എൻഡ്‌പോയിന്റുകൾ" icon="bolt" href="/ml/webhooks/endpoints">
    ഈ ഇവന്റുകളുടെ ഒരു ഉപസെറ്റിലേക്ക് ഒരു URL സബ്സ്ക്രൈബ് ചെയ്യുക.
  </Card>
  <Card title="ഫങ്ഷൻ ടൂളുകൾ" icon="screwdriver-wrench" href="/ml/tools/overview">
    `telephony.tool` / `web.tool` ഇവന്റുകൾ എങ്ങനെ സൃഷ്ടിക്കപ്പെടുന്നു.
  </Card>
</CardGroup>
