JAICP

Salesforce как операторский канал


Salesforce — облачная платформа, которая предлагает CRM-решения в области продаж, маркетинга, обслуживания.

Для использования Salesforce как операторский канал:

  1. Настройте операторское место.
  2. Создайте операторский канал.
  3. Подключите операторский канал к входящему.
  4. Настройте перевод на оператора в сценарии.

Настройка операторского места

Авторизуйтесь в личном кабинете платформы Salesforce как администратор аккаунта. Перейдите на вкладку Настройки. Для подключения операторского канала вам потребуются следующие данные.

API Endpoint

Перейдите Setup > Feature Settings > Service > Chat (formerly Live Agent) > Chat Settings и скопируйте поле Chat API Endpoint. Например:

https://d.la1-c1-cdg.salesforceliveagent.com/chat

Organization ID

Organization ID — идентификатор организации в Salesforce.

Значение доступно из раздела Settings > Company settings > Company Information или по ссылке:

https://<адрес аккаунта>/lightning/setup/CompanyProfileInfo/home

Deployment ID

Deployment ID — идентификатор развертывания чата, который необходим для отправки отчета.

Перейдите Setup > Settings > Deployment ID. Значение доступно в настройках Service Setup > Channels > Chat > Deployments > Edit. Скопируйте значение на странице редактирования в блоке Deployment Code. Например:

liveagent.init(
  'https://d.la1-c1-cdg.salesforceliveagent.com/chat',
  '573B00000005KXz',  // Отсюда скопируйте Deployment ID
  '00DB00000003Rxz'  // Не копируйте это значение — это Organization ID
);

Button ID

Button ID — идентификатор кнопки, которая открывает чат с оператором.

Перейдите Service Setup > Channels > Chat > Chat Buttons & Invitations > Edit. Скопируйте значение на странице редактирования в блоке Chat Button Code. Например:

<a id="liveagent_button_online_5733X000000TdOA">
  <!-- Здесь необходимо скопировать значение 5733X000000TdOA -->
</a>

Подробнее о настройке операторского места

Создание операторского канала

Перейдите в платформу, нажмите на панели управления Каналы > Операторы > Создать канал. В разделе Операторские каналы выберите Salesforce.

Заполните поля:

  • Название — укажите название для канала или оставьте по умолчанию.
  • Укажите ранее скопированные значения API Endpoint, Organization ID, Deployment ID, Button ID.

Нажмите Создать.

Подключение канала

Выберите уже созданный входящий канал для подключения операторского. Перейдите в окно редактирования входящего канала. В поле Оператор выберите операторский канал из списка и нажмите Сохранить.

Перевод на оператора

Для перевода диалога на оператора в сценарии необходимо использовать $response.replies.push с типом switch.

Указание на группу операторов

По умолчанию перевод на оператора производится на ту группу операторов, чей Button ID указан при создании канала Salesforce.

Если вы хотите переопределить группу операторов, на которую будет произведен перевод, в ответе switch добавьте дополнительный параметр destination, в значении которого укажите Button ID нужной группы операторов.

Отправка дополнительных данных

Для отправки дополнительных данных при переводе на оператора в сценарии необходимо добавить параметр customData в ответе switch.

Параметр customData представляет собой JSON, в котором можно передать сущности prechatDetails и prechatEntities в формате запроса ChasitorInit.

Подробнее о примере запроса ChasitorInit

Использование в сценарии

$response.replies.push({
    type: "switch",
    closeChatPhrases: ["/closeLiveChat", "Закрыть диалог"],
    firstMessage: $client.history,
    lastMessage: "Мы ждем вас снова!",
    destination: "5733X000000TdOA",
    customData: {
      "prechatDetails": [
        {
          "label": "Email",
          "value": $client.email,
          "transcriptFields": [
            "Email__c"
          ],
          "displayToAgent": true
        },
        {
          "label": "ResponseTypeList",
          "value": $client.channel,
          "entityMaps": [
            {
              "entityName": "Case",
              "fieldName": "ResponseTypeList__c"
            }
          ],
          "transcriptFields": [
            "ResponseTypeList__c"
          ],
          "displayToAgent": true
        }
      ],
      "prechatEntities": [
        {
          "entityName": "Case",
          "showOnCreate": true,
          "saveToTranscript": "Case",
          "entityFieldsMaps": [
            {
              "fieldName": "Status",
              "label": "Status",
              "doFind": false,
              "isExactMatch": false,
              "doCreate": true
            },
            {
              "fieldName": "Origin",
              "label": "Origin",
              "doFind": false,
              "isExactMatch": false,
              "doCreate": true
            },
            {
              "fieldName": "ResponseTypeList__c",
              "label": "ResponseTypeList",
              "doFind": false,
              "isExactMatch": false,
              "doCreate": true
            }
          ]
        }
      ]
    }
});