Щоб використовувати телефонію TotalVoice у Mavibot, потрібно отримати Access Token з панелі керування TotalVoice і ввести його в налаштуваннях інтеграції. TotalVoice — це бразильський телефонний сервіс, який тепер входить до групи Zenvia.

Бот може з'єднувати співробітника з клієнтом, переводити та завершувати дзвінки, отримувати записи дзвінків і надсилати події дзвінків у розмову. TotalVoice також надає вартість кожного дзвінка.

Отримання необхідних даних

  1. Створіть обліковий запис Zenvia Voice і поповніть баланс.

  1. Увійдіть до панелі керування. У нижньому лівому куті головного екрана, поруч із Access Token, натисніть значок копіювання.

Access Token — це єдиний ключ, який надає доступ до всього вашого облікового запису, включно зі здійсненням платних дзвінків. Не публікуйте його та не передавайте за межі вашої компанії.

Підключення

У налаштуваннях телефонії виберіть TotalVoice і введіть:

  • Access Token — ключ з панелі керування TotalVoice.
  • Client-facing number — номер, який бачитиме клієнт, у форматі +551140028922. Це поле необов'язкове. Якщо залишити його порожнім, буде використано номер за замовчуванням з вашого облікового запису TotalVoice.


Після збереження на сторінці підключення з'явиться notification URL. Його потрібно додати в панель керування TotalVoice — див. наступний розділ.

Інтеграцію підключено. Щоб відключити її, очистіть поле Access Token і збережіть налаштування.

Налаштування сповіщень

На відміну від інших телефонних інтеграцій, URL-адресу сповіщень потрібно налаштовувати вручну, оскільки TotalVoice не надає Mavibot можливості зробити це автоматично.

  1. Скопіюйте URL-адресу, показану на сторінці підключення.

  1. У панелі керування TotalVoice відкрийте Desenvolvedores → Configurações da API.
  2. Вставте ту саму URL-адресу в усі три поля вебхуків:
    • Status Tempo Real — зміни статусу дзвінка під час його перебігу;
    • Chamada - Fim — завершення дзвінка;
    • DID - Fim de Chamada — завершення вхідного дзвінка на ваш номер.

Сповіщення можуть почати надходити протягом 20 хвилин після збереження налаштувань. Це обмеження TotalVoice. Якщо події не з'являються в розмові одразу після налаштування, просто зачекайте.

Якщо ви перегенеруєте Access Token, URL-адреса сповіщень зміниться. Збережіть новий токен у Mavibot і оновіть URL-адресу в панелі керування TotalVoice, інакше події дзвінків перестануть надходити.

Співробітники

У налаштуваннях співробітника введіть номер TotalVoice співробітника.


Ви можете використовувати як внутрішній номер (ramal, зазвичай 3–4 цифри), так і звичайний мобільний номер у форматі +5511987654321. Це одна з небагатьох інтеграцій, де формат гнучкий: якщо співробітник не використовує внутрішній номер АТС, введіть його мобільний номер.

Дзвінок з картки клієнта

Поруч із номером телефону клієнта в картці розмови з'явиться кнопка дзвінка. TotalVoice спочатку телефонує співробітнику, і лише після того, як співробітник відповість, телефонує клієнту.

Такий порядок є навмисним: клієнт не чутиме тиші на лінії, оскільки співробітник уже на зв'язку, коли телефон клієнта починає дзвонити.

Функції калькулятора

Дзвінок співробітника клієнту

totalvoice_employee_call(client_phone, employee_number, bina, gravar_audio)

Параметри:

  • client_phone — номер телефону клієнта у форматі +5511987654321. Обов'язковий.
  • employee_number — номер співробітника: внутрішній номер або мобільний номер. Обов'язковий.
  • bina — номер, який бачитиме клієнт. Необов'язковий. Якщо пропущено, використовується номер із налаштувань підключення.
  • gravar_audio — чи записувати дзвінок. Необов'язковий. Запис увімкнено за замовчуванням.

Переведення дзвінка

totalvoice_transfer_call(number, call_id, leg)

Параметри:

  • number — номер, на який потрібно перевести дзвінок. Обов'язковий.
  • call_id — ідентифікатор дзвінка. Необов'язковий. Якщо пропущено, використовується останній дзвінок клієнта.
  • leg — яку сторону дзвінка переводити: destino (клієнт, значення за замовчуванням) або origem (співробітник).

Завершення дзвінка

