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

# इवेंट्स कैटलॉग

> ThunderPhone द्वारा भेजे जाने वाले सभी वेबहुक इवेंट प्रकार।

हर webhook body में एक `type` फ़ील्ड होता है, जिसका मान इस पेज के event
types में से एक होता है। जब आप किसी
[endpoint](/hi/webhooks/endpoints) को subscribe करते हैं, तो `events` array में वे
event types होने चाहिए जो आप चाहते हैं (या सब्सक्राइब करने के लिए इसे खाली छोड़ें)।

ये events दो delivery styles में आते हैं:

* **Endpoint deliveries** हमेशा **non-blocking** notifications होती हैं
  जिनमें [retries](/hi/webhooks/overview) होते हैं: किसी भी
  2xx के साथ respond करें; dedup के लिए envelope में एक `event_id` होता है।
* **Blocking** exchanges केवल
  [legacy single-URL webhook](/hi/webhooks/overview) पर चलते हैं:
  [`telephony.incoming` / `web.incoming`](/hi/webhooks/call-incoming)
  configuration request (webhook-mode numbers और widget keys, 10 s
  timeout) और webhook-mode
  [tool dispatch](/hi/tools/overview)। आपका response
  लाइव कॉल को आकार देता है।

नीचे दिए गए example payloads endpoint envelope को उसके wire order में दिखाते हैं
(keys alphabetically sorted हैं: `data`, `event_id`, `type`); legacy
deliveries में `event_id` के बिना वही `data` होता है।

## कॉल इवेंट्स

### `telephony.incoming`

जब कोई इनबाउंड कॉल आपके किसी [फोन नंबर](/api-reference/phone-numbers) पर पहुंचती है, तब भेजा जाता है। एंडपॉइंट डिलीवरी **हर** इनबाउंड कॉल के लिए भेजी जाने वाली फायर-एंड-फॉरगेट नोटिफिकेशन हैं, चाहे नंबर एजेंट-कॉन्फ़िगर किया गया हो या वेबहुक-कॉन्फ़िगर किया गया हो। जिन नंबरों को कोई एजेंट असाइन नहीं है, उन्हें लेगसी वेबहुक पर अतिरिक्त रूप से **ब्लॉकिंग** कॉन्फ़िगरेशन रिक्वेस्ट मिलती है — पूर्ण रिक्वेस्ट / रिस्पॉन्स स्कीमा के लिए [`telephony.incoming` / `web.incoming`](/hi/webhooks/call-incoming) देखें।

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

### `telephony.complete`

जब कोई इनबाउंड या आउटबाउंड टेलीफोनी कॉल समाप्त होती है, तब भेजा जाता है। नॉन-ब्लॉकिंग। इसमें पूरा ट्रांसक्रिप्ट, रिकॉर्डिंग URL और बिलिंग सारांश शामिल होता है। पेलोड स्कीमा के लिए [`telephony.complete` / `web.complete`](/hi/webhooks/call-complete) देखें।

### `telephony.tool`

जब कोई टेलीफोनी कॉल [फंक्शन टूल](/hi/tools/overview) इनवोक करती है, उसके बाद भेजा जाता है। नॉन-ब्लॉकिंग ऑडिट नोटिफिकेशन — यह इवेंट डिलीवर होने तक टूल पहले ही एक्जीक्यूट हो चुका होता है; इसमें केवल आपके अपने फंक्शन टूल शामिल होते हैं (बिल्ट-इन, नॉलेज-बेस, ऐप-कनेक्शन या MCP टूल नहीं)।

```json theme={null}
{
  "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>"}`।

### `web.incoming`

`telephony.incoming` का वेब-चैनल समकक्ष, जो [वेब विजेट](/hi/widget/overview) सेशन या बिल्डर माइक टेस्ट कॉल शुरू होने पर भेजा जाता है। एंडपॉइंट डिलीवरी हर वेब सेशन के लिए फायर-एंड-फॉरगेट होती हैं। `mode="webhook"` में पब्लिशेबल की को लेगसी वेबहुक पर अतिरिक्त रूप से **ब्लॉकिंग** कॉन्फ़िगरेशन रिक्वेस्ट मिलती है — उस ब्लॉकिंग रिक्वेस्ट का आकार अलग होता है (`origin_domain`, `publishable_key_prefix`; कोई फोन नंबर नहीं)। [`telephony.incoming` / `web.incoming`](/hi/webhooks/call-incoming) देखें।

```json theme={null}
{
  "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` खाली होते हैं।

### `web.complete`

`telephony.complete` का वेब-चैनल समकक्ष, जिसमें वेब विजेट कॉल (`direction: "web"`) और बिल्डर माइक टेस्ट कॉल (`direction: "test"`) शामिल हैं। नॉन-ब्लॉकिंग। [`telephony.complete`](/hi/webhooks/call-complete) के समान पेलोड आकार, साथ में `origin_domain`, और `from_number` को `"web"` पर सेट किया जाता है।

<Note>
  लेगसी सिंगल-URL वेबहुक पर, बिल्डर माइक टेस्ट कॉल ऐतिहासिक रूप से `telephony.complete` के रूप में रिपोर्ट होती हैं — वहां केवल `direction:
      "web"` कॉल `web.complete` टाइप का उपयोग करती हैं। एंडपॉइंट सिस्टम वेब और टेस्ट, दोनों कॉल को `web.*` पर मैप करता है। ऐतिहासिक पेलोड में लेगसी `direction` वैल्यू `widget` या `mic` हो सकती हैं।
