Навигация по API

Введение

В API доступны все основные функции для работы с:

  • Телефония и виртуальные номера
  • АТС и ZCRM
  • SMS и HLR-запросы
  • Коллтрекинг
  • Распознавание речи
Ссылка на АПИ: https://api.zadarma.com
Версия АПИ: v1
Финальная ссылка на метод: https://api.zadarma.com/v1/METHOD/
Скачайте готовые классы PHP, C#, Python для работы с API на нашем GitHub.
Примеры работы с API:
Интеграция собственной CRM и телефонии Zadarma
Бесконечный динамический IVR
Создание лида в ZCRM из формы на сайте

Авторизация

Каждый запрос, который нуждается в авторизации, сопровождается дополнительным заголовком, вида:
"Authorization: ключ_пользователя: подпись"

Ключи для авторизации необходимо получить в личном кабинете.

Подпись составляется по следующему алгоритму:

  • массив из передаваемых параметров (GET, POST, PUT, DELETE) сортируется по названию ключа по алфавиту;
  • из полученного массива формируется строка запроса (например, функция http_build_query в PHP), пример "from=DATEFROM&to=DATETO…";
  • и далее - соединяется по формуле: строка = имя_метода строка_запроса md5( строка_запроса ), где "имя_метода" - строка запроса, начиная от домена (с указанием версии АПИ), до начала перечисления параметров, например - '/v1/sip/'
  • полученная строка хешируется по алгоритму sha1 с секретным ключом пользователя: хеш = hash( строка, секретный_ключ )
  • и далее хеш кодируется в base64 подпись = base64_encode( хеш )
ksort($params);
$paramsStr = http_build_query($params, null, '&', PHP_QUERY_RFC1738);
$sign = base64_encode(hash_hmac('sha1', $method . $paramsStr . md5($paramsStr), $secret));
$header = 'Authorization: ' . $userKey . ':' . $sign;

Готовый класс PHP для работы с API, можете скачать на GitHub.

Форматы ответа: json (по умолчанию) и xml.

Чтобы получить ответ от АПИ в формате xml, в строку запроса добавляется параметр "format=xml".

Ограничения

{
    "status":"error",
    "message":"Check phone's number"
}

В ответе также содержится информация о лимитах и текущем запросе, например:

X-Zadarma-Method: /v1/ X-RateLimit-Reset: 1434371160 X-RateLimit-Limit: 100 X-RateLimit-Remaining: 99

где,

  • X-Zadarma-Method - текущий вызываемый метод;
  • X-RateLimit-Remaining - количество оставшихся запросов, с учетом лимита на метод и на пользователя;
  • X-RateLimit-Limit - цифра общего лимита обращений в минуту;
  • X-RateLimit-Reset - время сброса лимита.

Общие ограничения - 100 запросов в минуту, на методы статистики - 10 запросов в минуту.

В случае блокировки, метод отдает ответ с 429 заголовком "You exceeded the rate limit".

Ответ состоит из обязательного ключа "status" (success или error). Далее, в зависимости от метода, отдаются свои ключи с запрашиваемой информацией.

В случае ошибки, отдается дополнительный ключ "message" с описанием ошибки.

Также, все ответы сопровождаются соответствующими HTTP-заголовками.

Методы

get /v1/info/balance/

                                        {
    "status":"success", 
    "balance":10.34, 
    "currency":"USD"
}
                                    

баланс пользователя

get /v1/info/price/

                                        {
    "status":"success",
    "info":{
    "prefix":"4420",
        "description":"United Kingdom, London",
        "price":"0.009",
        "currency":"USD",
    }
}
                                    

стоимость звонка с учетом текущего тарифа пользователя

Параметры

  • number – номер телефона
  • caller_id (опционально) – CallerID, который будет использоваться при совершении звонка.


get /v1/info/timezone/

                                        {
    "status":"success",
    "unixtime":1483228800,
    "datetime":"2017-01-01 00:00:00",
    "timezone":"UTC+0"
}
                                    

часовой пояс пользователя

get /v1/tariff/

                                        {
    "status":"success",
    "info": {
        "tariff_id":5,
        "tariff_name":"Standart, special",
        "is_active":false,
        "cost":0,
        "currency":USD,
        "used_seconds":1643,
        "used_seconds_mobile":34,
        "used_seconds_fix":726,
        "tariff_id_for_next_period":5,
        "tariff_for_next_period":Standart, special
    }
}
                                    

информация о текущем тарифе пользователя

Где:

  • tariff_id – ID текущего тарифа пользователя;
  • tariff_name – наименование текущего тарифа пользователя;
  • is_active – активен или не активен текущий тариф;
  • cost – стоимость тарифа;
  • currency – валюта тарифа;
  • used_seconds – количество использованных секунд тарифа;
  • used_seconds_mobile –количество использованных секунд тарифа на мобильные телефоны;
  • used_seconds_fix – количество использованных секунд тарифа на стационарные телефоны;
  • tariff_id_for_next_period – ID тарифа пользователя на следующий период;
  • tariff_for_next_period – наименование тарифа пользователя на следующий период.

get /v1/request/callback/

                                        {
    "status":"success", 
    "from":442037691880, 
    "to":442037691881, 
    "time":1435573082
}
                                    

обратный звонок

Параметры

  • from – ваш номер телефона или SIP, или внутренний номер АТС, или номер сценария АТС, на который вызывается callback;
  • to – номер телефона или SIP, которому звонят;
  • sip (опционально) – номер SIP-пользователя или внутренний номер АТС (например 100), через который произойдет звонок. Будет использован CallerID этого номера, в статистике будет отображаться данный номер SIP/АТС, если для указанного номера включена запись звонков либо префиксы набора, они также будут задействованы;

  • predicted (опционально) – если указан этот флаг, то запрос является предикативным (система изначально звонит на номер "to" и только если ему дозванивается, соединяет с вашим SIP либо телефонным номером);

post /v1/sms/send/

                                        {
    "status":"success",
    "messages":1,
    "cost":0.24,
    "currency":"USD"
}
                                    

отправка SMS

Параметры

  • number – номер телефона, куда отправлять SMS (можно перечислить несколько через запятую);
  • message – сообщение (стандартные ограничения по длине SMS, в случае превышения лимита – разбивается на несколько SMS);
  • caller_id – (опциональный) номер телефона, от кого будет отправлена SMS (можно отправлять только из списка подтвержденных номеров пользователя).

Обратите внимание: отправка SMS доступна только за пределы РФ.

post /v1/info/number_lookup/

                                        Response 1:
{ "status":"success", "info":{ "mcc":"250", "mnc":"01", "mccName":"Russia", "mncName":"Mobile TeleSystems", "ported":false, "roaming":false, "errorDescription":"No Error" } }
                                        Response 2:
{ "status":"success" }
                                        Response 3:
{ "success":true, "description":"Success", "result": [ { "mcc":"250", "mnc":"01", "ported":false, "roaming":false, "errorDescription":"No Error", "mccName":"Russia", "mncName":"Mobile TeleSystems", "number":"791234567890", }, ... ] }

актуализация контактов

Параметры

  • numbers – список номеров для актуализации в международном формате.

Если numbers содержит 1 номер, результат будет возвращен сразу, если указан список номеров, результат будет отправлен по адресу, указанному на странице актуализации контактов, либо отправлен на email, если адрес не задан.

Обратите внимание: настройки данного метода проводятся на странице актуализации номеров в личном кабинете.

Пример ответа для 1 номера:

Пример ответа для нескольких номеров:

Пример результата, отправленного по адресу, указанному на странице актуализации:

get /v1/webrtc/get_key/

                                        {
    "status":"success",
    "key": YOUR_KEY
}
                                    

получить ключ для webrtc-виджета. Время жизни ключа - 72 часа.

Параметры:

  • sip – логин SIP'а или внутреннего номера АТС.

SIP

get /v1/sip/

                                        {
    "status":"success",
    "sips":[
        {"id":"00001", "display_name":"SIP 1", "lines":3},
        {"id":"00002", "display_name":"SIP 2", "lines":3}
    ],
    "left":3
}
                                    

список SIP-номеров пользователя

Где:

  • id – SIP-id;
  • display_name – отображаемое имя;
  • lines – количество линий;
  • left – количество оставшихся SIP, которые можно создать (зависит от баланса пользователя и общего количества уже созданных SIP).

get /v1/sip/<SIP>/status/

                                        {
    "status":"success",
    "sip":"00001",
    "is_online":"false"
}
                                    

online-статус SIP-номера пользователя

put /v1/sip/callerid/

                                        {
    "status":"success",
    "sip":"00001",
    "new_caller_id":"442037691880"
}
                                    

изменение CallerID

Параметры

  • id – SIP id, которому меняют CallerID;
  • number – номер, на который меняют в международном формате (из списка подтвержденных либо приобретенных номеров пользователя).

get /v1/sip/redirection/

                                        {
    "status":"success",
    "info": [
        {
            "sip_id":"00001",
            "status":"on",
            "condition":"always",
            "destination":"phone",
            "destination_value":"442037691880"
        },
    ...
    ]
}
                                    

отображение текущих переадресаций по SIP-номерам пользователя

Параметры

  • id – (опциональный) выбор конкретного SIP id.

Где:

  • sip_id – SIP id пользователя;
  • status – текущий статус: on или off;
  • condition – условия переадресации: always – всегда (по-умолчанию), unavailable – в случае не поднятия трубки либо отсутствии SIP-соединения;
  • destination – куда переадресовывается: phone – на номер телефона, pbx – на АТС;
  • destination_value – номер, куда переадресовывать: номер телефона или ID АТС.

put /v1/sip/redirection/

                                        {
    "status":"success",
    "sip":"00001",
    "current_status":"on"
}
                                    

включение/выключение переадресации по номеру SIP

Параметры

  • id – SIP id;
  • status – выставляемый статус переадресации на выбранный SIP-номер.

put /v1/sip/redirection/

                                        {
    "status":"success",
    "sip":"00001",
    "destination":"442037691880"
}
                                    

изменение параметров переадресации

Параметры

  • id – SIP id;
  • type – тип переадресации: phone – на телефон;
  • number – номер телефона.

Статистика

get /v1/statistics/

                                        Response 1:
{ "status":"success", "start":"2015-06-01 00:00:00", "end":"2015-06-29 13:45:23", "stats":[ { "id":"155112249", "sip":"00001", "callstart":"2015-06-02 12:20:25", "from":442037691880, "to":442037691881, "description":"United Kingdom, London", "disposition":"busy", "billseconds":0, "cost":0.1950, "billcost":0.0000, "currency":"USD" }, … ] }
                                        Response 2:
{ "status":"success", "start":"2015-06-01 00:00:00", "end":"2015-06-29 14:03:57", "stats":[ { "cost":38.094, "currency":"USD", "seconds":9785 } ] }

получение общей статистики

Параметры

  • start - дата начала просмотра статистики (формат - YYYY-MM-DD HH:MM:SS);
  • end - дата окончания просмотра статистики (формат - YYYY-MM-DD HH:MM:SS);
  • sip (опционально) - фильтр по определенному SIP-номеру;
  • cost_only (опционально) - просмотр только потраченных средств за период;
  • type (опционально - только на общей статистики) - тип запроса: общий (не указывается в запросе), toll и ru495. (для статистики номеров 800 и бесплатных номеров 495);
  • skip (опционально - не учитывается при заданном параметре cost_only) - количество строк, которое необходимо пропустить в выборке, вывод начнется со строки skip + 1 (используется для пагинации совместно с параметром limit, по умолчанию равняется 0);
  • limit (опционально - не учитывается при заданном параметре cost_only) - ограничение на количество выводимых строк (используется для пагинации совместно с параметром skip, максимальное значение 1000, по умолчанию 1000).

Максимальный период получения статистики - месяц. В случае превышения лимита в запросе - период автоматически сокращается до 30 дней. Если не указана дата начала выборки, выбирается начало текущего месяца. Если не указана дата конца выборки – выборка ограничивается текущей датой и временем.

Максимальное количество выводимых строк для одного запроса - 1000. Для пагинации используйте параметры skip и limit.

?type=cost_only: (Response 2)

Где:

  • start – дата начала отображения статистики;
  • end – дата окончания отображения статистики;
  • id – id звонка;
  • sip – SIP-номер;
  • callstart – время начала звонка;
  • description – описание направления звонка;
  • disposition – состояние звонка:
    • 'answered' – разговор,
    • 'busy' – занято,
    • 'cancel' - отменен,
    • 'no answer' - без ответа,
    • 'failed' - не удался,
    • 'no money' - нет средств, превышен лимит,
    • 'unallocated number' - номер не существует,
    • 'no limit' - превышен лимит,
    • 'no day limit' - превышен дневной лимит,
    • 'line limit' - превышен лимит линий,
    • 'no money, no limit' - превышен лимит;
  • billseconds – количество секунд звонка;
  • cost – стоимость минуты звонка по данному направлению;
  • billcost – стоимость оплаченных минут;
  • currency – валюта стоимости;
  • from – с какого номера звонили;
  • to – куда звонили.

get /v1/statistics/pbx/

                                        {
    "status":"success",
    "start":"2015-06-01 00:00:00",
    "end":"2015-06-30 23:59:59",
    "version":2,
    "stats":[
        {
            "call_id":1439981389.2702773,
            "sip":200,
            "callstart":"2015-06-01 15:04:00",
            "clid":200,
            "destination":5,
            "disposition":"answered",
            "seconds":5,
            "is_recorded":true,
            "pbx_call_id":"in_ae6b03b3b0765d127ec0b739209346bbc4f0d52d"
        },
        …
    ]
}
                                    

статистика по АТС

