Про API
Сopied

Для роботи Вам знадобиться ключ (токен) для доступу до API.
Ключ дозволяє ідентифікувати Ваш проект і отримувати доступ до нього з максимальними привілеями без попередньої авторизації щоразу.
На сторінці https://my.unitalk.cloud/new/index.html#api необхідно створити ключ

download

Цей ключ необхідно вказувати під час кожного запиту в header.
Тобто «Authorization»:{Ваш ключ}

Будь-який метод описаного API може повернути помилку:

{"status":"Error","message":"Internal error"}

Про такі помилки повідомляйте, будь ласка, у технічну підтримку.
Усі шляхи всіх методів, описаних у цій документації, мають шляхи відносно https://cstat.nextel.com.ua:8443/tracking/api
У Postman це вказується тут:

image

Також можна відправляти хедер Authorization у форматі Bearer 9F8Etrbb37Fq

Автообзвон
Сopied

Загальні відомості
Сopied

Всі дії з автообзвон виконуються тільки одним методом:
POST /autodial/action
У тілі запиту завжди має бути JSON із обов’язковим полем дії, яке Ви хочете виконати.
Мінімальний JSON виглядає так:

{
  "action": "GET_WITH_DATA"
}

Перш ніж продовжувати вивчати цю інструкцію, а вона на перший погляд може здатися складною, ми рекомендуємо Вам налаштувати один або більше автодзвінків в особистому кабінеті Nextel, після чого виконати запит із JSON у прикладі вище.

image-1

Якщо Ви вже бачите відповідь, яку щойно отримали, пропонуємо ознайомитися з чотирма ключовими полями, а потім нижче, ми пройдемося детальніше за структурою.

action:

GET_WITH_DATA отримання списку всіх дзвінків з повними даними (у тому числі даними для створення та редагування дзвінків)
ADD додавання нового автодзвінка або гарантованого додзвону
UPDATE оновлення обдзвону.
REMOVE видалення обдзвону.
REFRESH продзвонити повторно номери із зазначеними статусами
CANCEL скасування обдзвону. Недоступний для FINISHEDі CANCELLEDобзвону.
PAUSE пауза. У разі успіху статус обдзвону зміниться на PAUSED. Недоступний для FINISHEDі CANCELEDобзвону.
UNPAUSE зняття з паузи. Недоступний для FINISHEDі CANCELEDобдзвону.
ADD_CALLS додавання номерів. Після вдалого додавання дзвінків у завершений дзвінок (FINISHED) змінить статус на WAITINGабо IN_PROGRESS.
GET_CALLS отримання номерів обдзвону з поточним статусом та іншими даними
GET_CALL отримання номера обдзвону з поточним статусом та іншими даними
REMOVE_CALLS видалення номерів з дзвінка або за вказаними статусами або за вказаними номерами
REMOVE_ALL_CALLS видалення всіх номерів з дзвінка

state:

NEW номери не додані
IN_PROGRESS в процесі обдзвонення в даний момент
WAITING в очікуванні початку обдзвону
PAUSED на паузі
CANCELED скасовано, але ще не встиг завершитися (у цьому стані обдзвон буде не довго – поки не завершаться всі поточні дзвінки)
FINISHED завершено

callState:

id статусу Назва статусу Доступний у полі repeatCallStates (Налаштування “Повторний дзвінок”) Доступний для методу REFRESH Наявність дзвінків із цим статусом свідчить про можливу наявність проблем у налаштуваннях дзвінка або телефонії.
NEW Не оброблено
DIALING У процесі обдзвону
ANSWER Була відповідь абонентом та оператором +
ANSW_RJCT Абонент відповів та не було дзвінка операторам + +
NOANSWER Без відповіді + +
BUSY Зайнято або скинуто + +
FAIL Збій з’єднання + +
TALKING Автовідповідач: абонент розмовляє + +
UNREACHABLE Автовідповідач: абонент недоступний + +
NOT_EXIST Автовідповідач: номер не існує + +
CLIENT_CALLED Абонент зателефонував сам або був вихідний дзвінок +
CANCEL Скасовано +
ANSW_NF_OP Абонент відповів але небуло вільних операторів + + +
ANSW_OP_NA Абонент відповів та оператори не прийняли дзвінок + + +
BUSYOUT Недостатньо ліній + + +
AUDIO_ERR Помилка аудіо + +
WRONG_DIR Неправильний напрямок + +
AUTOCANCEL Скасовано автоматично + +

algorithm:

FIXED_A Автообзвон: за кількістю потоків
FIXED_G Гарантований додзвон: за кількістю потоків
FREE_G Гарантований додзвон: за вільними операторами
SMART_G Гарантований додзвон: розумний підбір

triggerActionEvent (Події обдзвону):

AUTODIAL_REPEAT_ATTEMPTS_ENDED Дзвінок завершено неуспішно і закінчилися спроби повторного дзвінка (Налаштування «Повторний дзвінок»)
AUTODIAL_NOANSWER Дзвінок завершено — немає відповіді
AUTODIAL_USER_PAUSED Користувач поставлено на паузу обдзвоном. Подія доступна лише для гарантованого виклику!
AUTODIAL_ANSW_RJCT Дзвінок завершено — була відповідь та скинуто абонентом
AUTODIAL_FINISH Обдзвон завершено
AUTODIAL_CANCEL Обдзвон скасовано
AUTODIAL_BUSYOUT Дзвінок завершено – недостатньо ліній
AUTODIAL_WRONG_DIR Дзвінок завершено – неправильний напрямок
AUTODIAL_ANSWER Дзвінок завершено — була відповідь
AUTODIAL_ANSW_NF_OP Дзвінок завершено — не було вільних операторів
AUTODIAL_ANSW_OP_NA Дзвінок завершено – оператори не прийняли дзвінок
AUTODIAL_AUDIO_ERR Дзвінок завершено – помилка аудіо
AUTODIAL_AUTOCANCEL Обдзвон скасовано автоматично
AUTODIAL_CLIENT_CALLED Абонент зателефонував сам
AUTODIAL_BUSY Дзвінок завершено — зайнято або скинуто
AUTODIAL_TALKING Дзвінок завершено – абонент розмовляє
AUTODIAL_UNREACHABLE Дзвінок завершено — поза зоною або вимкнено
AUTODIAL_NOT_EXIST Дзвінок завершено — номер не існує
AUTODIAL_CALL_FAIL Дзвінок завершено – збій з’єднання

Кожна дія може повернути певну помилку. Помилки виглядають так:

{"status":"Error","message":"Текст ошибки"}

Ми описуватимемо тільки те, що може лежати в полі message.
Наприклад, якщо не вказано дію — ви отримаєте messageAction is null

Дії
Сopied

GET_WITH_DATA
Сopied

{ 
  "action": "GET_WITH_DATA" 
}

Відповідь у разі успіху:
Так, ми знаємо що в JSON не може бути коментарів, але впевнені, що так зрозуміти буде простіше 🙂


