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

# Функции до и после звонка

> Обращения агента во внешние системы до набора номера и после разговора: когда они выполняются, экран «Конвейер звонка» и где что описано.

# Функции до и после звонка

Функция звонка — это обращение агента в вашу систему **вокруг** разговора, а не внутри него. Точек ровно две:

* **до звонка** — результат ложится в динамические переменные, и агент знает их с первого слова;
* **после звонка** — один раз при финализации, с итоговыми переменными, сводкой звонка и результатом пост-аналитики.

Оба списка живут в документе агента и версионируются вместе с ним: боевой звонок читает их из опубликованной версии, тест в редакторе — из черновика.

<Note>
  **Функций «во время разговора» здесь нет.** Всё, что нужно спросить по ходу диалога, делают узлы сценария на схеме — Function, Code и MCP Tool. Эта страница только про то, что происходит до первого слова и после последнего.
</Note>

## Зачем это нужно

**До звонка.** Кампания обзванивает должников. Перед набором агент спрашивает в биллинге имя и сумму долга. Человек берёт трубку и сразу слышит: «Здравствуйте, Алиса, у вас задолженность 12 400 тенге за август». Без этого агент либо молчал бы несколько секунд, пока идёт запрос, либо говорил бы безлично.

**После звонка.** Разговор закончился. Агент закрывает заявку в CRM, отправляет краткое содержание менеджеру в мессенджер и ставит задачу оператору — но только если звонок действительно был успешным.

## Когда именно они выполняются

Момент запуска блока «до звонка» зависит от направления.

| Направление                                 | Когда                                    | Бюджет блока       |
| ------------------------------------------- | ---------------------------------------- | ------------------ |
| Исходящий: кампания, кабинет, публичный API | **до набора номера**, до отправки INVITE | 60 с               |
| Входящий, web-звонок                        | после соединения, до первой реплики      | 10 с               |
| Чат-тест в редакторе                        | до старта тестовой сессии                | 10 с               |
| Блок «после звонка»                         | при финализации, после пост-аналитики    | общего бюджета нет |

Разница между 60 и 10 секундами не произвольная. У исходящего запрос идёт **до набора номера**: телефон у человека ещё не звонит, тишины в трубке не существует, поэтому времени больше. У входящего человек уже на линии и ждёт ответа — каждая лишняя секунда молчания слышна.

Бюджет — общий на весь блок, а не на функцию. Отдельная функция при этом не может ждать дольше **30 секунд** независимо от бюджета.

## Экран «Конвейер звонка»

Откройте агента в редакторе. В шапке, в блоке **Вид редактора**, две кнопки: **Диалог** и **Конвейер**. Нажмите **Конвейер**.

Вместо схемы диалога появится одна колонка сверху вниз, над ней строка «Конвейер звонка · имя агента». Боковые панели при входе в этот вид скрываются — это нормально, они не пропали: инспектор откроется, когда вы выберете карточку функции, левая панель — по кнопке настройки, по индикатору ошибок или тумблером в шапке. Возврат в **Диалог** вернёт панели такими, какими они были.

Выбранный вид записан в адресе страницы (`?view=pipeline`), поэтому переживает перезагрузку, и ссылкой на нужный экран можно поделиться в тикете.

<img src="https://mintcdn.com/hubtalk/9ArMFeq_K4HZh-Td/images/v4_pipeline_view_switch.png?fit=max&auto=format&n=9ArMFeq_K4HZh-Td&q=85&s=34a530326bbc9f39d7a67869fa32e81d" alt="Шапка редактора с переключателем «Диалог / Конвейер»" width="1331" height="88" data-path="images/v4_pipeline_view_switch.png" />

Шесть блоков колонки сверху вниз:

| Блок                     | Что показывает                                                                                                                 |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
| **Вход**                 | три канала — «Входящий звонок», «Звонок кампании», «Web-звонок» — и строка бюджета «До первой реплики: 10 с / 60 с (кампания)» |
| **Функции до звонка**    | карточки функций, которые выполняются перед разговором                                                                         |
| **Агент**                | имя сценария, число узлов, баз знаний, инструментов и MCP-серверов                                                             |
| **Пост-аналитика**       | что система посчитает по разговору: краткое содержание, тональность, успешность, модель                                        |
| **Функции после звонка** | карточки функций, которые выполняются после разговора                                                                          |
| **Выход**                | вебхуки, на которые уйдут уведомления о звонке                                                                                 |

Между блоками на линиях подписаны переходы: **«Звонок начался»** перед агентом и **«Звонок завершён»** после него.

<img src="https://mintcdn.com/hubtalk/9ArMFeq_K4HZh-Td/images/v4_pipeline_view.png?fit=max&auto=format&n=9ArMFeq_K4HZh-Td&q=85&s=5eb72a604130d6672364f18ec7e36d2b" alt="Вид «Конвейер звонка»: шесть блоков сверху вниз" width="881" height="1976" data-path="images/v4_pipeline_view.png" />

Редактируются в конвейере только два блока — «Функции до звонка» и «Функции после звонка». Остальные четыре показывают настройки и никогда не дублируют их формы:

* **Пост-аналитика** и **Выход** ведут кнопками **«Настроить пост-аналитику»** и **«Настроить вебхуки»** во вкладку «Настройки»; нужная секция там подсвечивается на несколько секунд, чтобы было видно, куда вас привели.
* **Агент** — сам по себе кнопка: клик по карточке открывает вид «Диалог» («Нажмите, чтобы открыть схему диалога»).
* **Вход** — справочный блок без действий; у каждого канала есть подсказка «?» с объяснением, что это за канал.

<img src="https://mintcdn.com/hubtalk/9ArMFeq_K4HZh-Td/images/v4_pipeline_entry_block.png?fit=max&auto=format&n=9ArMFeq_K4HZh-Td&q=85&s=1f22540719d8232d67d7dca5f88cbae5" alt="Блок «Вход»: три канала и строка бюджета" width="440" height="205" data-path="images/v4_pipeline_entry_block.png" />

## Где что описано

<CardGroup cols={2}>
  <Card title="Функции до звонка" icon="arrow-right-to-bracket" href="/ru/v4/platform/call-functions/before">
    Своя функция и функция-код, переменные результата, порядок и параллельность строк, пробный вызов и поздняя доставка.
  </Card>

  <Card title="Функции после звонка" icon="arrow-right-from-bracket" href="/ru/v4/platform/call-functions/after">
    Условие выполнения, переменные `call` и `analysis`, ожидание пост-аналитики и проверка условия без звонка.
  </Card>

  <Card title="Решение о звонке в кампании" icon="phone-slash" href="/ru/v4/platform/call-functions/campaign-decision">
    Как функция отменяет набор или откладывает контакт до того, как телефон зазвонит, и что при этом с попыткой.
  </Card>

  <Card title="Контракт для разработчика" icon="code" href="/ru/v4/platform/call-functions/contract">
    Что платформа присылает, что ждёт в ответе, как устроен маппинг и какие есть ключи конфигурации.
  </Card>

  <Card title="История, ограничения и диагностика" icon="stethoscope" href="/ru/v4/platform/call-functions/diagnostics">
    Что видно в ленте событий звонка, чего механизм не делает и что означает каждый симптом.
  </Card>
</CardGroup>