totalvoice_hangup_call(call_id)

Параметри:

  • call_id — ідентифікатор дзвінка. Необов'язковий. Якщо пропущено, використовується останній дзвінок клієнта.

Отримання посилання на запис дзвінка

totalvoice_get_record_link(call_id)

Зазвичай посилання на запис надходить автоматично разом із подією завершення дзвінка. Ця функція корисна, якщо сповіщення не було отримано або якщо потрібен запис старішого дзвінка.

Параметри:

  • call_id — ідентифікатор дзвінка. Необов'язковий. Якщо пропущено, використовується останній дзвінок клієнта.

Зворотні виклики під час дзвінка

Під час перебігу дзвінка в розмову надсилаються зворотні виклики у такому форматі:

totalvoice_call_event atendida

Можливі події:

Подія Коли спрацьовує
chamando Дзвінок дзвонить
preparando Лінія готується до з'єднання
atendida Дзвінок прийнято
sem_resposta Немає відповіді
ocupado Зайнято
cancelada Дзвінок скасовано
congestionado Перевантаження мережі оператора
falha Дзвінок не вдалося завершити
nao_existe Номер не існує

Назви статусів надходять португальською мовою, оскільки це назви статусів, які використовує TotalVoice.

Типовий сценарій «немає відповіді → надіслати повідомлення в месенджері» можна побудувати, перевіривши змінну totalvoice_call_answered.

Сповіщення про статус дзвінка надсилаються не частіше ніж раз на 2 секунди на дзвінок. Для дуже коротких дзвінків деякі проміжні статуси можуть не встигнути надійти. Подія завершення дзвінка надсилається завжди.

Змінні клієнта після дзвінка

Змінна Значення
totalvoice_call_id Ідентифікатор дзвінка
totalvoice_call_status Статус дзвінка за визначенням TotalVoice
totalvoice_call_answered 1 — дзвінок прийнято, 0 — ні
totalvoice_call_duration Тривалість дзвінка в секундах
totalvoice_call_price Вартість дзвінка в бразильських реалах
totalvoice_hangup_reason Причина завершення дзвінка
totalvoice_record_link Посилання на запис дзвінка

Тривалість означає фактичний час розмови, без урахування часу очікування відповіді. Майте на увазі, що TotalVoice розраховує тарифікацію інакше: час, що підлягає оплаті, округлюється до наступної повної хвилини, тому дзвінок тривалістю 24 секунди буде оплачено як одну хвилину. Щоб перевірити нарахування, використовуйте звіт про тарифікацію в панелі керування TotalVoice, а не цю змінну.

Записи дзвінків

Запис налаштовується окремо для кожного дзвінка та ввімкнено за замовчуванням. Ви можете вимкнути його для конкретного дзвінка за допомогою параметра gravar_audio у функції дзвінка.

Коли дзвінок завершується, посилання на запис надходить разом із подією та зберігається у змінній totalvoice_record_link. Окремо його запитувати не потрібно.

Запис дзвінків регулюється законодавством. У Бразилії він підпадає під вимоги LGPD: клієнт має бути поінформований про те, що дзвінок записується, і має існувати законна підстава для зберігання даних. Власник облікового запису TotalVoice несе відповідальність за дотримання цих вимог.

Усунення несправностей

Помилка Причина / Рішення
Дзвінок не створюється, а повідомлення про помилку португальською TotalVoice повертає причину текстом. Найпоширеніші причини — недостатній баланс або невірний формат номера телефону.
Дзвінки працюють, але зворотні виклики не з'являються в розмові URL-адресу сповіщень не додано до панелі керування TotalVoice, не додано до всіх трьох вебхуків або не минуло 20 хвилин після налаштування.
Раніше все працювало, але події раптово припинилися Access Token було перегенеровано, що змінило URL-адресу сповіщень. Збережіть новий токен у Mavibot і оновіть URL-адресу в панелі керування TotalVoice.
"TotalVoice number is not specified" Номер TotalVoice співробітника відсутній у його налаштуваннях.
Статус nao_existe Номер клієнта не існує. Перевірте формат. Бразильські мобільні номери використовують +55 + DDD + 9 цифр.
Статус congestionado Проблема з мережею оператора, не пов'язана з номером клієнта. Якщо проблема не зникає, зверніться до підтримки TotalVoice.
Немає посилання на запис Дзвінок було створено з вимкненим записом або на дзвінок не відповіли.