Настройки контента и внешнего вида чата, которые не доступны через интерфейс, можно менять через JavaScript, добавляя параметры с вашими значениями в код Carrot quest (тот самый, который нужно установить на сайт изначально). Можно использовать разные настройки для отдельных страниц сайта.
Пример кода с изменениями:
1. Добавлен объект config с измененными параметрами;
2. Ваш API Key (значение будет уникальным для каждого сайта, найти его можно в разделе Настройки -> Разработчикам):
3. В метод carrotquest.connect добавлен объект config.
Разберем несколько интересных кейсов таких настроек:
мультиязычность чата;
разные цвета чата на разных страницах;
разное положение чата на разных страницах;
полный список параметров для чата.
Если ваш сайт поддерживает несколько языков, вы можете адаптировать под них ваш чат.
Поменяйте такие фразы как “Новое сообщение” в шапке или “Введите сообщение и нажмите Enter” в поле ввода на любой текст на любом языке.
Важно: текст автоответов можно задать только на одном языке.
Вот код со всеми изменениями чата на английский язык:
var config = { i18n: { thanks: "Thank you", dialogs_history: "Conversation history", new_message: "New message", enter_message: "Type your message and press Enter", dialogs_zerodata: "There are no conversations yet. We've never talked before", enter_email: "Enter your email", enter_phone: "Enter your phone number", leave_email: "You can leave your email and we\"ll continue this conversation through email:" }, settings: { 'messenger_collapsed_text': "Ask me...", 'messenger_offline_message': "No operators online now. Write your question and we will help you during the working time", 'messenger_welcome_message': "Ask question, we will answer. Write to us!", } } carrotquest.connect('xxxxx',config);
Сделайте так, чтобы чат не выбивался из общей палитры вашего сайта, даже если страницы отличаются по цвету. Для этого пропишите аргумент messenger_collapsed_color объекта settings.
var config = { settings: { 'messenger_collapsed_color': "178227" } } carrotquest.connect('xxxxx',config);
На разных страницах чат может располагаться в разных местах. Например, на главной странице чат будет в левом нижнем углу, а на остальных — в правом нижнем. За положение чата отвечает messenger_position объекта settings.
var config = { settings: { 'messenger_position': "right_bottom" } } carrotquest.connect('xxxxx',config);
Вы можете принудительно поставить постоянный статус онлайн или оффлайн на всех или только некоторых страницах сайта.
var config = { settings: { 'status_operators': "online" } } carrotquest.connect('xxxxx',config);
Мы привели неполный список возможных изменений в чате. Вы можете максимально кастомизировать его под свои нужды с помощью аргументов carrotquest.connect
В метод carrotquest.connect
можно добавить в качестве второго аргумента объект:
{ i18n: { thanks: 'Спасибо', dialogs_history: 'История диалогов', new_message: 'Новое сообщение', enter_message: 'Введите сообщение и нажмите Enter', dialogs_zerodata: 'Диалогов нет.<br>Вы еще с нами не общались', enter_email: 'Введите емейл', enter_phone: 'Введите телефон', page_title_new_message: 'Новое сообщение', }, settings: { 'messenger_collapsed_color': "178227" 'messenger_collapsed_text': "Спроси меня..." 'messenger_collection_lead_type': "email" 'messenger_hide_collapsed': false 'messenger_mode': "visible" 'messenger_name': “Кристина” 'messenger_offline_message': "Сейчас нет операторов готовых ответить, но вы можете оставить ваш вопрос, и мы поможем вам в рабочее время." 'messenger_position': "right_bottom" 'messenger_show_offline_message': false 'messenger_welcome_message' : "Задайте свой вопрос, и мы постараемся ответить. Напишите нам!", 'status_operators': "online" } }
Аргументы объекта i18n
thanks
– Фраза, появляющаяся после ввода своих контактов в чат
dialogs_history
– Заголовок раздела “История диалогов”
new_message
- Текст в кнопке, создающей новый диалог в разделе “История диалогов”
enter_message
– текст в поле для ввода сообщения
dialogs_zerodata
– нулевой экран, когда нет ни одного диалога
enter_email
– текст в поле для ввода емейла
enter_phone
– текст в поле для ввода телефона
page_title_new_message
– заголовок нового диалога
Аргументы объекта settings
messenger_collapsed_color
– цвет чата
messenger_collapsed_text
– Надпись в свернутом состоянии чата
messenger_collection_lead_type
– Какие данные спрашиваем у пользователя в оффлайн сообщении. Если система знает эти данные, то снова их спрашивать не будет, и в сообщение будет только текстовая часть
messenger_hide_collapsed
- Скрывать текстовую часть свернутого чата
messenger_mode
– режим работы чата visible (Видимый), has_dialogs (Только когда есть диалог), hidden (Скрытый)
messenger_name
- имя по умолчанию (показывается, когда никто из операторов ещё не ответил)
messenger_online_message
– Текст онлайн статуса чата
messenger_offline_message
- Текст оффлайн статуса чата
messenger_show_offline_message
- Показывать сообщение, что все операторы оффлайн
messenger_position
- Положение свернутого состояния чата left_top (Слева вверху), left_bottom (Слева внизу), right_top (Справа вверху), right_bottom (Справа внизу)
messenger_welcome_message
- Надпись в чате после его открытия
messenger_collapsed_text
- 'Спроси меня...',
disable_input_validation: true
- отключить валидацию телефона/емейлов
status_operators
– статус ваших операторов online, offline
messenger_collapsed_animations: {smile: true, winking_smile: true, vertical_funnel: true, horizontal_funnel: true}
– Включить-выключить отображение анимаций виджета чата. true – анимация включена, false – отключена. smile – "Смайл", winking_smile – "Подмигивающий смайл", vertical_funnel – "Вертикальная воронка", horizontal_funnel – "Горизонтальная воронка"
messenger_theme: "default"
– Цветовая схема чата. "default" – светлая схема, "dark" – темная схема
messenger_indent: {vertical: 25, horizontal: 25}
– Отступ виджета чата от краев окна сайта
messenger_mobile_indent: {vertical: 25, horizontal: 25}
– Отступ мобильного виджета чата от краев окна сайта
messenger_pattern: "pat-6"
– Фон чата из раздела "Настройки" – "Чат". Первый фон – "default", начиная со второго фона – "pat-1" по "pat-11"
messenger_show_kb_link_in_welcome_message: false
– Ссылка на вашу Базу знаний в приветственном сообщении в чате. true – ссылка подставляется, false – ссылка не подставляется
messenger_icon_facebook_text: "carrotquest"
– Ссылка в иконке интеграции с Facebook messenger_icon_telegram_text: "carrotquest"
– Ссылка в иконке интеграции с Telegram
messenger_icon_viber_text: "carrotquest"
– Ссылка в иконке интеграции с Viber
messenger_icon_vk_text: "carrotquest"
– Ссылка в иконке интеграции с Вконтакте
С помощью нашего открытого API можно автоматизировать назначение диалогов на операторов. Для этого вам необходимо написать веб-сервис, который реализует логику назначения операторов.
Написанный веб-сервис необходимо вызывать с помощью Webhook. О том, как вызывать Webhook в Carrot quest, читайте в этой статье. В качестве триггера для отправки Webhook выберите "Начал диалог в чате".
Тогда как только пользователь начнет диалог в чате, отправится webhook, содержащий все свойства пользователя и страницу, на которой он находится.
Пример:
1) Пример назначение оператора Василия с id 24574 на все поступающие диалоги (php):
// Токен вашего приложения https://carrotquest.io/developers/webapi/#_1 $token = 'xxx'; //Достаем из запроса объект event https://carrotquest.io/developers/objects/event/ $event = json_decode($_POST['event']); // Из свойства события достаем conversationId $conversationId = $event->{'props'}->{'$conversation_id'}; // id оператора которому мы хотим назначить диалог. Узнать id оператора можно при редактировании администраторов в разделе: Администраторы $operator = 24574; $url = 'https://api.carrotquest.io/v1/conversations/'.$conversationId.'/assign?auth_token='.$token; // Делаем post запрос на назначение оператора на диалог в Carrot https://carrotquest.io/developers/endpoints/conversations/assign/ $result = file_get_contents($url, false, stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/json', 'content' => '{"admin": "'.$operator.'"}' ) )));
2) Пример назначение оператора Василия с id 24574 на все диалоги со страниц содержащих в адресе “ /portfolio/”:
// Токен вашего приложения https://carrotquest.io/developers/webapi/#_1 $token = 'app.7.4b3448df1b622483e88f53eec35cf9aca7d6ce0973ea2209'; // Достаем из запроса объект event https://carrotquest.io/developers/objects/event/ $event = json_decode($_POST['event']); // Достаем из запроса объект user https://carrotquest.io/developers/objects/user/ $user = json_decode($_POST['user']); // Из свойства события достаем conversationId $conversationId = $event->{'props'}->{'$conversation_id'}; // id оператора которому мы хотим назначить диалог. Узнать id оператора можно при редактировании администраторов в разделе: Администраторы $operator = 24574; $url = 'https://api.carrotquest.io/v1/conversations/'.$conversationId.'/assign?auth_token='.$token; // Делаем post запрос на назначение оператора на диалог в Carrot https://carrotquest.io/developers/endpoints/conversations/assign/ if (stristr($user->{'presence_details'}->{'url'},'/portfolio/')) { $result = file_get_contents($url, false, stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/json', 'content' => '{"admin": "'.$operator.'"}' ) ))); }
В настройках чата вы можете задать положение чата в одном из четырёх углов экрана:
Для этого откройте раздел Настройки - Чат и выберите положение свёрнутого состояния чата.
Если вы хотите сдвинуть чат относительно выбранного положения, вы можете воспользоваться CSS. Код вставляется в разделе Настройки -> Сбор данных о посетителях -> Настроить JavaSript код.
Далее с помощью скрипта задаёте расстояние (в пикселях), на которое надо сдвинуть иконку чата.
var css = '#carrotquest-messenger-collapsed-container{margin: 0px 0px 120px 0px!important;}', head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); style.type = 'text/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); } head.appendChild(style); //Первое число (0px) — это отступ сверху //Второе число (0px) — это отступ справа //Третье число (120px) — это отступ снизу //Четвертое число (0px) — это отступ слева