Наверх

API-метод импорта звонков

Запрос на импорт

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

POST: https://api.calltouch.ru/lead-service/v1/api/call/import

HTTP-заголовки:

  • Access-Token – API-ключ
  • SiteId – ID ЛК Calltouch

Тело запроса в формате JSON:

{
    "calls": [

    // Звонок 1

    {
        "referenceId": "Уникальный ID звонка в АТС",
        "clientPhoneNumber": "Номер телефона клиента",
        "callCenterPhoneNumber": "Номер телефона, на который звонит клиент",
        "callStartTime": "Дата звонка в формате yyyy-mm-dd hh:mm:ss2020-10-01 02:10:00",
        "duration": 120,
        "waitingTime": 10,
        "status": "successful",
        "recordUrl": "Ссылка на запись звонка в формате mp3",
        "comment": {
            "text": "Комментарий"
        },
        "addTags": [
        {
            "tag": "Тег 1"
        }
     ],
        "customSources": {
            "source": "Произвольный источник",
            "medium": "Произвольный канал",
            "campaign": "Произвольная кампания",
            "content": "Произвольное объявление",
            "term": "Произвольная ключевая фраза"
        },
        "sessionId": "ID сессии Calltouch"
    },

    // Звонок N

    ...
    
]
}

 

Параметры запроса

Параметр Формат Обязательный Описание
calls array Да Массив звонков. Можно перечислить до 100 звонков за 1 запрос. После отправки запроса на импорт звонков, они ставятся в очередь и импортируются в порядке очереди. В ответ на запрос импорта вы получите ID лога очереди импорта, по которому отдельным запросом можно будет узнать результат импорта. Обязательно.
calls.referenceId string Да Уникальный ID звонка в АТС. Любые символы, максимум 100.
calls.clientPhoneNumber string Да Номер телефона клиента в 11-значном формате 7xxxxxxxxxx.
calls.callStartTime string Да Номер телефона, на который звонит клиент, в 11-значном формате 7xxxxxxxxxx.
calls.duration integer Да

Полная длительность звонка в секундах включая ожидание.

Обратите внимание, что в ЛК длительность будет показываться, как разница duraton - waitingTime.

calls.waitingTime integer Да Ожидание в секундах.
calls.status string Да

Статус звонка. Возможные значения:

  • successful
  • unsuccessful
calls.recordUrl string Нет Ссылка на запись звонка в формате mp3
calls.comment.text string Нет Комментарий ко звонку. Любые символы, максимум 1000.
calls.addTags array Нет

Добавление тегов ко звонку. Если такие теги уже есть в ЛК, новые не создаются, а используются существующие. Любые символы, максимум 100 в каждом теги. Максимум 100 тегов.

Формат:

"addTags": [
{
"tag": "Тег 1",
"tag": "Тег 2",
}
]

calls.customSources object Нет Произвольные источники звонка. Используются только когда не указан sessionId. Необязательно. Если не указан ни sessionId ни произвольные источники, то звонок создается без источника.

calls.customSources.

source

string Да, если указан customSources. Произвольный источник

calls.customSources.

medium

string Да, если указан customSources. Произвольный канал

calls.customSources.

campaign

string Да, если указан customSources. Произвольная кампания

calls.customSources.

content

string Нет Произвольное объявление

calls.customSources.

term

string Нет Произвольная ключевая фраза
calls.sessionId string Нет ID сессии Calltouch. Любые символы, максимум 100. Если не указано, то звонку будет присвоен произвольный источник customSources.

 

Ответ на импорт

Если валидация всех параметров прошла успешно, то запускается процесс импорта звонков и в ответ отдается ID ID лога очереди импорта, по которому отдельным запросом можно будет узнать результат импорта, пример:

{
    "meta": [],
    "data": {
        "logId": 471
    }
}

Если API-токен не указан, то импорт звонков не выполняется и выводится ошибка:

{
    "meta": [],
    "data": {
        "message": "Ошибка доступа"
    }
}

Если API-токен указан не верно, то импорт звонков не выполняется и выводится ошибка:

{
    "message": "Access token не найден"
}

 

Если в запросе обнаруживаются ошибки валидации, то импорт звонков не выполняется и выводится ошибка:

{
    "meta": [],
    "data": {
        "type": "validationError",
        "apiErrorData": null,
        "validationErrorData": {
            "violations": [
                {
                    "fieldPath": "calls[0].clientPhoneNumber",
                    "message": "Значение должно быть равно 11 символам."
                }
            ]
        }
    }
}

 

Запрос на лог импорта

POST: https://api.calltouch.ru/lead-service/v1/api/call/import/log?logId={ID лога}

HTTP-заголовки:

  • Access-Token – API-ключ
  • SiteId – ID ЛК Calltouch

GET-параметры:

  • lodId – ID лога импорта звонков

 

Ответ на лог импорта

{
    "meta": [],
    "data": {
        "calls": [
            {
                "imported": true,
                "referenceId": "5lBNQaPvlR8IKP71",
                "callId": 2319960
            }
        ]
    }
}

 

Параметры ответа

Параметр Формат Описание
data.calls.imported boolean Флаг импортирован ли звонок или нет
data.calls.referenceId string ID звонка с АТС из API-метода импорта звонков
data.calls.callId string ID звонка в Calltouch, может быть null