Параметры

  • start - дата начала просмотра статистики (формат - YYYY-MM-DD HH:MM:SS);
  • end - дата окончания просмотра статистики (формат - YYYY-MM-DD HH:MM:SS);
  • version - формат вывода статистики (2 - новый, 1 - старый);
  • skip (опционально) - количество строк, которое необходимо пропустить в выборке, вывод начнется со строки skip + 1 (используется для пагинации совместно с параметром limit, по умолчанию равняется 0);
  • limit (опционально) - ограничение на количество выводимых строк (используется для пагинации совместно с параметром skip, максимальное значение 1000, по умолчанию 1000);
  • call_type (опционально) - направление звонков ('in' для входящих, 'out' для исходящих). Если не указан, выводятся все звонки.

Где:

  • start – дата начала отображения статистики;
  • end – дата окончания отображения статистики;
  • version - формат вывода статистики (2 - новый, 1 - старый);
  • call_id – уникальный id звонка, этот id указан в названии файла с записью разговора (уникален для каждой записи в статистике);
  • sip – SIP-номер;
  • callstart – время начала звонка;
  • clid – CallerID;
  • destination – куда звонили;
  • disposition – состояние звонка:
    • 'answered' – разговор,
    • 'busy' – занято,
    • 'cancel' - отменен,
    • 'no answer' - без ответа,
    • 'failed' - не удался,
    • 'no money' - нет средств, превышен лимит,
    • 'unallocated number' - номер не существует,
    • 'no limit' - превышен лимит,
    • 'no day limit' - превышен дневной лимит,
    • 'line limit' - превышен лимит линий,
    • 'no money, no limit' - превышен лимит;
  • seconds – количество секунд звонка;
  • is_recorded – (true, false) записан или нет разговор;
  • pbx_call_id – постоянный ID внешнего звонка в АТС (не меняется при прохождении сценариев, голосового меню, transfer и т.д., отображается в статистике и уведомлениях);

get /v1/statistics/callback_widget/

                                        {
    "status":"success",
    "start":"2016-09-01 00:00:00",
    "end":"2016-09-30 23:59:59",
    "stats":[
        {
            "id":"57d16d6a1e46c53d1f8ce323",
            "widget_id":"1",
            "sip":"00001",
            "ip":"127.0.0.1",
            "actions":[
                {
                    "kind":"come",
                    "date":"2016-09-08 16:53:45",
                    "referrer_url":"http://test.domain.com/page1/",
                    "url":"http://home.domain.com/page2/"
                },
                {
                    "kind":"show",
                    "date":"2016-09-08 16:53:46",
                    "rate":15
                },
                {
                    "kind":"call_request",
                    "date":"2016-09-08 16:54:07",
                    "number":"442037691880",
                    "request_call_date":"2016-09-09 10:00:00",
                    "redial":"n"
                },
                {
                    "kind":"close",
                    "date":"2016-09-08 16:54:35"
                }
            ]
        },
        ...
    ]
}
                                    

статистика по Виджету обратного звонка

Параметры

  • start - дата начала просмотра статистики (формат - YYYY-MM-DD HH:MM:SS);
  • end - дата окончания просмотра статистики (формат - YYYY-MM-DD HH:MM:SS);
  • widget_id - (опционально) - идентификатор виджета, в случае отсутствия параметра берется статистика по всем виджетам;

Максимальный период получения статистики - месяц. В случае превышения лимита в запросе - период автоматически сокращается до 30 дней. Если не указана дата начала выборки, выбирается начало текущего месяца. Если не указана дата конца выборки – выборка ограничивается текущей датой и временем.

Максимальное количество выводимых строк для одного запроса - 1000. Для пагинации используйте параметры skip и limit.

Где:

  • start – дата начала отображения статистики;
  • end – дата окончания отображения статистики;
  • id – id сессии;
  • widget_id – id виджета;
  • sip – SIP-номер;
  • ip – IP-адрес посетителя;
  • kind – тип события:
    • 'come' – посетитель пришел на страницу с виджетом,
    • 'show' – показана форма виджета,
    • 'call' – заказ обратного звонка,
    • 'call_request' – заказ отложенного обратного звонка,
    • 'rate' – посетитель оценил разговор,
    • 'fail' – посетитель отметил, что обратного звонка не было,
    • 'close' – посетитель закрыл форму виджета;
  • date – дата и время события;
  • referrer_url – адрес страницы, с которой посетитель перешел на страницу с виджетом (только для события 'come');
  • url – адрес страницы виджета (только для события 'come');
  • rate – для события 'show' - количество набранных очков, для события 'rate' - оценка разговора;
  • request_call_date – дата и время указанное посетителем, как удобное для обратного звонка (только для события 'call_request');
  • redial – (true, false) перезвонили или нет в ответ на заказ отложенного обратного звонка (только для события 'call_request');
  • number – номер введенный посетителем (для событий 'call', 'call_request', 'rate', 'fail').

АТС

get /v1/pbx/internal/

                                        {
    "status":"success",
    "pbx_id":1234,
    "numbers": [
        100,
        101,
        ...
    ]
}
                                    

отображение внутренних номеров АТС

Где:

  • pbx_id – id ATC пользователя;
  • numbers – список внутренних номеров.

get /v1/pbx/internal/<PBXSIP>/status/

                                        {
    "status":"success",
    "pbx_id":1234,
    "number":100,
    "is_online":"false"
}
                                    

online-статус внутреннего номера АТС

Где:

  • pbx_id – АТС-id;
  • number – внутренний номер АТС;
  • is_online – online-статус (true|false).

put /v1/pbx/internal/recording/

                                        {
    "status":"success",
    "internal_number":100,
    "recording":"on",
    "email":"test@test.com"
}
                                    

включение записи разговоров на внутреннем номере АТС

Параметры

  • id – внутренний номер АТС;
  • status – статус: "on" - включить, "off" - отключить, "on_email" - включить только запись на почту, "off_email" - отключить только запись на почту, "on_store" - включить только запись в хранилище, "off_store" - отключить только запись в хранилище;
  • email – (опциональный) изменение электронного адреса, куда будут отправляться записи разговоров. Вы можете указать до 3х email адресов через запятую.

get /v1/pbx/record/request/

                                        Response 1:
{ "status":"success", "link": "https://api.zadarma.com/v1/pbx/record/download/NjM3M..NzM2Mg/1-1458313316.343456-100-2016-01-11-100155.mp3", "lifetime_till": "2016-01-01 23:56:22" }
                                        Response 2:
{ "status":"success", "links":[ "https://api.zadarma.com/v1/pbx/record/download/NjM3M..NzM2Mg/1-1458313316.343456-100-2016-01-11-100155.mp3", "https://api.zadarma.com/v1/pbx/record/download/pw7Cj..iOzn99/1-1458313475.213487-101-2016-01-11-100211.mp3" ], "lifetime_till": "2016-01-01 23:56:22" }

запрос на файл записи разговора

Параметры

  • call_id – уникальный id звонка, этот id указан в названии файла с записью разговора (уникален для каждой записи в статистике);
  • pbx_call_id – постоянный ID внешнего звонка в АТС (не меняется при прохождении сценариев, голосового меню, transfer и т.д., отображается в статистике и уведомлениях);
  • lifetime – (опциональный) время жизни ссылки в секундах (минимум - 180, максимум - 5184000, по-умолчанию - 1800).

Примечание: достаточно указать один из двух параметров идентификации (pbx_call_id или call_id), при указании pbx_call_id ссылок в ответе на запрос может быть несколько.

Пример ответа когда указан только call_id, ссылка только одна:

Пример ответа когда указан только pbx_call_id, ссылок может быть несколько:

Параметры:

  • link – ссылка на файл разговора;
  • lifetime_till – до которого времени ссылка будет работать.

post /v1/pbx/redirection/

                                        {
    "status":"success",
    "current_status":"on",
    "pbx_id":"1234",
    "pbx_name":"100",
    "type":"phone",
    "destination":"79123456789",
    "condition":"noanswer"
}
                                    

изменение параметров переадресации на внутреннем номере АТС

Параметры

Для включения и настройки переадресации:

  • pbx_number – внутренний номер АТС, например 100;
  • status – on;
  • type – тип переадресации voicemail или phone;
  • destination – телефон или электронная почта, в зависимости от предыдущего параметра;
  • condition – условие переадресации, возможные значения: always или noanswer;
  • voicemail_greeting – оповещение о переадресации, возможные значения: no, standart, own. Указывается только при type = voicemail;
  • greeting_file – файл с оповещением в формате mp3 или wav до 5 MB. Указывается только при type = voicemail и voicemail_greeting = own;

Для выключения переадресации:

  • pbx_number – внутренний номер АТС, например 100;
  • status – off;

get /v1/pbx/redirection/

                                        {
    "status":"success",
    "current_status":"on",
    "pbx_id":"1234",
    "pbx_name":"100",
    "type":"phone",
    "destination":"79123456789",
    "condition":"noanswer",
}
                                    

получение параметров переадресации на внутреннем номере АТС

Параметры

  • pbx_number – внутренний номер АТС, например 100;

Распознавание речи

get /v1/speech_recognition/

                                        {        
    "status":"success",
    "lang":"en-EN",
    "recognitionStatus":"in progress",
    "otherLangs":["es-ES"],
    "words": [
        {
            "result": [
                {
                    "s": 0.02,
                    "e": 0.22,
                    "w": "word",
                },
                {
                    "s": 0.31,
                    "e": 0.56,
                    "w": "one",
                }
            ],
            "channel": 1
        }
    ],
    "phrases":[
        {
            "result": "word one",
            "channel": 1
        }
    ]
}
                                    

получение результатов распознавания

Параметры

  • call_id - уникальный id звонка, этот id указан в названии файла с записью разговора (уникален для каждой записи в статистике);
  • lang - язык распознавания (не обязательный);
  • return - возвращаемый результат. Варианты: words - слова, phrases - фразы. (не обязательный. по умолчанию phrases);
  • alternatives - возвращать ли альтернативные варианты. Варианты: 0 - нет, 1 - да. (не обязательный. по умолчанию 0).

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

  • lang – язык;
  • recognitionStatus: - статус распознавания. Варианты:
    • in progress - в процессе распознавания,
    • error - при распознавании возникла ошибка,
    • recognized - распознано
    • ready for recognize - запись готова для распознавания,
    • not available for recognize - запись не доступна для распознавания.
  • result:
    • words - массив:
      • result - список слов (массив):
        • s - время начала слова
        • e - время окончания слова
        • w - слово
      • channel - номер канала
    • phrases - массив:
      • result - фраза
      • channel - номер канала.

put /v1/speech_recognition/

                                        {
    "status":"success"
}
                                    

запуск распознавания

Параметры

  • call_id – уникальный id звонка, этот id указан в названии файла с записью разговора (уникален для каждой записи в статистике);
  • lang - язык распознавания (не обязательный).

Виртуальные номера

get /v1/direct_numbers/

                                        {
    "status":"success",
    "info": [
        {
            "number":"442037691880",
            "status":"on",
            "country":"Great Britain",
            "description":"London",
            "number_name":null,
            "sip":00001,
            "sip_name":null,
            "start_date":"2015-01-01 18:14:44",
            "stop_date":"2016-02-11 18:14:40",
            "monthly_fee":2,
            "currency":USD,
            "channels":2,
            "autorenew":"true",
            "is_on_test":"false",
            "type":"common"
        },
    ...
    ]
}
                                    

информация о прямых номерах пользователя

Параметры

В зависимости от типа номера набор полей может отличаться! Описание полей:

  • number – купленный виртуальный номер пользователя;
  • status – статус номера;
  • country – страна (для common и revenue);
  • description – описание: город или тип (для common и revenue);
  • number_name – "имя" виртуального номера (задается пользователем);
  • sip – SIP, привязанный к номеру;
  • sip_name – "имя" SIP, привязанного к номеру;
  • start_date – дата покупки номера пользователем;
  • stop_date – дата окончания срока оплаты номера пользователем;
  • monthly_fee – стоимость номера (для common);
  • currency – валюта стоимости номера (для common);
  • channels – количество линий на номере (для common);
  • minutes – общая длительность входящих звонков за текущий месяц (для revenue);
  • autorenew – включено ли автопродление номера (для common, revenue, rufree);
  • is_on_test – находится ли номер на тесте;
  • type – тип номера: common (виртуальный номер), inum (бесплатный международный номер), rufree (бесплатный московский номер), revenue (бесплатный московский номер 495).

get /v1/direct_numbers/number/

                                        {
    "status": "success",
    "info": {
    "number": "35924913550",
        "status": "on",
        "country": "Bulgaria",
        "description": "Sofia",
        "number_name": "TT",
        "sip": "00004",
        "sip_name": "SIP",
        "start_date": "2016-06-08 14:32:17",
        "stop_date": "2016-06-29 10:52:18",
        "monthly_fee": 2,
        "currency": "USD",
        "channels": "2",
        "autorenew": "true",
        "receive_sms": null,
        "is_on_test": "false"
    }
}
                                    

информация о купленном номере

Параметры

  • type - может иметь одно из 3-х значений:
    • 'revenue' - Бесплатный московский номер 495;
    • 'inum' - Бесплатный международный номер;
    • 'common' - Обычный номер, все остальные;
  • number - номер.

get /v1/direct_numbers/autoprolongation/

                                        {
    "status": "success",
    "number": "35924913550",
    "autoprolongation": "on"
}
                                    

статус автопродления (NB! inum не входит в этот список)

Параметры

  • type - может иметь одно из 2-х значений:
    • 'revenue' - Бесплатный московский номер 495;
    • 'common' - Обычный номер, все остальные;
  • number - номер.

put /v1/direct_numbers/autoprolongation/

                                        {
    "status": "success",
    "number": "35924913550",
    "autoprolongation": "off"
}
                                    

изменить статус автопродления (NB! inum не входит в этот список)

Параметры

  • type - может иметь одно из 2-х значений:
    • 'revenue' - Бесплатный московский номер 495;
    • 'common' - Обычный номер, все остальные;
  • number - номер;
  • value - новый статус автопродления, on или off.