{ 
    "tasks": [ //масив всіх обдзвонів, з усіма налаштуваннями 
        { 
            "id": 1125, //id 
            "name": "Обзвон окна", //назва 
            "type": "GUARANTEED_DIAL", //тип обдзвону (гарантований додзвон) може бути AUTODIAL (автообзвон)
            "state": "FINISHED", //поточний стан обдзвону 
            "statistics": {
                "totalCount": 10, //всього номерів в обдзвоні
                "doneCount": 6, //оброблено номерів
                "repeatCount": 2 //повторних дзвінків
                "statesCount": { //кількість номерів за кожним статусом
                    "NEW": 3, //не оброблено
                    "DIALING": 1, //у процесі обдзвону
                    "ANSWER": 3, //було відповіді
                    "NOANSWER": 2, //не було відповіді
                    "BUSY": 1 //зайнято 
                }  
            },
            "finishedDate": "2020-04-21", //дата коли дзвінок завершився (не null тільки якщо стан дзвінка FINISHED) 
            "threadCount": 1, // "Потоків" – кількість паралельних дзвінків. Є у FIXED_A та FIXED_G 
            "delay": 2, // "Затримка" - Пауза після відтворення аудіозапису та перед запуском сценарію, якщо його вказано. Вимірюється за секунди. Є у FIXED_A
            "smartSpeed": 0, //"Регулятор швидкості обдзвону" - Може приймати значення від -10 до 10. Дозволяє прискорити або уповільнити обдзвон при розумному алгоритмі. Менше – повільніше, більше – швидше. Є у SMART_G
            "callDelay": 0, // "Інтервал дзвінків" - Пауза між дзвінками. Працює тільки коли кількість потоків дорівнює 1. Вимірюється за секунди. Є у FIXED_A та FIXED_G
            "callDelayOnlyAnswered": true, // якщо увімкнено - "інтервал дзвінків" спрацьовуватиме лише після дзвінків, які відповідають оператором. Є у FIXED_A та FIXED_G
            "audioId": null, // "Аудіофайл" - Аудіо, яке чутиме клієнт, коли відповість на дзвінок. Можливо null. Є у FIXED_A 
            "moh": 53, // "Аудіо замість гудків" - Аудіо, яке клієнт чутиме під час дозвону операторам. Можливо null. Є у FIXED_G, FREE_G, SMART_G
            "startDate": "2020-03-15", //дата початку дзвінка (включно) 
            "endDate": "2020-05-15", //дата закінчення дзвінка (включно) 
            "groupId": 300, // "Оператори" - ID групи внутрішніх ліній на яку будуть перенаправлятися дзвінки обдзвону. Можливо null. Є у FIXED_G, FREE_G, SMART_G
            "scenarioId": null, // "Вхідний сценарій" - id сценарію, який буде активовано, якщо клієнт залишиться на лінії після завершення аудіо. Можливо null. Є у FIXED_A
            "outScenarioId": null, // "Вихідний сценарій" - id сценарію, за яким будуть здійснюватися вихідні дзвінки цього дзвінка. Може бути null. 
            "pauseOperatorNoAnswerLimit": 5, //"Кількість дзвінків поспіль не відповідальних оператором, після якого його буде поставлено на паузу", йдеться про дзвінки завершені зі статусом "Оператори не прийняли дзвінок". Може бути null (користувач не буде ставитися на паузу). Можливі значення від 1 до 9999. Є FREE_G, SMART_G
            "ttsSettingsId": 18, // "Налаштування синтезу мовлення" - id налаштувань синтезу мовлення, за допомогою яких відбуватиметься синтез аудіо з тексту, вказаного в дзвінках. Може бути null.
            "useTaskAudioIfAudioError": false, // настройка "При помилці аудіо", true - "Використати аудіо дзвінок", false - "Завершити дзвінок з помилкою" 
            "repeatCallAttempts": 3, // "Кількість повторних продзвонів". Від 1 до 10. Якщо 0 або null – повторний обдзвон не включений. 
 	    "repeatCallIntervalMinutes": 30, // "Мінімальний інтервал повторних продзвонів", що вимірюється в хвилинах, від 5 до 1500. 
            "repeatCallHighPriority": false, // "Вносити повторні продзвони у пріоритетну чергу". Якщо увімкнено, повторні дзвінки будуть здійснюватися з високим пріоритетом.
            "repeatCallStates": [“NOANSWER”, “ANSW_NF_OP”],  // "Статуси дзвінків для повторного продзвону", callState які будуть повторно продзвонюватися. Доступні значення можна переглянути в описі статусів обдзвону або методу GET_WITH_DATA в полі statesInfo. Не може бути порожнім або null, якщо repeatCallAttempts > 0.
            "callerIdPrefix": null, // "Префікс для SIP" - префікс, який відображатиметься в SIP клієнті перед номером телефону. Може бути null.
            "crmMode": "DONT_SEND", // "Які дзвінки надсилати в CRM" - може приймати значення "DONT_SEND" (Ніякі), "SEND_ANSWERED" (Відповіді абонентом), "SEND_SUCCESS" (Відповіді абонентом та оператором). Не може бути null
            "clientCalledMode": "NEVER", // "Не дзвонити абоненту, якщо він зателефонував сам" - може приймати значення "NEVER" (Ніколи), "ANSWERED_CALLS" (Тільки якщо дзвінок відповідає), "ALL_CALLS" (Завжди). Не може бути null.
            "scenarioWithoutOperators": false, // "У сценарії, що входить, немає операторів". Є тільки у FIXED_A
            "displayName": false, // "Показувати ім'я в SIP клієнта" 
            "displayNote": false, // "Показувати примітку в SIP клієнті" 
            "algorithm": "FREE_G", // "Режим обдзвону" - алгоритм обдзвону, для автообдзвону завжди FIXED_A, для гарантованого додзвону FIXED_G, FREE_G, SMART_G 
            "timeFrom": [ //час початку обдзвону днями тижня у форматі HH:mm 
                "09:00", //понеділок
                "11:00", //вівторок 
                "11:00", //середа 
                "11:00", //четвер
                "11:00", //п'ятниця
                null, //субота, null - обдзвон у цей день не працює 
                "14:00" //неділя 
            ], 
            "timeTo": [ //час закінчення обдзвону по днях тижня 
                "19:00", 
                "19:00", 
                "19:00", 
                "19:00", 
                "19:00", 
                null, 
                "17:00" 
            ],
            "markAsBusySeconds":60, // "Помічати SIP лінію зайнятої після успішного дзвінка на (сек)", від 0 до 3600. Є в FREE_G, SMART_G
            "markAsBusyMinSecondsTalk":15, // "Помічати SIP лінію зайнятої якщо розмова тривала мінімум (сек)", від 0 до 3600. Є в FREE_G, SMART_G 
            "reservedSipsBusyOnlyForAutodials":true, //"Резервувати внутрішні лінії тільки для дзвінків". Є у FREE_G, SMART_G
            "triggerActions": { //список подій, яких прикріплені обробники події. До однієї події можна прикріпити максимум 5 обробників подій. До однієї події не можна прикріпити 2 обробники з однаковим типом дії
                "AUTODIAL_NOANSWER": [ //подія
                   2, //id обробника подій
                   3 //id обробника подій
                 ], 
                 "AUTODIAL_ANSWER": [ 
                   2, 
                   3 
                 ] 
            }
        } 
    ], 
    "audios": { //аудіо для автодзвінків 
        "259": "аудіо для автодзвінків " // id - назва 
    }, 
    "moh": { //аудіо замість гудків для гарантованих додзвонів 
        "267": "Гудки для гаранітрованого дозвону" // id - назва 
    }, 
    "groups": { //групи операторів для гарантованих додзвонів 
        "300": "sipki" // id - назва 
    }, 
    "scenarios": { //вхідні сценарії для автодзвінків 
        "70": "Будни" // id - назва 
    }, 
    "outScenarios": { //вихідні сценарії 
        "567": "test", // id - назва 
        "14": "вихідний2" 
    }, 
    "ttsSettings": { //налаштування синтезу аудіо 
        "17": "Гугл озвучка", // id - назва 
        "19": "яндекс преміум озвучення" 
    },
    "statesInfo": [ //інформація про статуси дзвінків 
        { 
            "state": "NEW", //id статусу 
            "order": 1, //порядковий номер 
            "title": "Не оброблено", //назва статусу 
            "repeatable": false, //якщо true - може використовуватись у параметрі repeatCallStates (налаштування "Повторний дзвінок")
            "refreshable": false, //якщо true - може використовуватись у методі REFRESH
            "warning": false //якщо true - наявність дзвінків з таким статусом говорить про те, що з обдзвоном може бути щось не так. Можливо треба змінити налаштування, наприклад якщо є дзвінки, що завершилися зі статусом "Недостатньо ліній" - то потрібно розширити канальність номерів, що використовуються в цьому обдзвоні
        }, 
        { 
            "state": "DIALING", 
            "order": 2, 
            "title": "У процесі обдзвону", 
            "repeatable": false, 
            "refreshable": false, 
            "warning": false 
        }, 
        { 
            "state": "ANSWER", 
            "order": 3, 
            "title": "Була відповідь", 
            "repeatable": false, 
            "refreshable": true, 
            "warning": false 
        }, 
        { 
            "state": "ANSW_RJCT", 
            "order": 4, 
            "title": "Була відповідь (скинуто)", 
            "repeatable": true, 
            "refreshable": true, 
            "warning": false 
        }, 
        { 
            "state": "NOANSWER", 
            "order": 5, 
            "title": "Не було відповіді", 
            "repeatable": true, 
            "refreshable": true, 
            "warning": false 
        }, 
        { 
            "state": "BUSY", 
            "order": 6, 
            "title": "Зайнято", 
            "repeatable": true, 
            "refreshable": true, 
            "warning": false 
        }, 
        { 
            "state": "FAIL", 
            "order": 7, 
            "title": "Дзвінок невдалий", 
            "repeatable": true, 
            "refreshable": true, 
            "warning": false 
        }, 
        { 
            "state": "UNREACHABLE", 
            "order": 8, 
            "title": "Абонент недоступний", 
            "repeatable": true, 
            "refreshable": true, 
            "warning": false 
        }, 
        { 
            "state": "NOT_EXIST", 
            "order": 9, 
            "title": "Номер не існує", 
            "repeatable": true, 
            "refreshable": true, 
            "warning": false 
        }, 
        { 
            "state": "CLIENT_CALLED", 
            "order": 10, 
            "title": "Абонент зателефонував сам", 
            "repeatable": false, 
            "refreshable": true, 
            "warning": false 
        }, 
        { 
            "state": "CANCEL", 
            "order": 11, 
            "title": "Скасовано", 
            "repeatable": false, 
            "refreshable": true, 
            "warning": false 
        }, 
        { 
            "state": "ANSW_NF_OP", 
            "order": 12, 
            "title": "Не було вільних операторів", 
            "repeatable": true, 
            "refreshable": true, 
            "warning": true 
        }, 
        { 
            "state": "ANSW_OP_NA", 
            "order": 13, 
            "title": "Оператори не прийняли дзвінок", 
            "repeatable": true, 
            "refreshable": true, 
            "warning": true 
        }, 
        { 
            "state": "BUSYOUT", 
            "order": 14, 
            "title": "Недостатньо ліній", 
            "repeatable": true, 
            "refreshable": true, 
            "warning": true 
        }, 
        { 
            "state": "AUDIO_ERR", 
            "order": 17, 
            "title": "Помилка аудіо", 
            "repeatable": true, 
            "refreshable": true, 
            "warning": true 
        }, 
        { 
            "state": "WRONG_DIR", 
            "order": 16, 
            "title": "Неправильний напрямок", 
            "repeatable": false, 
            "refreshable": true, 
            "warning": true 
        }, 
        { 
            "state": "AUTOCANCEL", 
            "order": 18, 
            "title": "Скасовано (обдзвон неможливий)", 
            "repeatable": false, 
            "refreshable": true, 
            "warning": true 
        } 
    ],
    "triggerActionEvents": { //всі доступні події для обдзвонів та назв цих подій 
        "AUTODIAL_AUTOCANCEL": "Обзвон скасовано автоматично",
        "AUTODIAL_REPEAT_ATTEMPTS_ENDED": "Дзвінок завершено неуспішно і закінчилися спроби повторного продзвону",
        "AUTODIAL_ANSW_RJCT": "Дзвінок завершено - відповідане та скинуто абонентом",
        "AUTODIAL_WRONG_DIR": "Дзвінок завершений - неправильний напрямок",
        "AUTODIAL_UNREACHABLE": "Дзвінок завершено - поза зоною або вимкнено",
        "AUTODIAL_CANCEL": "Обзвон скасовано",
        "AUTODIAL_CALL_FAIL": "Дзвінок завершено - дзвінок невдалий",
        "AUTODIAL_NOT_EXIST": "Дзвінок завершено - номер не існує",
        "AUTODIAL_BUSY": "Дзвінок завершено - зайнято або скинуто",
        "AUTODIAL_ANSW_OP_NA": "Дзвінок завершено - оператори не прийняли дзвінок",
        "AUTODIAL_USER_PAUSED": "Користувач поставлений на паузу обзвоном",
        "AUTODIAL_NOANSWER": "Дзвінок завершено - не відповідає",
        "AUTODIAL_AUDIO_ERR": "Дзвінок завершено - помилка аудіо",
        "AUTODIAL_ANSW_NF_OP": "Дзвінок завершено - не було вільних операторів",
        "AUTODIAL_CLIENT_CALLED": "Абонент зателефонував сам",
        "AUTODIAL_FINISH": "Обдзвон завершено",
        "AUTODIAL_ANSWER": "Дзвінок завершений - була відповідь",
        "AUTODIAL_BUSYOUT": "Дзвінок завершено - недостатньо ліній"
    }, 
    "triggerActionEventsAndTriggerActions": { //події обзвону та список доступних обробників подій для цієї події. Інші обробники до події не можна буде прикріпити.
        "AUTODIAL_REPEAT_ATTEMPTS_ENDED": { //подія
          "2": "[CRM] битрикс коммент", //id обробника події : назва обробника (у квадратних дужках автоматично додається тип обробника)
          "3": "[Telegram] повідомлення менеджерам" 
        }, 
        "AUTODIAL_NOANSWER": {
          "2": "[CRM] бітрікс комент",
          "3": "[Telegram] повідомлення менеджерам"
        },
        "AUTODIAL_USER_PAUSED": {
          "3": "[Telegram] повідомлення менеджерам"
        },
        "AUTODIAL_ANSW_RJCT": {
          "2": "[CRM] бітрікс комент",
          "3": "[Telegram] повідомлення менеджерам"
        },
        "AUTODIAL_FINISH": {
          "3": "[Telegram] повідомлення менеджерам"
        },
        "AUTODIAL_CANCEL": {
          "3": "[Telegram] повідомлення менеджерам"
        },
        "AUTODIAL_BUSYOUT": {
          "2": "[CRM] бітрікс комент",
          "3": "[Telegram] повідомлення менеджерам"
        },
        "AUTODIAL_WRONG_DIR": {
          "2": "[CRM] бітрікс комент",
          "3": "[Telegram] повідомлення менеджерам"
        },
        "AUTODIAL_ANSWER": {
          "2": "[CRM] бітрікс комент",
          "3": "[Telegram] повідомлення менеджерам"
        },
        "AUTODIAL_ANSW_NF_OP": {
          "2": "[CRM] бітрікс комент",
          "3": "[Telegram] повідомлення менеджерам"
        },
        "AUTODIAL_ANSW_OP_NA": {
          "2": "[CRM] бітрікс комент",
          "3": "[Telegram] повідомлення менеджерам"
        },
        "AUTODIAL_AUDIO_ERR": {
          "2": "[CRM] бітрікс комент",
          "3": "[Telegram] повідомлення менеджерам"
        },
        "AUTODIAL_AUTOCANCEL": {
          "3": "[Telegram] повідомлення менеджерам"
        }
    }
}