</Note>

### `web.tool`

`telephony.tool` का वेब-चैनल समकक्ष। `data` में `from_number` / `to_number` के बजाय `origin_domain` होता है।

***

## गुणवत्ता इवेंट

### `call.graded`

किसी कॉल के लिए [AI ग्रेडिंग रन](/api-reference/calls#ai-call-grading)
पूरा होने पर भेजा जाता है। ब्लॉकिंग नहीं है।

```json theme={null}
{
  "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"
}
```

| फ़ील्ड                                | प्रकार          | विवरण                                                 |
| ------------------------------------- | --------------- | ----------------------------------------------------- |
| `grade.id`                            | integer         | ग्रेड id                                              |
| `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>

### `issue.reported`

जब कोई [समस्या रिपोर्ट](/api-reference/issue-reports) बनाई जाती है, तब भेजा जाता है —
या तो डैशबोर्ड से उपयोगकर्ता द्वारा दर्ज की गई (`source: "user"`) या
कॉल ग्रेडिंग द्वारा स्वचालित रूप से बनाई गई (`source: "system"`)। ब्लॉकिंग नहीं है।

```json theme={null}
{
  "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"
}
```

| फ़ील्ड                  | प्रकार | विवरण                                                           |
| ----------------------- | ------ | --------------------------------------------------------------- |
| `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>

***

## टेस्ट कॉल इवेंट

### `test-call.completed`

जब कोई
[टेस्ट-कॉल रन](/api-reference/test-calls#test-call-run-object)
टर्मिनल स्टेटस तक पहुंचता है — `completed` या `failed`, जिसमें वे रन भी शामिल हैं
जो लॉन्च पर विफल हुए और जिनमें कभी कॉल नहीं हुई। ब्लॉकिंग नहीं है। बैच CI रन को
अपने चैट/नोटिफिकेशन सिस्टम से जोड़ने के लिए उपयोगी है।

```json theme={null}
{
  "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"
}
```

| फ़ील्ड                        | प्रकार          | विवरण                                                                     |
| ----------------------------- | --------------- | ------------------------------------------------------------------------- |
| `test_call_run.target_type`   | string          | `agent` या `phone_number`                                                 |
| `test_call_run.target_id`     | integer         | रन द्वारा लक्षित एजेंट id या फोन-नंबर id, जो `target_type` से मेल खाता है |
| `test_call_run.status`        | string          | `completed` या `failed`                                                   |
| `test_call_run.call_id`       | integer \| null | जब कॉल किए जाने से पहले रन विफल हो जाए, तब `null`                         |
| `test_call_run.error_message` | string          | सफलता पर खाली                                                             |

***

## अलर्ट इवेंट्स

### `alert.triggered`

जब **डेवलपर वेबहुक्स पर डिलीवर करें** चैनल सक्षम वाला कोई [अलर्ट नियम](/hi/guides/alerts) अपनी थ्रेशोल्ड पार करता है, तब भेजा जाता है।
नॉन-ब्लॉकिंग। कोई नियम एक बार ट्रिगर होता है और फिर अपने कूलडाउन का पालन करता है, इसलिए लगातार उल्लंघन से हर कूलडाउन विंडो में एक इवेंट बनता है।

```json theme={null}
{
  "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           | अलर्ट की **ट्रिगर** आईडी — एनवेलप की डिलीवरी `event_id` से अलग                    |
| `rule_id`, `rule_name`   | UUID, स्ट्रिंग | ट्रिगर हुआ नियम                                                                   |
| `metric`                 | स्ट्रिंग       | `success_rate`, `failure_rate`, `avg_score`, `call_volume`, या `suite_regression` |
| `comparator`             | स्ट्रिंग       | `lt`, `lte`, `gt`, या `gte`                                                       |
| `metric_value`           | नंबर           | नियम ट्रिगर होने पर विंडो में मेट्रिक का मान                                      |
| `threshold`              | नंबर           | कॉन्फ़िगर की गई थ्रेशोल्ड                                                         |
| `window_hours`           | इंटीजर         | ट्रेलिंग मूल्यांकन विंडो                                                          |
| `fired_at`               | टाइमस्टैम्प    |                                                                                   |

नियम, मेट्रिक, कूलडाउन और ईमेल / Slack चैनल बनाने के लिए [अलर्ट्स गाइड](/hi/guides/alerts) देखें।

***

## संबंधित

<CardGroup cols={2}>
  <Card title="telephony.incoming / web.incoming" icon="phone" href="/hi/webhooks/call-incoming">
    ब्लॉकिंग इनबाउंड-कॉल पेलोड, जिसका आपको जवाब देना आवश्यक है।
  </Card>

  <Card title="telephony.complete / web.complete" icon="phone-slash" href="/hi/webhooks/call-complete">
    कॉल के बाद का ट्रांसक्रिप्ट और मेट्रिक्स।
  </Card>

  <Card title="वेबहुक एंडपॉइंट्स" icon="bolt" href="/hi/webhooks/endpoints">
    इन इवेंट्स के किसी सबसेट के लिए एक URL सब्सक्राइब करें।
  </Card>

  <Card title="फंक्शन टूल्स" icon="screwdriver-wrench" href="/hi/tools/overview">
    `telephony.tool` / `web.tool` इवेंट्स कैसे जनरेट होते हैं।
  </Card>
</CardGroup>