get /v1/direct_numbers/countries/

                                        {
    "status": "success",
    "info": [
        {
            "countryCode": "61",
            "countryCodeIso": "AU",
            "name": "Australia"
        },
        ...
    ]
}
                                    

список стран в которых можно заказать номер

Параметры

  • language - опционально, если не задано выдаст на языке ЛК.

get /v1/direct_numbers/country/

                                        {
    "status": "success",
    "info": [
        {
            "id": "3753",
            "countryCode": "49",
            "areaCode": "800",
            "name": "Номер 800 (Toll-free)",
            "connect_fee": 0,
            "monthly_fee": 15,
            "currency": "USD",
            "restrictions": {
                "upload": [
                    "Certificate of registration copy or passport or ID copy (both sides)",
                    "Proof of address (a copy of utility bill no older than of 6 months) - 
                    your current address (city, street, number and postal code). 
                    The address must be located in the country of ordered phone number"
                ]
            },
            "receive_sms": "false",
            "is_toll": "true",
            "feature": "Available from all networks"
            "connect_time": "0"
        },
        {
            "id": "3766",
            "countryCode": "49",
            "areaCode": "821",
            "name": "Аугсбург",
            "connect_fee": 3,
            "monthly_fee": 3,
            "currency": "USD",
            "restrictions": {
                "upload": [
                    "Passport or ID copy (both sides)"
                ],
                "specify": [
                    "You current address (city, street, number and postal code). 
                    The address must be located in the region of the city 
                    where you ordered the phone number"
                ]
            },
            "receive_sms": "false",
            "is_toll": "false",
            "feature": null,
            "connect_time": "0"
        },
        ...
    ]
}
                                    

список направлений в стране, в которых можно заказать номер

Параметры

  • language - опционально, если не задано выдаст на языке ЛК;
  • country - iso код страны (ISO 3166-1 alpha-2).

put /v1/direct_numbers/set_caller_name/

                                        {
    "status": "success",
    "number": "74996388980",
    "caller_name": "test"
}
                                    

установка caller name

Параметры

  • type - может иметь одно из 2-х значений:
    • 'revenue' - Бесплатный московский номер 495;
    • 'common' - Обычный номер, все остальные;
  • number - номер;
  • caller_name - для того чтобы убрать - просто передать пустое поле.

put /v1/direct_numbers/set_sip_id/

                                        {
    "status": "success",
    "number": "74996388980",
    "sip_id": "00001"
}
                                    

привязка номера к sip или включение тестового режима

Параметры

  • type - может иметь одно из 3-х значений:
    • 'revenue' - Бесплатный московский номер 495;
    • 'inum' - Бесплатный международный номер;
    • 'common' - Обычный номер, все остальные;
  • number - номер;
  • sip_id - sip номер или адрес внешнего сервера;
  • test_mode - опционально, (on|off) - для включения тестового режима.

Методы ZCRM

Клиенты

get /v1/zcrm/customers

Возвращает список клиентов

Параметры

  • search (необязательный) — строка поиска. Поиск осуществляется комбинированно по:

    • имени клиента
    • номерам телефонов клиента
    • описанию клиента
    • адресу и почтовому индексу
    • веб-сайту
    • адресам e-mail
    • мессенджерам
    • именам сотрудников
    • номерам телефонов сотрудников
    • описаниям сотрудников
    • адресам e-mail сотрудников
    • мессенджерам сотрудников
  • filter (необязательный) — фильтр клиентов. Фильтр работает только по заданным полям. Структура фильтра:

    Ответ 1

    Ответ 1:
    { "status": "company", "type": "client", "country": "GB", "city": "London", "label": 12, "employees_count": "50", "responsible": 20 }

    Где:

    • status — статус клиента. Допустимые значения:
      • individual — физ. лицо
      • company — компания
    • type — тип клиента. Допустимые значения:
      • potential — потенциальный клиент
      • client — клиент
      • reseller — реселлер
      • partner — партнёр
    • country — страна клиента. Двухбуквенный код (RU, US и т.д.)
    • city — город клиента (строка)
    • label — тег (идентификатор)
    • employees_count — кол-во сотрудников. Допустимые значения:
      • 50 — меньше 50
      • 50_250 — 50 – 250
      • 250_500 — 250 – 500
    • responsible — ответственный (идентификатор пользователя)

    Любой из параметров фильтра может быть опущен, т.е. не является обязательным.

  • sort (необязательный) — сортировка клиентов. Структура параметра:

    Ответ 2

    Ответ 2:
    { "attr": "name", "desc": 0 }

    Где:

    • attr — поле сортировки. Допустимые значения:
      • name — имя клиента
      • status — статус клиента
      • type — тип клиента
    • desc — направление сортировки. Допустимые значения:
      • 0 — по возрастанию
      • 1 — по убыванию
  • take (для постраничного вывода) — сколько клиентов вернуть (по умолчанию 20)

  • skip (для постраничного вывода) — сколько клиентов пропустить (по умолчанию 0)

Ответ

Ответ 3

Ответ 3:
{ "totalCount": 82, "customers": [ { "id": 65, "name": "Good company", "status": "company", "type": "client", "responsible_user_id": 20, "employees_count": "50", "comment": "", "country": "GB", "city": "London", "address": "", "zip": "", "website": "", "created_at": "2020-04-28 05:47:47", "created_by": 20, "lead_source": "manual", "lead_created_at": null, "lead_created_by": null, "phones": [ { "type": "work", "phone": "+44123456789" } ], "contacts": [ { "type": "email_work", "value": "good_company@example.com" } ], "labels": [ { "id": 12, "label": "Best clients" } ] } ] }

Где:

  • totalCount — общее кол-во клиентов (с учётом строки поиска и фильтра)
  • customers — массив клиентов (с учётом постраничного вывода). Каждый элемент массива содержит следующие параметры:
    • id — идентификатор клиента
    • name — имя клиента
    • status — статус клиента. Возможные значения:
      • individual — физ. лицо
      • company — компания
    • type — тип клиента. Возможные значения:
      • potential — потенциальный клиент
      • client — клиент
      • reseller — реселлер
      • partner — партнёр
    • responsible_user_id — ответственный (идентификатор пользователя)
    • employees_count — кол-во сотрудников. Возможные значения:
      • 50 — меньше 50
      • 50_250 — 50 – 250
      • 250_500 — 250 – 500
    • comment — описание клиента
    • country — страна клиента. Двухбуквенный код (RU, US и т.д.)
    • city — город клиента
    • address — адрес клиента
    • zip — почтовый индекс
    • website — веб-сайт клиента
    • created_at — дата и время создания клиента (в формате YYYY-MM-DD HH:mm:ss)
    • created_by — кем был создан (идентификатор пользователя)
    • lead_source — источник. Возможные значения:
      • manual — вручную
      • call_incoming — входящий звонок
      • call_outgoing — исходящий звонок
      • form — форма
    • lead_created_at — дата и время создания лида, если клиент был создан из лида (в формате YYYY-MM-DD HH:mm:ss)
    • lead_created_by — кем был создан лид, если клиент был создан из лида (идентификатор пользователя)
    • phones — массив телефонных номеров клиента. Каждый номер содержит следующие поля:
      • type — тип номера. Возможные значения:
        • work — рабочий
        • personal — личный
      • phone — значение номера
    • contacts — массив контактов клиента. Каждый контакт содержит следующие поля:
      • type — тип контакта. Возможные значения:
        • email_work — рабочий e-mail
        • email_personal — личный e-mail
        • skype
        • telegram
        • viber
        • whatsapp
      • value — значение контакта
    • labels — массив тегов, назначенных клиенту. Каждый тег содержит следующие поля:
      • id — идентификатор тега
      • label — значение тега

get /v1/zcrm/customers/<c_id>

Возвращает клиента по его ID

Параметры адреса

  • c_id — идентификатор клиента

Ответ

Ответ

Ответ:
{ "id": 65, "name": "Good Company", "status": "company", "type": "client", "responsible_user_id": 20, "employees_count": "50", "comment": "", "country": "GB", "city": "London", "address": "", "zip": "", "website": "", "created_at": "2020-04-28 05:47:47", "created_by": 20, "lead_source": "manual", "lead_created_at": null, "lead_created_by": null, "phones": [ { "type": "work", "phone": "+44123456789" } ], "contacts": [ { "type": "email_work", "value": "good_company@example.com" } ], "labels": [ { "id": 12, "label": "Best clients" } ], "custom_properties": [ { "id": 18, "key": "loyalty", "title": "Loyalty", "value": "high" } ] }

Где:

  • id — идентификатор клиента
  • name — имя клиента
  • status — статус клиента. Возможные значения:
    • individual — физ. лицо
    • company — компания
  • type — тип клиента. Возможные значения:
    • potential — потенциальный клиент
    • client — клиент
    • reseller — реселлер
    • partner — партнёр
  • responsible_user_id — ответственный (идентификатор пользователя)
  • employees_count — кол-во сотрудников. Возможные значения:
    • 50 — меньше 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • comment — описание клиента
  • country — страна клиента. Двухбуквенный код (RU, US и т.д.)
  • city — город клиента
  • address — адрес клиента
  • zip — почтовый индекс
  • website — веб-сайт клиента
  • created_at — дата и время создания клиента (в формате YYYY-MM-DD HH:mm:ss)
  • created_by — кем был создан (идентификатор пользователя)
  • lead_source — источник. Возможные значения:
    • manual — вручную
    • call_incoming — входящий звонок
    • call_outgoing — исходящий звонок
    • form — форма
  • lead_created_at — дата и время создания лида, если клиент был создан из лида (в формате YYYY-MM-DD HH:mm:ss)
  • lead_created_by — кем был создан лид, если клиент был создан из лида (идентификатор пользователя)
  • phones — массив телефонных номеров клиента. Каждый номер содержит следующие поля:
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
    • phone — значение номера
  • contacts — массив контактов клиента. Каждый контакт содержит следующие поля:
    • type — тип контакта. Возможные значения:
      • email_work — рабочий e-mail
      • email_personal — личный e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — значение контакта
  • labels — массив тегов, назначенных клиенту. Каждый тег содержит следующие поля:
    • id — идентификатор тега
    • label — значение тега
  • custom_properties — массив дополнительных свойств. Каждое дополнительное свойство содержит следующие поля:
    • id — идентификатор дополнительного свойства
    • key — уникальное имя дополнительного свойства
    • title — отображаемое название дополнительного свойства
    • value — значение дополнительного свойства

post /v1/zcrm/customers

Создаёт нового клиента с указанными данными

Параметры

  • customer — данные нового клиента. Структура клиента:

Ответ 1

Ответ 1:
{ "name": "Good Company", "status": "company", "type": "client", "responsible_user_id": 20, "employees_count": "50", "comment": "", "country": "GB", "city": "London", "address": "", "zip": "", "website": "", "lead_source": "manual", "phones": [ { "type": "work", "phone": "+44123456789" } ], "contacts": [ { "type": "email_work", "value": "good_company@example.com" } ], "labels": [ { "id": 12 }, { "id": 13 } ], "custom_properties": [ { "id": 18, "value": "high" } ] }

Где:

  • name — имя клиента
  • status — статус клиента. Допустимые значения:
    • individual — физ. лицо
    • company — компания
  • type — тип клиента. Допустимые значения:
    • potential — потенциальный клиент
    • client — клиент
    • reseller — реселлер
    • partner — партнёр
  • responsible_user_id — ответственный (идентификатор пользователя)
  • employees_count — кол-во сотрудников. Допустимые значения:
    • 50 — меньше 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • comment — описание клиента
  • country — страна клиента. Двухбуквенный код (RU, US и т.д.)
  • city — город клиента
  • address — адрес клиента
  • zip — почтовый индекс
  • website — веб-сайт клиента
  • lead_source — источник. Допустимые значения:
    • manual — вручную
    • call_incoming — входящий звонок
    • call_outgoing — исходящий звонок
    • form — форма
  • phones — массив телефонных номеров. Каждый номер должен содержать следующие поля:
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
    • phone — значение номера
  • contacts — массив контактов клиента. Каждый контакт должен содержать следующие поля:
    • type — тип контакта. Возможные значения:
      • email_work — рабочий e-mail
      • email_personal — личный e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — значение контакта
  • labels — массив тегов, добавляемых к клиенту. Каждый элемент должен содержать:
    • id — идентификатор существующего тега
  • custom_properties — массив дополнительных свойств. Каждый элемент должен содержать:
    • id — идентификатор дополнительного свойства либо:
    • key — уникальное имя дополнительного свойства
    • value — значение дополнительного свойства

Ответ

Ответ 2

Ответ 2:
{ "id": 65 }

Где:

  • id — идентификатор созданного клиента

put /v1/zcrm/customers/<c_id>

Обновляет существующего клиента с указанным ID

Параметры адреса

  • c_id — идентификатор клиента

Параметры

  • customer — новые данные клиента. Структура клиента:

Ответ

Ответ:
{ "name": "Good Company", "status": "company", "type": "client", "responsible_user_id": 20, "employees_count": "50", "comment": "", "country": "GB", "city": "London", "address": "", "zip": "", "website": "", "lead_source": "manual", "phones": [ { "type": "work", "phone": "+44123456789" } ], "contacts": [ { "type": "email_work", "value": "good_company@example.com" } ], "labels": [ { "id": 12 }, { "id": 13 } ], "custom_properties": [ { "id": 18, "value": "high" } ] }

