Подключение и методы виджета

Подключение виджета

С виджетом можно взаимодействовать через глобальный объект: window.usedeskMessenger

Инициализируется (подключается к серверу, получает нужные данные) он автоматически.

Внимание. Если вы используете коробочную версию Юздеска на собственном сервере, URL методов у вас будет отличаться. Уточните URL для работы с API у поддержки — support@usedesk.ru.


Методы виджета

Заголовок
Описание
open() Просто открывает виджет
open('chat')

Позволяет открывать виджет на определённом экране(либо ссылке), переданном в параметрах:

  • chat
  • docs-search
  • callback
  • whatsapp
  • tg
  • viber
  • ok
  • vk
  • instagram
  • skype
  • facebook
close() Закрывает виджет
toggle()

Скрывает виджет с браузера пользователя либо показывает его в зависимости от значения переключения

Метод принимает параметры:

  • true
  • false
userIdentify()

Идентифицирует пользователя по переданным параметрам.

Метод принимает параметры:

  • name — имя клиента
  • email — почта клиента
  • phone — телефон клиента
  • token — подпись, однозначно идентифицирующая пользователя и его чат на любых устройствах для сохранения истории переписки. (генерирует наша система, ограничение не меньше 64 символов).
    • Чтобы получить токен чата для использования метода userIdentify() необходимо выполнить команду window.usedeskMessenger.getChatToken()
  • additional_fields — массив данных с параметрами id дополнительного поля и его значения, которые заполнятся при создании запроса. Поддерживает любой тип дополнительного поля: текст, флажок, раскрывающийся список, вложенный список.
    • Вложенный список передавайте отдельным массивом (см. пример запроса)
    Идентификационные данные передаются в Юздеск только в момент инициализации чата клиентом в рамках одной сессии браузера

Важно: если в Юздеске уже есть данные о клиенте, то метод useridentify не изменит его данные

getChatToken()

Отображает токен инициированного чата


Пример запроса
window.usedeskMessenger.userIdentify(
{
    name: 'Rad test',
    email: 'rad@test.test',
    phone: '79222222666',
    additional_fields:
    [
        {
            id: 3840, value: "текст"
        }, 
        {
            id: 3841, value: "флажок"
        },
        {
            id: 4704, value: "раскрывающийся список"
        },
        [
            {
                id: 4011, value: "Вложенный список 1"
            },
            {
                id: 4012, value: "Вложенный список 2"
            },
            {
                id: 4013, value: "Вложенный список 3"
            }
        ]
    ]
});
        


Идентифицировать клиента можно до инициации чата. Для этого следует воспользоваться колбэком (callback), срабатывает при загрузке виджета на странице — window.__widgetInitCallback:

Пример запроса
window.__widgetInitCallback = function (widget) {
    var expectedWidget = window.usedeskMessenger;
    expectedWidget.identify({ 
        email: 'bob@email.ru',
        phone: '+7911111111111',
        name: 'Bob Marly' 
        });
}
        

Если вы не используете идентификацию через window.__widgetInitCallback, то при использовании прямого вызова будьте уверены в том, что пользователь не успеет кликнуть и открыть чат до того, как вам станут известны его данные.

В таком случае рекомендуем скрывать виджет и показывать его только после того, как станут известны данные пользователя и вы вызовете соответствующий вызов.

Для выполнения кода после инициализации чата, то есть когда пользователь открыл чат в виджете, следует использовать коллбэк (callback) window.__usedeskWidgetInitedCallback. Пример для получения token:

Пример запроса
window.__usedeskWidgetInitedCallback = function() {            
  let token = window.usedeskMessenger.getChatToken();            
  console.log(token);        
}
        


Для того, чтобы выполнять действия, когда в свернутый инициализированный чат приходит новое сообщение от агента, можно использовать коллбэк window.__usedeskWidgetMessageInClosedWidgetCallback. Пример использования:

Пример запроса
window.__usedeskWidgetMessageInClosedWidgetCallback = () => console.log('Новое сообщение от агента в свернутом виджете');