К содержанию

JavaScript API: справочник ​

После установки браузер создаёт window.FlowtomateWidget. Для передачи ID, email и событий начните с пошаговой инструкции. Здесь собраны методы, их результаты и ранняя очередь вызовов.

ЧленРезультатДля чего нужен
versionstringВерсия загруженного виджета.
ready()Promise<void>Дождаться первого цикла загрузки. Завершение не доказывает, что контент получен.
refresh()Promise<void>Повторно получить настройки и контент. Ошибку обработайте через try/catch.
identify(userId, attributes?)Promise<void>Передать устойчивый ID пользователя и его строковые поля, включая email.
setTraits(attributes)Promise<void>Обновить отдельные строковые поля уже известного пользователя.
setConsent(state)voidПередать 'granted', 'denied' или 'unknown' из решения пользователя.
reset(options?)Promise<void>Сбросить пользователя при выходе. Опция { clearConsent: true } также убирает выбор согласия.
track(name, properties?)voidПередать событие; результат не подтверждает его доставку.
openPopup(id)Promise<boolean>Открыть поп-ап с разрешённым ручным запуском.
startTour(id)Promise<StartTourResult>Попробовать запустить тур и получить его статус.
openChecklist(id)voidОткрыть загруженный чек-лист.
openFeedback(idOrKey)voidОткрыть форму обратной связи по ID или ключу.
destroy()voidУбрать виджет со страницы. Старый объект после этого не используйте.

У identify и setTraits значения attributes должны быть строками. Например, передайте seats: '12'. Для track допустимы и числа, логические значения, null, массивы строк или чисел. Полные ограничения есть в статье о событиях.

ready() ждёт первый цикл загрузки, но виджет обрабатывает его сетевую ошибку внутри себя. Если нужен свежий контент, вызовите await refresh() и обработайте ошибку. Перед сменой аккаунта дождитесь await reset(), затем вызывайте identify. Подробности согласия и результатов ручного открытия есть в согласии и ручном запуске.

Ранняя очередь ​

Если код сайта должен передать команду до загрузки widget.js, создайте очередь перед тегом виджета:

html
<script>
window.flowtomate = window.flowtomate || function (...args) {
  window.flowtomate.q.push(args);
};
window.flowtomate.q = window.flowtomate.q || [];
</script>
<script async src="https://app.flowtomate.ru/widget/v1/widget.js"
  data-flowtomate-key="pub_live_REPLACE_WITH_YOUR_KEY"
  data-flowtomate-api="https://api.flowtomate.ru"></script>

Очередь принимает identify, setTraits, setConsent, reset, track, openPopup и startTour. Пример после фактического согласия пользователя:

js
window.flowtomate('setConsent', 'granted');
window.flowtomate('identify', 'user_42', { email: 'anna@example.com' });

Ранние identify, setTraits и setConsent влияют на первую загрузку. Остальные команды виджет выполняет после ready(). До загрузки скрипта очередь не возвращает результат метода; после загрузки её вызовы также не подходят для обработки ошибок. Если нужен результат openPopup, статус startTour или подтверждение завершения reset, вызывайте метод через window.FlowtomateWidget с await. Не ставьте в очередь ready, refresh, openChecklist, openFeedback, destroy или version.