Где:

  • name — имя клиента
  • status — статус клиента. Допустимые значения:
    • individual — физ. лицо
    • company — компания
  • type — тип клиента. Допустимые значения:
    • potential — потенциальный клиент
    • client — клиент
    • reseller — реселлер
    • partner — партнёр
  • responsible_user_id — ответственный (идентификатор пользователя)
  • employees_count — кол-во сотрудников. Допустимые значения:
    • 50 — меньше 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • comment — описание клиента
  • country — страна клиента. Двухбуквенный код (RU, US и т.д.)
  • city — город клиента
  • address — адрес клиента
  • zip — почтовый индекс
  • website — веб-сайт клиента
  • lead_source — источник. Допустимые значения:
    • manual — вручную
    • call_incoming — входящий звонок
    • call_outgoing — исходящий звонок
    • form — форма
  • phones — массив телефонных номеров. Каждый номер должен содержать следующие поля:
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
    • phone — значение номера
  • contacts — массив контактов клиента. Каждый контакт должен содержать следующие поля:
    • type — тип контакта. Возможные значения:
      • email_work — рабочий e-mail
      • email_personal — личный e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — значение контакта
  • labels — массив тегов, добавляемых к клиенту. Каждый элемент должен содержать:
    • id — идентификатор существующего тега
  • custom_properties — массив дополнительных свойств. Каждый элемент должен содержать:
    • id — идентификатор дополнительного свойства либо:
    • key — уникальное имя дополнительного свойства
    • value — значение дополнительного свойства

delete /v1/zcrm/customers/<c_id>

Удаляет клиента по его ID

Параметры адреса

  • c_id — идентификатор клиента

Теги

get /v1/zcrm/customers/labels

Возвращает список всех тегов и статистику по ним

Ответ

Ответ

Ответ:
{ "totalCount": 5, "labels": [ { "id": 12, "label": "Best clients", "count": 14 } ] }

Где:

  • totalCount — общее кол-во тегов в системе
  • labels — массив тегов. Каждый тег имеет следующие поля:
    • id — идентификатор тега
    • label — имя тега
    • count — кол-во клиентов и лидов, использующих данный тег

post /v1/zcrm/customers/labels

Создаёт новый тег

Параметры

  • name — имя нового тега

Ответ

Ответ

Ответ:
{ "id": 13, "label": "Very best clients", "count": 0 }

Где:

  • id — идентификатор созданного тега
  • label — имя тега
  • count — кол-во клиентов и лидов, использующих данный тег (здесь всегда равен 0)

delete /v1/zcrm/customers/labels/<l_id>

Удаляет тег из системы по его ID

Параметры адреса

  • l_id — идентификатор тега

Дополнительные свойства

get /v1/zcrm/customers/custom-properties

Возвращает все дополнительные свойства

Ответ

Ответ

Ответ:
{ "totalCount": 8, "customProperties": [ { "id": 18, "key": "loyalty", "title": "Loyalty" } ] }

Где:

  • totalCount — общее кол-во дополнительных свойств.
  • customProperties — массив дополнительных свойств. Каждое дополнительное свойство содержит следующие поля:
    • id — идентификатор дополнительного свойства
    • key — уникальное имя дополнительного свойства
    • title — отображаемое название дополнительного свойства

Лента клиента

get /v1/zcrm/customers/<c_id>/feed

Возвращает записи в ленте клиента

Параметры адреса

  • c_id — идентификатор клиента

Ответ

Ответ

Ответ:
{ "totalCount": 17, "items": [ { "id": 37825, "type": "note", "content": "Call to the client", "time": "2020-06-08 06:55:02", "user_id": 20, "user_name": "John Beam", "call_id": null, "call_type": null, "call_status": null, "call_phone": null, "call_duration": null, "call_record": null, "call_contact_name": null, "attached_files": [ { "file_id": 576, "original_filename": "document.doc" } ] } ] }

Где:

  • totalCount — общее кол-во записей
  • items — массив записей. Каждая запись содержит следующие атрибуты:
    • id — идентификатор записи
    • type — тип записи. Возможные значения:
      • event — событие
      • note — текстовая заметка
      • call — звонок
    • content — содержимое записи. Если тип записи — заметка, этот атрибут содержит текстовое содержание заметки. Если тип записи — событие, этот атрибут содержит идентификатор события, например:
      • CUSTOMER_CREATED — событие создания клиента
      • LEAD_CREATED — событие создания лида
    • time — время записи в формате YYYY-MM-DD hh:mm:ss
    • user_id — идентификатор пользователя, создавшего запись
    • user_name — имя пользователя, создавшего запись
    • call_id — идентификатор звонка (если тип записи — звонок)
    • call_type — тип звонка. Возможные значения:
      • incoming — входящий звонок
      • outgoing — исходящий звонок
    • call_status — статус звонка. Возможные значения:
      • answer — успешный звонок
      • noanswer — без ответа
      • cancel — отменён
      • busy — занято
      • failed — не удался
    • call_phone — телефонный номер звонка
    • call_duration — длительность звонка в секундах
    • call_record — включена ли запись звонка
    • call_contact_name — имя контакта звонка
    • attached_files — массив прикреплённых к заметке файлов (если тип записи — заметка). Каждый элемент массива содержит следующие атрибуты:
      • file_id — идентификатор файла
      • original_filename — оригинальное имя файла

post /v1/zcrm/customers/<c_id>/feed

Добавляет текстовую заметку в ленту клиента с возможностью прикрепления файлов

Параметры адреса

  • c_id — идентификатор клиента

Параметры

  • content — текстовое содержание заметки
  • files — массив прикрепляемых файлов

Ответ

Ответ

Ответ:
{ "id": 37825, "type": "note", "content": "Call to the client", "time": "2020-06-08 06:55:02", "user_id": 20, "user_name": "John Beam", "attached_files": [ { "file_id": 576, "original_filename": "document.doc" } ] }

Где:

  • id — идентификатор записи
  • type — тип записи. В данном случае равен:
    • note — текстовая заметка
  • content — текстовое содержание заметки
  • time — время записи в формате YYYY-MM-DD hh:mm:ss
  • user_id — идентификатор пользователя, создавшего запись
  • user_name — имя пользователя, создавшего запись
  • attached_files — массив прикреплённых к заметке файлов (если тип записи — заметка). Каждый элемент массива содержит следующие атрибуты:
    • file_id — идентификатор файла
    • original_filename — оригинальное имя файла

put /v1/zcrm/customers/<c_id>/feed/<i_id>

Обновляет содержимое существующей текстовой заметки по её ID

Параметры адреса

  • c_id — идентификатор клиента
  • i_id — идентификатор текстовой заметки

Параметры

  • content — новый текст заметки

delete /v1/zcrm/customers/<c_id>/feed/<i_id>

Удаляет заметку в ленте клиента по её ID

Параметры адреса

  • c_id — идентификатор клиента
  • i_id — идентификатор текстовой заметки

Сотрудники

get /v1/zcrm/customers/<c_id>/employees

Возвращает список сотрудников клиента по его ID

Параметры адреса

  • c_id — идентификатор клиента

Ответ

Ответ

Ответ:
{ "totalCount": 5, "employees": [ { "id": 23, "customer_id": 11, "name": "Steven Knight", "position": "manager", "position_title": "", "comment": "", "phones": [ { "type": "work", "phone": "+44123456789" } ], "contacts": [ { "type": "email_work", "value": "s.knight@example.com" } ] } ] }

Где:

  • totalCount — кол-во сотрудников клиента
  • employees — массив сотрудников клиента. Каждый элемент массива содержит следующие атрибуты:
    • id — идентификатор сотрудника
    • customer_id — идентификатор клиента, к которому привязан сотрудник
    • name — имя сотрудника
    • position — должность сотрудника. Возможные значения:
      • ceo — ген. директор
      • director — директор
      • manager — менеджер
      • sales_manager — менеджер по продажам
      • hr — HR
      • support — поддержка
      • custom — произвольная
    • position_title — наименование произвольной должности (для position = custom)
    • comment — описание сотрудника
    • phones — массив телефонных номеров сотрудника. Каждый номер содержит следующие поля:
      • type — тип номера. Возможные значения:
        • work — рабочий
        • personal — личный
      • phone — значение номера
    • contacts — массив контактов сотрудника. Каждый контакт содержит следующие поля:
      • type — тип контакта. Возможные значения:
        • email_work — рабочий e-mail
        • email_personal — личный e-mail
        • skype
        • telegram
        • viber
        • whatsapp
      • value — значение контакта

get /v1/zcrm/customers/<c_id>/employees/<e_id>

Возвращает сотрудника клиента по его ID

Параметры адреса

  • c_id — идентификатор клиента
  • e_id — идентификатор сотрудника

Ответ

Ответ

Ответ:
{ "id": 23, "customer_id": 11, "name": "Steven Knight", "position": "manager", "position_title": "", "comment": "", "phones": [ { "type": "work", "phone": "+44123456789" } ], "contacts": [ { "type": "email_work", "value": "s.knight@example.com" } ] }

Где:

  • id — идентификатор сотрудника
  • customer_id — идентификатор клиента, к которому привязан сотрудник
  • name — имя сотрудника
  • position — должность сотрудника. Возможные значения:
    • ceo — ген. директор
    • director — директор
    • manager — менеджер
    • sales_manager — менеджер по продажам
    • hr — HR
    • support — поддержка
    • custom — произвольная
  • position_title — наименование произвольной должности (для position = custom)
  • comment — описание сотрудника
  • phones — массив телефонных номеров сотрудника. Каждый номер содержит следующие поля:
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
    • phone — значение номера
  • contacts — массив контактов сотрудника. Каждый контакт содержит следующие поля:
    • type — тип контакта. Возможные значения:
      • email_work — рабочий e-mail
      • email_personal — личный e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — значение контакта

post /v1/zcrm/customers/<c_id>/employees

Создаёт и сохраняет нового сотрудника для заданного клиента

Параметры адреса

  • c_id — идентификатор клиента

Параметры

  • employee — данные нового сотрудника. Структура сотрудника:

Ответ 1

Ответ 1:
{ "name": "Steven Knight", "position": "manager", "position_title": "", "comment": "", "phones": [ { "type": "work", "phone": "+44123456789" } ], "contacts": [ { "type": "email_work", "value": "s.knight@example.com" } ] }

Где:

  • name — имя сотрудника
  • position — должность сотрудника. Допустимые значения:
    • ceo — ген. директор
    • director — директор
    • manager — менеджер
    • sales_manager — менеджер по продажам
    • hr — HR
    • support — поддержка
    • custom — произвольная
  • position_title — наименование произвольной должности (для position = custom)
  • comment — описание сотрудника
  • phones — массив телефонных номеров сотрудника. Каждый номер содержит следующие поля:
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
    • phone — значение номера
  • contacts — массив контактов сотрудника. Каждый контакт содержит следующие поля:
    • type — тип контакта. Возможные значения:
      • email_work — рабочий e-mail
      • email_personal — личный e-mail
      • skype
      • telegram
      • viber
      • whatsapp
        • value — значение контакта

Ответ

Ответ 2

Ответ 2:
{ "id": 23 }

Где:

  • id — идентификатор нового сотрудника

put /v1/zcrm/customers/<c_id>/employees/<e_id>

Обновляет существующего сотрудника с указанным ID

Параметры адреса

  • c_id — идентификатор клиента
  • e_id — идентификатор сотрудника

Параметры

  • employee — новые данные сотрудника. Структура:

Ответ

Ответ:
{ "name": "Steven Knight", "position": "manager", "position_title": "", "comment": "", "phones": [ { "type": "work", "phone": "+44123456789" } ], "contacts": [ { "type": "email_work", "value": "john@example.com" } ] }

Где:

  • name — имя сотрудника
  • position — должность сотрудника. Допустимые значения:
    • ceo — ген. директор
    • director — директор
    • manager — менеджер
    • sales_manager — менеджер по продажам
    • hr — HR
    • support — поддержка
    • custom — произвольная
  • position_title — наименование произвольной должности (для position = custom)
  • comment — описание сотрудника
  • phones — массив телефонных номеров сотрудника. Каждый номер содержит следующие поля:
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
    • phone — значение номера
  • contacts — массив контактов сотрудника. Каждый контакт содержит следующие поля:
    • type — тип контакта. Возможные значения:
      • email_work — рабочий e-mail
      • email_personal — личный e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — значение контакта

delete /v1/zcrm/customers/<c_id>/employees/<e_id>

Удаляет сотрудника по его ID

Параметры адреса

  • c_id — идентификатор клиента
  • e_id — идентификатор сотрудника

Задачи

get /v1/zcrm/events

Возвращает список задач

Параметры

  • search (необязательный) — строка поиска. Поиск осуществляется комбинированно по:
    • названию задач
    • описанию задач
    • комментарию к завершённым задачам
  • filter (необязательный) — фильтр задач. Структура фильтра:

Ответ 1

Ответ 1:
{ "responsible": 456, "createdBy": 456, "start": "2020-06-03 02:56:00", "end": "2020-06-12 02:56:00", "completed": 1 }

Где:

  • responsible — ответственный (идентификатор пользователя)
  • createdBy — создал (идентификатор пользователя)
  • start — показать задачи, начинающиеся после указанного времени (в формате YYYY-MM-DD hh:mm:ss)
  • end — показать задачи, заканчивающиеся до указанного времени (в формате YYYY-MM-DD hh:mm:ss)
  • completed — установите в 1, чтобы показать в том числе завершённые задачи
  • sort (необязательный) — сортировка задач. Структура параметра:

Ответ 2

Ответ 2:
{ "attr": "start", "desc": 0 }

Где:

  • attr — поле сортировки. Допустимые значения:
    • responsible — ответственный пользователь
    • title — название задачи
    • start — время начала задачи
    • end — время окончания задачи
  • desc — направление сортировки. Допустимые значения:
    • 0 — по возрастанию
    • 1 — по убыванию

Ответ

Ответ 3

Ответ 3:
{ "totalCount": 4, "events": [ { "id": 40, "type": "task", "title": "Create text for Good Company", "description": "", "start": "2020-05-26 09:00:00", "end": "2020-05-26 12:30:00", "allDay": false, "created_by": 234, "responsible_user": 234, "phone": "", "call_done": 0, "completed": 0, "completed_comment": "", "members": [234, 235], "customers": [ { "id": 3486, "name": "Good Company", "status": "company", "type": "client", "lead_source": "manual", "lead_status": "not_processed", "contact_type": "customer" } ] } ] }

