Перейти к основному содержимому

Особенности сценария для канала 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: К сожалению, в данный момент все операторы отсутствуют, но мы получим ваше сообщение и ответим при первой возможности.