---
title: "ઇવેન્ટ્સ કેટલોગ"
description: "ThunderPhone દ્વારા મોકલાતા તમામ વેબહૂક ઇવેન્ટ પ્રકારો."
---

દરેક webhook બોડીમાં `type` ફીલ્ડ હોય છે, જેનું મૂલ્ય આ પેજ પરના ઇવેન્ટ
પ્રકારોમાંનું એક હોય છે. જ્યારે તમે કોઈ
[એન્ડપોઇન્ટ](/gu/webhooks/endpoints)ને સબ્સ્ક્રાઇબ કરો છો, ત્યારે `events` એરેમાં
તમને જોઈતા ઇવેન્ટ પ્રકારો હોવા જોઈએ (અથવા દરેક વસ્તુને સબ્સ્ક્રાઇબ કરવા માટે તે ખાલી હોવો જોઈએ —
પરંતુ પ્રતિ-ટર્ન ઇવેન્ટ્સ [`telephony.turn`](#telephony-turn) /
[`web.turn`](#web-turn) સિવાય, જે માત્ર એવા એન્ડપોઇન્ટને જ પહોંચાડવામાં આવે છે
જે તેમને સ્પષ્ટ રીતે નામ આપે છે).

આ ઇવેન્ટ્સ બે ડિલિવરી શૈલીઓ દ્વારા મોકલવામાં આવે છે:

* **એન્ડપોઇન્ટ ડિલિવરીઝ** હંમેશાં [પુનઃપ્રયાસો](/gu/webhooks/overview) સાથેની **નોન-બ્લોકિંગ**
  સૂચનાઓ હોય છે: કોઈપણ 2xx સાથે પ્રતિસાદ આપો; ડિડ્યુપ્લિકેશન માટે એન્વલપમાં
  `event_id` હોય છે.
* **બ્લોકિંગ** વિનિમયો માત્ર
  [લેગસી સિંગલ-URL webhook](/gu/webhooks/overview) પર ચાલે છે: 
  [`telephony.incoming` / `web.incoming`](/gu/webhooks/call-incoming)
  કન્ફિગરેશન વિનંતી (webhook-મોડ નંબર અને widget કી, 10 s
  ટાઇમઆઉટ) અને webhook-મોડ
  [ટૂલ ડિસ્પેચ](/gu/tools/overview). તમારો પ્રતિસાદ
  લાઇવ કૉલને આકાર આપે છે.

નીચેના ઉદાહરણ પેલોડ્સ તેમના વાયર ક્રમમાં એન્ડપોઇન્ટ એન્વલપ દર્શાવે છે
(કીઓ મૂળાક્ષર ક્રમમાં ગોઠવેલી છે: `data`, `event_id`, `type`); લેગસી
ડિલિવરીઝમાં `event_id` વગર સમાન `data` હોય છે.

## કૉલ ઇવેન્ટ્સ

### `telephony.incoming`

ઇનબાઉન્ડ કૉલ તમારા કોઈ એક
[ફોન નંબર](/api-reference/phone-numbers) પર પહોંચે ત્યારે મોકલવામાં આવે છે. એન્ડપૉઇન્ટ ડિલિવરીઓ દરેક ઇનબાઉન્ડ કૉલ માટે મોકલાતી ફાયર-એન્ડ-ફર્ગેટ સૂચનાઓ છે, પછી ભલે નંબર એજન્ટ-કૉન્ફિગર કરેલો હોય કે વેબહૂક-કૉન્ફિગર કરેલો હોય. અસાઇન કરેલા એજન્ટ વિનાના નંબરોને લેગસી વેબહૂક પર વધારામાં **બ્લૉકિંગ** કૉન્ફિગરેશન વિનંતી મળે છે — સંપૂર્ણ વિનંતી / પ્રતિસાદ સ્કીમા માટે
[`telephony.incoming` / `web.incoming`](/gu/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`](/gu/webhooks/call-complete) જુઓ.

| ક્ષેત્ર | પ્રકાર | વર્ણન |
|-------|------|-------------|
| `agent_id` | integer \| null | અસાઇન કરવામાં આવ્યો હોય ત્યારે કૉલ સંભાળનાર એજન્ટ |
| `agent_name` | string \| null | અસાઇન કરવામાં આવ્યો હોય ત્યારે કૉલ સંભાળનાર એજન્ટ |

### `telephony.tool`

ટેલિફોની કૉલ
[ફંક્શન ટૂલ](/gu/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`](/gu/webhooks/call-complete) ટ્રાન્સક્રિપ્ટ અધિકૃત છે. ફક્ત બોલાયેલા ટર્ન્સ જ ઇમિટ થાય છે — ટૂલ કૉલ્સ, વિસ્પર્સ અને
  અન્ય આંતરિક એન્ટ્રીઓ આ સ્ટ્રીમમાં ક્યારેય દેખાતી નથી.
</Note>

### `web.incoming`

`telephony.incoming` નું વેબ-ચેનલ સમકક્ષ, જે
[વેબ વિજેટ](/gu/widget/overview) સેશન અથવા બિલ્ડર માઇક ટેસ્ટ કૉલ શરૂ થાય ત્યારે મોકલવામાં આવે છે. દરેક વેબ સેશન માટે એન્ડપૉઇન્ટ ડિલિવરીઓ ફાયર-એન્ડ-ફર્ગેટ હોય છે.
`mode="webhook"` માં પબ્લિશેબલ કીઝને લેગસી વેબહૂક પર વધારામાં
**બ્લૉકિંગ** કૉન્ફિગરેશન વિનંતી મળે છે — તે બ્લૉકિંગ વિનંતીનું સ્વરૂપ અલગ હોય છે (`origin_domain`,
`publishable_key_prefix`; કોઈ ફોન નંબર નહીં). જુઓ
[`telephony.incoming` / `web.incoming`](/gu/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"`) સામેલ છે. નૉન-બ્લૉકિંગ. `origin_domain` સહિત
[`telephony.complete`](/gu/webhooks/call-complete) જેવું જ પેલોડ સ્વરૂપ, જેમાં `from_number`
`"web"` પર સેટ હોય છે.

| ક્ષેત્ર | પ્રકાર | વર્ણન |
|-------|------|-------------|
| `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` | string | કસ્ટમ અવાજનો જાહેર id |
| `voice.name` | string | `custom:<public_id>` સ્વરૂપમાં એજન્ટ અવાજનું મૂલ્ય |
| `voice.display_name` | string | સંસ્થા માટે દેખાતું અવાજનું નામ |
| `voice.language` | string | ક્લોનનો એકમાત્ર ભાષા કોડ |
| `voice.gender` | string | `male`, `female`, અથવા ખાલી સ્ટ્રિંગ |
| `voice.status` | string | `voice.ready` માટે `ready`; `voice.failed` માટે `failed` |
| `voice.failure_reason` | string | સફળતા પર ખાલી; નિષ્ફળતા પર પ્રક્રિયા નિષ્ફળતાની વિગતો |
| `voice.created_at`, `voice.updated_at` | timestamp | ISO 8601 ટાઇમસ્ટેમ્પ્સ |
| `reason` | string | નિષ્ફળતાની વિગતો; ફક્ત `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 | ગ્રેડ 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>

### `call.data_extracted`

`telephony.complete` / `web.complete` પછીના વિલંબિત રીટ્રાય સહિત, અથવા
[`POST /v1/calls/{call_id}/extract`](/api-reference/calls#run-data-extraction) દ્વારા મેન્યુઅલ રીતે ફરી રન કર્યા પછી,
સ્ટ્રક્ચર્ડ ડેટા એક્સ્ટ્રેક્શન સફળતાપૂર્વક પૂર્ણ થાય ત્યારે મોકલવામાં આવે છે.
નૉન-બ્લૉકિંગ.

બ્લૉકિંગ એક્સ્ટ્રેક્શન મોડમાં, પૂર્ણતા ઇવેન્ટ સામાન્ય રીતે 75-સેકન્ડના
એક્સ્ટ્રેક્શન બજેટ કરતાં વધુ રાહ જોતી નથી. જો એક્સ્ટ્રેક્શન વર્કર પ્રક્રિયા
ખોવાઈ જાય, તો પ્રોડક્શન ફાઇનલાઇઝેશન ડ્રેન (દર પાંચ મિનિટે) બીજો
એક્સ્ટ્રેક્શન પ્રયાસ શરૂ કરે તે પહેલાં જેનું `blocking_deadline_at` પસાર થઈ ગયું હોય
તેવી પૂર્ણતા રિલીઝ કરે છે. પછીથી મળેલી સફળતા આ ઇવેન્ટ તરીકે અલગથી મોકલવામાં આવે છે.

<Warning>
  એક્સ્ટ્રેક્ટ કરેલા મૂલ્યો વાતચીતનું મોડેલ દ્વારા કરાયેલ અર્થઘટન છે. દરેક
  નૉન-નલ મૂલ્યમાં તે આધારિત હોય તે અવતરણ, વક્તાની ભૂમિકા અને ટર્ન ઇન્ડેક્સ,
  ઉપરાંત રન-સ્તરનો વેરિફિકેશન ફ્લૅગ શામેલ હોય છે. પૈસા, ઓળખ અથવા ઍક્સેસ
  સંબંધિત નિર્ણયો પહેલાં પરિણામની ચકાસણી કરો.
</Warning>

```json
{
  "data": {
    "call_id": 987654321,
    "agent_id": 12,
    "agent_name": "Acme intake",
    "extracted_data": {
      "status": "completed",
      "fields": {
        "customer_name": "Alex Morgan",
        "appointment_date": "2026-04-23"
      },
      "evidence": {
        "customer_name": {
          "quote": "My name is Alex Morgan",
          "speaker_role": "caller",
          "turn_index": 4
        },
        "appointment_date": {
          "quote": "April 23 works for me",
          "speaker_role": "caller",
          "turn_index": 7
        }
      },
      "verification": "verified",
      "field_reasons": {},
      "schema_version": "92850758e231a3c95a..."
    },
    "extracted_at": "2026-04-20T18:25:11.002Z",
    "model": "gemini-2.5-flash"
  },
  "event_id": "4d79ef1d-c2b1-4ed6-85b8-8326bd2895ef",
  "type": "call.data_extracted"
}
```

| ફીલ્ડ | પ્રકાર | વર્ણન |
|-------|------|-------------|
| `agent_id` | integer \| null | એજન્ટને સોંપવામાં આવ્યો હોય ત્યારે કૉલ સંભાળનાર એજન્ટ |
| `agent_name` | string \| null | એજન્ટને સોંપવામાં આવ્યો હોય ત્યારે કૉલ સંભાળનાર એજન્ટ |
| `extracted_data.status` | string | આ ઇવેન્ટ માટે હંમેશા `completed` |
| `extracted_data.fields` | object | કૉન્ફિગર કરેલી એક્સ્ટ્રેક્શન ફીલ્ડ કી દ્વારા કી કરેલા મૂલ્યો; અનુપલબ્ધ મૂલ્યો `null` હોય છે |
| `extracted_data.evidence` | object | એક્સ્ટ્રેક્શન ફીલ્ડ દ્વારા કી કરાયેલા પુરાવા. નૉન-નલ મૂલ્યમાં ચોક્કસ સ્ટ્રક્ચરલી ચકાસાયેલ અવતરણ (વધુમાં વધુ 1,000 અક્ષરો), `speaker_role` (`caller` અથવા `agent`) અને `turn_index` હોય છે; મોડેલ દ્વારા પરત કરાયેલા લાંબા અવતરણો ટૂંકાવવાના બદલે નકારવામાં આવે છે, અને જ્યારે તેની ફીલ્ડ `null` હોય ત્યારે પુરાવો `null` હોય છે |
| `extracted_data.verification` | string | જ્યારે સ્વતંત્ર પુરાવા પાસ દરેક ઉમેદવાર ફીલ્ડ માટે બરાબર એક માન્ય નિર્ણય પરત કરે ત્યારે જ `verified`. `unavailable` નો અર્થ છે કે પાસ નિષ્ફળ ગયો, સમય સમાપ્ત થયો, પૂરતું બજેટ ન હતું, અથવા ખામીયુક્ત કે આંશિક આઉટપુટ પરત કર્યું. સંપૂર્ણપણે અનુપલબ્ધ પાસ ગ્રાહક સમીક્ષા માટે સ્ટ્રક્ચરલી આધારિત મૂલ્યો જાળવે છે. આંશિક આઉટપુટ માટે, માન્ય નિર્ણયો લાગુ કરવામાં આવે છે અને બરાબર એક માન્ય નિર્ણય વિનાના દરેક ઉમેદવારને નલ કરવામાં આવે છે |
| `extracted_data.field_reasons` | object | સ્ટ્રક્ચરલ ગ્રાઉન્ડિંગ અથવા સ્વતંત્ર વેરિફાયર દ્વારા નલ કરવામાં આવેલી ફીલ્ડ્સના કારણો |
| `extracted_data.schema_version` | string | આ એક્સ્ટ્રેક્શન માટે ઉપયોગમાં લેવાયેલી ચોક્કસ ફીલ્ડ સ્કીમાનો હૅશ |
| `extracted_at` | timestamp | ISO 8601 પૂર્ણતા સમય |
| `model` | string | એક્સ્ટ્રેક્શન માટે ઉપયોગમાં લેવાયેલ મોડેલ |

### `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 ને રિપોર્ટ કરો** પછી, અથવા જ્યારે Fix with 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 ને રિપોર્ટ કરો](/gu/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 | રને લક્ષ્ય બનાવેલા એજન્ટ 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`

જ્યારે **ડેવલપર વેબહુક્સ પર મોકલો** ચૅનલ સક્રિય ધરાવતો
[ચેતવણી નિયમ](/gu/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 ચૅનલો બનાવવા માટે
[ચેતવણીઓ માર્ગદર્શિકા](/gu/guides/alerts) જુઓ.

---

## સંબંધિત

<CardGroup cols={2}>
  <Card title="telephony.incoming / web.incoming" icon="phone" href="/gu/webhooks/call-incoming">
    અવરોધક ઇનબાઉન્ડ-કૉલ પેલોડ, જેનો તમારે પ્રતિસાદ આપવો આવશ્યક છે.
  </Card>
  <Card title="telephony.complete / web.complete" icon="phone-slash" href="/gu/webhooks/call-complete">
    કૉલ પછીનો ટ્રાન્સક્રિપ્ટ અને મેટ્રિક્સ.
  </Card>
  <Card title="વેબહુક એન્ડપોઇન્ટ્સ" icon="bolt" href="/gu/webhooks/endpoints">
    આ ઇવેન્ટ્સના ઉપસેટ માટે URL સબ્સ્ક્રાઇબ કરો.
  </Card>
  <Card title="ફંક્શન ટૂલ્સ" icon="screwdriver-wrench" href="/gu/tools/overview">
    `telephony.tool` / `web.tool` ઇવેન્ટ્સ કેવી રીતે જનરેટ થાય છે.
  </Card>
</CardGroup>