Где:

  • totalCount — общее кол-во задач
  • events — массив задач. Каждая задача содержит следующие атрибуты:
    • id — идентификатор задачи
    • type — тип задачи. Возможные значения:
      • task — задача
      • call — звонок
    • title — название задачи
    • description — описание задачи (в формате Quill Delta)
    • start — дата и время начала задачи (в формате YYYY-MM-DD hh:mm:ss)
    • end — дата и время окончания задачи (в формате YYYY-MM-DD hh:mm:ss)
    • allDay — задача на весь день (true или false) — дата определяется параметром start
    • created_by — идентификатор пользователя, создавшего задачу
    • responsible_user — идентификатор пользователя, ответственного за задачу
    • phone — номер телефона для звонка (если тип задачи — звонок)
    • call_done — указывает, был ли осуществлён звонок
    • completed — указывает, что задача помечена как завершённая
    • completed_comment — комментарий к завершённой задаче
    • members — массив участников задачи (только идентификаторы пользователей)
    • customers — массив клиентов и лидов, прикреплённых к задаче. Каждый элемент массива содержит следующие поля:
      • id — идентификатор клиента / лида
      • name — имя клиента / лида
      • status — статус клиента. Возможные значения:
        • individual — физ. лицо
        • company — компания
      • type — тип клиента. Возможные значения:
        • potential — потенциальный клиент
        • client — клиент
        • reseller — реселлер
        • partner — партнёр
      • lead_source — источник лида. Возможные значения:
        • manual — вручную
        • call_incoming — входящий звонок
        • call_outgoing — исходящий звонок
        • form — форма
      • lead_status — статус лида. Возможные значения:
        • not_processed — не обработан
        • in_progress — в обработке
        • finished — завершён
      • contact_type — тип контакта. Возможные значения:
        • customer — клиент
        • lead — лид

get /v1/zcrm/events/<event_id>

Возвращает задачу по её ID

Ответ

Ответ

Ответ:
{ "id": 40, "type": "task", "title": "Create text for Good Company", "description": "", "start": "2020-05-26 09:00:00", "end": "2020-05-26 12:30:00", "allDay": false, "created_by": 234, "responsible_user": 234, "phone": "", "call_done": 0, "completed": 0, "completed_comment": "", "members": [234, 235], "customers": [ { "id": 3486, "name": "Good Company", "status": "company", "type": "client", "lead_source": "manual", "lead_status": "not_processed", "contact_type": "customer" } ] }

Где:

  • id — идентификатор задачи
  • type — тип задачи. Возможные значения:
    • task — задача
    • call — звонок
  • title — название задачи
  • description — описание задачи (в формате Quill Delta)
  • start — дата и время начала задачи (в формате YYYY-MM-DD hh:mm:ss)
  • end — дата и время окончания задачи (в формате YYYY-MM-DD hh:mm:ss)
  • allDay — задача на весь день (true или false)
  • created_by — идентификатор пользователя, создавшего задачу
  • responsible_user — идентификатор пользователя, ответственного за задачу
  • phone — номер телефона для звонка (если тип задачи — звонок)
  • call_done — указывает, был ли осуществлён звонок
  • completed — указывает, что задача помечена как завершённая
  • completed_comment — комментарий к завершённой задаче
  • members — массив участников задачи (только идентификаторы пользователей)
  • customers — массив клиентов и лидов, прикреплённых к задаче. Каждый элемент массива содержит следующие поля:
    • id — идентификатор клиента / лида
    • name — имя клиента / лида
    • status — статус клиента. Возможные значения:
      • individual — физ. лицо
      • company — компания
    • type — тип клиента. Возможные значения:
      • potential — потенциальный клиент
      • client — клиент
      • reseller — реселлер
      • partner — партнёр
    • lead_source — источник лида. Возможные значения:
      • manual — вручную
      • call_incoming — входящий звонок
      • call_outgoing — исходящий звонок
      • form — форма
    • lead_status — статус лида. Возможные значения:
      • not_processed — не обработан
      • in_progress — в обработке
      • finished — завершён
    • contact_type — тип контакта. Возможные значения:
      • customer — клиент
      • lead — лид

post /v1/zcrm/events

Создаёт новую задачу с указанными данными

Параметры

  • event — данные новой задачи. Структура:

Ответ 1

Ответ 1:
{ "type": "task", "title": "Create text for Good Company", "description": "", "start": "2020-05-26 09:00:00", "end": "2020-05-26 12:30:00", "allDay": false, "responsible_user": 234, "phone": "", "members": [234, 235], "customers": [3486, 3487] }

Где:

  • type — тип задачи. Допустимые значения:
    • task — задача
    • call — звонок
  • title — название задачи
  • description — описание задачи (в формате Quill Delta)
  • start — дата и время начала задачи (в формате YYYY-MM-DD hh:mm:ss)
  • end — дата и время окончания задачи (в формате YYYY-MM-DD hh:mm:ss)
  • allDay — задача на весь день (true или false)
  • responsible_user — идентификатор пользователя, ответственного за задачу
  • phone — номер телефона для звонка (если тип задачи — звонок)
  • members — массив участников задачи (только идентификаторы пользователей)
  • customers — массив прикреплённых клиентов и лидов (только идентификаторы клиентов и лидов)

Ответ

Ответ 2

Ответ 2:
{ "id": 7216 }

Где:

  • id — идентификатор созданной задачи

put /v1/zcrm/events/<event_id>

Обновляет существующую задачу с указанным ID

Параметры

  • event — новые данные задачи. Структура:

Ответ

Ответ:
{ "title": "Create text for Good Company", "description": "", "start": "2020-05-26 09:00:00", "end": "2020-05-26 12:30:00", "allDay": false, "created_by": 234, "responsible_user": 234, "phone": "", "members": [234, 235], "customers": [3486, 3487] }

Где:

  • title — название задачи
  • description — описание задачи (в формате Quill Delta)
  • start — дата и время начала задачи (в формате YYYY-MM-DD hh:mm:ss)
  • end — дата и время окончания задачи (в формате YYYY-MM-DD hh:mm:ss)
  • allDay — задача на весь день (true или false)
  • responsible_user — идентификатор пользователя, ответственного за задачу
  • phone — номер телефона для звонка (если тип задачи — звонок)
  • members — массив участников задачи (только идентификаторы пользователей)
  • customers — массив прикреплённых клиентов и лидов (только идентификаторы клиентов и лидов)

post /v1/zcrm/events/<event_id>

Завершает (закрывает) задачу

Параметры

  • comment (необязательный) — комментарий

delete /v1/zcrm/events/<event_id>

Удаляет задачу по её ID

Лиды

get /v1/zcrm/leads

Возвращает список лидов

Параметры

  • search (необязательный) — строка поиска. Поиск осуществляется комбинированно по:
    • имени лида
    • номерам телефонов лида
    • описанию лида
    • адресу и почтовому индексу
    • веб-сайту
    • адресам e-mail
    • мессенджерам
  • filter (необязательный) — фильтр лидов. Структура фильтра:

Ответ 1

Ответ 1:
{ "source": "call_incoming", "responsible": 32, "label": 12, "createdAfter": "2020-06-11 12:24:00", "createdBefore": "2020-06-26 12:24:00" }

Где:

  • source — источник лида. Допустимые значения:
    • manual — добавлен вручную
    • call_incoming — входящий звонок
    • call_outgoing — исходящий звонок
    • form — форма обратной связи
  • responsible — ответственный (идентификатор пользователя). Параметр также допускает специальные значения:
    • null — вернёт все назначенные кому-либо лиды
    • –1 — вернёт неразобранные лиды
    • –2 — вернёт все лиды (и назначенные, и неразобранные)
  • label — тег (идентификатор)
  • createdAfter — показать только лиды, созданные после указанного времени (формат: YYYY-MM-DD hh:mm:ss)
  • createdBefore — показать только лиды, созданные до указанного времени (формат: YYYY-MM-DD hh:mm:ss)

    Любой из параметров фильтра может быть опущен, т.е. не является обязательным.

  • sort (необязательный) — сортировка лидов. Структура параметра:

Ответ 2

Ответ 2:
{ "attr": "name", "desc": 0 }

Где:

  • attr — поле сортировки. Допустимые значения:
    • name — имя лида
    • lead_source — источник лида
    • lead_status — статус лида
    • responsible_user_id — ответственный пользователь
    • lead_created_at — время создания лида
  • desc — направление сортировки. Допустимые значения:
    • 0 — по возрастанию
    • 1 — по убыванию
      • take (для постраничного вывода) — сколько лидов вернуть (по умолчанию 20)
      • skip (для постраничного вывода) — сколько лидов пропустить (по умолчанию 0)

Ответ

Ответ 3

Ответ 3:
{ "totalCount": 100, "uncategorizedCount": 10, "leads": [ { "id": 3486, "name": "Good Company", "responsible_user_id": 234, "employees_count": "50", "comment": "", "country": "GB", "city": "London", "address": "", "zip": "", "website": "", "lead_status": "not_processed", "lead_source": "manual", "lead_created_at": "2020-04-28 05:47:47", "lead_created_by": 234, "phones": [ { "type": "work", "phone": "+44123456789" } ], "contacts": [ { "type": "email_work", "value": "good_company@example.com" } ], "labels": [ { "id": 22, "label": "Best clients" } ] } ] }

Где:

  • totalCount — общее кол-во найденных лидов (с учётом строки поиска и фильтра)
  • uncategorizedCount — общее кол-во неразобранных лидов (с учётом поиска и фильтра)
  • leads — массив лидов (с учётом постраничного вывода). Каждый элемент массива содержит следующие параметры:
    • id — идентификатор лида
    • name — имя лида
    • responsible_user_id — ответственный (идентификатор пользователя)
    • employees_count — кол-во сотрудников. Возможные значения:
      • 50 — меньше 50
      • 50_250 — 50 – 250
      • 250_500 — 250 – 500
    • comment — описание лида
    • country — страна лида. Двухбуквенный код (RU, US и т.д.)
    • city — город лида
    • address — адрес лида
    • zip — почтовый индекс
    • website — веб-сайт лида
    • lead_status — статус лида. Возможные значения:
      • not_processed — не обработан
      • in_progress — в обработке
      • finished — завершён
    • lead_source — источник лида. Возможные значения:
      • manual — вручную
      • call_incoming — входящий звонок
      • call_outgoing — исходящий звонок
      • form — форма
    • lead_created_at — дата и время создания лида (в формате YYYY-MM-DD HH:mm:ss)
    • lead_created_by — кем был создан лид (идентификатор пользователя)
    • phones — массив телефонных номеров лида. Каждый номер содержит следующие поля:
      • type — тип номера. Возможные значения:
        • work — рабочий
        • personal — личный
      • phone — значение номера
    • contacts — массив контактов лида. Каждый контакт содержит следующие поля:
      • type — тип контакта. Возможные значения:
        • email_work — рабочий e-mail
        • email_personal — личный e-mail
        • skype
        • telegram
        • viber
        • whatsapp
      • value — значение контакта
    • labels — массив тегов, назначенных лиду. Каждый тег содержит следующие поля:
      • id — идентификатор тега
      • label — значение тега

get /v1/zcrm/leads/<lead_id>

Возвращает лид по его ID

Ответ

Ответ

Ответ:
{ "id": 3486, "name": "Good Company", "responsible_user_id": 234, "employees_count": "50", "comment": "", "country": "GB", "city": "London", "address": "", "zip": "", "website": "", "lead_status": "not_processed", "lead_source": "manual", "lead_created_at": "2020-04-28 05:47:47", "lead_created_by": 234, "phones": [ { "type": "work", "phone": "+44123456789" } ], "contacts": [ { "type": "email_work", "value": "good_company@example.com" } ], "labels": [ { "id": 22, "label": "Лучшие клиенты" } ], "custom_properties": [ { "id": 12, "key": "loyalty", "title": "Лояльность", "value": "high" } ] }

Где:

  • id — идентификатор лида
  • name — имя лида
  • responsible_user_id — ответственный (идентификатор пользователя)
  • employees_count — кол-во сотрудников. Возможные значения:
    • 50 — меньше 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • comment — описание лида
  • country — страна лида. Двухбуквенный код (RU, US и т.д.)
  • city — город лида
  • address — адрес лида
  • zip — почтовый индекс
  • website — веб-сайт лида
  • lead_status — статус лида. Возможные значения:
    • not_processed — не обработан
    • in_progress — в обработке
    • finished — завершён
  • lead_source — источник лида. Возможные значения:
    • manual — вручную
    • call_incoming — входящий звонок
    • call_outgoing — исходящий звонок
    • form — форма
  • lead_created_at — дата и время создания лида (в формате YYYY-MM-DD HH:mm:ss)
  • lead_created_by — кем был создан лид (идентификатор пользователя)
  • phones — массив телефонных номеров лида. Каждый номер содержит следующие поля:
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
    • phone — значение номера
  • contacts — массив контактов лида. Каждый контакт содержит следующие поля:
    • type — тип контакта. Возможные значения:
      • email_work — рабочий e-mail
      • email_personal — личный e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — значение контакта
  • labels — массив тегов, назначенных лиду. Каждый тег содержит следующие поля:
    • id — идентификатор тега
    • label — значение тега

post /v1/zcrm/leads

Создаёт новый лид с указанными данными

Параметры

  • convert — сконвертировать лид в клиента. Допустимые значения:
    • 0 — не конвертировать, создать лид
    • 1 — создать клиента
    • 2 — некачественный (операция будет отменена — ни лид, ни клиент не будут созданы)
  • lead — данные нового лида. Структура лида:

Ответ 1

