Salesforce как операторский канал
Salesforce — облачная платформа, которая предлагает CRM-решения в области продаж, маркетинга, обслуживания.
Для использования Salesforce как операторский канал:
- Настройте операторское место.
- Создайте операторский канал.
- Подключите операторский канал к входящему.
- Настройте перевод на оператора в сценарии.
Настройка операторского места
Авторизуйтесь в личном кабинете платформы 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
.
Использование в сценарии
$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
}
]
}
]
}
});