Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Данный бот создаёт задание на обзвон с параметрами по выбору пользователя, которые он вводит в чате в телеграм.

Предупреждение
titleОбратите внимание

Перед созданием бота рекомендуем позаботиться о его безопасности. Поскольку боты в телеграме публичны, незащищённого бота для звонков может использовать кто угодно, а деньги за звонки будут списываться у вас.

Для обеспечения безопасности бота можно воспользоваться методами из этой статьи.


Для создания бота для старта звонков в телеграм на

м потребуется выполнить эти шаги:

1)Для начала следует создать блок "Вопрос" и после него блок "Результат", поставить в настройках стрелки из блока "Вопрос" тип выходных данных "Ветка по умолчанию" и поставить галочку "С

охранить ответ", а также дать переменной имя {название}

  • В блоке вопроса будет вопрос о том, какое название будет у задания на обзвон. 

2)В следующем блоке "Результат" нужно обозначить обязательные переменные:

Название переменнойЗначение переменной
task_nameНазвание задания на обзвон, которое вводится пользователем в начале переписки с ботом, в сценарии задаётся через переменную {название}
cidType

Определяемый номер. (АОН)

Принимает значения:

  • default (По умолчанию для транка)
  • gornum (Один номер)
  • pool (Группа номеров)
cidData

id сущности, выбранной в cidType. 

Актуально для gornum и pool

Если номер один, используется id АОНа, если группа номеров, то используется id группы

emailЭлектронная почта для входа в личный кабинет
passwordПароль для входа в личный кабинет
bot_idid сценария, который будет воспроизводиться в звонке, можно найти в личном кабинете в разделе "сценарии"

3)Далее идёт блок запроса к серверу для авторизации в личном кабинете со следующими параметрами:

Метод 

URL: https://iam.twin24.ai/api/v1/auth/login

Название переменной Значение переменной
email{email}
password{password}
  • Переменные {email} и {password} задаются в прошлом шаге в блоке "Результат"
  • Из блока запроса к серверу выходят две стрелки: "По умолчанию" и "Успешность запроса"
  • Стрелка по умолчанию идёт в блок информации с сообщением об ошибке
  • Стрелка с проверкой успешности запроса идёт в следующий блок "Результат", в котором фиксируется ответ сервера

В переменную token сохраняется значение с токеном для авторизации из ответа сервера

В следующем блоке "результат" создаётся новая переменная с названием token1 и значением Bearer {token} для приведения токена к нужному формату для следующего запроса


3)В следующем блоке арифметики используется BPL-выражение для создания здания на обзвон

  • Для использования BPL-выражений в блоке арифметики нужно выбрать тип "Произвольный тип" и в поле "BPL-выражение" ввести выражение, затем нажать "преобразовать BPL в AST"

Данное выражение нужно скопировать и вставить в блок арифметики в поле "BPL-выражение":

Блок кода
languagephp
themeDJango
titleBPL-выражение
$json = {"name":$task_name,"defaultExec":"robot","defaultExecData":$bot_id,"secondExec":"end","cidType":$cidType,"cidData":$cidData,"startType":"manual","cps":1.01,"taskComment":$taskComment,"additionalOptions":{"fullListMethod":"reject","fullListTime":0,"useTr":false,"allowCallTimeFrom":0,"allowCallTimeTo":86399,"recordCall":true,"recTrimLeft":0,"detectRobot":false},"redialStrategyOptions":{"redialStrategyEn":false,"busy":{"redial":false,"time":1,"count":1},"noAnswer":{"redial":false,"time":1,"count":1},"answerMash":{"redial":false,"time":1,"count":1},"congestion":{"redial":false,"time":1,"count":1},"answerNoList":{"redial":false,"time":1,"count":1}}}
 
$response = http.request("https://cis.twin24.ai/api/v1/telephony/autoCall", "POST", $json). header("Authorization", $token1).send()
 
$code = $response.statusCode

sys.sleep(2_000_000)


4)Далее идёт блок "условие", от которого отходит 2 ветки, ветка по умолчанию уходит в блок с информацией об ошибке, вторая ветка с условием:

В условии происходит проверка статус кода ответа от сервера {code} = 200, если запрос был успешным и сервер вернул код 200, то бот перейдёт по этой ветке


5)В следующем блоке используется BPL-выражение:

Данное выражение нужно скопировать и вставить:

Блок кода
languagephp
themeDJango
titleBPL-выражение
$id = $response.body.get('id').get('identity')

В переменную {id} добавляется id задания на обзвон в личном кабинете, этот айди используется в дальнейшем для добавления кандидатов и для старта задания


6)Далее идёт конструкция определения номера через блок "Вопрос" и ветки от него:

Первая ветка из блока "Вопрос" идёт ветка с сохранением ответа пользователя и типом выходных данных "Номер телефона"

Вторая ветка из блока "Вопрос" идёт в блок "Информация", в котором будет информация о том, что номер введён неверно, затем в блок "Информация", в котором будет просьба ввести номер корректно, а затем ветка уйдёт обратно в вопрос для определения номера


7)После определения номера, при помощи блока "Запрос к серверу" происходит добавление кандидата в задание на обзвон

Тело запроса:

Поле запросаЗначение поля
batch.0.autoCallId{id}
batch.0.phone.0{number}


8)После добавления кандидатов, в блоке "Информация" задаётся вопрос: "Хотите добавить ещё кандидатов?", после чего ставится блок "Вопрос", от которого идут следующие ветки:

Наименование веткиОписание ветки
Определение номераТип выходных данных: "Номер телефона", ответ пользователя сохраняется в переменную number
Согласие

Тип выходных данных: "Ключевые слова", согласие определяется при помощи определения ключевых слов, по типу "Да" и других на выбор, либо при помощи кнопки с вариантом ответа "Да".

При переходе бота по ветке, бот предлагает ввести ещё один номер телефона в блоке "Информация" и возвращается в вопрос для определения номера телефона

Отказ

Тип выходных данных: "Ключевые слова", согласие определяется при помощи определения ключевых слов, по типу "Нет" и других на выбор, либо при помощи кнопки с вариантом ответа "Нет"

После отказа бот переходит в блок "Информация" в котором задаётся вопрос, стоит ли запустить задание на обзвон

Ветка по умолчаниюВетка по умолчанию уходит в "Пустой блок", ветка из которого уходит в блок "Информация", в котором задаётся вопрос, стоит ли запустить задание на обзвон


Настройки ветки с согласием:

                                             

Настройки ветки с отказом: