Як додати
Додайте голосового агента на будь-який сайт через діалог «Configure Widget» у налаштуваннях агента. Крок 1: Відкрийте налаштування агента, натиснувши іконку шестерні у верхньому правому куті редактора агента.



Режими вбудовування
Передумови
Стосуються всіх трьох режимів:- Обслуговуйте сторінку через HTTPS або з
http://localhost. Браузери відмовляють у доступі до мікрофона на звичайних HTTP-джерелах чиfile://. - Якщо в кабінеті задано Allowed Domains, додайте туди й ваш тестовий домен (наприклад,
localhost) — інакше запити конфігурації й сигналізації віджета будуть відхилені. Залиште список порожнім, щоб дозволити всі домени. - Код вбудовування, який ви копіюєте з кабінету, — це один тег
<script>, що завантажуєdograh-widget.jsасинхронно. Віджет автоматично ініціалізується після завантаження й надаєwindow.DograhWidget. Код, що реєструє колбеки, має дочекатись доступності віджета.
Floating Widget

Inline Component

<div>, який ви розміщуєте на сторінці. Зміни статусу оновлюють панель на місці.
Налаштуйте Button Text, Button Color і Call to Action Text у кабінеті.
Звичайний HTML
Розмістіть контейнер<div> там, де має рендеритись віджет. Віджет автоматично приєднається до нього.
React
Оскільки React монтується вже після того, як скрипт віджета міг завантажитись, інтегруйте черезinitInline при першому монтуванні та refresh при повторному. Опитуйте наявність window.DograhWidget, щоб урахувати асинхронне завантаження скрипта.
Headless Mode

JavaScript API
Усі сетери
on* — одноразові (single-listener): повторний виклик того самого замінює попередній обробник.
Про час завантаження. Скрипт віджета завантажується асинхронно, тож
window.DograhWidget може бути ще недоступний у момент першого виконання вашого вбудованого <script>. Приклади нижче припускають, що window.DograhWidget уже доступний у момент реєстрації. Щоб це гарантувати:- Звичайний JS: обгорніть код реєстрації в
window.addEventListener('load', () => { /* реєстрація тут */ }). - React: всередині
useEffectреєструйтесь одразу, якщоdocument.readyState === 'complete', інакше додайте одноразовий слухачwindow.load, що реєструє при спрацюванні. - Обробники кліків, що викликають
start()/end(), не потребують захисту — на момент кліку користувача віджет уже давно завантажений.
Vanilla JS
React + TypeScript
start() має виконуватись усередині справжнього обробника користувацької дії (click, touchend тощо). Браузери відмовляються надавати доступ до мікрофона скриптам, що запитують його поза таким обробником — виклик start() з setTimeout чи при завантаженні сторінки завершиться помилкою дозволу.Колбеки життєвого циклу (усі режими)
Колбекиon* з Headless JavaScript API працюють у всіх трьох режимах вбудовування, а не лише в Headless. Використовуйте їх для аналітики або запуску інтерфейсу на сторінці навіть тоді, коли віджет рендерить власний інтерфейс (Floating чи Inline).
onCallConnected і onCallDisconnected спрацьовують лише тоді, коли дзвінок дійсно встановлює медіа-з’єднання — невдалі спроби з’єднання (наприклад, відмова в доступі до мікрофона, збій мережі) їх не запускають, тож аналітика лишається чистою.