> ## 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.

# 11. Перевод на человека

> Слепой и тёплый перевод, брифинг для сотрудника и маршруты неуспеха.

# Перевод на человека

<Info>
  **Цель модуля:** корректно отдать разговор администратору — и предусмотреть, что тот не ответит.
</Info>

<Frame caption="Transfer, тёплый перевод: назначение, метод SIP, лимит дозвона, отображаемый номер, свои X-заголовки, брифинг для принимающего и то, что слышит клиент на удержании.">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-20-node-transfer.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=4b259c588f221d927faedc8731255895" alt="Инспектор узла Transfer: слепой и тёплый перевод, SIP-настройки, брифинг и удержание" style={{ width: "100%", maxWidth: "470px", height: "560px", objectFit: "cover", objectPosition: "top", borderRadius: "6px" }} width="780" height="3364" data-path="images/tutorial/tut-20-node-transfer.webp" />
</Frame>

<Accordion title="Показать панель целиком">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-20-node-transfer.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=4b259c588f221d927faedc8731255895" alt="Инспектор узла Transfer: слепой и тёплый перевод, SIP-настройки, брифинг и удержание" width="780" height="3364" data-path="images/tutorial/tut-20-node-transfer.webp" />
</Accordion>

| Режим                                  | Что происходит                                                                                                       | Когда                                                                |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| **Сразу** (слепой перевод)             | Платформа отдаёт звонок телефонии и агент уходит немедленно. Быстро, но никто не знает, дошёл ли клиент до человека. | Когда на другой стороне очередь или IVR, который всегда отвечает.    |
| **С предупреждением** (тёплый перевод) | Клиент на удержании, агент дозванивается, приватно рассказывает сотруднику суть, соединяет и уходит.                 | Когда сотруднику важен контекст: жалоба, сложный случай, VIP-клиент. |

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

## Фраза перед переводом

«Соединяю вас со специалистом, оставайтесь на линии» говорит сам узел Transfer — отдельный узел разговора перед ним не нужен. Тумблер **«Говорить фразу перед переводом»** стоит в инспекторе после настроек перевода; под ним тот же выбор, что у брифинга: **фиксированный текст** с подстановкой переменных или **инструкция модели**.

Перевод начинается только после того, как фраза прозвучала целиком — и при слепом переводе, и при тёплом, и при переводе на другого агента. По умолчанию тумблер выключен.

Галочка **«Не перебивать эту фразу»** под полем делает реплику непрерываемой. Она относится ко **всем** репликам узла — к фразе перед переводом, к реплике вне графика операторов и к фразе при неудаче перевода: настройка про узел, а не про отдельную фразу.

<Frame caption="Секция «Фраза перед переводом» в инспекторе Transfer: тумблер, выбор между фиксированным текстом и промптом, поле реплики с подстановкой переменных и галочка «Не перебивать эту фразу».">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-20c-transfer-phrase.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=805e48c0108679a6d6b091380c02257d" alt="Секция «Фраза перед переводом» в инспекторе узла Transfer" width="385" height="619" data-path="images/tutorial/tut-20c-transfer-phrase.webp" />
</Frame>

<Info>
  **Фиксированный текст дешевле инструкции.** Инструкция модели — это обращение к ней в самый чувствительный момент, между решением перевести и соединением: абонент ждёт дольше. Фиксированная фраза, наоборот, попадает в кэш синтеза и звучит мгновенно. Инструкцию берите, когда фраза должна учитывать разговор («сошлись на том, о чём человек только что попросил»).
</Info>

<Note>
  Вне графика работы операторов фраза не звучит — там своя реплика: обещать соединение, которого не будет, незачем. А если реплику по инструкции не удалось сгенерировать, перевод всё равно начнётся: молчание — не повод не переводить.
</Note>

## По какой линии уходит перевод

Перевод идёт не по настройкам исходящего обзвона: у транка для него есть отдельное направление — **сабгруппы перевода** со своими номерами, лимитами и разрешёнными направлениями (см. [Телефонию](/ru/v4/platform/telephony)).

В узле поле линии — это список: пункт **«по умолчанию»** и доступные вам сабгруппы перевода. Цифры руками не вписываются.

* **«По умолчанию»** — линия исходящего звонка, затем линия по умолчанию у транка, затем единственная, если она одна.
* **Выбранная сабгруппа перевода** — с неё берётся всё: номер, лимиты, разрешённые направления, форма адреса.

<Warning>
  **Линию перевода сначала заводят на стороне телефонии, и только потом выбирают в узле.** Пока этого не сделано, оператор просто не получит звонок, а снаружи это выглядит как «перевод не работает». Если вы настраиваете переводы впервые — согласуйте линию с теми, кто ведёт вашу телефонию, до правки сценария.

  Если выбранная сабгруппа для этого звонка недоступна — например, агент переехал на другой транк, — перевод всё равно состоится по линии по умолчанию, а в истории звонка появится строка о подмене. Это лучше молчаливого отказа, но настройку стоит поправить.
</Warning>

Если в узле префикс вписан руками, значение показывается только для чтения, а валидатор помечает его предупреждением. Это подсказка перевести узел на сабгруппу перевода, а не ошибка.

## График работы операторов

<Frame caption="Секция «График работы операторов» в инспекторе Transfer: тумблер, часовой пояс операторов с подстановкой зоны организации, строки «дни + с/до», запрет перевода за 5 минут до закрытия и реплика вне графика. В подсказках подстановки видны переменные ближайшего открытия.">
  <img src="https://mintcdn.com/hubtalk/GMvtjWdqWk0BhtuQ/images/tutorial/tut-20b-transfer-schedule.webp?fit=max&auto=format&n=GMvtjWdqWk0BhtuQ&q=85&s=4c144d6a5baa9f7e2098fade4366797e" alt="Секция графика работы операторов в инспекторе узла Transfer" style={{ width: "100%", maxWidth: "470px", borderRadius: "6px" }} width="430" height="783" data-path="images/tutorial/tut-20b-transfer-schedule.webp" />