ADD и UPDATE
Сopied

Дані для створення автообзвону та різних типів гарантованого обдзвону дещо відрізняються.
Приклади JSON наведені для ADD. А якщо Ви робите UPDATE — є 3 відмінності:

action має бути UPDATE
ігнорується масив numbers (для додавання номерів у існуючий обдзвон використовуйте ADD_CALLS ) та параметр highPriority
id має бути не 0.

Автообзвон (FIXED_A)
Запит:


{
  "action": "ADD",
  "task": {
     "id": 0,
     "name": "Копія новий дзвінок",
     "algorithm": "FIXED_A",
     "numbers":[ //масив номерів для обдзвону в міжнародному форматі, всі символи крім цифр і пробіли видаляються
       "+38(097)11-11-111",
       "38 097 222 2 222"
     ],
     "highPriority": true, //якщо true, номери з масиву numbers будуть додані з високим пріоритетом. Номери із високим пріоритетом обдзвонюються раніше, ніж номери із звичайним пріоритетом
     "threadCount": 1,
     "audioId": 2599,
     "scenarioId": 70,
     "outScenarioId": 567,
     "ttsSettingsId": 18,
     "useTaskAudioIfAudioError": true,
     "delay": 2,
     "callDelay": 30,
     "callDelayOnlyAnswered": true,
     "startDate": "2020-04-25",
     "endDate": "2020-05-25",
     "timeFrom": [
       "09:00",
       "09:00",
       "09:00",
       "09:00",
       "09:00",
       null,
       null
     ],
     "timeTo": [
       "18:00",
       "18:00",
       "18:00",
       "18:00",
       "18:00",
       null,
       null
     ],
     "triggerActions": { //Список подій, до яких прикріплені обробники події. До однієї події можна прикріпити максимум 5 обробників подій. До однієї події не можна прикріпити 2 обробники з однаковим типом дії
        "AUTODIAL_NOANSWER": [// подія
           2, //id обробника подій
           3 //id обробника подій
         ],
        "AUTODIAL_ANSWER": [  
           2,  
           3  
        ]  
     },
     "callerIdPrefix": "pref",
     "crmMode": "DONT_SEND", 
     "clientCalledMode": "NEVER", 
     "scenarioWithoutOperators": true,
     "repeatCallAttempts": 3, 
     "repeatCallIntervalMinutes": 10,
     "repeatCallHighPriority": false,
     "repeatCallStates": ["NOANSWER"],
     "displayName": true,
     "displayNote": false
   }
}

Гарантований дозвон за кількістю потоків (FIXED_G)
Запит:


{
  "action": "ADD",
  "task": {
     "id": 0,
     "name": "Копія новий дзвінок",
     "algorithm": "FIXED_G",
     "numbers":[ //список номерів для обдзвону в міжнародному форматі, всі символи, крім цифр і пробіли, видаляються
       "+38(097)11-11-111",
       "38 097 222 2 222"
     ],
     "highPriority": true, //якщо true, номери з масиву numbers будуть додані з високим пріоритетом. Номери із високим пріоритетом обдзвонюються раніше, ніж номери із звичайним пріоритетом
     "threadCount": 1,
     "moh": 255,
     "groupId": 300,
     "outScenarioId": 567,
     "ttsSettingsId": 18,
     "useTaskAudioIfAudioError": true,
     "callDelay": 30,
     "callDelayOnlyAnswered": true,
     "startDate": "2020-04-25",
     "endDate": "2020-05-25",
     "timeFrom": [
       "09:00",
       "09:00",
       "09:00",
       "09:00",
       "09:00",
       null,
       null
     ],
     "timeTo": [
       "18:00",
       "18:00",
       "18:00",
       "18:00",
       "18:00",
       null,
       null
     ],
     "triggerActions": { //Список подій, до яких прикріплені обробники події. До однієї події можна прикріпити максимум 5 обробників подій. До однієї події не можна прикріпити 2 обробники з однаковим типом дії
        "AUTODIAL_NOANSWER": [// подія
           2, //id обробника подій
           3 //id обробника подій
         ],
        "AUTODIAL_ANSWER": [   
           2,   
           3   
        ]   
     },
     "callerIdPrefix": "pref",
     "crmMode": "DONT_SEND",  
     "clientCalledMode": "NEVER",
     "repeatCallAttempts": 3, 
     "repeatCallIntervalMinutes": 10,
     "repeatCallHighPriority": false,
     "repeatCallStates": ["NOANSWER"],
     "displayName": true,
     "displayNote": false
   }
}

Гарантований дозвон за вільними операторами (FREE_G)
Запит:


{
  "action": "ADD",
  "task": {
     "id": 0,
     "name": "Копія новий дзвінок",
     "algorithm": "FREE_G",
     "numbers":[ //список номерів для обдзвону в міжнародному форматі, всі символи, крім цифр і пробіли, видаляються
       "+38(097)11-11-111",
       "38 097 222 2 222"
     ],
     "highPriority": true, //якщо true, номери з масиву numbers будуть додані з високим пріоритетом. Номери із високим пріоритетом обдзвонюються раніше, ніж номери із звичайним пріоритетом
     "moh": 54,
     "groupId": 300,
     "outScenarioId": 567,
     "pauseOperatorNoAnswerLimit": 5,
     "ttsSettingsId": 18,
     "useTaskAudioIfAudioError": true,
     "startDate": "2020-04-25",
     "endDate": "2020-05-25",
     "timeFrom": [
       "09:00",
       "09:00",
       "09:00",
       "09:00",
       "09:00",
       null,
       null
     ],
     "timeTo": [
       "18:00",
       "18:00",
       "18:00",
       "18:00",
       "18:00",
       null,
       null
     ],
     "markAsBusySeconds":60,
     "markAsBusyMinSecondsTalk":15,
     "reservedSipsBusyOnlyForAutodials":true,
     "triggerActions": { //список подій, яких прикріплені обробники події. До однієї події можна прикріпити максимум 5 обробників подій. До однієї події не можна прикріпити 2 обробники з однаковим типом дії  
       "AUTODIAL_NOANSWER": [ //подія
          2, //id обробника подій
          3 //id обробника подій
        ],  
        "AUTODIAL_ANSWER": [   
           2,   
           3   
        ]   
     },
     "callerIdPrefix": "pref",
     "crmMode": "DONT_SEND",  
     "clientCalledMode": "NEVER",
     "repeatCallAttempts": 3, 
     "repeatCallIntervalMinutes": 10,
     "repeatCallHighPriority": false,
     "repeatCallStates": ["NOANSWER"],
     "displayName": true,
     "displayNote": false
   }
}

Гарантований дозвон – розумний підбір (SMART_G)
Запит:


