Особенности сценария для канала Webim (External Bot API 2.0)
Перевод на оператора
Для перевода диалога на оператора используйте в сценарии следующую конструкцию $response.replies.push({type:"switch"})
:
$response.replies.push({
type:"switch",
destination: catchAll.operatorGroup, // группа операторов для направления клиентов
ignoreOffline: false, // выполнить перевод на оператора, проигнорировав отсутствие доступных операторов
});
При редактировании канала вы можете указать группу операторов и определенного оператора для направления клиентов при переводе, в этом случае указывать destination
в сценарии необязательно.
Завершение сессии
Для завершения сессии укажите в сценарии:
$response.endSession = true;
Например:
state: End
script:
$response.endSession = true;
Инфо рмация о клиенте
Получить информацию о текущем пользователе вы можете из поля $request.data.customData.visitor
, которое содержит объект вида:
"visitor":{
"id":"03e1c040d8214bfa8ccfbb053186a24a",
"fields":{
"email":"support@webim.ru",
"id":"asdf123",
"icq":"123123123",
"login":"somelogin",
"name":"asdf123",
"phone":"+7 (812) 385-53-37",
"profile_url":"https://vk.com/id000",
"site":"https://webim.ru"
}
Нет доступных операторов
Если при переводе на оператора или группу не окажется доступных операторов, то в сценарий придет event: noLivechatOperatorsOnline
.
Необходимо обрабатывать это событие в сценарии, например таким образом:
state: SwitchSpecial1
a: Передаю информацию оператору для оформления заявки
script:
services.switchWithMessage({
type:"switch",
firstMessage: $session.history,
ignoreOffline: true,
destination: "group",
});
state: NoOperatorsOnline
event: noLivechatOperatorsOnline
a: К сожалению, в данный момент все операторы отсутствуют, но мы получим ваше сообщение и ответим при первой возможности.