Методы
Все методы вызываются одной функцией: Svyazio('имяМетода', аргументы). Её можно вызывать сразу после кода установки — до загрузки скрипта вызовы копятся в очереди и выполняются по порядку, когда виджет готов. Неизвестный метод или аргумент неверного типа молча игнорируются.
Окно чата и видимость
openChat
Svyazio('openChat', focus?: boolean)
Открывает окно чата. Если виджет был скрыт через hide или startHidden, сначала показывает его. Каждый вызов отправляет событие Chat initiated by visitor — даже если чат уже открыт.
focusbooleantrue— сразу поставить курсор в поле ввода. На телефоне при этом откроется клавиатура.
Svyazio('openChat', true);Каждый вызов отправляет в onAnalyticEvent событие Chat initiated by visitor.
expandWidget
Svyazio('expandWidget', focus?: boolean)
То же, что openChat, но на телефонах и планшетах ничего не делает. Название сохранено для совместимости с Chatra — «большой режим» окна включает setExpanded.
// Открыть чат только на компьютере
Svyazio('expandWidget');setExpanded
Svyazio('setExpanded', on?: boolean)
Большой режим окна — то же, что кнопка разворота в шапке чата. Если чат закрыт, сначала открывает его. Работает на экранах шире 600 px; на телефоне окно и так на весь экран. Метод не смотрит на настройку «Показывать кнопку разворота» в панели: работает, даже если кнопка скрыта.
onbooleantrueили без аргумента — развернуть,false— вернуть обычный размер.
Svyazio('setExpanded', true); // развернуть
Svyazio('setExpanded', false); // вернуть обычный размерБраузер запоминает выбор: при следующем открытии окно будет того же размера.
closeChat
Svyazio('closeChat')
Закрывает окно чата, кнопка остаётся на месте. Если окно уже закрыто, ничего не происходит.
Svyazio('closeChat');minimizeWidget
Svyazio('minimizeWidget')
Другое имя closeChat, оставленное для совместимости с Chatra.
Svyazio('minimizeWidget');hide
Svyazio('hide')
Полностью убирает виджет с экрана: закрывает окно и прячет кнопку. Соединение и история сохраняются — вернуть можно через show или openChat.
Svyazio('hide');show
Svyazio('show')
Возвращает кнопку после hide или startHidden. Окно чата не открывает — для этого openChat.
Svyazio('show');Внешний вид
setSkin
Svyazio('setSkin', skin: 'classic' | 'aurora' | 'soft')
Меняет оформление на лету. Неизвестное значение возвращает оформление, выбранное в панели.
Svyazio('setSkin', 'soft');setColors
Svyazio('setColors', colors: object)
Меняет цвета. Переданные поля добавляются к текущим, остальные не меняются. Значения не проверяются: неверный формат не отвергается, а молча ломает градиент кнопки — передавайте только #RRGGBB.
buttonBgstring- Фирменный цвет целиком: кнопка, шапка, сообщения посетителя. Только HEX
#RRGGBB— из него строятся полупрозрачные оттенки. buttonTextstring- Цвет иконки на кнопке. По умолчанию белый.
clientBubbleBgstring- Фон сообщений посетителя. Только в оформлении Classic.
agentBubbleBgstring- Фон сообщений оператора. Только в оформлении Classic.
Svyazio('setColors', {
buttonBg: '#E8590C',
buttonText: '#FFFFFF'
});В оформлениях Aurora и Soft сообщения посетителя всегда окрашены в фирменный цвет, а сообщения оператора — в цвет темы, поэтому clientBubbleBg и agentBubbleBg там не действуют.
resetColors
Svyazio('resetColors')
Возвращает цвета из конфигурации страницы (colors, accentColor), а если их нет — из панели.
Svyazio('resetColors');setButtonPosition
Svyazio('setButtonPosition', code: string)
Переставляет кнопку в одну из девяти позиций — коды в таблице позиций. Окно чата переезжает вместе с ней. Неизвестный код не вызывает ошибку: кнопка молча встаёт в правый нижний угол.
Svyazio('setButtonPosition', 'bl'); // слева снизуresetButtonPosition
Svyazio('resetButtonPosition')
Возвращает позицию из buttonPosition конфигурации или из панели.
Svyazio('resetButtonPosition');setButtonSize
Svyazio('setButtonSize', px: number)
Меняет диаметр кнопки. Ноль и отрицательные значения игнорируются. Меняется только кнопка: отступ окна чата от неё не пересчитывается, поэтому при заметно большем размере окно может наезжать на кнопку. Если размер нужен постоянно, задайте buttonSize в конфигурации — тогда отступ рассчитается верно.
Svyazio('setButtonSize', 72);setChatWidth
Svyazio('setChatWidth', px: number)
Меняет ширину окна чата. Значения меньше 280 поднимаются до 280.
// Только на широких экранах: на телефоне окно должно оставаться во весь экран
if (window.matchMedia('(min-width: 601px)').matches) {
Svyazio('setChatWidth', 480);
}setChatHeight
Svyazio('setChatHeight', px: number)
Меняет высоту окна чата. Значения меньше 300 поднимаются до 300. Та же оговорка про телефоны, что и у setChatWidth.
if (window.matchMedia('(min-width: 601px)').matches) {
Svyazio('setChatHeight', 520);
}setZIndex
Svyazio('setZIndex', value: number)
Меняет слой виджета, если его перекрывают элементы сайта. Кнопка получает указанное значение, окно чата — на единицу меньше.
Svyazio('setZIndex', 2147483000);Язык и надписи
setLanguage
Svyazio('setLanguage', code: string)
Переключает встроенные надписи виджета: подсказку в поле ввода, подписи кнопок и полей формы контактов, строку «Работает на Связио». Доступны ru, en, es, pt, de, fr, tr; другой код игнорируется.
Svyazio('setLanguage', 'en');Заголовок, приветствие и другие тексты из панели метод не переводит — это ваш контент. Их меняют параметры из группы «Тексты» или setLocale с объектом. Как язык выбирается при загрузке — в разделе «Язык и тексты».
setLocale
Svyazio('setLocale', codeOrTexts: string | object)
Строка работает как setLanguage. Объект заменяет отдельные надписи уже открытого виджета — список ключей в разделе «Какие надписи можно заменить».
Svyazio('setLocale', {
chat: {
input: { placeholder: 'Спросите про тарифы…' }
}
});Данные посетителя
Кратко о методах; что куда попадает, ограничения и готовые примеры — в разделе «Данные посетителя».
setIntegrationData
Svyazio('setIntegrationData', data: object)
Передаёт данные о посетителе в карточку, которую видит оператор. name, email и phone заполняют контакты, остальные ключи попадают в блок «Данные». Заменяет набор, переданный этой страницей раньше.
Svyazio('setIntegrationData', {
name: 'Анна Смирнова',
email: 'anna@example.ru',
phone: '+7 900 123-45-67',
plan: 'Бизнес',
userId: '10245'
});updateIntegrationData
Svyazio('updateIntegrationData', data: object)
Добавляет и меняет отдельные ключи, не трогая остальные. null убирает ключ из того, что страница отправляет дальше.
// Посетитель положил товар в корзину
Svyazio('updateIntegrationData', { cart: '3 товара на 12 400 ₽' });Уже сохранённое в карточке значение null не стирает — оператор продолжит его видеть. Удалить поле из карточки можно вручную в панели.
Отделы и страницы
setGroupId
Svyazio('setGroupId', id: string | null)
Меняет отдел в параметрах подключения виджета; null убирает его.
Svyazio('setGroupId', 'ID_ОТДЕЛА');pageView
Svyazio('pageView')
Сразу сообщает о просмотре страницы: адрес, заголовок и источник перехода. Из этого строится история страниц в карточке посетителя и проверяются условия триггеров по странице и источнику. Если соединение с сервером в этот момент не установлено, вызов теряется без ошибки.
Svyazio('pageView');Виджет сам проверяет адрес страницы раз в две секунды, поэтому переходы в одностраничном приложении он замечает и без этого метода. Вызывайте pageView, когда триггер должен сработать сразу или когда заголовок страницы обновляется уже после смены адреса. Подробнее — в разделе про SPA.
Перезапуск и удаление
restart
Svyazio('restart')
Перезапускает виджет: убирает его со страницы, заново читает window.SvyazioConfig (или SvyazioSetup) и подключается снова. Новые значения накладываются поверх прежних: убрать параметр, просто удалив его из объекта, не получится — задайте ему новое значение. Язык при перезапуске не перечитывается — меняйте его через setLanguage. Посетитель и его диалог остаются теми же — они хранятся в браузере.
window.SvyazioConfig = {
orgId: 'ВАШ_ORG_ID',
headerText: 'Поддержка клиентов',
groupId: 'ID_ОТДЕЛА_ПОДДЕРЖКИ'
};
Svyazio('restart');Присваивайте новый объект целиком, как в примере, а не меняйте поля старого. Язык при перезапуске не перечитывается — для него есть setLanguage.
kill
Svyazio('kill')
Полностью убирает виджет: разметку, соединение с сервером, обработчики и таймеры. Следующие вызовы Svyazio(…) ни на что не влияют. Вернуть виджет — restart или перезагрузка страницы.
// Например, посетитель отозвал согласие на обработку данных
Svyazio('kill');