Программное управление (JS API)

Виджет можно открывать не только по своей кнопке, но и из кода вашего сайта. Это нужно, например, чтобы кнопка «Записаться онлайн» на сайте открывала онлайн-запись, или если вы выбрали режим «Только JS API» (без кнопки виджета - см. Внешний вид).

После установки кода на странице появляется dialogi. Это функция: любой метод можно вызвать и напрямую, и по имени - dialogi.booking.open() и dialogi('booking.open') делают одно и то же.

Методы открытия окон

dialogi.booking.open()    // открыть онлайн-запись
dialogi.chat.open()       // открыть чат с Нейро
dialogi.neuro.open()      // то же окно чата
dialogi.perezvoni.open()  // открыть форму обратного звонка

dialogi.open('booking')   // то же, что dialogi.booking.open()
dialogi.open()            // первый канал кнопки виджета

dialogi.booking.close()   // закрыть окно записи
dialogi.close()           // закрыть все окна виджета

Вызывайте нужный метод из обработчика на своём элементе. Пример - открыть запись по клику на свою кнопку:

<button onclick="dialogi.booking.open()">Записаться онлайн</button>

Открывая запись, виджет закрывает чат: оба окна живут в одном месте у кнопки виджета.

Запись на нужную услугу

Окно записи можно открыть сразу на нужной услуге, специалисте, точке или дне:

dialogi.booking.open({
  service_id: '…',       // услуга
  resource_id: '…',      // специалист или объект аренды; 'any' - любой свободный
  branch_id: '…',        // точка, если их несколько
  date: '2026-10-12',    // день, с которого показать свободное время
})

Все параметры необязательны. Чего нет среди доступного для онлайн-записи (услугу удалили или скрыли, у специалиста нет этой услуги), виджет пропускает: окно откроется без этого выбора, ошибки не будет. Дата в прошлом и несуществующая дата тоже пропускаются. Точка, если её не назвали, берётся по специалисту.

Идентификаторы услуг, специалистов и точек отдаёт публичный API: GET /v1/services, GET /v1/resources, GET /v1/branches.

Кнопка без скрипта

Ссылке или кнопке на сайте достаточно атрибута data-dialogi-open - код писать не нужно:

<a href="/zapis" data-dialogi-open="booking">Записаться онлайн</a>

Значение атрибута - окно: booking (запись), chat (чат), neuro (тот же чат), perezvoni (обратный звонок). Параметры записи задаются атрибутами:

<a href="/zapis"
   data-dialogi-open="booking"
   data-dialogi-service="…"
   data-dialogi-resource="…"
   data-dialogi-branch="…"
   data-dialogi-date="2026-10-12">Записаться к Анне</a>

Как работает такая ссылка:

  • клик открывает окно виджета, со страницы посетитель не уходит;
  • если модуль окна у виджета выключен или виджет не загрузился, ссылка ведёт по своему адресу href - оставьте там страницу с контактами или формой записи;
  • клик с Ctrl, Cmd или Shift открывает ссылку в новой вкладке или окне, как обычно;
  • кнопки, которые сайт добавил на страницу позже, тоже работают.

Вызов до загрузки виджета

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

Пока не загрузился сам скрипт виджета (обычно доли секунды после открытия страницы), работает только вызов по имени - dialogi('booking.open', {...}). Поэтому в коде, который выполняется при загрузке страницы, используйте его. В обработчике клика подходят оба вызова: к моменту клика скрипт уже на странице.

Если окно не открывается

Метод сработает только для того окна, чей модуль включён в возможностях виджета. Например, dialogi.booking.open() откроет запись, если включён модуль «Запись». Если модуль выключен, окно не откроется, а в консоли браузера появится предупреждение [dialogi] booking.open: у виджета не включён модуль «Запись», окно не откроется. Ошибки на странице при этом нет, остальные скрипты сайта работают.

Важно в режиме «Только JS API»

Если у виджета выбран режим «Только JS API», собственной кнопки виджета на сайте нет. Пока в вашем коде нет вызовов dialogi.*.open() или кнопок с data-dialogi-open, посетители не увидят виджет. Убедитесь, что разработчик подключил вызовы к нужным элементам сайта.

Что дальше