{
  "action": "ADD",
  "task": {
     "id": 0,
     "name": "Копія новий дзвінок",
     "algorithm": "SMART_G",
     "numbers":[ //список номерів для обдзвону в міжнародному форматі, всі символи, крім цифр і пробіли, видаляються
       "+38(097)11-11-111",
       "38 097 222 2 222"
     ],
     "highPriority": true, //якщо true, номери з масиву numbers будуть додані з високим пріоритетом. Номери із високим пріоритетом обдзвонюються раніше, ніж номери із звичайним пріоритетом
     "moh": null,
     "groupId": 300,
     "smartSpeed": 5,
     "outScenarioId": 567,
     "pauseOperatorNoAnswerLimit": 5,
     "ttsSettingsId": 18,
     "useTaskAudioIfAudioError": true,
     "startDate": "2020-04-25",
     "endDate": "2020-05-25",
     "timeFrom": [
       "09:00",
       "09:00",
       "09:00",
       "09:00",
       "09:00",
       null,
       null
     ],
     "timeTo": [
       "18:00",
       "18:00",
       "18:00",
       "18:00",
       "18:00",
       null,
       null
     ],
     "markAsBusySeconds":60, 
     "markAsBusyMinSecondsTalk":15, 
     "reservedSipsBusyOnlyForAutodials":true,
     "triggerActions": { //Список подій, до яких прикріплені обробники події. До однієї події можна прикріпити максимум 5 обробників подій. До однієї події не можна прикріпити 2 обробники з однаковим типом дії
        "AUTODIAL_NOANSWER": [// подія
           2, //id обробника подій
           3 //id обробника подій
         ],
        "AUTODIAL_ANSWER": [   
           2,   
           3   
        ]   
     }, 
     "callerIdPrefix": "pref",
     "crmMode": "DONT_SEND",  
     "clientCalledMode": "NEVER",
     "repeatCallAttempts": 3, 
     "repeatCallIntervalMinutes": 10,
     "repeatCallHighPriority": false,
     "repeatCallStates": ["NOANSWER"],
     "displayName": true,
     "displayNote": false
   }
}

У разі успіху:

{"status": "Success"}

Можливі помилки:

task is null відсутня task в json
Please confirm phone number не підтверджені проекти не можуть створювати обдзвони
algorithm is null не вказано алгоритм обдзвону
Billing not allow На даному тарифі обдзвон недоступний, або тариф не сплачений
Task not found дзвінок не знайдено id при UPDATE
Algorithm not allowed не можна змінювати тип дзвінка з автообдзвону на гарантований дзвінок (алгоритм FIXED_A на FIXED_G або FREE_G або SMART_G) і навпаки
groupId is null не вказано групу операторів. При FIXED_G, FREE_G або SMART_G
Group not found не знайдено id група операторів. При FIXED_G, FREE_G або SMART_G
Wrong group type група операторів не є групою внутрішніх ліній. При FIXED_G, FREE_G або SMART_G
Moh not found Аудіо замість гудків не знайдено за ID. При FIXED_G, FREE_G або SMART_G
Wrong audio type: moh якщо передати moh id не з moh< /strong>, а audios. При FIXED_G, FREE_G або SMART_G
In scenario not found не знайдено вхідний сценарій id. При FIXED_A
Audio not found Аудіо не знайдено на id. При FIXED_A
Wrong audio type: audio є передати audioId id не з audios, а з < strong>moh. При FIXED_A
Not found in scenario and audio не вказано ні аудіо, ні вхідний сценарій за FIXED_A, має бути вказано хоча б одне з двох.
Wrong name назва не може бути порожньою або довшою за 45 символів
Name already present обзвон із такою назвою вже існує у проекті
Not found out scenario не знайдено вихідний сценарій за id
Wrong dates якщо дати дзвінка не вказано, або дата старту дзвінка вказана після дати закінчення дзвінка
Wrong time ranges якщо в масивах timeFrom або timeTo не по 7 елементів або в якійсь парі timeFrom пізніше ніж timeTo або всі елементи масивів null
Prefix is ​​too long префікс не повинен перевищувати 20 символів
Handler is busy, try again later Один проект може одночасно видаляти або додавати номери лише в одному обдзвоні. Ця помилка говорить про те, що в цей момент в одному з обзвонів проекту в процесі видалення чи додавання номерів. Просто повторіть спробу пізніше, коли попередня операція завершиться. Може виникнути лише якщо вказано numbers під час дії ADD
Wrong numbers, data:[123, 999999999999999999, abc]} у масиві numbers є неправильні номери. У масиві data будуть вказані всі елементи масиву numbers, що не пройшли валідацію.
Repeat call states is empty repeatCallAttempts > 0, але repeatCallStates пусті або null.
Repeat call state is not allowed в repeatCallStates передавав невирішений callState.
Not found text to speech settings не знайдено налаштування синтезу мови за id
Wrong trigger action event в triggerActions переданий неправильний triggerActionEvent або triggerActionEvent null
triggerActionIds is null в triggerActions в одного з переданих евентів значення null (замість масиву id обробників подій)
Too many trigger actions в triggerActions для однієї з подій передано масив більш ніж з 5 id обробників подій
Trigger action not found не знайдено одного з переданих у triggerActions обробників подій з id
Few trigger actions with same type в triggerActions в одного з переданих евентів у списку id зазначено 2 обробники подій з однаковим типом дії (наприклад 2 обробники, які надсилають повідомлення в телеграм)
Not compatible trigger action в triggerActions в одного з евентів у списку id зазначено id обробника подій, який несумісний з цим евентом
crmMode is null не вказано параметр crmMode
clientCalledMode is null не вказано clientCalledMode
Tasks limit exceeded Перевищено максимальну кількість дзвінків у проекті

REMOVE
Сopied

{
   "id": 1307,
   "action": "REMOVE"
}

У разі успіху:

{"status": "Success"}

Можливі помилки:

Task not found дзвінок не знайдено id
Handler is busy, try again later Один проект може одночасно видаляти або додавати номери тільки в одному обдзвоні. Ця помилка говорить про те, що в цей момент в одному з обзвонів проекту в процесі видалення чи додавання номерів. Просто спробуйте ще раз, коли попередня операція завершиться

REFRESH
Сopied

{
  "id": 1307,
  "action": "REFRESH",
  "callStates": [
    "NOANSWER",
    "BUSY"
  ]
}

У разі успіху:

{"status": "Success"}

Можливі помилки:

Task not found дзвінок не знайдено за id
states is null or empty не вказано або порожні callStates
state is not allowed в callStates вказано статус невирішений для REFRESH
Try again later виконувати дію REFRESH можна не частіше ніж раз на 1 хвилину для того самого обдзвону. Помилка говорить про те, що з моменту останнього виклику REFRESH, для обдзвону із зазначеними id, ще не минула хвилина
Numbers not found by states не знайдено жодного дзвінка із зазначеними статусами (не оновили жоден номер)

CANCEL
Сopied

{
   "id": 1307,
   "action": "CANCEL"
}

У разі успіху:

{"status": "Success"}

Можливі помилки:

Task not found дзвінок не знайдено id
Task is finished не можна скасувати дзвінок зі статусом FINISHED
Task is canceled не можна скасувати дзвінок зі статусом CANCELED

UNPAUSE
Сopied

{
   "id": 1307,
   "action": "UNPAUSE"
}

У разі успіху:

{"status": "Success"}

Можливі помилки:

Task not found дзвінок не знайдено id
Task is finished не можна поставити на паузу або зняти з паузи обзвон зі статусом FINISHED
Task is canceled не можна поставити на паузу або зняти з паузи обзвон зі статусом CANCELED

PAUSE
Сopied

{
   "id": 1307,
   "action": "PAUSE"
}

У разі успіху:

{"status": "Success"}

Можливі помилки:

Task not found дзвінок не знайдено id
Task is finished не можна поставити на паузу або зняти з паузи обзвон зі статусом FINISHED
Task is canceled не можна поставити на паузу або зняти з паузи обзвон зі статусом CANCELED

ADD_CALLS
Сopied

{
  "id": 1307,
  "action": "ADD_CALLS",
  "refreshDuplicates": true, //при true - номери, які вже присутні в обдзвоні і вже оброблені, будуть оброблені повторно (знову продзвонюватимуться), при цьому якщо обдзвонення відбувається в поточний момент часу - ці номери будуть продзвонюватися першими. При false – номери з numbers, які вже присутні в обдзвоні, просто ігноруватимуться
  "highPriority": true, //при true - номери, що додаються, будуть додані з високим пріоритетом. Номери із високим пріоритетом обдзвонюються раніше, ніж номери із звичайним пріоритетом
  "numbers": [ //масив номерів у міжнародному форматі, які будуть додані в обдзвон, пробіли/тире/дужки забираються автоматично. Дублікати не зберігаються. Необов'язковий параметр, якщо передається numbersWithData. Можна передавати разом з numbersWithData, номери будуть додані з обох масивів
    "380970000001",
    "380970000002",
    "380970000003"
  ],
  "numbersWithData": [ //масив номерів у міжнародному форматі з ім'ям та приміткою та аудіозаписами, які будуть додані в обдзвон, пробіли/тире/дужки з номерів забираються автоматично. Дублікати номерів не зберігаються. Необов'язковий параметр, якщо передається numbers. Можна передавати разом із numbers
    {
      "phone": "380670000001",
      "name": "Іван" // Ім'я, максимум 100 символів, якщо більше - обрізається. Можливо null
      "note": "вікна" // Примітка, максимум 500 символів, якщо більше - обрізається. Можливо null
      "audios": [//масив аудіозаписів та тексту для озвучення, які будуть програні для цього дзвінка замість основного аудіообзвону. В якому порядку аудіо знаходяться в масиві, в такому відтворюватимуться. Для автообзвона максимум 5 елементів, їх максимум озвучиваний 2; для гарантованого додзвону максимум один елемент. Процес озвучення відбувається перед стартом дзвінка, ці аудіозаписи зберігаються не більше 7 днів після завершення дзвінка та не більше 3 місяців з моменту створення, у списку аудіозаписів проекту не відображаються. Можливо null.
            {
                "id": 4953, //id аудіозапису, для автообзвону можна вказувати тільки аудіо з розділу Автообзвон (GET_WITH_DATA audios), а для гарантованого дозвону з розділу Мелодії очікування (GET_WITH_DATA moh). Можливо null, у разі tts повинно бути null. Якщо id і tts не null, буде використовуватися id.
                "tts": null //дані для озвучування тексту можуть бути null, якщо вказано id
            },
            {
                "id": null,
                "tts": { //дані для озвучування тексту можуть бути null, якщо вказано id
                    "text": "текст для озвучування", // текст, який буде озвучений, не може перевищувати 4960 символів. Можемо бути null, якщо вказано ssml
                    "ssml": null, / / ​​Альтернатива полю text - текст у форматі ssml. Не може перевищувати 5000 символів. Повинний починатися та закінчуватися тегом speak. Можливо null, якщо вказано поле Text.
                    "settingsId": 18 //налаштування синтезу мови, які будуть використовуватися під час озвучування. Може бути null, у такому разі в налаштуваннях обдзвону повинні бути вибрані "Налаштування синтезу мови", якщо не вибрати - дзвінок буде збережено зі статусом "Помилка аудіо".
                }
            },
            {
                "id": null,
                "tts": {
                    "text": null,
                    "ssml": "текст для озвучування",
                    "settingsId": null
                }
            }
        ]
    },
    {
      "phone": "380670000002",
      "name": null,
      "note": null,
      "audios": null
    }
  ]
}

