---
title: "Notikumu katalogs"
description: "Visi tīmekļa aizķeres notikumu tipi, ko izvada ThunderPhone."
---

Katras tīmekļa aizķeres pamattekstā ir lauks `type`, kura vērtība ir viens no šīs lapas
notikumu veidiem. Abonējot
[galapunktu](/lv/webhooks/endpoints), masīvā `events` jāiekļauj
vajadzīgie notikumu veidi (vai tas jāatstāj tukšs, lai abonētu visus —
izņemot katra gājiena notikumus [`telephony.turn`](#telephony-turn) /
[`web.turn`](#web-turn), kas tiek piegādāti tikai tiem galapunktiem,
kuros tie ir skaidri norādīti).

Šie notikumi tiek piegādāti divos veidos:

* **Galapunkta piegādes** vienmēr ir **nebloķējoši** paziņojumi
  ar [atkārtotiem mēģinājumiem](/lv/webhooks/overview): atbildiet ar
  jebkuru 2xx; aploksnē ir `event_id` dublikātu novēršanai.
* **Bloķējoša** apmaiņa notiek tikai
  [mantotajā viena URL tīmekļa aizķerē](/lv/webhooks/overview): 
  [`telephony.incoming` / `web.incoming`](/lv/webhooks/call-incoming)
  konfigurācijas pieprasījumā (webhook režīma numuri: 13 s, ieskaitot vienu
  atkārtotu mēģinājumu; webhook režīma logrīku atslēgas: 10 s) un webhook režīma
  [rīku izsaukšanā](/lv/tools/overview). Jūsu atbilde
  veido tiešo zvanu.

Tālāk sniegtajos piemēra datos redzama galapunkta aploksne tās pārraides secībā
(atslēgas sakārtotas alfabētiski: `data`, `event_id`, `type`); mantotajās
piegādēs ir tie paši `data` bez `event_id`.

## Zvanu notikumi

### `telephony.incoming`

Nosūtīts, kad ienākošais zvans sasniedz kādu no jūsu
[tālruņa numuriem](/api-reference/phone-numbers). Galapunkta piegādes ir
paziņojumi, kas tiek nosūtīti bez atbildes gaidīšanas, par **katru** ienākošo zvanu neatkarīgi no tā,
vai numurs ir konfigurēts balss aģentam vai tīmekļa aizķerei. Numuri bez
piešķirta balss aģenta papildus saņem **bloķējošo** konfigurācijas
pieprasījumu mantotajā tīmekļa aizķerē — pilnu pieprasījuma / atbildes shēmu skatiet
[`telephony.incoming` / `web.incoming`](/lv/webhooks/call-incoming).

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

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `agent_id` | integer \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `agent_name` | string \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |

### `telephony.complete`

Nosūtīts, kad beidzas ienākošs vai izejošs telefonijas zvans. Nebloķējošs.
Ietver transkriptu, ieraksta URL, ja pieejams, un norēķinu kopsavilkumu. Kravas shēmu skatiet
[`telephony.complete` / `web.complete`](/lv/webhooks/call-complete).

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `agent_id` | integer \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `agent_name` | string \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |

### `telephony.tool`

Nosūtīts pēc tam, kad telefonijas zvans izsauc
[funkcijas rīku](/lv/tools/overview). Nebloķējošs audita paziņojums —
rīks jau ir izpildīts, kad šis notikums tiek piegādāts; tas attiecas uz
jūsu funkciju rīkiem un iebūvēto `send_sms` rīku (nevis citiem iebūvētajiem,
zināšanu bāzes, lietotņu savienojumu vai MCP rīkiem). Rīkam `send_sms`
gan `arguments.to`, gan `arguments.body` ir `[REDACTED]`. Arī pabeigšanas
transkripti tos rediģē; izgūstiet saturu un adresātu no organizācijas tvērumā esošā
SMS resursa, izmantojot atbildes `message_id`.

```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` ir izpildes rezultāts: `{"status": <http status>,
"response": <your endpoint's JSON>}` veiksmīgas izpildes gadījumā vai
`{"status": <status>, "error": "<message>"}` kļūmes gadījumā.

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `agent_id` | integer \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `agent_name` | string \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |

### `telephony.turn`

Nosūtīts telefonijas zvana **norises laikā** — vienreiz katram
runu saturošam dialoga gājienam, kad tas notiek, proti, balss aģenta izrunātajām atbildēm un
zvanītāja transkribētajiem gājieniem. Ļauj sekot tiešraides sarunai,
izmantojot parastas tīmekļa aizķeres, nevis aptaujājot
[`GET /v1/calls/{call_id}/transcript`](/api-reference/calls#get-transcript).
Nebloķējošs.

<Note>
  **Nepieciešams skaidri norādīts abonements.** Atšķirībā no visiem citiem notikumu veidiem,
  gājienu notikumi nekad netiek piegādāti, izmantojot tukšu `events` masīvu
  (abonēt visu). Galapunkts tos saņem tikai tad, ja tā `events`
  sarakstā ir skaidri norādīts `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"
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `agent_id` | integer \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `agent_name` | string \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `position` | integer | Gājiena indekss zvanu vēsturē — stabils identifikators kārtošanai |
| `role` | string | `assistant` (balss aģenta runa) vai `user` (zvanītāja runa) |
| `text` | string | Gājiena transkripta teksts, kāds tas ir zināms nosūtīšanas brīdī |
| `entry_type` | string | Pamatā esošā vēstures ieraksta veids: `completion` (balss aģents) vai `user_turn` / `span` (zvanītājs) |
| `start_ms`, `end_ms` | integer | Audio nobīdes ms kopš zvana sākuma; pieejamas tikai tad, ja atskaņošanas laiks jau bija zināms nosūtīšanas brīdī |

<Note>
  Piegāde notiek vismaz vienu reizi, un gājieni var pienākt **nepareizā secībā**:
  novērsiet dublikātus pēc aploksnes `event_id` un kārtojiet pēc `position`. Zvanītāja
  transkripti pēc nosūtīšanas joprojām var tikt precizēti; pēc zvana
  [`telephony.complete`](/lv/webhooks/call-complete) transkripts ir
  noteicošais. Tiek nosūtīti tikai izrunātie gājieni — rīku izsaukumi, čuksti un
  citi iekšējie ieraksti šajā plūsmā nekad neparādās.
</Note>

### `web.incoming`

`telephony.incoming` ekvivalents tīmekļa kanālam, kas tiek nosūtīts, kad sākas
[tīmekļa logrīka](/lv/widget/overview) sesija vai veidotāja mikrofona pārbaudes zvans.
Galapunkta piegādes tiek nosūtītas bez atbildes gaidīšanas par katru tīmekļa sesiju.
Publicējamās atslēgas režīmā `mode="webhook"` papildus saņem
**bloķējošo** konfigurācijas pieprasījumu mantotajā tīmekļa aizķerē — šim
bloķējošajam pieprasījumam ir cita struktūra (`origin_domain`,
`publishable_key_prefix`; nav tālruņa numuru). Skatiet
[`telephony.incoming` / `web.incoming`](/lv/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` vienmēr ir burtiskā vērtība `"web"`. Tīmekļa aizķeres režīma logrīka
sesijām `to_number` ir tukšs (sesijas balss aģenta numurs tiek piešķirts
pēc konfigurēšanas); veidotāja mikrofona pārbaudes zvaniem `origin_domain` un
`publishable_key_prefix` ir tukši.

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `agent_id` | integer \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `agent_name` | string \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |

### `web.complete`

`telephony.complete` ekvivalents tīmekļa kanālam, kas aptver tīmekļa
logrīka zvanus (`direction: "web"`) un veidotāja mikrofona pārbaudes zvanus
(`direction: "test"`). Nebloķējošs. Tāda pati kravas struktūra kā
[`telephony.complete`](/lv/webhooks/call-complete), papildus `origin_domain`,
ar `from_number` vērtību `"web"`.

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `agent_id` | integer \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `agent_name` | string \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |

<Note>
  Mantotajā viena URL tīmekļa aizķerē veidotāja mikrofona pārbaudes zvani
  vēsturiski tiek ziņoti kā `telephony.complete` — tur tikai zvani ar `direction:
  "web"` izmanto tipu `web.complete`. Galapunktu sistēma
  gan tīmekļa, gan pārbaudes zvanus attēlo uz `web.*`. Vēsturiskās kravas var
  ietvert mantotās `direction` vērtības `widget` vai `mic`.
</Note>

### `web.tool`

`telephony.tool` ekvivalents tīmekļa kanālam. `data` satur
`origin_domain` lauku `from_number` / `to_number` vietā.

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `agent_id` | integer \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `agent_name` | string \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |

### `web.turn`

[`telephony.turn`](#telephony-turn) ekvivalents tīmekļa kanālam,
kas aptver tīmekļa logrīka zvanus un veidotāja mikrofona pārbaudes zvanus. Tāda pati kravas
struktūra, ar `origin_domain` lauku `from_number` / `to_number` vietā.
Tāpat kā `telephony.turn`, tam nepieciešams **skaidri norādīts abonements** —
tas nekad netiek piegādāts, izmantojot tukšu `events` masīvu.

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `agent_id` | integer \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `agent_name` | string \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |

### `call.transfer_completed`

Tiek nosūtīts vienreiz katram zvanam ar
[zvana pārsūtīšanas](/lv/guides/call-transfers) galīgo iznākumu: aukstu pārsūtīšanu vai cilvēku
savienojumu, kas paliek pēc siltās pārsūtīšanas, kad balss aģents atvienojas.
Nebloķējošs un tiek piegādāts tikai uz galapunktiem (nekad uz mantoto
viena URL tīmekļa aizķeri). Tas tiek saņemts pēc zvana `telephony.complete`:
kad pakalpojumu sniedzējs pārņem zvanu vai pārsūtīšana neizdodas, vai, ja
ThunderPhone savienoja zvanu, kad savienojums beidzas.

```json
{
  "data": {
    "agent_id": 12,
    "agent_name": "Front desk",
    "bridge_kind": "cold_fallback",
    "bridge_seconds": 255,
    "bridge_total_cents": 5,
    "call_id": 987654321,
    "destination": "+15555550102",
    "sip_status": 403,
    "transfer_outcome": "bridged"
  },
  "event_id": "5b0f6c1e-9d2a-5e7b-8c4d-1a2b3c4d5e6f",
  "type": "call.transfer_completed"
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `call_id` | integer | Pārsūtītais zvans |
| `agent_id` | integer \| null | Balss aģents, kas apkalpoja zvanu, ja tāds tika piešķirts |
| `agent_name` | string \| null | Balss aģents, kas apkalpoja zvanu, ja tāds tika piešķirts |
| `transfer_outcome` | string | `refer_accepted`: pakalpojumu sniedzējs pārņēma zvanu. `bridged`: ThunderPhone pats uzturēja savienojumu starp zvanītāju un galamērķi, jo pakalpojumu sniedzējs noraidīja aukstu pārsūtīšanu vai siltās pārsūtīšanas balss aģents atvienojās. `bridge_unanswered`: pakalpojumu sniedzējs noraidīja aukstu pārsūtīšanu, un galamērķis neatbildēja uz ThunderPhone paša veikto zvanu. `failed`: pārsūtīšana netika pabeigta un zvans beidzās |
| `destination` | string \| null | Numurs, uz kuru zvans tika pārsūtīts |
| `sip_status` | integer \| null | Pakalpojumu sniedzēja SIP statuss, kad tas noraidīja auksto pārsūtīšanu: `403` (piemēram, Twilio maģistrāle bez zvanu pārsūtīšanas), `405` vai `501`. `null`, ja pakalpojumu sniedzējs to nenoraidīja |
| `bridge_kind` | string \| null | Tikai `bridged`: `cold_fallback` (noraidīta aukstā pārsūtīšana, ko ThunderPhone savienoja) vai `warm` (divi cilvēki siltajā pārsūtīšanā pēc balss aģenta aiziešanas) |
| `bridge_seconds` | integer \| null | Tikai `bridged`: savienojuma ilgums sekundēs, par kuru ThunderPhone izrakstīja rēķinu |
| `bridge_total_cents` | integer \| null | Tikai `bridged`: savienojuma maksa ASV dolāru centos pēc jebkura bezmaksas zvanu kredīta piemērošanas, kas tiek rēķināta atsevišķi no zvana `billing_total_cents` |

Tās pašas vērtības ir [zvana objektā](/api-reference/calls#call-object)
kā `transfer_outcome`, `transfer_destination`, `transfer_sip_status`,
`transfer_bridge_kind`, `transfer_bridge_seconds` un
`transfer_bridge_total_cents`. `event_id` ir vienāds katrā piegādē
vienam zvanam, tāpēc atkārtots ziņojums nerada otru notikumu.

---

## SMS notikumi

SMS notikumi apraksta ziņojumus, kas nosūtīti, izmantojot organizācijas pievienoto
Twilio vai Telnyx kontu. Ziņojuma saturs ir izlaists, un `to` ir rediģēts.
Iegūstiet organizācijas tvērumā esošo ziņojumu no
[`GET /v1/sms/{message_id}`](/api-reference/sms#retrieve-a-message), kad nepieciešams tā
saturs vai saņēmējs.

### `sms.sent`

Nosūtīts, kad klienta operators pieņem izejoša SMS pieprasījumu. Šis nav
apstiprinājums par piegādi uz tālruni.

```json
{
  "data": {
    "accepted_at": "2026-09-19T15:42:10.113Z",
    "agent_id": 12,
    "call_id": 987654321,
    "created_at": "2026-09-19T15:42:09.901Z",
    "direction": "outbound",
    "error_code": null,
    "error_message": null,
    "from_number": "+15551234567",
    "id": "313a3117-827b-46e9-a01a-ac1493838724",
    "provider": "twilio",
    "provider_id": "SM0123456789abcdef0123456789abcdef",
    "segment_count": 1,
    "source": "agent_tool",
    "status": "accepted",
    "to": "[REDACTED]"
  },
  "event_id": "0ae347b4-1716-45bb-9a0e-b52373586e37",
  "type": "sms.sent"
}
```

### `sms.failed`

Nosūtīts pēc pastāvīga operatora noraidījuma, kad ir izsmelti īslaicīgu kļūdu
atkārtošanas mēģinājumi vai kad iznākums galīgi nav zināms. `error_code` ir
nemainīgs ThunderPhone kods, un `error_message` norāda klientam veicamo darbību,
ja tā ir pieejama. `status: "unknown"` nozīmē, ka operators, iespējams, ir
pieņēmis SMS; pārbaudiet to operatora žurnālā, jo ThunderPhone to automātiski
nenosūtīs atkārtoti.

### `sms.received`

Rezervēts ienākošo SMS atbalstam. Pašreizējā laidienā netiek ģenerēti
`sms.received` notikumi. Ienākošo operatora tīmekļa aizķeru konfigurācija un
paraksta verificēšana tiks piegādāta atsevišķi.

---

## Balss notikumi

Pielāgotas balss izveide ir asinhrona. Šie nebloķējošie notikumi ļauj jums
reaģēt uz galīgo rezultātu, nevis regulāri pārbaudīt
[klonēšanas detalizētās informācijas galapunktu](/api-reference/custom-voices#list-and-retrieve-clones).

`voice.ready` un `voice.failed` tiek piegādāti tikai uz organizācijas mēroga
galapunktu ar `events: []`. Tos nevar atlasīt kā skaidrus notikumu filtrus.

### `voice.ready`

Nosūtīts, kad pielāgotās balss apstrāde ir pabeigta un to var piešķirt
balss aģentam.

```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`

Nosūtīts, kad pielāgotās balss apstrāde sasniedz neatgriezenisku kļūmi.

```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"
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `voice.id` | virkne | Pielāgotās balss publiskais ID |
| `voice.name` | virkne | Balss aģenta balss vērtība formātā `custom:<public_id>` |
| `voice.display_name` | virkne | Organizācijai redzamais balss nosaukums |
| `voice.language` | virkne | Klona vienas valodas kods |
| `voice.gender` | virkne | `male`, `female` vai tukša virkne |
| `voice.status` | virkne | `ready` vērtībai `voice.ready`; `failed` vērtībai `voice.failed` |
| `voice.failure_reason` | virkne | Tukšs veiksmīgas apstrādes gadījumā; apstrādes kļūmes informācija kļūmes gadījumā |
| `voice.created_at`, `voice.updated_at` | laika zīmogs | ISO 8601 laika zīmogi |
| `reason` | virkne | Kļūmes informācija; pieejama tikai laukam `voice.failed` |

---

## Kvalitātes notikumi

### `call.graded`

Tiek nosūtīts, kad zvanam tiek pabeigta [AI vērtēšana](/api-reference/calls#ai-call-grading).
Nebloķējošs.

```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…"
    },
    "report": null
  },
  "event_id": "7c1d2e3f-4a5b-4c6d-8e9f-0a1b2c3d4e5f",
  "type": "call.graded"
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `agent_id` | vesels skaitlis \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `agent_name` | virkne \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `grade.id` | vesels skaitlis | Vērtējuma ID |
| `grade.score` | vesels skaitlis \| null | 0–100 |
| `grade.call_outcome` | virkne | `success`, `failure`, `unknown` vai `no_conversation` |
| `grade.summary` | virkne | Vienas rindkopas kopsavilkums |
| `grade.detected_issues` | masīvs | Vērtētāja atrastās problēmu virknes |
| `grade.status` | virkne | Vienmēr `completed` — tiek nosūtīti tikai pabeigtie izpildes gadījumi |
| `grade.grader_model` | virkne | Vērtētājs, kas radīja rezultātu (piemēram, `heuristic-v1`) |
| `grade.graded_at`, `grade.created_at` | laika zīmogs | |
| `report` | objekts \| null | Klientam paredzētais [zvana pārskats](/api-reference/calls#call-report): rezultāta etiķete, uzmanības nepieciešamības karodziņš un iemesls, zvanītājs, vienas rindas kopsavilkums, zvanītāja pieredze. Agrīnā heuristiskā vērtējumā tas ir `null` vai `pending` pārskats, kura lauki ir vietturi; pilnā vērtējuma notikumā ir pabeigtais pārskats |

<Note>
  Zvanu var vērtēt vairāk nekā vienu reizi — ātram heiristiskajam vērtējumam
  bieži seko pilna modeļa vērtējums, tiklīdz ir pieejams ieraksts, un ir
  iespējama arī manuāla atkārtota vērtēšana. Katrs pabeigtais izpildes
  gadījums nosūta savu `call.graded` notikumu; jaunāko `graded_at` uzskatiet
  par autoritatīvu.
</Note>

### `call.data_extracted`

Tiek nosūtīts, kad strukturēto datu izgūšana ir sekmīgi pabeigta, tostarp pēc
vēla atkārtota mēģinājuma pēc `telephony.complete` / `web.complete` vai
manuālas atkārtotas palaišanas, izmantojot
[`POST /v1/calls/{call_id}/extract`](/api-reference/calls#run-data-extraction).
Nebloķējošs.

Bloķējošā izgūšanas režīmā pabeigšanas notikums parasti negaida ilgāk par
75 sekunžu izgūšanas budžetu. Ja izgūšanas darba process tiek zaudēts,
ražošanas vides pabeigšanas rindas apstrāde (ik pēc piecām minūtēm) atbrīvo
pabeigšanas notikumu, kura `blocking_deadline_at` ir pagājis, pirms sāk citu
izgūšanas mēģinājumu. Vēlāki veiksmīgi rezultāti tiek piegādāti atsevišķi kā
šis notikums.

<Warning>
  Izgūtās vērtības ir modeļa sniegtā sarunas interpretācija. Katra vērtība,
  kas nav null, ietver citātu, runātāja lomu un sarunas kārtas indeksu, uz
  kura tā balstīta, kā arī izpildes līmeņa verifikācijas karodziņu. Pirms
  lēmumu pieņemšanas par naudu, identitāti vai piekļuvi pārbaudiet rezultātu.
</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": "<model id>",
    "summary": "Alex Morgan called to book a follow-up visit and confirmed Thursday, April 23."
  },
  "event_id": "4d79ef1d-c2b1-4ed6-85b8-8326bd2895ef",
  "type": "call.data_extracted"
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `agent_id` | integer \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `agent_name` | string \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `summary` | string \| null | Pabeigtais [zvana kopsavilkums](/lv/webhooks/call-complete), ja balss aģentam ir ieslēgta opcija **Ģenerēt zvana kopsavilkumu**, tāpēc arī vēls izgūšanas notikums piegādā kopsavilkumu, kas netika pabeigts noteiktajā termiņā; pretējā gadījumā `null`. Balss aģenti ar kopsavilkumu, bet bez izgūšanas laukiem, nekad nenosūta šo notikumu: vēlu kopsavilkumu iegūstiet no `GET /v1/calls/{call_id}` |
| `extracted_data.status` | string | Šim notikumam vienmēr `completed` |
| `extracted_data.fields` | object | Vērtības, kas indeksētas pēc konfigurēto izgūšanas lauku atslēgām; nepieejamās vērtības ir `null` |
| `extracted_data.evidence` | object | Pierādījumi, kas indeksēti pēc izgūšanas lauka. Vērtībai, kas nav null, ir precīzs strukturāli pārbaudīts citāts (ne vairāk kā 1 000 rakstzīmes), `speaker_role` (`caller` vai `agent`) un `turn_index`; garāki modeļa atgrieztie citāti tiek noraidīti, nevis saīsināti, un pierādījumi ir `null` vienmēr, kad to lauks ir `null` |
| `extracted_data.verification` | string | `verified` tikai tad, ja neatkarīgā pierādījumu pārbaude katram kandidāta laukam atgrieza tieši vienu derīgu spriedumu. `unavailable` nozīmē, ka pārbaude neizdevās, pārsniedza laiku, tai nepietika budžeta vai tā atgrieza nepareizi formatētu vai daļēju izvadi. Pilnībā nepieejama pārbaude saglabā strukturāli pamatotas vērtības klienta pārskatīšanai. Daļējas izvades gadījumā tiek piemēroti derīgie spriedumi, un katrs kandidāts bez tieši viena derīga sprieduma tiek iestatīts uz nulli |
| `extracted_data.field_reasons` | object | Iemesli, kas indeksēti pēc laukiem, kuri strukturālās pamatotības vai neatkarīgā pārbaudītāja dēļ tika iestatīti uz nulli |
| `extracted_data.schema_version` | string | Precīzās šai izgūšanai izmantotās lauku shēmas jaucējvērtība |
| `extracted_at` | timestamp | ISO 8601 pabeigšanas laiks |
| `model` | string | Izgūšanai izmantotais modelis |

### `campaign.completed`

Tiek nosūtīts vienreiz, kad kampaņas statuss mainās no `running` uz
`completed`, neatkarīgi no tā, vai tās grafiks ir beidzies vai visi kontakti ir
sasnieguši gala statusus. Izpildītāja atkārtotie mēģinājumi nenosūta citu
notikumu. Šis organizācijas līmeņa dzīves cikla notikums tiek piegādāts tikai
organizācijas tvēruma galapunktiem, nevis balss aģenta tvēruma galapunktiem.
Nebloķējošs.

```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"
}
```

Četri rezultātu skaitītāji nepārklājas un to summa ir `contacts_total`:
`completed` ietver veiksmīgus kontaktus; `no_answer` ietver neveiksmīgus vai
izsmeltus kontaktus gala statusā, kuru pēdējais rezultāts bija neatbildēts
zvans; `failed` ietver visus pārējos neveiksmīgos vai izsmeltos kontaktus gala
statusā; un `remaining` ietver gaidošus, ieplānotus vai pašlaik zvanāmus
kontaktus. Kontakts, kas gaida atkārtotu mēģinājumu, ir `remaining`, pat ja tā
pēdējais mēģinājums bija neatbildēts zvans. Notiekošie zvani tiek saskaņoti
pirms vienreizējā pabeigšanas momentuzņēmuma. `started_at` ir konfigurētais
kampaņas sākums vai kampaņas izveides laiks, ja sākums nebija konfigurēts.

### `issue.reported`

Tiek nosūtīts, kad tiek izveidots [problēmas ziņojums](/api-reference/issue-reports) —
vai nu lietotājs to iesniedz no vadības paneļa (`source: "user"`), vai arī to
automātiski izveido zvana vērtēšana (`source: "system"`). Nebloķējošs.

```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"
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `agent_id` | integer \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `agent_name` | string \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `issue_report.severity` | string | `critical`, `warning` vai `info` |
| `issue_report.status` | string | `open` vai `resolved` |
| `issue_report.source` | string | `user` (iesniegts no vadības paneļa) vai `system` (izveidots vērtēšanas laikā) |

<Note>
  Atkārtota zvana vērtēšana no jauna izveido tā sistēmas ģenerētos problēmu
  ziņojumus, tādēļ atkārtoti tiek nosūtīts `issue.reported` par no jauna
  izveidotajiem ziņojumiem. Ja vēlaties tikai vienu paziņojumu par katru
  pamatā esošo problēmu, veiciet dublēšanas novēršanu pēc `call_id` + `title`.
</Note>

### `issue.escalated`

Tiek nosūtīts, kad problēmu modelis tiek nosūtīts ThunderPhone personāla
pārskatīšanai: pēc **Ziņot ThunderPhone** vai kad Labot ar AI nevar apstiprināt
klienta puses labojumu un automātiski pārsūta problēmu. Šo notikumu saņem tikai
organizācijas mēroga galapunkti.

```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"
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `automatic` | boolean | `true` automātiskai eskalācijai; `false` manuālai eskalācijai |
| `cluster_id` | UUID | Eskalētais problēmu modelis |
| `escalation_id` | UUID | Eskalācijas ieraksts |
| `status` | string | `open`, kad notikums tiek nosūtīts |

Šis ir paziņojums, nevis pierādījumu kopa. Izmantojiet `cluster_id`, lai to
saistītu ar problēmu modeli. Skatiet [Ziņot ThunderPhone](/lv/guides/issues).

---

## Testa zvanu notikumi

### `test-call.completed`

Tiek nosūtīts, kad
[testa zvana palaišana](/api-reference/test-calls#test-call-run-object)
sasniedz beigu statusu — `completed` vai `failed`, tostarp palaišanām,
kas neizdevās palaišanas brīdī un nekad neizveidoja zvanu. Nebloķējošs. Noderīgs
partiju CI palaišanu savienošanai ar jūsu tērzēšanas/paziņojumu sistēmām.

```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"
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `agent_id` | integer \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `agent_name` | string \| null | Balss aģents, kas apstrādāja zvanu, ja tāds bija piešķirts |
| `test_call_run.target_type` | string | `agent` vai `phone_number` |
| `test_call_run.target_id` | integer | Balss aģenta ID vai tālruņa numura ID, uz kuru bija vērsta palaišana, atbilstoši `target_type` |
| `test_call_run.status` | string | `completed` vai `failed` |
| `test_call_run.call_id` | integer \| null | `null`, ja palaišana neizdevās pirms zvana veikšanas |
| `test_call_run.error_message` | string | Veiksmīgas izpildes gadījumā tukšs |

---

## Brīdinājumu notikumi

### `alert.triggered`

Tiek nosūtīts, kad [brīdinājuma kārtula](/lv/guides/alerts) ar iespējotu kanālu **Piegādāt
izstrādātāju tīmekļa aizķerēm** pārsniedz savu slieksni.
Nebloķējošs. Kārtula tiek aktivizēta vienu reizi un pēc tam ievēro savu
atdzišanas periodu, tāpēc ilgstošs pārkāpums rada vienu notikumu katrā atdzišanas perioda logā.

```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"
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `event_id` (sadaļā `data`) | UUID | Brīdinājuma **aktivizēšanas** ID — atšķiras no aploksnes piegādes `event_id` |
| `rule_id`, `rule_name` | UUID, string | Kārtula, kas tika aktivizēta |
| `metric` | string | `success_rate`, `failure_rate`, `avg_score`, `call_volume` vai `suite_regression` |
| `comparator` | string | `lt`, `lte`, `gt` vai `gte` |
| `metric_value` | number | Metrikas vērtība logā, kad kārtula tika aktivizēta |
| `threshold` | number | Konfigurētais slieksnis |
| `window_hours` | integer | Beigu novērtēšanas logs |
| `fired_at` | timestamp | |

Skatiet [Brīdinājumu ceļvedi](/lv/guides/alerts), lai izveidotu kārtulas, metriku,
atdzišanas periodus un e-pasta / Slack kanālus.

---

## Migrācijas notikumi

### `migration.call.complete`

Tiek nosūtīts, kad zvans, kas veikts, izmantojot
[`POST /v1/migrations/{id}/calls`](/api-reference/migration-calls), beidzas,
neatkarīgi no platformas, kas to veica. Nebloķējošs. Tas tiek saņemts ne vēlāk
kā aptuveni 5 minūtes pēc zvana beigām. `data` satur visus laukus no
[`telephony.complete`](/lv/webhooks/call-complete) un bloku `migration`. Zvanam,
ko veicis ThunderPhone, kā parasti tiek nosūtīts arī `telephony.complete` ar
tādu pašu `call_id`. Zvans citā platformā, kas nav beidzies pēc 2 stundām vai
kura migrācija ir beigusies vai vispirms zaudējusi atslēgu, tiek nosūtīts ar
`status: "unknown"` un bez transkripta.

```json
{
  "data": {
    "agent_id": 42,
    "agent_name": "Front desk",
    "billable_minutes": null,
    "billing_total_cents": null,
    "call_id": null,
    "direction": "outbound",
    "duration_seconds": 94,
    "end_reason": "user_hangup",
    "end_time": "2026-10-06T17:01:34+00:00",
    "extracted_data": null,
    "from_number": "+15551234567",
    "migration": {
      "arm": "vendor",
      "id": "5f0c2a9e-7b1d-4c3e-8a6f-2d9e1b4c7a30",
      "metadata": {
        "lead_id": "8812"
      },
      "routing_id": "9b2f8c1e-4d3a-4f6b-8e2d-1a7c5b9e0f34",
      "vendor": "retell",
      "vendor_call_id": "call_6a1f0e",
      "vendor_cost_usd": "0.1240"
    },
    "product": "",
    "recording_mode": "vendor",
    "recording_url": "https://…",
    "start_time": "2026-10-06T17:00:00+00:00",
    "status": "completed",
    "summary": "The callee booked a table for two on Thursday.",
    "thunderphone_retained_call_content": true,
    "to_number": "+14155552671",
    "transcripts": [
      {
        "content": "Hi Ada, this is Rosa's calling about your booking.",
        "role": "agent"
      },
      {
        "content": "Yes, Thursday works.",
        "role": "user"
      }
    ],
    "transfer_number": null,
    "unresolved_variables": [],
    "variables": {
      "first_name": "Ada"
    },
    "voice": ""
  },
  "event_id": "7c1e2f3a-4b5c-4d6e-8f7a-9b0c1d2e3f4a",
  "type": "migration.call.complete"
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `migration.id` | UUID | Migrācija |
| `migration.routing_id` | UUID | Maršrutētais zvans, kā atgriezts, kad to veicāt |
| `migration.arm` | string | `ours` (to veica ThunderPhone) vai `vendor` (to veica cita platforma) |
| `migration.vendor` | string | `retell`, `vapi`, `elevenlabs` vai `bland` |
| `migration.vendor_call_id` | string \| null | Citas platformas zvana ID; `null`, ja ir `ours` |
| `migration.metadata` | object | `metadata`, ko nosūtījāt, veicot zvanu |
| `migration.vendor_cost_usd` | string \| null | Cik cita platforma norādīja, ka zvans izmaksāja, ja tā to norādīja |
| `call_id` | integer \| null | ThunderPhone zvana ID; `null`, ja ir `vendor` |
| `status` | string | `vendor` gadījumā: `completed`, kad izsauktais abonents runāja, `failed`, kad nerunāja, `unknown`, kā norādīts iepriekš. `ours` gadījumā: kā `telephony.complete` |

`vendor` zvanam ThunderPhone nav norēķinu vai datu iegūšanas informācijas:
`billable_minutes`, `billing_total_cents` un `extracted_data` ir `null`,
`product` un `voice` ir tukši, `recording_mode` ir `vendor`, un
`recording_url` ir citas platformas saite, ja tādu tā sniedza.

### `migration.rollback`

Tiek nosūtīts, kad migrācijas pakāpeniskā pārslēgšana automātiski novirza visus zvanus atpakaļ uz otru
platformu: 3 zvani 15 minūšu laikā neizdevās savienot ar ThunderPhone, 2 uz ThunderPhone nosūtītie zvani beidzās, pirms balss aģents atbildēja, vai
ThunderPhone uzdevumu iznākuma rādītājs nokritās par vairāk nekā konfigurēto starpību zem
otras platformas rādītāja. Nebloķējošs notikums, vienreiz katrai atcelšanai. Pēc tā ThunderPhone
zvanu īpatsvars ir 0%, un migrācija tiek apturēta, līdz kāds to atsāk balss
aģenta cilnē Migrācija. Slodzes datos nav tālruņu numuru, transkriptu vai zvanu ID.

```json
{
  "data": {
    "agent_id": 42,
    "agent_name": "Front desk",
    "dropped": 0,
    "migration_id": "5f0c2a9e-7b1d-4c3e-8a6f-2d9e1b4c7a30",
    "ours": {
      "graded": 20,
      "success_rate": 0.8
    },
    "ours_failed": 3,
    "ours_percent": 0,
    "previous_percent": 25,
    "reason": "ours_failed_burst",
    "rolled_back_at": "2026-10-10T12:05:00+00:00",
    "step": 1,
    "theirs": {
      "graded": 20,
      "success_rate": 0.8
    },
    "vendor": "retell"
  },
  "event_id": "3d1f6b2a-8c4e-5a7b-9d0e-2f1a3b4c5d6e",
  "type": "migration.rollback"
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `migration_id` | UUID | Migrācija |
| `vendor` | string | `retell`, `vapi`, `elevenlabs` vai `bland` |
| `reason` | string | `ours_failed_burst` (3 neveiksmīgi savienojumi 15 minūšu laikā), `dropped_calls` (2 zvani beidzās, pirms balss aģents atbildēja, 30 minūšu laikā) vai `rate_gap` (uzdevumu iznākuma rādītāju starpība vismaz `rollback_min_calls` novērtētajos zvanos katrā pusē) |
| `previous_percent` | integer | ThunderPhone zvanu īpatsvars pirms atcelšanas |
| `ours_percent` | integer | Vienmēr `0` |
| `step` | integer \| null | Grafika solis, kurā tā atradās (sākot no 0) |
| `ours` / `theirs` | object \| null | Pašreizējā solī novērtētie zvani un to sekmīguma rādītājs; `theirs` var attiekties uz pēdējām 30 dienām, ja solī ir pārāk maz zvanu. `null`, ja zvanu nebija |
| `ours_failed` | integer | Neveiksmīgie savienojumi, kas saskaitīti pēdējās 15 minūtēs |
| `dropped` | integer | Par pārtrauktiem uzskatītie zvani, kas saskaitīti pēdējās 30 minūtēs |
| `rolled_back_at` | timestamp | |

---

## Saistītie resursi

<CardGroup cols={2}>
  <Card title="telephony.incoming / web.incoming" icon="phone" href="/lv/webhooks/call-incoming">
    Bloķējošā ienākošā zvana slodze, uz kuru jums jāatbild.
  </Card>
  <Card title="telephony.complete / web.complete" icon="phone-slash" href="/lv/webhooks/call-complete">
    Pēc zvana veikšanas iegūstamais atšifrējums un metrika.
  </Card>
  <Card title="Tīmekļa aizķeru galapunkti" icon="bolt" href="/lv/webhooks/endpoints">
    Abonējiet URL daļai no šiem notikumiem.
  </Card>
  <Card title="Funkciju rīki" icon="screwdriver-wrench" href="/lv/tools/overview">
    Kā tiek ģenerēti `telephony.tool` / `web.tool` notikumi.
  </Card>
</CardGroup>