Ответ 1:
{ "name": "Good Company", "responsible_user_id": 234, "employees_count": "50", "comment": "", "country": "GB", "city": "London", "address": "", "zip": "", "website": "", "lead_source": "manual", "lead_status": "in_progress", "phones": [ { "type": "work", "phone": "+44123456789" } ], "contacts": [ { "type": "email_work", "value": "good_company@example.com" } ], "labels": [ { "id": 22 }, { "id": 23 } ], "custom_properties": [ { "id": 12, "value": "high" } ] }

Где:

  • name — имя лида
  • responsible_user_id — ответственный (идентификатор пользователя)
  • employees_count — кол-во сотрудников. Допустимые значения:
    • 50 — меньше 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • comment — описание лида
  • country — страна лида. Двухбуквенный код (RU, US и т.д.)
  • city — город лида
  • address — адрес лида
  • zip — почтовый лида
  • website — веб-сайт лида
  • lead_source — источник лида. Допустимые значения:
    • manual — вручную
    • call_incoming — входящий звонок
    • call_outgoing — исходящий звонок
    • form — форма
  • lead_status — статус лида. Допустимые значения:
    • not_processed — не обработан
    • in_progress — в обработке
    • finished — завершён
  • phones — массив телефонных номеров. Каждый номер должен содержать следующие поля:
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
    • phone — значение номера
  • contacts — массив контактов лида. Каждый контакт должен содержать следующие поля:
    • type — тип контакта. Возможные значения:
      • email_work — рабочий e-mail
      • email_personal — личный e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — значение контакта
  • labels — массив тегов, добавляемых к лиду. Каждый элемент должен содержать:
    • id — идентификатор существующего тега
  • custom_properties — массив дополнительных свойств. Каждый элемент должен содержать:
    • id — идентификатор дополнительного свойства либо:
    • key — уникальное имя дополнительного свойства
    • value — значение дополнительного свойства

Ответ

Ответ 2

Ответ 2:
{ "id": 123 }

Где:

  • id — идентификатор созданного лида

put /v1/zcrm/leads/<lead_id>

Обновляет существующий лид с указанным ID

Параметры

  • convert — сконвертировать лид в клиента. Допустимые значения:
    • 0 — не конвертировать
    • 1 — создать клиента
    • 2 — некачественный (удалить лид)
  • lead — новые данные лида. Структура лида:

Ответ

Ответ:
{ "name": "Good Company", "responsible_user_id": 234, "employees_count": "50", "comment": "", "country": "GB", "city": "London", "address": "", "zip": "", "website": "", "lead_source": "manual", "lead_status": "in_progress", "phones": [ { "type": "work", "phone": "+44123456789" } ], "contacts": [ { "type": "email_work", "value": "good_company@example.com" } ], "labels": [ { "id": 22 }, { "id": 23 } ], "custom_properties": [ { "id": 12, "value": "high" } ] }

Где:

  • name — имя лида
  • responsible_user_id — ответственный (идентификатор пользователя)
  • employees_count — кол-во сотрудников. Допустимые значения:
    • 50 — меньше 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • comment — описание лида
  • country — страна лида. Двухбуквенный код (RU, US и т.д.)
  • city — город лида
  • address — адрес лида
  • zip — почтовый лида
  • website — веб-сайт лида
  • lead_source — источник лида. Допустимые значения:
    • manual — вручную
    • call_incoming — входящий звонок
    • call_outgoing — исходящий звонок
    • form — форма
  • lead_status — статус лида. Допустимые значения:
    • not_processed — не обработан
    • in_progress — в обработке
    • finished — завершён
  • phones — массив телефонных номеров. Каждый номер должен содержать следующие поля:
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
    • phone — значение номера
  • contacts — массив контактов лида. Каждый контакт должен содержать следующие поля:
    • type — тип контакта. Возможные значения:
      • email_work — рабочий e-mail
      • email_personal — личный e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — значение контакта
  • labels — массив тегов, добавляемых к лиду. Каждый элемент должен содержать:
    • id — идентификатор существующего тега
  • custom_properties — массив дополнительных свойств. Каждый элемент должен содержать:
    • id — идентификатор дополнительного свойства либо:
    • key — уникальное имя дополнительного свойства
    • value — значение дополнительного свойства

delete /v1/zcrm/leads/<lead_id>

Удаляет лид по его ID

Пользователи

get /v1/zcrm/users

Возвращает список пользователей

Ответ

Ответ

Ответ:
{ "totalCount": 2, "users": [ { "id": 234, "email": "john@example.com", "name": "John Beam", "group_id": 653, "is_superadmin": 1, "enabled": 1, "created_at": "2020-04-27 01:01:31", "avatar": 2457, "role": "", "status": "", "language": "en", "color": "220", "color_hex": "5678BD", "internal_number": "100", "timezone": "Europe/London", "first_day": 1, "device": "webphone", "phone_widget_location": "right", "phones": [ { "phone": "+44123456789", "type": "work" } ], "contacts": [ { "type": "email_work", "value": "ivanov@example.com" } ] } ] }

Где:

  • totalCount — общее кол-во пользователей
  • users — массив пользователей. Каждый элеиент массива содержит следующие атрибуты:
    • id — идентификатор пользователя
    • email — e-mail аккаунта пользователя
    • name — имя пользователя
    • group_id — идентификатор группы пользователя
    • is_superadmin — указывает, является ли пользователь суперадминистратором (1 либо 0)
    • enabled — разблокирован ли пользователь (1 либо 0)
    • created_at — дата и время создания пользователя (в формате YYYY-MM-DD hh:mm:ss)
    • avatar — аватар пользователя (идентификатор файла)
    • role — должность пользователя
    • status — статус пользователя
    • language — язык интерфейса пользователя. Возможные варианты:
      • de — немецкий
      • en — английский
      • es — испанский
      • pl — польский
      • ru — русский
      • ua — украинский
    • color — цвет пользователя в интерфейсе ZCRM (только значение hue — от 0 до 359)
    • color_hex — цвет пользователя в интерфейсе ZCRM (hex-представление)
    • internal_number — внутренний номер АТС пользователя
    • timezone — временная зона пользователя
    • first_day — определяет, какой день недели является началом недели:
      • 0 — воскресенье
      • 1 — понедельник
    • device — что используется для звонков. Возможные значения:
      • webphone — веб-телефон
      • softphone — сторонний софтфон
    • phone_widget_location — расположение виджета веб-телефона. Возмодные значения:
      • left — располагать виджет телефона слева
      • right — располагать виджет телефона справа
    • phones — массив телефонных номеров пользователя. Каждый номер содержит следующие поля:
      • phone — значение номера
      • type — тип номера. Возможные значения:
        • work — рабочий
        • personal — личный
    • contacts — массив контактов пользователя. Каждый контакт содержит следующие поля:
      • type — тип контакта. Возможные значения:
        • email_work — рабочий контактный e-mail
        • email_personal — личный контактный e-mail
        • skype
        • telegram
        • viber
        • whatsapp
      • value — значение контакта

get /v1/zcrm/users/<user_id>

Возвращает пользователя по его ID

Ответ

Ответ

Ответ:
{ "id": 234, "email": "john@example.com", "name": "John Beam", "group_id": 653, "is_superadmin": 1, "enabled": 1, "created_at": "2020-04-27 01:01:31", "avatar": 2457, "role": "", "status": "", "language": "en", "color": "220", "color_hex": "5678BD", "internal_number": "100", "timezone": "Europe/London", "first_day": 1, "device": "webphone", "phone_widget_location": "right", "phones": [ { "phone": "+44123456789", "type": "work" } ], "contacts": [ { "type": "email_work", "value": "simpson@example.com" } ], "pending_email_change_request": false }

Где:

  • id — идентификатор пользователя
  • email — e-mail аккаунта пользователя
  • name — имя пользователя
  • group_id — идентификатор группы пользователя
  • is_superadmin — указывает, является ли пользователь суперадминистратором (1 либо 0)
  • enabled — разблокирован ли пользователь (1 либо 0)
  • created_at — дата и время создания пользователя (в формате YYYY-MM-DD hh:mm:ss)
  • avatar — аватар пользователя (идентификатор файла)
  • role — должность пользователя
  • status — статус пользователя
  • language — язык интерфейса пользователя. Возможные варианты:
    • de — немецкий
    • en — английский
    • es — испанский
    • pl — польский
    • ru — русский
    • ua — украинский
  • color — цвет пользователя в интерфейсе ZCRM (только значение hue — от 0 до 359)
  • color_hex — цвет пользователя в интерфейсе ZCRM (hex-представление)
  • internal_number — внутренний номер АТС пользователя
  • timezone — временная зона пользователя
  • first_day — определяет, какой день недели является началом недели:
    • 0 — воскресенье
    • 1 — понедельник
  • device — что используется для звонков. Возможные значения:
    • webphone — веб-телефон
    • softphone — сторонний софтфон
  • phone_widget_location — расположение виджета веб-телефона. Возмодные значения:
    • left — располагать виджет телефона слева
    • right — располагать виджет телефона справа
  • phones — массив телефонных номеров пользователя. Каждый номер содержит следующие поля:
    • phone — значение номера
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
  • contacts — массив контактов пользователя. Каждый контакт содержит следующие поля:
    • type — тип контакта. Возможные значения:
      • email_work — рабочий контактный e-mail
      • email_personal — личный контактный e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — значение контакта
  • pending_email_change_request — если был отправлен запрос на изменение e-mail аккаунта, но запрос пока не подтверждён, этот параметр будет установлен в true

get /v1/zcrm/users/<user_id>/working-hours

Возвращает рабочие часы пользователя

Ответ

Ответ

Ответ:
{ "schedulePeriod": 7, "scheduleWorkingHours": [ { "time_start": "2020-06-15 09:00:00", "time_end": "2020-06-15 18:00:00" } ], "scheduleFixes": [ { "index": 2, "repeat_index": 1, "time_start": "2020-06-24 09:00:00", "time_end": "2020-06-24 13:00:00", "deleted": 0 } ], "customWorkingHours": [ { "time_start": "2020-06-27 11:00:00", "time_end": "2020-06-27 15:00:00" } ] }

Где:

  • schedulePeriod — периодичность расписания, как оно повторяется. Для обычной рабочей недели это 7 дней, для графика «день через день» это 2 дня и т.д.
  • scheduleWorkingHours — массив рабочих периодов. Каждый рабочий период содержит соедующие атрибуты:
    • time_start — начало рабочего времени в формате YYYY-MM-DD hh:mm:ss
    • time_end — конец рабочего времени в формате YYYY-MM-DD hh:mm:ss
  • scheduleFixes — массив изменений, внесённых в рабочие периоды, определённые в параметре scheduleWorkingHours. Каждый элемент массива содержит следующие атрибуты:
    • index — индекс элемента в scheduleWorkingHours, т.е. какой рабочий период изменён
    • repeat_index — индекс повтора расписания, в котором происходит изменение рабочего периода
    • time_start — новое начало рабочего времени в формате YYYY-MM-DD hh:mm:ss
    • time_end — новый конец рабочего времени в формате YYYY-MM-DD hh:mm:ss
    • deleted — если равен 1, рабочий период полностью удалён
  • customWorkingHours — массив пользовательских, единичных рабочих периодов. Каждый рабочий период содержит соедующие атрибуты:
    • time_start — начало рабочего времени в формате YYYY-MM-DD hh:mm:ss
    • time_end — конец рабочего времени в формате YYYY-MM-DD hh:mm:ss

get /v1/zcrm/users/groups

Возвращает группы и права пользователей каждой из них

Ответ

Ответ

Ответ:
{ "totalCount": 4, "groups": [ { "id": 45, "type": "manager", "title": "", "permissions": { "customers_create": true, "customers_edit": true, "customers_delete": true, "customers_import_export": true, "customers_view_all": false, "calendar_other_users_access": false, "calls_other_users_access": false, "leads_view": false, "leads_edit": false, "leads_delete": false, "leads_import_export": false, "team_add": false, "team_edit": false } } ] }

Где:

  • totalCount — общее кол-во групп
  • groups — массив групп. Каждая группа содержит следующие атрибуты:
    • id — идентификатор группы
    • type — тип группы. Возможные значения:
      • admin — администраторы
      • manager — менеджеры
      • chat_operator — операторы
      • trainee — стажёры
      • custom — пользовательская
    • title — имя пользовательской группы (для type = custom)
    • permissions — права пользователей группы. Администраторы имеют полный доступ, поэтому для администраторов данный объект будет пустым. Остальные группы содержат следующие атрибуты (каждый из которых может быть равен true или false):
      • customers_create — разрешено создание клиентов
      • customers_edit — разрешено редактирование клиентов
      • customers_delete — разрешено удаление клиентов
      • customers_import_export — разрешены импорт и экспорт клиентов
      • customers_view_all — разрешён просмотр всех клиентов, в том числе назначенных другим пользователям
      • calendar_other_users_access — разрешён просмотр задач других пользователей
      • calls_other_users_access — разрешён доступ к звонкам других пользователей
      • leads_view — разрешён просмотр лидов других пользователей
      • leads_edit — разрешено редактирование лидов других пользователей
      • leads_delete — разрешено удаление лидов других пользователей
      • leads_import_export — разрешены импорт и экспорт лидов
      • team_add — разрешено добавление и приглашение пользователей в команду
      • team_edit — разрешено редактирование пользователей

Звонки

get /v1/zcrm/calls

Возвращает список звонков

Параметры

  • search (необязательный) — строка поиска. Поиск осуществляется комбинированно по:
    • номерам телефонов
    • именам контактов (клиентов, сотрудников, лидов или пользователей)
  • filter (необязательный) — фильтр звонков. Структура фильтра:

Ответ 1

Ответ 1:
{ "user": 23, "type": "incoming", "status": "answer", "dateFrom": "2020-06-03 14:56:00", "dateTo": "2020-06-26 14:56:00" }

