← Назад к Unicrafter

После загрузки скрипта Jivo становится доступен глобальный объект. Вызывайте методы внутри — к этому моменту виджет гарантированно готов. (jivo_api → jivo_onLoadCallback())

jivo_api.open(params) / jivo_api.close()

Открывает чат в указанном режиме или закрывает/сворачивает. Параметр start: 'call', 'menu', 'chat'.

Попробуйте прямо сейчас
<button onclick="jivo_api.open()">Написать нам</button>
<button onclick="jivo_api.open({ start: 'call' })">Заказать звонок</button>

jivo_api.chatMode()

Возвращает текущий режим: (операторы доступны) или 'online' / 'offline'.

Попробуйте прямо сейчас
function jivo_onLoadCallback() {
  if (jivo_api.chatMode() === 'online') {
    document.getElementById('chat-btn').style.display = 'block';
  }
}

jivo_api.setContactInfo(obj)

Передаёт данные о клиенте в виджет — оператор видит их в карточке посетителя.

Попробуйте прямо сейчас
jivo_api.setContactInfo({
  name:  'Иван Петров',
  email: 'ivan@example.com',
  phone: '+79001234567'
});

jivo_api.getContactInfo()

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

Попробуйте прямо сейчас
var info = jivo_api.getContactInfo();
// { name: '...', email: '...', phone: '...' }

jivo_api.setCustomData(arr)

Передаёт произвольные данные о посетителе — оператор видит их в карточке клиента.

Попробуйте прямо сейчас
jivo_api.setCustomData([
  { title: 'Тариф',      content: 'Pro'   },
  { title: 'ID клиента', content: '12345' }
]);

jivo_api.setClientAttributes(obj)

Устанавливает произвольные атрибуты посетителя в виде пар ключ-значение. Лимит: 10 вызовов в час.

Попробуйте прямо сейчас
jivo_api.setClientAttributes({ plan: 'enterprise', region: 'ru' });

jivo_api.getUnreadMessagesCount()

Возвращает количество непрочитанных сообщений от оператора.

Попробуйте прямо сейчас
var count = jivo_api.getUnreadMessagesCount();
document.getElementById('badge').textContent = count;

jivo_api.getVisitorNumber(callback)

Асинхронно возвращает уникальный номер посетителя.

Попробуйте прямо сейчас
jivo_api.getVisitorNumber(function(number) {
  console.log('Номер посетителя:', number);
});

jivo_api.getUtm()

Возвращает UTM-параметры текущей сессии посетителя.

Попробуйте прямо сейчас
var utm = jivo_api.getUtm();
// { utm_source: '...', utm_medium: '...', utm_campaign: '...' }

jivo_api.isCallbackEnabled(callback)

Асинхронно проверяет, доступна ли функция обратного звонка.

Попробуйте прямо сейчас
jivo_api.isCallbackEnabled(function(enabled) {
  if (enabled) showCallButton();
});

jivo_api.showProactiveInvitation(text, dept_id)

Показывает активное приглашение с заданным текстом. Опционально — направляет в конкретный отдел.

Попробуйте прямо сейчас
jivo_api.showProactiveInvitation('Привет! Могу помочь?');

jivo_api.setWidgetColor(color, color2)

Меняет цвет виджета (или градиент, если задан второй цвет). Цвета в формате HEX.

Попробуйте прямо сейчас
jivo_api.setWidgetColor('#29B05D');
jivo_api.setWidgetColor('#29B05D', '#1a8a45'); // градиент

jivo_api.startCall(phone)

Инициирует обратный звонок на указанный номер телефона.

Попробуйте прямо сейчас
jivo_api.startCall('+79001234567');

jivo_api.sendPageTitle(title, fromApi, url)

Отправляет оператору обновлённый заголовок страницы. Незаменимо для SPA, где URL меняется без перезагрузки.

Попробуйте прямо сейчас
// При навигации в SPA:
router.afterEach(function(to) {
  jivo_api.sendPageTitle(to.meta.title, true, to.fullPath);
});

jivo_api.sendOfflineMessage(obj)

Отправляет офлайн-сообщение без открытия виджета — удобно для интеграции с собственной формой обратной связи.

Попробуйте прямо сейчас
jivo_api.sendOfflineMessage({
  name:    'Иван Петров',
  email:   'ivan@example.com',
  message: 'Хочу узнать о тарифах'
});

jivo_api.clearHistory()

Удаляет историю переписки и локальные данные виджета (cookies, localStorage). Полезно при выходе пользователя из аккаунта.

Попробуйте прямо сейчас
// При выходе пользователя:
function logout() {
  jivo_api.clearHistory();
  // остальная логика выхода
}

jivo_destroy() / jivo_init()

Удаляет виджет со страницы или возвращает его. Полезно для страниц, где чат не нужен (например, страница оплаты).

Попробуйте прямо сейчас
// Скрыть виджет на странице оплаты:
if (location.pathname === '/checkout') jivo_destroy();

// Вернуть после оплаты:
jivo_init();

Кастомный ярлык виджета

На этой странице стандартная кнопка Jivo заменена на собственный ярлык — кнопка справа по центру страницы.

Стандартная кнопка скрывается через CSS, вместо неё в jivo_onLoadCallback() создаётся произвольный HTML-элемент, который вызывает jivo_api.open() по клику.

#jivo_chat_widget { display: none; }

#jivo_custom_widget {
  position: fixed;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  width: 120px;
  height: 120px;
  background-image: url('custom_button.png');
  background-size: contain;
  cursor: pointer;
  z-index: 300000;
}
function jivo_onLoadCallback() {
  var w = document.createElement('div');
  w.id = 'jivo_custom_widget';
  w.onclick = function() { jivo_api.open(); };
  document.body.appendChild(w);
}
function jivo_onOpen()  { document.getElementById('jivo_custom_widget').style.display = 'none'; }
function jivo_onClose() { document.getElementById('jivo_custom_widget').style.display = 'block'; }
↑