Интеграция CRM

Руководство по добавлению профиля персоны из внешней системы (напр. CRM) в LiveTex.

Получение профиля персоны из системы клиента LiveTex

Возможны следующие сценарии получения профиля персоны со стороны клиента LiveTex:

  1. Атрибуты персоны формируются на серверной стороне клиента LiveTex и отдаются в HTML/JS.
  2. Веб приложение клиента (JS) запрашивает профиль персоны у своего API.

Добавление профиля персоны в LiveTex

Для передачи атрибутов персоны в LiveTex необходимо:

  1. Подписаться на событие Widget CONVERSATION_STARTED.
  2. Вызвать метод setAttributes в обработчике onConversationStarted.
function onConversationStarted(_) {
  const personId = '550e8400-e29b-41d4-a716-446655440000'
  const attributes = [
    {name: 'Имя', value: 'Arnold Shawrskopff'},
    {name: 'Телефон', value: '+7 999 999 99 99'}
  ]
  const hash = 'c37ac50bdd35a6e8835f057a04dad50822d126497b769a07ef80efc83b8715a8'

  const onSuccess = (_) => console.info('success')
  const onFailure = (e) => console.error(`failure: ${e.message}`)

  LiveTex.setAttributes(personId, attributes, hash, onSuccess, onFailure)
}

const descriptor = LiveTex.addEventListener(
  LiveTex.Event.CONVERSATION_STARTED,
  onConversationStarted
)

Для добавления атрибутов персоны клиент LiveTex должен передать следующие параметры:

visitor-flow

Хеш строка

Атрибуты персоны должны быть подписаны секретным ключём на стороне сервера клиента LiveTex.

Пример реализации алгоритма на JavaScript:

const crypto = require('crypto')

/**
 * @param {!Array.<{name: string, value: string}>} attributes
 * @param {!string} secret
 * @returns {string}
 */
function hash(attributes, secret) {
  const data = attributes
    .map(_ => _.name + _.value)
    .sort()
    .join('')
    .concat(secret)

  return crypto.createHash('sha256').update(data).digest('hex')
}

Атрибуты без подписи или с невалидной подписью не будут приняты подсистемой LiveTex.

Секретный ключ

Секретный ключ (UUID строка) для подписи атрибутов можно получить в личном кабинете клиента LiveTex.

Получение информации о персоне оператором LiveTex

ows-crm-attributes