Где:

  • user — пользователь (идентификатор)
  • type — тип звонка. Допустимые значения:
    • incoming — входящий звонок
    • outgoing — исходящий звонок
  • status — статус звонка. Допустимые значения:
    • answer — успешный звонок
    • noanswer — без ответа
    • cancel — отменён
    • busy — занято
    • failed — не удался
  • dateFrom — показать только звонки, совершённые после указанного времени (формат: YYYY-MM-DD hh:mm:ss)
  • dateTo — показать только звонки, совершённые до указанного времени (формат: YYYY-MM-DD hh:mm:ss)

    Любой из параметров фильтра может быть опущен, т.е. не является обязательным.

  • sort (необязательный) — сортировка звонков. Структура параметра:

Ответ 2

Ответ 2:
{ "attr": "time", "desc": 0 }

Где:

  • attr — поле сортировки. Допустимые значения:
    • phone — номер телефона
    • status — статус звонка
    • duration — длительность звонка
    • time — время звонка
  • desc — направление сортировки. Допустимые значения:
    • 0 — по возрастанию
    • 1 — по убыванию
      • take (для постраничного вывода) — сколько звонков вернуть (по умолчанию 20)
      • skip (для постраничного вывода) — сколько звонков пропустить (по умолчанию 0)

Ответ

Ответ 3

Ответ 3:
{ "totalCount": 233, "calls": [ { "id": 127, "type": "outgoing", "status": "answer", "phone": "+44123456789", "user_id": 179, "time": "2019-07-31 17:58:40", "duration": 9, "pbx_call_id": "out_807ghh1h7f09fa7a188dbf8a6998b1c9ghg4ij06", "record": 1, "record_url_till": "2020-07-24 20:08:10", "contact_type": "customer", "contact_name": "Good Company", "contact_customer_id": 3486, "contact_employee_id": null, "employee_customer_id": null, "contact_user_id": null, "is_lead": 1, "record_urls": [ { "url": "https ://api.zadarma.com/v1/pbx/record/download/[...]/[...]/[...].mp3" } ] } ] }

Где:

  • totalCount — общее кол-во звонков (с учётом строки поиска и фильтра)
  • calls — массив звонков (с учётом постраничного вывода). Каждый элемент массива содержит следующие параметры:
    • id — идентификатор звонка
    • type — тип звонка. Возможные значения:
      • incoming — входящий звонок
      • outgoing — исходящий звонок
    • status — статус звонка. Возможные значения:
      • answer — успешный звонок
      • noanswer — без ответа
      • cancel — отменён
      • busy — занято
      • failed — не удался
    • phone — телефонный номер
    • user_id — пользователь, инициировавший или принявший звонок
    • time — время звонка в формате YYYY-MM-DD hh:mm:ss
    • duration — длительность звонка в секундах
    • pbx_call_id — идентификатор звонка в АТС Zadarma
    • record — включена ли запись звонка
    • record_url_till — время, до которого ссылка на запись разговора будет работать
    • contact_type — тип контакта. Возможные значения:
      • customer — клиент или лид (см. параметр is_lead)
      • employee — сотрудник клиента
      • user — пользователь
    • contact_name — имя контакта
    • contact_customer_id — идентификатор клиента или лида (если звонок связан с клиентом)
    • contact_employee_id — идентификатор сотрудника (если звонок связан с сотрудником)
    • employee_customer_id — идентификатор родительского клиента (если звонок связан с сотрудником)
    • contact_user_id — идентификатор пользователя (если звонок связан с пользователем)
    • is_lead — показывает, связан ли звонок с лидом
    • record_urls — массив записей разговора (может отсутствовать, т.к. должен быть специально запрошен). Каждый элемент массива — объект, содержащий след. поле:
      • url — ссылка на запись разговора

Обобщенные контакты

get /v1/zcrm/contacts

Возвращает список всех контактов (клиенты, сотрудники, лиды, пользователи) с номерами телефонов

Параметры

  • search (необязательный) — строка поиска. Поиск осуществляется комбинированно по:
    • именам и телефонам клиентов, лидов, сотрудников и пользователей
    • внутренним номерам АТС пользователей
  • take (для постраничного вывода) — сколько контактов вернуть (по умолчанию 20)
  • skip (для постраничного вывода) — сколько контактов пропустить (по умолчанию 0)

Ответ

Ответ 1

Ответ 1:
{ "totalCount": 128, "contacts": [ { "contact_type": "customer", }, { "contact_type": "employee", }, { "contact_type": "lead", }, { "contact_type": "user", } ] }

Где:

  • totalCount — общее кол-во контактов (с учётом строки поиска)
  • contacts — массив контактов. Каждый из контактов в зависимости от его типа (клиент, сотрудник, лид, пользователь) будет иметь собственный набор атрибутов.

Клиент

Ответ 2

Ответ 2:
{ "contact_type": "customer", "id": 3486, "name": "Good Company", "status": "company", "type": "client", "phone": { "phone": "+44123456789", "type": "work" }, "responsible": { "id": 234, "name": "John Beam", "ext_num": "100" } }

Где:

  • contact_type — тип контакта:
    • customer — клиент
  • id — идентификатор клиента
  • name — имя клиента
  • status — статус клиента. Возможные значения:
    • individual — физ. лицо
    • company — компания
  • type — тип клиента. Возможные значения:
    • potential — потенциальный клиент
    • client — клиент
    • reseller — реселлер
    • partner — партнёр
  • phone — телефонный номер. Содержит следующие поля:
    • phone — непосредственно номер
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
  • responsible — ответственный пользователь. Содержит следующие поля:
    • id — идентификатор пользователя
    • name — имя пользователя
    • ext_num — внутренний номер АТС пользователя

Сотрудник клиента

Ответ 3

Ответ 3:
{ "contact_type": "employee", "id": 8, "name": "Michael Simpson", "phone": { "phone": "+44123456789", "type": "work" }, "position": { "position": "manager", "title": "" }, "customer": { "id": 3486, "name": "Good Company" }, "responsible": { "id": 234, "name": "John Beam", "ext_num": "100" } }

Где:

  • contact_type — тип контакта:
    • employee — сотрудник
  • id — идентификатор сотрудника
  • name — имя сотрудника
  • phone — телефонный номер. Содержит следующие поля:
    • phone — непосредственно номер
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
  • position — должность сотрудника. Содержит следующие поля:
    • position — значение должности. Возможные значения:
      • ceo — ген. директор
      • director — директор
      • manager — менеджер
      • sales_manager — менеджер по продажам
      • hr — HR
      • support — поддержка
      • custom — произвольная
    • title — наименование произвольной должности (для position = custom)
  • customer — клиент, к которому прикреплён сотрудник. Содержит следующие поля:
    • id — идентификатор клиента
    • name — имя клиента
  • responsible — пользователь, ответственный за родительского клиента. Содержит следующие поля:
    • id — идентификатор пользователя
    • name — имя пользователя
    • ext_num — внутренний номер АТС пользователя

Лид

Ответ 4

Ответ 4:
{ "contact_type": "lead", "id": 3486, "name": "Good Company", "phone": { "phone": "+44123456789", "type": "work" }, "responsible": { "id": 234, "name": "John Beam", "ext_num": "100" } }

Где:

  • contact_type — тип контакта:
    • lead — лид
  • id — идентификатор лида
  • name — имя лида
  • phone — телефонный номер. Содержит следующие поля:
    • phone — непосредственно номер
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
  • responsible — ответственный пользователь. Содержит следующие поля:
    • id — идентификатор пользователя
    • name — имя пользователя
    • ext_num — внутренний номер АТС пользователя

Пользователь

Ответ 5

Ответ 5:
{ "contact_type": "user", "id": 234, "name": "John Beam", "avatar": 2457, "role": "", "status": "", "phone": { "phone": "100", "type": "internal" }, "group": { "type": "admin", "title": "" } }

Где:

  • contact_type — тип контакта:
    • user — пользователь
  • id — идентификатор пользователя
  • name — имя пользователя
  • avatar — аватар пользователя (идентификатор файла)
  • role — роль пользователя
  • status — статус пользователя
  • phone — телефонный номер. Содержит следующие поля:
    • phone — непосредственно номер
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
      • internal — внутренний номер АТС
  • group — группа пользователя. Содержит следующие поля:
    • type — тип группы. Возможные значения:
      • admin — администраторы
      • manager — менеджеры
      • chat_operator — операторы
      • trainee — стажёры
      • custom — пользовательская
    • title — имя пользовательской группы (для type = custom)

get /v1/zcrm/contacts/identify

Идентифицирует контакт (клиента, сотрудника, лида, пользователя) по номеру телефона

Параметры

  • phone — телефонный номер

Ответ

Ответ будет зависеть от типа найденного контакта (клиент, сотрудник, лид, пользователь).

Клиент

Ответ 1

Ответ 1:
{ "contact_type": "customer", "id": 3486, "name": "Good Company", "status": "company", "type": "client", "phone": { "phone": "+44123456789", "type": "work" }, "responsible": { "id": 234, "name": "John Beam", "ext_num": "100" } }

Где:

  • contact_type — тип контакта:
    • customer — клиент
  • id — идентификатор клиента
  • name — имя клиента
  • status — статус клиента. Возможные значения:
    • individual — физ. лицо
    • company — компания
  • type — тип клиента. Возможные значения:
    • potential — потенциальный клиент
    • client — клиент
    • reseller — реселлер
    • partner — партнёр
  • phone — телефонный номер. Содержит следующие поля:
    • phone — непосредственно номер
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
  • responsible — ответственный пользователь. Содержит следующие поля:
    • id — идентификатор пользователя
    • name — имя пользователя
    • ext_num — внутренний номер АТС пользователя

Сотрудник клиента

Ответ 2

Ответ 2:
{ "contact_type": "employee", "id": 8, "name": "Michael Simpson", "phone": { "phone": "+44123456789", "type": "work" }, "position": { "position": "manager", "title": "" }, "customer": { "id": 3486, "name": "Good Company" }, "responsible": { "id": 234, "name": "John Beam", "ext_num": "100" } }

Где:

  • contact_type — тип контакта:
    • employee — сотрудник
  • id — идентификатор сотрудника
  • name — имя сотрудника
  • phone — телефонный номер. Содержит следующие поля:
    • phone — непосредственно номер
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
  • position — должность сотрудника. Содержит следующие поля:
    • position — значение должности. Возможные значения:
      • ceo — ген. директор
      • director — директор
      • manager — менеджер
      • sales_manager — менеджер по продажам
      • hr — HR
      • support — поддержка
      • custom — произвольная
    • title — наименование произвольной должности (для position = custom)
  • customer — клиент, к которому прикреплён сотрудник. Содержит следующие поля:
    • id — идентификатор клиента
    • name — имя клиента
  • responsible — пользователь, ответственный за родительского клиента. Содержит следующие поля:
    • id — идентификатор пользователя
    • name — имя пользователя
    • ext_num — внутренний номер АТС пользователя

Лид

Ответ 3

Ответ 3:
{ "contact_type": "lead", "id": 3486, "name": "Good Company", "phone": { "phone": "+44123456789", "type": "work" }, "responsible": { "id": 234, "name": "John Beam", "ext_num": "100" } }

Где:

  • contact_type — тип контакта:
    • lead — лид
  • id — идентификатор лида
  • name — имя лида
  • phone — телефонный номер. Содержит следующие поля:
    • phone — непосредственно номер
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
  • responsible — ответственный пользователь. Содержит следующие поля:
    • id — идентификатор пользователя
    • name — имя пользователя
    • ext_num — внутренний номер АТС пользователя

Пользователь

Ответ 4

Ответ 4:
{ "contact_type": "user", "id": 234, "name": "John Beam", "avatar": 2457, "role": "", "status": "", "phone": { "phone": "100", "type": "internal" }, "group": { "type": "admin", "title": "" } }

Где:

  • contact_type — тип контакта:
    • user — пользователь
  • id — идентификатор пользователя
  • name — имя пользователя
  • avatar — аватар пользователя (идентификатор файла)
  • role — роль пользователя
  • status — статус пользователя
  • phone — телефонный номер. Содержит следующие поля:
    • phone — непосредственно номер
    • type — тип номера. Возможные значения:
      • work — рабочий
      • personal — личный
      • internal — внутренний номер АТС
  • group — группа пользователя. Содержит следующие поля:
    • type — тип группы. Возможные значения:
      • admin — администраторы
      • manager — менеджеры
      • chat_operator — операторы
      • trainee — стажёры
      • custom — пользовательская
    • title — имя пользовательской группы (для type = custom)

Файлы

get /v1/zcrm/files/<file_id>

Отдаёт файл по его ID

Система уведомлений о звонках - webhook

Система Zadarma может отправлять информацию о каждом звонке в виртуальной АТС и направлять звонок на нужный внутренний номер в зависимости от ответа. Для этого необходимо создать открытую для всеобщего доступа ссылку, которая будет принимать POST-запросы с информацией из системы Zadarma.

Доступные методы

NOTIFY_START

начало входящего звонка в АТС

Параметры, которые отправляются на ссылку для уведомлений:

  • event – событие (NOTIFY_START)
  • call_start – время начала звонка;
  • pbx_call_id – id звонка;
  • caller_id – номер звонящего;
  • called_did – номер, на который позвонили.

Составление проверочной подписи для уведомления о входящих звонках, пример на PHP:

Ответ

Ответ:
$signatureTest = base64_encode(hash_hmac('sha1', $_POST['caller_id'] . $_POST['called_did'] . $_POST['call_start'], API_SECRET));

Для запросов NOTIFY_START и NOTIFY_IVR можно «на лету» изменять сценарий работы по текущему звонку, отправив в ответ один из следующих вариантов:

Воспроизвести файл:

Ответ 1

Ответ 1:
{ "ivr_play": "ID" }

Где:

  • ivr_play – значение из колонки ID в списке загруженных/начитанных файлов для нужного файла.

Воспроизвести популярную фразу:

Ответ 2

Ответ 2:
{ "ivr_saypopular": 1, "language": "en" }

