Интеграция с CRM
Описание
iQChannels содержит ряд инструментов, которые позволяют производить тесную интеграцию с CRM и другими учетными системами. Инструменты платформы позволяют выстраивать как одностороннюю, так и двустороннюю интеграцию.
Интеграция с CRM может быть выполнена в части:
-
Построение единого окна — встраивание виджета в CRM для общения с клиентами в режиме единого окна из CRM.
-
Базового обмена данными — идентификация, авторизация, получение карточки и продуктов клиента, получение продуктовой витрины и получение событий клиента (открытие обращений, отправка сообщений и прочее).
-
Полной интеграции — реализация собственного окна чата в CRM на основе внутреннего API платформы.

На схеме показана омниканальная работа платформы со всеми цифровыми клиентскими каналами в режиме единого окна в CRM. Кроме встраивания виджета, подключено несколько интеграционных API, отвечающих за:
- идентификацию клиента
- авторизацию и получение карточки клиента
- получение продуктов клиента
- получение продуктовой витрины
- отправка событий клиента (открытие обращений, отправка сообщений и прочее)
Авторизация клиентов в CRM / ДБО
Чтобы в iQChannels операторы могли работать с авторизованными клиентами и видеть их данные, необходимо подключить авторизацию клиентов в ДБО или CRM.
Без идентификации — авторизованные каналы
Если в качестве канала обращения используется авторизованная зона мобильного или веб-приложения, то идентификация клиентов и получение карточки из CRM, ДБО или любой другой системы реализуется с помощью специального протокола авторизации клиентов Auth API. Авторизация клиентов происходит автоматически при наличии токена, полученного из родительского приложения, в которое встроен чат (мобильное приложение или веб-приложение).
Ознакомиться с протоколом авторизации можно в разделе Протокол авторизации клиентов.
С идентификацией — неавторизованные каналы
Если в качестве канала обращения используется неавторизованная зона приложения, сайта или социальная сеть, то перед авторизацией клиента необходимо выполнить его идентификацию. Для идентификации клиентов в платформе iQChannels реализован такой инструмент, как Search client API, который позволяет идентифицировать клиента и получить его уникальный ключ. С данным ключом выполняется авторизация клиента с получением его карточки из внешней системы.
Для выполнения процесса идентификации платформе iQChannels потребуется первичный идентификатор (номер телефона, идентификатор в социальной сети, имя аккаунта, email и прочее), который будет получен из карточки клиента iQChannels. А если первичного идентификатора не окажется в карточке, то система автоматически запросит данную информацию у клиента (либо идентификатор, либо все данные по форме запроса персональных данных). Для разных каналов предусмотрены разные идентификаторы, а для некоторых каналов есть возможность настройки типа идентификатора.

Подробнее о протоколе идентификации в разделе Search client API.
Встраивание окна чата iQChannels в CRM
Для построения режима единого окна, в iQChannels реализован готовый виджет АРМ оператора, который можно встроить в CRM в различных вариантах. При необходимости можно использовать несколько вариантов в зависимости от контекста приложения.
Вариант №1 — Приложение чата в одном из разделов CRM
Данный вариант подразумевает минимальную связанность двух продуктов: при открытии чата CRM нет необходимости знать об открытых обращениях клиентов.

Окно чата iQChannels встраивается как мини-приложение, и при его инициализации вся работа происходит в нем. При этом из окна рабочего места оператора iQChannels остается возможность открыть карточку клиента в CRM. В этом случае CRM получит событие open_client и сможет загрузить карточку клиента.

Пример встраивания чата iQChannels в CRM:
...
<!-- Код iFrame для встраивания на страницу -->
<iframe src="https://iqchannels.iqstore.ru/" width="100%" height="700" id="iQChannels"></iframe>
...
<!-- скрипт для работы с чатом -->
<script>
function openDialog(){
var myIframe = document.getElementById("iQChannels");
if (myIframe){
myIframe.contentWindow.postMessage({
"Type": "write_to_client",
"WriteToClient": {
"Search": "Строка для поиска клиента по имени, ИНН, ID в ДБО или CRM"
}
}, '*');
}
}
</script>
...
<button onclick="openDialog()">Открыть поиск</button>
...
Подробнее о встраивании и о возможных событиях для CRM в разделе PostMessage API
Вариант №2 — Плавающее приложение чата в приложении CRM
Данный вариант встраивания отличается от варианта №1 тем, что iframe, в который встраивается чат, является плавающим окном и может быть свернут или не закрывается при переходах между разделами CRM.