У разі успіху:

{"status": "Success"}

Можливі помилки:

Task not found дзвінок не знайдено за id
Numbers is null or empty не зазначені або порожні numbers і numbersWithData
Too many numbers зараз можна додати не більше 100 000 номерів
Numbers limit exceeded не можна додати до дзвінка більше 1 000 000 номерів
Handler is busy, try again later Один проект може одночасно видаляти або додавати номери лише в одному обдзвоні. Ця помилка говорить про те, що в цей момент в одному з обзвонів проекту в процесі видалення чи додавання номерів. Просто спробуйте ще раз, коли попередня операція завершиться
Wrong numbers, data: [688-26, notNumber] у списку номерів були виявлені некоректні номери, всі некоректні елементи повернуться в масиві data
Numbers not added Не було збережено жодного номера (наприклад, всі номери були коректні, але вже були в обдзвоні)
{"status": "Error", "message": "Wrong audios", "data": [ //масив помилок у форматі "номер телефону: текст помилки пов'язаної з полем audios"
    "380970000001: Too many audios", //в масиві audios занадто багато елементів
    "380970000002: Too many text to speech", //в масиві audios занадто багато елементів із озвучуванням тексту (tts)
    "380970000003: Audio is null", //в масиві audios є null елемент
    "380970000004: Audio not found by id", //аудіозапис не знайдено в проекті за вказаним id
    "380970000005: Wrong type of audio", //аудіозапис знайдений у проекті, але розділ аудіо неправильний
    "380970000006: Text to speech 'text' and 'ssml' is null", //в tts поля text і ssml порожні, хоча б одне має бути не null
    "380970000007: Text to speech 'text' not valid", //в tts поле text довше 4960 символів
    "380970000008: Text to speech 'ssml' not valid", //в tts поле ssml довше 5000 символів або не починається і закінчується тегом speak
    "380970000010: Text to speech settings not found by id" // Налаштування синтезу мови не знайдені в проекті з id, вказаному в tts.settingsId
    "380970000011: Audio is empty" //в масиві audios є елемент, в якому id і tts null
]}

GET_CALLS
Сopied

{
  "id": 1307,
  "action": "GET_CALLS",
  "limit": 100, //кількість номерів, що запитуються, до 5000. Можна не вказувати - значення за замовчуванням 1000.
  "offset": 0, //зсув щодо початку. Можна не вказувати – значення за замовчуванням 0.
  "callStates": [ // Фільтр по callState. Якщо null або порожній - повернуться всі номери обдзвону
    "NOANSWER",
    "BUSY"
  ]
}

У разі успіху:

[ //масив номерів обдзвону з поточним статусом та іншою інформацією
  {
    "phone": "380441234567", // номер телефону
    "state": "ANSWER", //статус дзвінка (callState), не може бути null
    "stateDateTime": "2020-09-10 05:47:15" //дата завершення останнього дзвоника на цей номер у форматі yyyy-MM-dd HH:mm:ss
  },
  {
    "phone": "380931234567",
    "state": NEW,
    "stateDateTime": "2020-09-10 00:00:00"
  }
]

Можливі помилки:

Task not found дзвінок не знайдено за id
Limit range is 1-5000 limit може бути від 1 до 5000
Offset cannot be negative offset не може бути негативним

GET_CALL
Сopied

{
  "id": 1307,
  "action": "GET_CALL",
  "number": "380971234567"
}

У разі успіху:

{
      "taskId": 1307,
      "phone": "380971234567",
      "state": "ANSWER", // Статус номера
      "stateDateTime": "2021-10-07 13:18:24.0", //час коли номер потрапив у поточний статус
      "calledCount": 2, //поточна кількість додзвонів
      "realCalledCount": 5, // загальна кількість додзвонів
      "highPriority": true, // високий пріоритет
      "name": "Василь", //ім'я прикріплене до номера
      "note": "замовлення вікон" // нотатка прикріплена до номера
}

Можливі помилки:

Task not found дзвінок не знайдено за id
Wrong phone number номер телефону неправильний
Call not found номер не знайдено в телефоні

REMOVE_ALL_CALLS
Сopied

{
  "id": 1307,
  "action": "REMOVE_ALL_CALLS"
}

У разі успіху:

{"status": "Success"}

Можливі помилки:

Task not found дзвінок не знайдено за id
Numbers not found в телефонному дзвінку немає дзвінків
Handler is busy, try again later Один проект може одночасно видаляти або додавати номери лише в одному обдзвоні. Ця помилка говорить про те, що в цей момент в одному з обзвонів проекту в процесі видалення чи додавання номерів. Просто спробуйте ще раз, коли попередня операція завершиться

REMOVE_CALLS
Сopied

Видалення дзвінків за списком статусів:

{
  "id": 1307,
  "action": "REMOVE_CALLS",
  "callStates": [ //масив статусів, номери з цими статусами будуть видалені
    "NOANSWER",
    "ANSWER"
  ]
}

Видалення номерів за списком номерів:

{
  "id": 1307,
  "action": "REMOVE_CALLS",
  "numbers": [ //масив номерів у міжнародному форматі, ці номери будуть видалені з обдзвону, пробіли/тире/дужки забираються автоматично. Максимум 10000 номерів
    "380970000001",
    "380970000002",
    "380970000003"
  ]
}

У разі успіху:

{"status": "Success", "data": ["389833883838383838383838","not a number"]}

Якщо видаляти номери за списком номерів numbers, то у разі успіху (якщо з обдзвону видалено хоча б один номер) у відповіді може бути параметр data, в ньому передаються рядки, в яких не були знайдені коректні номери телефонів

Можливі помилки:

Task not found дзвінок не знайдено за id
numbers and states is null numbers і callStates null або порожні
Too many numbers в numbers можна передати не більше 10 000 номерів за раз
Phones not found у numbers не знайшли жодного номера
Numbers not found не було знайдено жодного номера переданого в numbers (не видалено жодного номера)
Numbers not found by states не було знайдено жодного номера зі статусами, переданими в callStates (не видалено жодного номера)
Handler is busy, try again later Один проект може одночасно видаляти або додавати номери лише в одному обдзвоні. Ця помилка говорить про те, що в цей момент в одному з обзвонів проекту в процесі видалення чи додавання номерів. Просто спробуйте ще раз, коли попередня операція завершиться

Ініціація дзвінків
Сopied

Прямий виклик SIP -> GSM
Сopied

Цей метод дозволяє інтегруватися з Вашим програмним забезпеченням і натисканням однієї кнопки відразу дзвонити на номер клієнта без необхідності введення номера вручну на SIP телефоні.
Це зазвичай використовується в CRM системах.
Як це працює: викликає цей метод — дзвонить сип клієнт як вхідний. Після відповіді одразу йде дзвінок на вказаний номер. Основна суть – не потрібно вводити номер руками.
/phones/directCall
Режим: POST
Content-Type: application/x-www-form-urlencoded
Надсилати форму з двома параметрами:
String sip — це номер внутрішньої лінії.
String number — gsm номер, що надсилається у міжнародному форматі. Наприклад: 380504443322.
String meta— String на 1000 символів. Це будь-яка інформація, яка має відображатися у вебхуках. Можливо null.

У разі успіху приклад відповіді:

{"status": "Success","message": "Called"}

Можливі помилки:

Sip not found
Sip not ready вказана лінія офлайн або зайнята
Wrong phone
Meta info is too big metaбільше 1000 символів

image-3

Створення нового дзвінка
Сopied

Метод використовується якщо необхідно зателефонувати абоненту з метою інформування його про щось.
Після того, як абонент дослухає аудіозапис – дзвінок завершиться.
Аудіозапис необхідно попередньо додати до категорії «API дзвінки» тут: https ://my.unitalk.cloud/new/index.html#audio. Після завантаження Ви побачите її ID
/calls/originateNew
Режим: POST
Content-Type: application/json
Приклад JSON запиту:

