Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 26 Следующий »

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

Обратите внимание

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Тип авторизации: Отсутствует

Метод: POST

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

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

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

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


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

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

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

BPL-выражение
$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-выражение:

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

BPL-выражение
$id = $response.body.get('id').get('identity')

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


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

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

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


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

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

Поле запросаЗначение поляОписание поля
batch.0.autoCallId{id}Идентификтор задания на обзвон
batch.0.phone.0{number}Номер кандидата на обзвон


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

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

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

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

Отказ

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

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

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


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

                                     


         

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

                                     



9) Запуск задания на обзвон.

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

  • После этого создаётся блок "Вопрос", ветки от которого по ключевым словам, либо по кнопкам определяют согласие и отказ

  • Ветка согласия прикрепляется к блоку арифметики, в котором используется BPL-выражение для паузы бота на одну секунду, это необходимо для корректного создания задания

Можно скопировать и использовать данное выражение:

BPL-выражение
sys.sleep(1_000_000)
  • После прошлого блока арифметики создаётся блок "Запрос к серверу" с данными настройками:

Тип авторизации: Bearer

Значение ключа: {token}

Метод: POST

URL: https://cis.twin24.ai/api/v1/telephony/autoCall/{id}/play


После этого шага бот начинает задание на обзвон

  • Нет меток