Реализация плавающих свойств iframe и механизма сворачивания и изменения размеров чата лежит на стороне CRM.
В данном варианте CRM подписывается на дополнительные события iQChannels, для реализации автоматического раскрытия и закрытия карточки клиента в родительском окне CRM при открытии / закрытии обращения в чате (open_client_from_ticket, close_client_from_ticket).
Подробнее о встраивании и о возможных событиях для CRM в разделе PostMessage API
Вариант №3 — Чат-диалог в карточке клиента CRM
В данном варианте подразумевается, что чат можно будет открыть непосредственно из карточки клиента в CRM. В этом случае iQChannels должен знать идентификаторы клиентов в CRM, либо CRM система должна знать идентификаторы клиентов в iQChannels. Для этого необходимо не только встроить виджет чата, но и подключить соответствующее API (см. раздел Передача событий и других активностей). Все API для организации более тесной интеграции описаны в следующих разделах.
Диалог открывается сообщением open_iframe_ticket по одному из идентификаторов. Применяется приоритет: сначала TicketId, при его отсутствии — ClientId, при его отсутствии — CrmClientId (по последнему обращению клиента; если обращений нет, создается новое).
В данном режиме при инициализации чата iQChannels сразу будет открываться окно диалога с клиентом.
или 
Пример встраивания чата iQChannels в CRM
...
<!-- Код iFrame для встраивания на страницу -->
<iframe src="https://iqchannels.iqstore.ru/" width="100%" height="700" id="iQChannels"></iframe>
...
<!-- скрипт для работы с чатом -->
<script>
// с данным режимом сразу будет открываться окно диалога с клиентом при переходе на страницу.
window.onload = function () {
openChat();
}
function openChat () { // Если требуется открыть диалог с клиентом
const clientId = 123; // id клиента в iQChannels (можно опустить, если передается TicketId или CrmClientId)
const ticketId = 456; // id обращения в iQChannels (при наличии)
const crmClientId = "00234"; // id клиента в CRM (если известен)
const myIframe = document.getElementById('iQChannels');
if (myIframe) {
myIframe.contentWindow.postMessage({
'Type': 'open_iframe_ticket',
'OpenTicket': {
'ClientId': clientId,
'TicketId': ticketId,
'CrmClientId': crmClientId
}
}, '*');
}
}
</script>
...
Подробнее в разделе PostMessage API
Передача событий и других активностей
В платформе iQChannels реализован такой инструмент, как Webhooks API, который позволяет внешним, по отношению к iQChannels, системам подписываться на события чата iQChannels. Webhooks API позволяет CRM, ДБО и другим внешним системам получать вызовы со стороны iQChannels на события в публичном API и быть в курсе о наличии открытых обращений, истории взаимодействия с клиентом, используемых каналах связи, сегментах обслуживания, о принявшем обращение операторе и другой информации, связанной с обслуживанием клиента.
Подробнее в разделе Webhooks API.
Получение списка персональных менеджеров из CRM
iQChannels позволяет выделить и закрепить за клиентом персонального менеджера, который будет его обслуживать. Назначение персональных менеджеров можно выполнять как в ручном режиме, так и в автоматизированном режиме, получая данные из внешней системы CRM или ДБО. В автоматизированном режиме синхронизации iQChannels периодически запрашивает список персональных менеджеров и их клиентов и обновляет соответствующие связи. Параметры синхронизации настраиваются в разделе «Внешние системы» в сегменте.
Подробнее в разделе PersMgr Sync API.
Получение данных из внешних систем в сценарии чат-бота
В случаях когда чат-боту iQBot необходимо получить данные из внешней системы, в комплексе инструментов iQBot есть возможность конструировать интеграции с внешними системами. Такие интеграции позволят боту получать необходимую информацию из внешних источников онлайн в рамках выполняемого сценария обслуживания клиента.
Для предоставления документации по iQBot обратитесь в службу технической поддержки iQStore.
Построение сложных интеграций внешних систем с чатом
iQChannels построена на базе открытого API, который позволяет решать самые сложные задачи интеграции нескольких информационных систем.
Подробнее в разделе Internal API