{
  "phone": "380503332211", // номер абонента, на який необхідно дзвонити. Чи не null.
  "outerLine": null // зовнішня лінія для дзвінка абоненту. Якщо null – то лінія буде обрана автоматично, згідно з правилами вихідних сценаріїв.
  "meta": "238", // String на 1000 символів. Це будь-яка інформація, яка має відображатися у вебхуках. Можливо null.
  "ivrId": 211, // id голосового меню, яке буде відтворено абоненту, який відповів на дзвінок. Якщо вказано audios - буде відтворено після них. Може бути null – якщо вказано параметр audios. У голосовому меню дозволені лише дії: "Переклад дзвінка на внутрішню лінію", "Переклад дзвінка на групу номерів" та дозволена лише група внутрішніх ліній (SIP), "Відтворення голосового повідомлення".
  "audios": [ //масив аудіозаписів та тексту для озвучування з якого будуть синтезовані аудіо, які будуть відтворені абоненту як тільки він відповість на дзвінок. В якому порядку аудіо знаходяться в масиві, в такому відтворюватимуться. Максимум 5 елементів, з них максимум озвучень – 2. Озвучені з тексту аудіозапису у списку аудіозаписів проекту не відображаються. Можливо null.
    {
      "id": 4953, //id заздалегідь завантаженого аудіо для API дзвінків. Можливо null, у разі tts повинно бути null. Якщо id і tts не null, буде використовуватися id.
      "tts": null //дані для озвучування тексту можуть бути null, якщо вказано id
    },
    {
      "id": null,
      "tts": { //дані для озвучування тексту можуть бути null, якщо вказано id
        "text": "текст для озвучування", // текст, який буде озвучений, не може перевищувати 4960 символів. Може бути null, якщо вказано ssml. Якщо вказано обидва поля text та ssml - використовуватиметься ssml
        "ssml": "текст для озвучування" // Альтернатива полю text - текст у форматі ssml. Не може перевищувати 5000 символів. Повинний починатися та закінчуватися тегом speak. Можливо null, якщо вказано поле Text. Якщо вказано обидва поля text та ssml - використовуватиметься ssml
        "settingsId": 18 //налаштування синтезу мови, які будуть використовуватися під час озвучування. Не може бути null
      }
    }
  ]
}

У разі успіху:

{"status": "Success"}

Можливі помилки:

Call already in progress попередній дзвінок цього абонента ще не завершився
Outer line not found вказана зовнішня лінія для вихідного дзвінка не знайдена у проекті
Outer line is tracked зазначена зовнішня лінія бере участь у трекінгу. З неї не можна робити вихідні
Meta info is too big metaбільше 1000 символів
No audio та IVR не вказано аудіозаписи audiosі ivrId, має бути зазначено хоча б щось одне
IVR може бути використаний для SIPs тільки у голосовому меню присутні невирішені дії
Service not paid Тариф не активний, можливо, на рахунку немає коштів, або в тарифі немає API дзвінків
Limit of Simultaneously calls has reached досягнуто межу 20 одночасних дзвінків
Wrong phone номер телефону абонента неправильний
audios: Too many audios у масиві audiosзанадто багато елементів
audios: Too many text to speech у масиві audiosзанадто багато елементів із озвучуванням тексту tts
audios: Audio is null у масиві audiosє null елемент
audios: Audio not found by id аудіозапис не знайдено у проекті за вказаним id
audios: Wrong type of audio зазначений audiosаудіозапис не знаходиться в категорії для API дзвінків
audios: Text для ‘text’ and ‘ssml’ is null в ttsполя text< /span>і ssmlпусті, хоча б одне має бути не null
audios: Text до тексту ‘text’ not valid в tts поле text< /span>довше 4960 символів
audios: Text для ‘ssml’ не valid в ttsполе ssml< /span> довше 5000 символів або не починається і закінчується тегом speak
audios: Text to speech ‘settingsId’ is null не вказано id налаштувань синтезу мови у tts
audios: Text для швидких налаштувань не знайдено id налаштування синтезу мови не знайдено в проекті ID, вказаному в tts.settingsId
audios: Audio is empty у масиві audiosє елемент у якому id< /strong>і ttsnull
audios: Text to speech failed помилка синтезу аудіо з тексту

image-4

Незалежний click to call дзвінок
Сopied

Як це працює: так само як і звичайний с2с, тільки незалежність полягає в тому, що Вам не потрібно попередньо створювати сайт, додавати на нього кнопку зворотного дзвінка
Метод дозволяє створити негайний с2с дзвінок.
Цей дзвінок не буде видно у заявках та CRM системах, але буде в історії дзвінків та вебхуках.
Для його роботи не потрібно попередньо створювати сайт та підключати до нього кнопку зворотного дзвінка
POST /calls/originateC2c

{
  "clientNumber": "380935553322",
  "steps": [
    {
      "type": "GSM",
      "to": "380931111111",
      "awaitingTime": 5
    }
  ]
}

clientNumber — номер клієнта, якому треба дзвонити
steps — масив кроків переадресацій. Можна вказувати декілька.
steps.typeGSM, SIP, GROUP
steps.to — номер оператора
steps.awaitingTime — час виклику від 5 до 300 секунд

у полі steps.to необхідно вказувати:
GSM-> номер клієнта у міжнародному форматі (наприклад 380501112233)
SIP -> внутрішній номер лінії (наприклад, 5455)
GROUP -> ID групи (відділу). Id відображається зверху праворуч на кожному відділі в особистому кабінеті

image-5

Аудіо
Сopied

Додавання аудіо файлів до проекту
Сopied

/audio/upload
Режим: POST
Content-Type: multipart/form-data
Надсилати multipart з трьома параметрами:

name (String) Не може бути null. Максимум 200 символів
type (String)
GENERAL Сценарії
IVR Голосові меню
MELODY Мелодії очікування на лінії та черги
AUTODIAL Автодзвінки
API API дзвінки
file (File)
Максимальний розмір: 15мб.
Дозволяється аудіо або відео файл будь-якого формату.
Його аудіо доріжка буде переконвертована та нормалізована під 0дб.
У разі якщо тривалість файлу перевищує ці параметри – буде автоматично обрізано:
IVR 90 секунд
AUTODIAL, MELODY, API 300 секунд
GENERAL 30 секунд
temp (Boolean) Опціональний параметр. Якщо true — файл позначається як тимчасовий і буде автоматично вилучено о 04:00.

У разі успіху, в message повернеться id завантаженого аудіофайлу:

{"status": "Success","message": "432"}

image-6

Синтез аудіо з тексту
Сopied

Метод синтезує аудіо з тексту та додає аудіозаписи до проекту, із вказаним ім’ям та у вказаний розділ. За один раз можна озвучити до 5 аудіо.
/audio/tts
Режим: POST
Content-Type: application/json
Приклад JSON запиту:

{
 "data": [/ / масив даних для синтезу аудіо. Максимум 5 елементів
    { // перший елемент для озвучування
      "name": "аудіо для обдзвону", // назва з яким аудіо буде додано до проекту
      "type": "AUTODIAL", //розділ аудіо до якого буде додано аудіозапис. Можливі значення: GENERAL (Сценарії), IVR (Голосові меню), MELODY (Мелодії очікування на лінії та черг), AUTODIAL (Автодзвінки), API (API дзвінки)
      "tts": { //дані для озвучування тексту
        "text": "текст для озвучування", // текст, який буде озвучений, не може перевищувати 4960 символів. Може бути null, якщо вказано поле ssml. Якщо вказано обидва поля text та ssml - використовуватиметься ssml
        "ssml": null, / / ​​Альтернатива полю text - текст у форматі ssml. Не може перевищувати 5000 символів. Повинний починатися та закінчуватися тегом speak. Можливо null, якщо вказано поле Text. Якщо вказано обидва поля text та ssml - використовуватиметься ssml
        "settingsId": 18 //налаштування синтезу мови, які будуть використовуватися під час озвучування. Не може бути null
      }
    },
    { //Другий елемент для озвучування
      "name": "аудіо для апі дзвінка",
      "type": "API",
      "tts": {
        "text": null,
        "ssml": "текст для озвучування",
        "settingsId": 16
      }
    }
  ]
}

У разі успіху:

{
    "status": "Success",
    "message": "Success",
    "data": [//масив з результатом синтезу, по кожному аудіо. Якщо аудіо синтезовано успішно - буде вказано ID з яким воно збереглося в проект. У разі помилки – id буде null, а в полі error буде текст помилки
        { //Успішно синтезоване аудіо (є id)
            "name": "аудіо для обдзвону", // назва аудіо
            "id": 4962, //id нового аудіо (у разі успіху)
            "error": null //Текст помилки (у разі невдачі)
        },
        { //синтез невдалий чи виконаний (id немає, є error)
            "name": "аудіо для апі дзвінка",
            "id": null,
            "error": "Same name already present"
        }
    ]
}

Можливі значення поля error для кожного з елементів озвучення при Success:

type is null не вказано розділ аудіо
Name is empty ім’я аудіо не вказано або порожнє
Name length more than 200 chars ім’я аудіо занадто довге, допускається максимум 200 символів
Same name already present аудіо з таким ім’ям вже існує у проекті
tts is null не вказано дані для озвучення тексту
Text до звуку ‘text’ and ‘ssml’ is null в ttsполя text< /span>і ssmlпусті, хоча б одне має бути не null
Text до тексту ‘text’ not valid в tts поле text< /span> довше 4960 символів
Text для ‘ssml’ не valid в ttsполе ssml< /span> довше 5000 символів або не починається і закінчується тегом speak
Text to speech ‘settingsId’ is null не вказано id налаштувань синтезу мови у tts
Text для прослуховування не знайдено id налаштування синтезу мови не знайдено в проекті ID, вказаному в tts.settingsId
Text to speech failed помилка синтезу аудіо з тексту
Internal error невідома помилка при синтезі аудіо

Можливі помилки:

Завжди один simultaneous text to speech request per project Один і той самий проект не може викликати цей метод одночасно кілька разів. Зачекайте, поки завершиться попередній запит.
data is null У запиті немає параметра data
data is empty У параметрі data немає елементів
Too many elements in data У параметрі data занадто багато елементів. Дозволяється максимум 5 озвучень за 1 запит.
Service not paid Тариф не активний, можливо, на рахунку немає коштів

image-7

Списки
Сopied

BLOCKED_PHONES
Сopied

POST /lists