Где:

  • ivr_saypopular – номер фразы из списка;

Воспроизвести цифры:

Ответ 3

Ответ 3:
{ "ivr_saydigits": "12", "language": "en" }

Воспроизвести число (в соответствии с правилами сложных числительных):

Ответ 4

Ответ 4:
{ "ivr_saynumber": "123", "language": "en" }

Где:

  • language может принимать одно из значений: ru, en, es, pl;

Если были указаны ivr_saydigits или ivr_saynumber, в следующем событии NOTIFY_IVR будет добавлен параметр: "ivr_saydigits": "COMPLETE" или "ivr_saynumber": "COMPLETE"

В каждом из указанных запросов выше может присутствовать запрос ввода цифр от абонента:

Ответ 5

Ответ 5:
{ "wait_dtmf": { "timeout": TIMEOUT, "attempts": ATTEMPTS, "maxdigits": MAXDIGITS, "name": NAME, "default": DEFAULT, } }

Где:

  • timeout - время ожидания ввода цифр в секундах;
  • attempts - количество попыток набора цифры от абонента;
  • maxdigits - максимальное количество цифр, ввода которых дожидаться;
  • name - имя, которое будет возвращено в ответе;
  • default - действие, если не было набрано ни одной цифры. Возможные значения:
    • id сценария редиректа (в формате 0-1, где 0 - номер голосового меню, 1 - номер сценария);
    • меню АТС в формате 0-main, где 0 - это id меню;
    • внутренний номер АТС (трехзначный номер);
    • hangup - закончить звонок.

В следующем событии NOTIFY_IVR будет дополнительно указан параметр:

Ответ 6

Ответ 6:
{ "wait_dtmf": { "name": NAME, "digits": DIGITS, "default_behaviour": "1" } }

Где:

  • name - имя, указанное в предыдущем ответе;
  • digits - цифры, введенные абонентом;
  • default_behaviour - указано, если абонент ничего не нажал и сработало поведение по умолчанию;

Перевести звонок:

Ответ 7

Ответ 7:
{ "redirect": ID, "return_timeout": TIMEOUT (необязательное) }

Где:

  • redirect - id сценария редиректа (в формате 0-1, где 0 - номер голосового меню, 1 - номер сценария); или в формате 1, где 1 - номер сценария(номер голосового меню в этом случае 0); или меню АТС в формате 0-main, где 0 - это id меню; или внутренний номер АТС (трехзначный номер); или "blacklist" - в этом случае звонок будет отклонен с сигналом занято;
  • return_timeout - Значение в секундах. Возможные значения:
    • 0, звонок не вернется на меню;
    • = 3 - продолжительность звонка внутреннего номер, прежде чем звонок вернется на меню;

  • default_behaviour - указано, если абонент ничего не нажал и сработало поведение по умолчанию;

Завершить звонок:

Ответ 8

Ответ 8:
{ "hangup": 1 }

В каждом из ответов можно дополнительно указать:

Задать имя для имя входящего номера:

Ответ 9

Ответ 9:
{ "caller_name": NAME }

Где:

  • caller_name - имя номера.

Списки популярных фраз:

  • Здравствуйте
  • Добрый день
  • Переадресация
  • Звонок с сайта
  • Добро пожаловать
  • Тестовое сообщение
  • Оставайтесь на линии
  • Вы позвонили в нерабочее время
  • Сейчас все менеджеры заняты, вам ответит первый освободившийся оператор.
  • Наберите внутренний номер абонента
  • Наберите внутренний номер сотрудника
  • Наберите добавочный номер
  • Пожалуйста ожидайте
  • Наберите внутренний номер или дождитесь ответа оператора
  • Пожалуйста оставьте сообщение
  • Оставьте ваше сообщение после сигнала
  • Перезвоните пожалуйста в рабочее время
  • Благодарим за обращение в нашу компанию.
  • Спасибо за звонок.
  • Ожидайте ответа оператора
  • Ваш звонок очень важен для нас
  • Разговор записывается
  • В данный момент нас нет в офисе
  • Мы перезвоним вам при первой возможности.
  • Сегодня у нас выходной.

NOTIFY_INTERNAL

начало входящего звонка на внутренний номер АТС

Параметры, которые отправляются на ссылку для уведомлений:

  • event – событие (NOTIFY_INTERNAL)
  • call_start – время начала звонка;
  • pbx_call_id – id звонка;
  • caller_id – номер звонящего;
  • called_did – номер, на который позвонили;
  • internal – (опциональный) внутренний номер.

Составление проверочной подписи для уведомления о входящих звонках, пример на PHP:

Ответ

Ответ:
$signatureTest = base64_encode(hash_hmac('sha1', $_POST['caller_id'] . $_POST['called_did'] . $_POST['call_start'], API_SECRET));

NOTIFY_ANSWER

ответ при звонке на внутренний или на внешний номер

Параметры, которые отправляются на ссылку для уведомлений:

  • event – событие (NOTIFY_ANSWER)
  • caller_id – номер звонящего;
  • destination – номер, на который позвонили;
  • call_start – время начала звонка;
  • pbx_call_id – id звонка;
  • internal – (опциональный) внутренний номер.

Составление проверочной подписи для уведомления о входящих звонках, пример на PHP:

Ответ

Ответ:
$signatureTest = base64_encode(hash_hmac('sha1', $_POST['caller_id'] . $_POST['destination'] . $_POST['call_start'], API_SECRET));

NOTIFY_END

конец входящего звонка на внутренний номер АТС

Параметры, которые отправляются на ссылку для уведомлений:

  • event – событие (NOTIFY_END);
  • call_start – время начала звонка;
  • pbx_call_id – id звонка;
  • caller_id – номер звонящего;
  • called_did – номер, на который позвонили;
  • internal – (опциональный) внутренний номер;
  • duration – длительность в секундах;
  • disposition – состояние звонка:
    • answered – разговор,
    • busy – занято,
    • cancel - отменен,
    • no answer - без ответа,
    • failed - не удался,
    • no money - нет средств, превышен лимит,
    • unallocated number - номер не существует,
    • no limit - превышен лимит,
    • no day limit - превышен дневной лимит,
    • line limit - превышен лимит линий,
    • no money, no limit - превышен лимит;
  • last_internal – внутренний номер, последний участник звонка (после трансфера или перехвата);
  • status_code – код статуса звонка Q.931;
  • is_recorded – 1 - есть запись звонка, 0 - нет записи;
  • call_id_with_rec – id звонка с записью (рекомендуем загружать файл записи не ранее чем через 40 секунд после уведомления т.к. для сохранения файла записи нужно время).

Составление проверочной подписи для уведомления о входящих звонках, пример на PHP:

Ответ

Ответ:
$signatureTest = base64_encode(hash_hmac('sha1', $_POST['caller_id'] . $_POST['called_did'] . $_POST['call_start'], API_SECRET));

NOTIFY_OUT_START

начало исходящего звонка с АТС

Параметры, которые отправляются на ссылку для уведомлений:

  • event – событие (NOTIFY_OUT_START);
  • call_start – время начала звонка;
  • pbx_call_id – id звонка;
  • destination – номер, на который позвонили;
  • caller_id – номер, настроенный на внутреннем номере АТС или установленный в правилах набора по направлениям. Если номер не установлен, то передается 0;
  • internal – (опциональный) внутренний номер.

Составление проверочной подписи для уведомления о входящих звонках, пример на PHP:

Ответ

Ответ:
$signatureTest = base64_encode(hash_hmac('sha1', $_POST['internal'] . $_POST['destination'] . $_POST['call_start'], API_SECRET));

NOTIFY_OUT_END

конец исходящего звонка с АТС

Параметры, которые отправляются на ссылку для уведомлений:

  • event – событие (NOTIFY_OUT_END)
  • call_start – время начала звонка;
  • pbx_call_id – id звонка;
  • caller_id – номер, настроенный на внутреннем номере АТС или установленный в правилах набора по направлениям. Если номер не установлен, то передается 0;
  • destination – номер, на который позвонили;
  • internal – (опциональный) внутренний номер;
  • duration – длительность в секундах;
  • disposition – состояние звонка:
    • answered – разговор,
    • busy – занято,
    • cancel - отменен,
    • no answer - без ответа,
    • failed - не удался,
    • no money - нет средств, превышен лимит,
    • unallocated number - номер не существует,
    • no limit - превышен лимит,
    • no day limit - превышен дневной лимит,
    • line limit - превышен лимит линий,
    • no money, no limit - превышен лимит;
  • status_code – код статуса звонка Q.931;
  • is_recorded – 1 - есть запись звонка, 0 - нет записи;
  • call_id_with_rec – id звонка с записью (рекомендуем загружать файл записи не ранее чем через 40 секунд после уведомления т.к. для сохранения файла записи нужно время).

Составление проверочной подписи для уведомления о входящих звонках, пример на PHP:

Ответ

Ответ:
$signatureTest = base64_encode(hash_hmac('sha1', $_POST['internal'] . $_POST['destination'] . $_POST['call_start'], API_SECRET));

NOTIFY_RECORD

запись звонка готова для скачивания

Параметры, которые отправляются на ссылку для уведомлений:

  • event – событие(NOTIFY_RECORD);
  • call_id_with_rec – уникальный id звонка с записью разговора;
  • pbx_call_id – постоянный ID внешнего звонка в АТС (не меняется при прохождении сценариев, голосового меню, transfer и т.д., отображается в статистике и уведомлениях).

Составление проверочной подписи для уведомления о входящих звонках, пример на PHP:

Ответ

Ответ:
$signatureTest = base64_encode(hash_hmac('sha1', $_POST['pbx_call_id'] . $_POST['call_id_with_rec'], API_SECRET));

NOTIFY_IVR

ответ абонента на заданное действие

Параметры, которые отправляются на ссылку для уведомлений:

  • event – событие (NOTIFY_IVR);
  • call_start – время начала звонка;
  • pbx_call_id – id звонка;
  • caller_id – номер звонящего;
  • called_did – номер, на который позвонили.

Составление проверочной подписи для уведомления о входящих звонках, пример на PHP:

Ответ

Ответ:
$signatureTest = base64_encode(hash_hmac('sha1', $_POST['caller_id'] . $_POST['called_did'] . $_POST['call_start'], API_SECRET));

Возможные отправляемые ответы аналогичны ответам запросов NOTIFY_START

SPEECH_RECOGNITION

результат распознавания голоса

Параметры, которые отправляются на ссылку для уведомлений:

  • event – событие (SPEECH_RECOGNITION)
  • lang – язык;
  • result:
    • words - массив:
      • result - список слов (массив):
        • s - время начала слова
        • e - время окончания слова
        • w - слово
      • channel - номер канала
    • phrases - массив:
      • result - фраза
      • channel - номер канала

Задать ссылку по которой уведомлять, а также включить/выключить каждый вид уведомлений вы можете в разделе API личного кабинета.

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

Пример на PHP:

                    <?php if (isset($_GET['zd_echo'])) exit($_GET['zd_echo']); ?>
                

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

Также, если Вы выпустили ключи для доступа к API, в каждом запросе на Вашу ссылку будет приходить дополнительный заголовок "Signature", по которому также сможете сверять целостность, а также подлинность данных.

Пример скрипта можете посмотреть на нашем репозитории на GitHub.

Другие уведомления

Параметр "result" в этих уведомлениях задан в JSON формате. Вы можете получить его в XML формате, указав в ссылке параметр format=xml.

NUMBER_LOOKUP

отчет о проверке номеров

Параметры, которые отправляются на ссылку для уведомлений:

  • event – событие (NUMBER_LOOKUP);
  • success – флаг успешности проверки;
  • description – текстовое описание статуса завершения проверки;
  • result – данные отчета;
    • number – проверяемый номер;
    • mcc – мобильный код страны;
    • mnc – код мобильной сети;
    • ported – признак переноса к другому оператору;
    • roaming – признак нахождения в роуминге;
    • error – статус ошибки;
    • errorDescription – текстовое описание ошибки;
    • mccName – название страны;
    • mncName – название оператора;

Составление проверочной подписи:

$signatureTest = base64_encode(hash_hmac('sha1', $_POST['result'], API_SECRET));

CALL_TRACKING

информацию о звонках на номера, подключенные к коллтрекингу

Отправляется раз в 15 минут, при наличии новых звонков.

Параметры, которые отправляются на ссылку для уведомлений:

  • event – событие (CALL_TRACKING)
  • result - массив
    • tracker - ID трекера (можно узнать на странице установки кода);
    • start - время начала звонка;
    • duration - длительность звонка в секундах;
    • caller_id - номер звонящего;
    • caller_did - номер, на который позвонили;
    • country - (опционально) страна, из которой был совершен звонок;
    • ga_id - (опционально, если в настройках указан Id Google Analytics) id посетителя в Google Analytics;
    • metrika_id - (опционально, еcли в настройках указан Id Yandex.Metrika) id посетителя в Yandex.Metrika;
    • url - адрес страницы, с которой был звонок;
    • utm_source, utm_medium, utm_campaign, utm_term, utm_content - (опционально, если при переходе на сайт были указаны utm метки) utm метки, по которым посетитель перешел на сайт в последний раз;
    • first_utm - (опционально, если при первом переходе на сайт были указаны utm метки, отличные от тех, по которым произведен переход в последний раз) массив с utm метками указанными выше, по которым посетитель перешел на сайт в первый раз;

Составление проверочной подписи:

$signatureTest = base64_encode(hash_hmac('sha1', $_POST['result'], API_SECRET));

SMS

информацию о входящих SMS

Параметры, которые отправляются на ссылку для уведомлений:

  • event – событие (SMS)
  • result – массив;
  • caller_id – номер отправителя;
  • caller_did – номер получателя;
  • text – текст сообщения.

Составление проверочной подписи:

$signatureTest = base64_encode(hash_hmac('sha1', $_POST['result'], API_SECRET));