Виджет онлайн-записи передаёт браузерные события о действиях пользователя. Их можно использовать для собственной веб-аналитики, например в Google Tag Manager, или для изменения состояния страницы после успешной записи.
Виджет отправляет в объект window событие updateAppointmentWidgetsAnalytics. Тип действия находится в event.detail.action.type, а связанные данные — в event.detail.data.
Добавьте обработчик на страницу до подключения скрипта виджета:
<script>
window.addEventListener('updateAppointmentWidgetsAnalytics', function (event) {
const action = event.detail.action;
const data = event.detail.data;
console.log('Widget event:', action.type, event.detail);
if (action.type === 'successfullyEnrolled') {
console.log('Created admission:', data.content.admission);
}
});
</script>
Для логики интеграции используйте action.type. Поле action.name содержит локализованное название и может меняться в зависимости от языка интерфейса.
| Тип события | Когда отправляется | Основные данные |
|---|---|---|
openedTheForm | Форма виджета открылась | Название и ID виджета, адрес формы, тип интеграции |
choseFilial | Выбран или автоматически определён филиал | Выбранный филиал и список филиалов |
choseAdmissionType | Выбран специалист, услуга или специализация | Специалист, услуга, специализация и филиал |
choseAdmissionDatetime | Выбраны дата и время записи | Дата, время, специалист, услуга или специализация |
successfullyEnrolled | Запись успешно создана | Созданная запись, клиент, пациент, филиал, специалист, дата и время |
apiError | Виджет перешёл на экран ошибки API | Текст ошибки, адрес запроса и выбранные данные |
window.addEventListener('updateAppointmentWidgetsAnalytics', function (event) {
if (event.detail.action.type !== 'successfullyEnrolled') {
return;
}
const admission = event.detail.data.content.admission;
// Здесь можно обновить страницу, закрыть модальное окно,
// показать уведомление или отправить событие в аналитику.
console.log('Appointment created:', admission);
});
Автоматический переход на собственный URL после записи в настройках виджета не предусмотрен. Вместо него можно обработать событие successfullyEnrolled на своей странице.
window.addEventListener('updateAppointmentWidgetsAnalytics', function (event) {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'appointment_widget_event',
widget_event_type: event.detail.action.type,
widget_id: event.detail.data.config.id,
selected_filial: event.detail.data.content.selectedFilial?.title || null
});
});
Не передавайте в системы аналитики имена, телефоны, комментарии, сведения о пациенте и другие персональные данные без предусмотренного законом основания.
external_id, lead_id или utm_*, в карточке клиента или записи Vetmanager.CustomEvent, а не через window.postMessage.iframe, родительская страница не получит событие автоматически. Его нужно дополнительно передать из окна iframe через postMessage.Если вам нужна встроенная настройка целей Яндекс.Метрики, воспользуйтесь инструкцией «Настройка интеграции Яндекс.Метрики».