BLOCKED_PHONES — список міжнародного формату, вхідні дзвінки від них блокуються, а запит click2call відхиляється. Розмір – 200 елементів. При додаванні 201 номера – перший (найстаріший) видаляється.

image-8

GET (отримання списку)

{
  "list": "BLOCKED_PHONES",
  "операція": "GET",
  "items": []
}

Відповідь:

["380934007171"]

ADD (Додавання декількох елементів до списку)

{
  "list": "BLOCKED_PHONES",
  "operation": "ADD",
  "items": ["380556667788", "380445556677"]
}

Відповідь:

{"status": "Success"}

REMOVE (видалення декількох елементів зі списку)

{
  "list": "BLOCKED_PHONES",
  "operation": "REMOVE",
  "items": ["380556667788", "380445556677"]
}

Відповідь:

{"status": "Success"}

Користувачі
Сopied

Дані про користувачів
Сopied

/users/getStatus
Видає список усіх користувачів із зазначенням їхньої внутрішньої або мобільної лінії та станом роботи.

[
    {
        "firstName": "Василь",
        "middleName": "Олександрович",
        "lastName": "Іванов",
        "phone": "4035",
        "workStatus": "WORK"
    }
]

workStatusможе бути:
WORK(працює),
PAUS(на паузі),
STOP(робота закінчена/ще не почав працювати)

у користувачів без розширеного функціоналу, workStatus завжди WORK

image-9

Зміна стану роботи
Сopied

/phones/inner/setStatus
Режим: POST
Передавати параметри
number — номер лінії оператора
status — новий стан (WORK, PAUS, STOP)
Приклад: /phones/inner/setStatus?number=9999&status=WORK

У разі успіху відповідь:

{"status": "Success", "message": "Success"}

image-10

Внутрішні лінії
Сopied

Список внутрішніх ліній
Сopied

/phones/inner
Режим: POST
Порожній запит.
У разі успіху відповідь:

{
   "2239": "offline",
   "2238": "offline",
   "2006": "offline",
   "2237": "offline",
   "2005": "offline",
   "2004": "offline",
   "2003": "online",
   "2002": "busy", // зайнятий. Розмова чи дзвінок
   "2241": "offline",
   "2240": "offline"
}

image-11

Відділи
Сopied

Отримання груп
Сopied

POST /groups/action
Приклад body JSON запиту:

{
   "action": "GET"
}

Відповідь:

{
   "status": "Success",
   "data": [
     {
       "id": 455, // id групи
       "name": "Відділ продажу", // ім'я групи
       "phones": [ // масив номерів, які містить група
         {
           "number": "4030", // номер
           "firstName": "Олександр", // ім'я користувача, якщо він є
           "lastName": "Максимов" // прізвище користувача, якщо він є
         }
       ]
     }
   ]
}

image-12

Видалення номера з групи
Сopied

POST /groups/action
Приклад body JSON запиту:

{
  "action": "REMOVE_NUMBER",
  "groupId": 141, // id групи
  "number": "2561" // номер, який потрібно видалити
}

Успіх:

{"status": "Success"}

Можливі помилки:

Group not found Вказана група не знайдена
Cant delete the last number from group не можна видалити останній номер із групи
Група не містить певного номера група не містить зазначеного номера

image-13

Історія дзвінків
Сopied

Здобуття історії
Сopied

/history/get
Режим: POST
Content-Type: application/json
Надсилати JSON:

{
  "dateFrom": "2018-06-25 00:00:00",
  "dateTo": "2018-07-09 00:00:00",
  "limit": 100,
  "offset": 0,
  "filter": {
    // Усі параметри фільтрів опціональні. Тобто можуть бути null, якщо фільтрація не потрібна.
    // Нижче приклад 2 параметрів. Інші фільтри вказані в таблиці нижче, щоб не ускладнювати цей зразок
    "direction": "OUT",
    "exactPhone": [
      "5008"
    ]
  }
}
limit Максимальна кількість записів у відповіді. від 1 до 300
offset Зсув щодо початку. Приклад: якщо багато записів, Ви запитуєте 50 записів зі зсувом 60, то в результаті будуть записи з 60-ї позиції по 110-й.
filter Набір фільтрів. Якщо якийсь із фільтрів не потрібен — Ви можете вказати його як null або зовсім не надсилати. Об’єкт “filter” може бути порожнім або відсутнім.
filter.direction Фільтр за напрямком дзвінка. IN, OUT, INNER
filter.exactPhone Масив номерів з умовою АБО. Шукає дзвінки полями «від» і «кому» з повним збігом. Приклад: якщо вказати в ньому “5555” та “380955555555”, то будуть знайдені дзвінки 380444444444 -> 5555 та 5000 -> 380955555555
filter.calledTo Масив номерів кому дзвонили
filter.calledFrom Масив номерів, з яких дзвонили
filter.lost Втрачені дзвінки. true або false
filter.newLead Нові клієнти. true або false
filter.answered Відповідні дзвінки. true або false
filter.minDuration Мінімальна тривалість розмови за секунди. Число.
filter.voiceMessage Клієнт залишив голосове повідомлення. true або false

Приклад відповіді:

{
  "count": 8, // кількість записів у базі даних за вказаними критеріями. Звичайно ж, не залежить від параметра limit.
  "calls": [
    {
      "event": "CALL_END",
      "call": {
        "id": 1091944,
        "dbid": 275,
        "from": "380505557182",
        "to": [
          "2000"
        ],
        "direction": "IN",
        "secondsFullTime": 19,
        "secondsTalk": 9,
        "utmSource": "google",
        "utmMedium": "search",
        "utmCampaign": "web",
        "utmTerm": "килими",
        "utmContent": "content",
        "outerNumber": "site.ua",
        "callback": true,
        "googleId": "1182768620.1530916891",
        "facebookClientId": "fb.1.1234567890",
        "referer": "google.com",
        "comment": "коментар до дзвінка",
        "date": "2018-07-09 16:58:52",
        "state": "ANSWER",
        "source": "REGULAR",
        "link": "https://cstat.nextel.com.ua:8443/tracking/rec/1531144732.920/2018-07-09",
        "meta": "some info",
        "cause": 16
      }
    }
  ]
}

image-14

Вебхуки
Сopied

Дзвінки
Сopied

Ви можете використовувати систему вебхуків для отримання інформації про деякі події, що надсилаються на вказаний Вами URL.
Ваш веб-програма має приймати JSON методом POST.
Сторінка налаштування вебхуків: https://my.unitalk.cloud/new/index.html#api
Типи подій:

CALL_NEW прийшов дзвінок, але ще нікому не переадресований
CALL_REDIRECT дзвінок перенаправлений на одного або кількох операторів
CALL_ANSWER хтось відповів на дзвінок
CALL_END дзвінок завершено. Містить найповніший набір інформації
{
  "event": "CALL_END",
  "call": {
    "id": 1091944,
    "dbid": 275,
    "from": "380505557182",
    "to": [
      "2000"
    ],
    "direction": "IN",
    "secondsFullTime": 19,
    "secondsTalk": 9,
    "utmSource": "google",
    "utmMedium": "search",
    "utmCampaign": "web",
    "utmTerm": "килими",
    "utmContent": "content",
    "outerNumber": "site.ua",
    "callback": true,
    "googleId": "1182768620.1530916891",
    "facebookClientId": "fb.1.1234567890",
    "referer": "google.com",
    "comment": "коментар до дзвінка",
    "date": "2018-07-09 16:58:52",
    "state": "ANSWER",
    "source": "REGULAR",
    "link": "https://cstat.nextel.com.ua:8443/tracking/rec/1531144732.920/2018-07-09",
    "meta": "some info",
    "cause": 16
  }
}
id Випадково генерований id дзвінка для зв’язку його з іншими подіями дзвінків
dbid id під яким цей дзвінок був збережений в БД і в майбутньому має саме цей id.
from Номер того, хто телефонує
to Масив номерів кому було переадресовано дзвінок.
При події CALL_NEW — завжди порожній, якщо вхідний дзвінок.
У випадку CALL_REDIRECT — містить 1 або кілька номерів.
При події CALL_ANSWER завжди містить 1 номер.
При події CALL_END — може бути порожнім, але може містити кілька номерів операторів, яким йшов дзвінок, але ніхто на нього не відповів.
У випадку API дзвінків може бути відсутнім, якщо дзвінок не був перенаправлений ні на кого.
direction Напрямок дзвінка. Може бути:
IN(вхідний),
OUT (вихідний)
INNER(внутрішній)
secondsFullTime Повний час дзвінка. Відомо лише у події CALL_END
secondsTalk Час спілкування. Відомо лише у випадку CALL_END
utmSource
utmMedium
utmCampaign
utmTerm
utmContent
googleId
facebookClientId
UTM мітки, клієнтський google id, клієнтський facebook id (береться з cookie _fbp).
Може бути null.
callback Вказує, чи є цей дзвінок зворотним. Застаріло. Використовуйте source
outerNumber Зовнішній номер, на який спочатку зателефонував клієнт. Якщо це був зворотний дзвінок — тут буде назва сайту, на якому натиснули кнопку.
Якщо вихідний дзвінок — це лінія, з якої був дзвінок клієнту.
date Дата та час коли дзвінок було прийнято
state
Стан дзвінка. CALL_NEW та CALL_REDIRECTзавжди null.
ANSWER дзвінок було прийнято
BUSY лінія була зайнята
FAIL збій або GSM номер був вимкнений
NOANSWER дзвінок не було прийнято
CHANUNAVAIL номер, що викликався, був недоступний
NOMONEY для здійснення дзвінка виявилося недостатньо коштів
BUSYOUT під час здійснення дзвінка всі зовнішні лінії були зайняті
WRONGDIR неправильний напрямок дзвінка. З цього орендованого номера Nextel не можна зателефонувати на вказаний номер
BLOCKED дзвінок був заблокований згідно з налаштуваннями проекту
UNREACHABLE абонент недоступний або знаходиться поза зоною дії мережі
NOT_EXIST номер, що викликається, не існує
link Посилання на запис дзвінка. Є тільки у випадку стану ANSWER
source
REGULAR звичайний прямий дзвінок
TRACKING дзвінок через трекінг
CLICK2CALL зворотний дзвінок із кнопки на сайті
FORM зворотний дзвінок із форми на сайті
CALLBACK зворотний дзвінок із callback номера
AUTO_CB автоматичний зворотній дзвінок на пропущений виклик
AUTODIAL автодзвінок або гарантований додзвон
API_CALL дзвінок через API
C2C_API click2call дзвінок через API
meta Додаткова інформація, що задається під час дзвінків через API
cause Код завершення дзвінка