</Frame>

Перевод не обязан идти круглосуточно. В секции **«График работы операторов»** тумблер **«Переводить только в рабочее время»** включает расписание узла: часовой пояс операторов (подставляется зона организации — меняйте, если контакт-центр в другой), строки «дни + с/до» и галочка **«Не переводить за 5 минут до закрытия»** — чтобы не отдавать абонента тому, кто уже собрался домой. Интервал через полночь задаётся двумя строками; включённый график без строк не публикуется.

Вне графика узел **не начинает перевод**: `{{transfer_status}}` становится `out_of_hours`, `{{transfer_success}}` — `false`, а время ближайшего открытия попадает в `{{transfer_next_open_time}}` и `{{transfer_next_open_date}}` (есть ещё `{{transfer_next_open_iso}}` и `{{transfer_next_open_epoch}}` — для Function и Code). В блоке **«Что сказать вне графика»** задаётся реплика: фиксированный текст с подстановкой — «Операторы работают до 21:00, перезвоните после `{{transfer_next_open_time}}`» — или инструкция модели. Пустое поле означает, что узел промолчит и просто уйдёт по переходу.

В истории звонка такой случай виден как событие перевода со статусом «пропущен» и причиной **«Вне графика работы»** — то есть в отчёте он не смешивается с недозвонами до оператора.

<Warning>
  **Грабли: график без маршрута — тупик**

  Включить график и не предусмотреть переход на этот случай легко — тогда звонок вне окна упирается в тупик. Валидатор об этом предупреждает: нужен либо Default, либо условие `{{transfer_status}} == "out_of_hours"`. Ведите его в узел, который извинится и предложит перезвонить, а не в тишину.
</Warning>

<Info>
  Расписание считает сам узел — узнавать время внешним запросом через Function и разбирать «09:00–21:00» кодом для этого не нужно. Для остальных проверок времени в песочнице `Code` есть часы `now("Asia/Almaty")` — см. модуль [06. Переменные](/ru/v4/tutorial/variables).
</Info>

## Где заканчивается звонок и где — запись

**Разговор с агентом заканчивается в момент передачи клиента живому оператору.** Там же заканчиваются и длительность звонка в истории, и запись: при тёплом переводе это момент удержания, при слепом — начало дозвона. Дальнейший разговор клиента с оператором в длительность звонка не входит — иначе два логически одинаковых перевода давали бы в отчёте разные числа.

В секции **«Запись разговора»** узла Transfer есть галочка **«Продолжать запись после перевода»** — по умолчанию **выключена**. Включите её, если сценарию нужна и часть с живым оператором: тогда запись окажется длиннее звонка, и это осознанный выбор — не забудьте про требования к записи разговоров и про предупреждение абонента.

<Info>
  Приватный брифинг оператору в транскрипте помечен отдельно («Briefing to operator») — абонент его не слышал. При выключенной галочке в запись он тоже не попадает.
</Info>

<Warning>
  **Грабли: успешный перевод терминален, неуспешный — нет**

  Если перевод удался, диалог для агента закончен. А переходы узла Transfer — это **маршруты неуспеха**: администратор занят, не ответил, номер недоступен. Узел без такого перехода означает «клиент слушает тишину и кладёт трубку». Всегда ведите Default в узел вида «сейчас занято, перезвоним в течение часа».
</Warning>

<Info>
  **Практика для нашего контура**

  Заголовки `X-*` — способ передать в телефонию контекст: имя клиента, номер заявки, id разговора. Если в контакт-центре есть карточка клиента, договоритесь с телефонией об этих полях заранее — потом это экономит десятки секунд на каждом переводе.
</Info>

## Когда перевод не удался

### Фраза вместо тишины

Если перевод сорвался, а сценарию сказать нечего — нет маршрута неуспеха или он ведёт в молчаливое завершение, — абонент слушает мёртвый эфир, пока сам не положит трубку. На этот случай есть **«Фраза при неудаче перевода»** в настройках агента, в разделе управления звонком: фиксированный текст или инструкция модели. Пустое поле означает молчаливое завершение.

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

Валидатор предупреждает и о втором варианте той же беды: маршруты неуспеха есть, но каждый ведёт в молчаливое завершение. Предупреждение публикацию не блокирует и снимается, как только фраза задана.

### Почему не удался — видно сразу

Причина неуспеха записана в двух местах:

* **в истории звонка** — у события перевода, отдельной строкой: занято, не ответил, отказ телефонии, вне графика;
* **в переменной `{{transfer_failure_reason}}`** рядом с `{{transfer_status}}` — по ней можно развести маршруты неуспеха и отдать причину во внешнюю систему вебхуком.

<Info>
  **Оператору звонят один раз.** Если абонент говорит поверх фразы перед переводом, узел на время перевода закрыт: реплика абонента пишется в историю, но никуда не ведёт, а повторный запрос отклоняется.
</Info>

## Перевод не на человека, а на другого агента

Назначением перевода может быть не только номер или SIP-адрес, но и другой опубликованный агент — типичный случай — «переключение на язык»: англоязычный агент отдаёт разговор испаноязычному.

**Продолжение идёт целиком на настройках целевого агента:** его голос и модель синтеза, его язык распознавания, его напоминания о тишине и слова поддакивания, его ограничения управления звонком. Таймеры тишины начинают отсчёт заново — от первой реплики нового агента, а не от начала звонка.

**Работает во всех каналах**, а не только в телефонном звонке: звонок с сайта, голосовой тест в кабинете, чат и WhatsApp.