Рух за балансом
Сopied

Ви можете використовувати систему вебхуків для отримання інформації про деякі події, що надсилаються на вказаний Вами URL.
Ваш веб-програма має приймати JSON методом POST.
Сторінка налаштування вебхуків: https://my.unitalk.cloud/new/index.html#api
Цей тип вебхука надає інформацію щодо кожної операції зміни балансу проекту.
Є лише 5 типів руху:

MAIN_REFILL поповнення основного рахунку
BONUS_REFILL поповнення бонусного рахунку
CALL списання за платний дзвінок
SMS списання за відправку SMS
SERVICES списання за послуги
{
  "date": "2020-04-20 21:45:22",
  "type": "MAIN_REFILL",
  "sum": 500000,
  "mainBalance": 676706,
  "bonusBalance": 350000,
  "description": "Поповнення балансу на 500.00 UAH через LiqPay"
}
sum сума операції. 1 одиниця валюти (гривня) = 1000. У прикладі вказано 500 гривень
mainBalance основний баланс (сальдо після здійснення операції списання або поповнення)
bonusBalance бонусний баланс (сальдо після здійснення операції списання або поповнення)

Обробка подій
Сopied

Обробка подій голосових меню та дзвінків
На сторінці: Обробка подій
Можна додати обробник подій, який надсилатиме вебхук.
Обробник подій можна прив’язати до подій:
1) IVR (натискання будь-якої кнопки в голосовому меню, відсутність натискань, неправильне натискання)
2) До подій завершення дзвінка автодзвінка та гарантованого додзвону (наприклад, завершений дзвінок зі статусом «не відповіли» або «оператори не прийняли дзвінок»).
3) До інших подій автообзвону та гарантованого дозвону (наприклад завершення обдзвону або скасування обдзвону)
Докладніше про обробку подій тут: інструкція з обробки подій
Залежно від типу події, до якої прив’язаний вебхук, тіло вебхука відрізнятиметься!
Приклад JSON вебхука для голосового меню:

{
    "ivrName":"голосове меню 2",
    "from":"380971234567",
    "outerNumber":"380441234567",
    "pressedDigit":2,
    "actionType": "MAIN",
    "utmCampaign": "sale2021",
    "utmSource": "google",
    "utmMedium": "email",
    "utmTerm": "term",
    "utmContent": "content",
    "googleId": "11111.11111",
    "facebookClientId": "fb.1.1234567890",
    "projectName": "myproject"
}
ivrName назва голосового меню
from номер телефону абонента
outerNumber зовнішня лінія на яку зателефонував абонент або при click2call назва сайту, на якому абонент натиснув на кнопку зворотного дзвінка
pressedDigit цифра на яку натиснув абонент, може бути null — якщо спрацює “дія коли вибір не зроблено” (абонент не натисне жодної цифри)
actionType
тип дії в ivr:
MAIN Основна дія
NO_CHOICE Дія відсутності вибору
WRONG_DIGIT Неправильний вибір

Приклад JSON вебхука для завершення дзвінка:

{
    "from": "380971234567",
    "operatorNumber": "2040", //може бути null
    "callName": "Володимир",
    "callNote": "купував вікна",
    "calledCount": 1,
    "callState": "ANSWER",
    "dialName": "обдзвон-вікна",
    "totalCount": 2000,
    "doneCount": 537,
    "projectName": "myproject"
}
from номер телефону абонента
callName ім’я з дзвінка (дзвінок з ім’ям можна додати з xls файлу або через API)
callNote нотатка з дзвінка (дзвінок із заміткою можна додати з xls файлу або через API)
calledCount кількість разів, скільки ми дзвонили поточному абоненту
callState статус, з яким завершився дзвінок. Докладніше про статус завершення дзвінків дзвінків у документації з дзвонів
dialName назва обдзвону
totalCount кількість номерів в обдзвоні
doneCount кількість оброблених номерів в обдзвоні

Для подій дзвінків не пов’язаних із дзвінками надсилається вебхук з порожнім тілом. При необхідності ви можете вставити потрібні параметри прямо в посилання:

{ }

Вхідні вебхуки
Сopied

Загальні відомості
Сopied

Nextel може приймати вебхуки з певною структурою та виконувати за ними дії.
Доступні на даний момент дії:

Додавання номера телефону в дзвінок
Видалення номера телефону з дзвінка

Для виконання дій вам необхідно згенерувати URL для вебхука, заповнити в URL необхідні параметри і відправити на URLPOSTзапит.
Згенерувати url для вебхука можна на сторінці , у розділі “Вхідні вебхуки”.
Спершу треба створити токен для вхідних вебхуків. Після цього відобразиться кнопка “Сгенерувати посилання”.
У блоці для генерації посилання можна вибрати потрібну вам дію, вибрати обдзвон у якому буде виконано цю дію та вибрати додаткові опції.

Додавання номера телефону у дзвінок
Сopied

Приклад згенерованого посилання:
https ://cstat.nextel.com.ua:8443/tracking/webhook/event?token=mYbYrjxqx5vMfzyzWQwa&action=AUTODIAL_ADD&id=5&name=&note=&phones=

Параметри, що заповнюються при генерації автоматично:

token токен для вхідних вебхуків
action тип дії вебхука
id id обдзвону

Параметри, які потрібно заповнити:

phones номер телефону або список номерів телефону через кому, які будуть додані в дзвінок
name ім’я, яке буде вказано у доданому дзвінку. Щонайбільше 100 символів. Якщо номерів є кілька — у всіх буде вказано це ім’я. Заповнювати необов’язково
note нотатка, яка буде вказана в доданому дзвінку. Максимум – 500 символів. Якщо номерів кілька — у всіх буде вказано цю нотатку. Заповнювати необов’язково

Заповнене посилання буде виглядати приблизно так:
https://cstat.nextel.com.ua:8443/tracking/webhook/event?token=mYbYrjxqx5vMfzyzWQwa&action=AUTODIAL_ADD&id=5&name=vasya&note=okna&phones=380971a

Якщо ви відправите за цим посиланням запит — до обзвону (вибраний під час генерації посилання) буде додано номер телефону 380971234567, з ім’ям vasya та нотаткою okna.

У разі успіху:

{"status": "Success"}

У разі невдачі:

Internal error помилка сервера
Token not found переданий токен не знайдений у Nextel
Action not found відсутній параметр action у посиланні
Id is null відсутній параметр id у посиланні
Autodial not found не знайдено обдзвонення за id, можливо він був видалений
Empty phones параметр phones не вказаний або порожній
Phones not found параметр phones не порожній, але в ньому не знайдено хоча б один номер телефону
Phones not added не вдалося додати номери в обдзвон. Можливо, номери вже були додані в обдзвон

Видалення номера телефону з дзвінка
Сopied

Приклад згенерованого посилання:
https://cstat.nextel.com.ua:8443/tracking/webhook/event?token=mYbYrjxqx5vMfzyzWQwa&action=AUTODIAL_REMOVE&id=3&phones=

Параметри, що заповнюються при генерації автоматично:

token токен для вхідних вебхуків
action тип дії вебхука
id id обдзвону

Параметри, які потрібно заповнити:

phones номер телефону або список номерів телефону через кому, які будуть видалені з обдзвону

Заповнене посилання буде виглядати приблизно так:
https://cstat.nextel.com.ua:8443/tracking/webhook/event?token=mYbYrjxqx5vMfzyzWQwa&action=AUTODIAL_REMOVE&id=3&phones=3809712340>

Якщо ви відправите за цим посиланням запит — з обдзвону (вибраного під час генерації посилання) будуть видалені номери 380971234567 та 380670001000

У разі успіху:

{"status": "Success"}

У разі невдачі:

Internal error помилка сервера
Token not found переданий токен не знайдено в Nextel
Action not found відсутня параметр actionна посилання
Id is null відсутня параметр idна посилання
Autodial not found не знайдено обдзвонення за id, можливо його було видалено
Empty phones параметр phonesне вказано або порожній
Phones not found параметр phones не порожній, але в ньому не знайдено хоча б один номер телефону
Calls not found не вдалося видалити жоден номер. Можливо, в обдзвоні не було жодного із зазначених номерів

Маршрутизація дзвінків
Сopied

Переклад дзвінка на відповідального оператора
Сopied

У налаштуваннях вхідних сценаріїв можна вказати тип перенаправлення дзвінка за відповіддю від зовнішньої системи “Зовнішня липучка”.
У перенаправленні Ви вказуєте URL-адресу до Вашої веб-додатку.
На цю адресу, у відповідний момент, буде надіслано запит POST з Json:

{
  "event": "ROUTE",
  "call": {
    "from": "380505557182" // номер абонента
  }
}
from це номер телефону

У відповідь Ваша програма повинна відповісти наступним Json:

{
  "operatorNumber": "2048",
  "callerName": "Олександр",
  "ivrId": 487
}
operatorNumber Номер телефону відповідального оператора на кого потрібно перевести дзвінок.
Можна вказати SIP або GSM.
Можливо null.
callerName Ім’я клієнта, яке необхідно відобразити на sip телефоні.
Можливо null.
ivrId id голосового меню. Можливо null.

Попередньо перевіряти, чи вільний в даний момент оператор не потрібно – якщо він зайнятий – то перенаправлення дзвінка на нього буде пропущено і дзвінок піде далі.