Nawigacja API

Wprowadzenie


Interfejs API jest całkowicie bezpłatny i dostępny na wszystkich kontach Zadarma

Link do API
Wersja API
v1
Końcowy link do metody

Biblioteka

Pobierz gotowe klasy do pracy z API

W API dostępne są wszystkie niezbędne funkcje do pracy z:

  • Telefonia i numery wirtualne
  • Centrala PBX i ZCRM
  • SMS i HLR
  • Śledzenie połączeń
  • Rozpoznawanie mowy

Autoryzacja

Każde żądanie, które wymaga autoryzacji, wysyłane jest z dodatkowym nagłówkiem typu:

"Authorization: klucz_użytkownika: podpis"

Klucze do autoryzacji należy wygenerować w Panelu klienta.

Podpis tworzony jest według następującego algorytmu:

  • szereg przekazywanych danych (GET, POST, PUT, DELETE) układa się alfabetycznie według nazwy klucza;
  • z otrzymanego szeregu tworzy się linia zapytania (np, funkcja http_build_query w PHP), przykład „from=DATEFROM&to=DATETO…”;
  • i dalej – łączy się według formuły: linia = imię_metoda linia_zapytania md5 (linia_zapytania), gdzie “imię_metoda” – linia zapytania, rozpoczynając od domeny (z zaznaczeniem wersji API), do początku wyliczenia parametrów, na przykład - '/v1/sip/'
  • otrzymana linia jest haszowana dzięki algorytmowi sha1 z sekretnym kluczem użytkownika: hash = hash (linia, sekretny klucz)
  • następnie hash kodowany jest w base64 podpis = base64_encode (hash)

                                    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;

Gotowy do pracy PHP z API, można pobrać z GitHub.

Format odpowiedzi: json (domyślnie) i xml.

Żeby otrzymać odpowiedź od API w formacie xml, dodaje się do żądania parametr "format=xml".

Ograniczenia

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

Odpowiedź również przedstawia informację o limitach i obecnym żądaniu, na przykład:

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

gdzie,

  • X-Zadarma-Method - obecna metoda składania żądania;
  • X-RateLimit-Remaining - ilość pozostałych żądań, z uwzględnieniem limitu na metodę i użytkownika;
  • X-RateLimit-Limit - łączna liczba ograniczeń zapytania na minutę;
  • X-RateLimit-Reset - czas zresetowania limitu.

Ograniczenia ogólne - 100 zapytań na minutę, na metodach statystycznych - 10 zapytań na minutę.

W przypadku blokady metoda wyświetla odpowiedź z nagłówkiem 429 "You exceeded the rate limit".

Odpowiedź składa się z obowiązkowego klucza "status" (success lub error). Następnie, w zależności od metody, przedstawiane są własne klucze z żądanymi informacjami.

W przypadku błędu wyświetla się dodatkowy klucz "message" z opisem błędu.

Również wszystkie odpowiedzi przedstawiane są z odpowiednimi nagłówkami HTTP.

Metody

get /v1/info/balance/

saldo użytkownika

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

get /v1/info/price/

cena na połączenia zgodnie z wybraną taryfą użytkownika

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

Parametry:

  • number – numer telefonu
  • caller_id (nieobowiązkowy) – CallerID, jaki będzie wyświetlony przy wykonaniu połączenia.

get /v1/info/timezone/

strefa czasowa użytkownika

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

get /v1/tariff/

informacja o obecnej taryfie użytkownika

                                    {
    "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
    }
}

gdzie

  • tariff_id– ID obecnej taryfy użytkownika;
  • tariff_name – nazwa obecnej taryfy użytkownika;
  • is_active – czy jest aktywna obecna taryfa lub nie;
  • cost – cena taryfy;
  • currency – waluta taryfy;
  • used_seconds – ilość wykorzystanych sekund taryfy;
  • used_seconds_mobile – ilość wykorzystanych sekund taryfy na komórkowe;
  • used_seconds_fix – ilość wykorzystanych sekund taryfy na stacjonarne;
  • used_seconds_speech_recognition – liczba wykorzystanych sekund taryfy na rozpoznawanie mowy;
  • tariff_id_for_next_period – ID taryfy użytkownika na następny okres;
  • tariff_for_next_period – nazwa taryfy użytkownika na następny okres.

get /v1/request/callback/

callback

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

Parametry:

  • from – Twój numer telefonu lub SIP, lun numer wewnętrzny centrali, lub numer scenariuszu (w formacie 0-1 gdzie 0 numer menu głosowego, 1 numer scenariuszu), na jaki jest kierowany callback;
  • to – numer telefonu lub SIP, na jaki dzwonisz;
  • sip (nieobowiązkowy) – numer SIP użytkownika numer wewnętrzny centrali (np. 100), przez który będzie kierowane połączenie. Będzie wykorzystany CallerID tego numeru, w statystkach będzie wyświetlony dany numer SIP/centrali, jeśli dla danego numeru jest włączone nagrywanie rozmów lub prefiksy na połączenia wychodzące - będzie to użyte
  • predicted (nieobowiązkowy) – jeśli podany ten parametr, żądani jest predykatywne (system wykonuje połączenia na numer "to" i tylko w przypadku odpowiedzi, następnie dzwoni na numer abonenta).

post /v1/sms/send/

wysłanie SMS

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

Parametry:

  • number – numer telefonu, do jakiego będzie wysłane SMS (można podać kilka numerów, rozdzielając przecinkiem);
  • message – wiadomość (standardowe ograniczenia na ilość znaków SMS, w przypadku przekroczenia limitu – dzieli się na kilka woadmości SMS);
  • caller_id – (nieobowiązkowy) numer telefonu, od którego zostanie wysłana wiadomość SMS (można podać tylko z listy potwierdzonych numerów).

Uwaga: wysyłka SMS dostępna za granicę, oprócz Rosyjskiej Federacji.

get /v1/request/checknumber/

potwierdzenie numeru

                                    {
    "status":"success",
    "from":442037691880,
    "to":442037691881,
    "lang":"fr",
    "time":1612779278
}

Parametry

  • caller_id - numer wyświetlany podczas dzwonienia, dostępne są tylko numery zakupione w systemie Zadarma,
  • to - wywoływany numer telefonu lub login SIP,
  • code - kod do odtworzenia. Tylko cyfry i nie więcej niż 20 znaków,
  • lang - język odtworzenia. Jeśli nie ma, jest wybierany panelu klienta, sprawdza się pod kątem dostępności w językach systemu.

post /v1/info/number_lookup/

aktualizacja bazy klientów

Parametry:

  • numbers – lista numerów w formacie międzynarodowym.

Jeśli numbers zawiera 1 numer, wynik będzie wysłany od razu, jeśli podana jest lista numerów, wynik zostanie wysłany mailowo, lub na podany adres url.

Zwróć uwagę: ustawienia danej metody można zmieniać tylko w Panelu klienta na stronie aktualizacji.

Przykład odpowiedzi dla 1 numeru:

(Odpowiedź 1)

                                    Odpowiedź 1:
{ "status":"success", "info":{ "mcc":"250", "mnc":"01", "mccName":"Russia", "mncName":"Mobile TeleSystems", "ported":false, "roaming":false, "errorDescription":"No Error" } }

Przykład odpowiedzi dla kliku numerów:

(Odpowiedź 2)

                                    Odpowiedź 2:
{ "status":"success" }

Przykład wyniku, wysłanego na adres, podany na stronie aktualizacji:

(Odpowiedź 3)

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

get /v1/info/lists/currencies/

Lista walut

                                    {
    "status": "success",
    "currencies": [
        "USD",
        "EUR",
        "RUB",
        "GBP",
        "PLN"
    ]
}

get /v1/info/lists/languages/

Lista dostępnych języków panelu klienta

                                    {
    "status": "success",
    "languages": [
        "en",
        "es",
        "de",
        "pl",
        "ru",
        "ua",
        "fr"
    ]
}

get /v1/info/lists/tariffs/

Lista taryf

                                    {
    "status": "success",
    "currency": "EUR",
    "tariffs": [
        {
            "tariff_id": 5,
            "name": "Standard",
            "cost": 0,
            "days": "30"
        },
        ...
    ],
    "package_tariffs": [
        {
            "id": 1,
            "name": "EU",
            "tariffs": [
                {
                    "tariff_id": 23,
                    "name": "Office",
                    "cost": 22,
                    "cost_annual": 216
                },
                ...
            ]
        },
        ...
    ]
}

Parametry

  • currency – waluta

SIP

get /v1/sip/

lista loginów SIP

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

gdzie

  • id– SIP-id;
  • display_name – wyświetlone imię;
  • lines – ilość linii;
  • left – ilość pozostałych SIP, jaki można utworzyć (zależy od salda na koncie i ilości już utworzonych SIP).

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

online status SIP loginów

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

put /v1/sip/callerid/

zmiana CallerID

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

Parametry:

  • id – SIP id, jakiemu zmieniasz CallerID;
  • number – numer, na jaki zmieniasz w formacie międzynarodowym (z listy numerów potwierdzonych lub wykupionych).

get /v1/sip/redirection/

wyświetlanie obecnych przekierowań na loginach SIP użytkownika

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

Parametry:

  • id – (nieobowiązkowy) wybór konkretnego SIP id.

gdzie

  • sip_id– SIP id użytkownika;
  • status – obecny status: on lub off;
  • condition – warunek przekierowania: always –zawsze (domyślnie), unavailable – w przypadku nie odpowiedzi lub nie dostępności;
  • destination – na jaki numer przekierowanie: phone – na numer telefonu, pbx – numer wewnętrzny centrali;
  • destination_value – na jaki numer przekierowanie: phone – na numer telefonu lub ID centrali.

put /v1/sip/redirection/

włączenie/wyłączenie przekierowania na loginie SIP

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

Parametry:

  • id – SIP id;
  • status – status przekierowania na wybrany numer SIP.

put /v1/sip/redirection/

zmiana przekierowania

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

Parametry:

  • id – SIP id;
  • type – typ przekierowania – na telefon;
  • number – numer telefonu.

post /v1/sip/create/

Utworzenie loginu SIP

                                    {
    "status": "success",
    "sip": "123456"
}

Parametry

  • name - wyświetlona nazwa;
  • password - hasło;
  • callerid - numer CallerID;
  • redirect_to_phone - nieobowiązkowy parametr, przekierowanie na telefon;
  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

Statystyki

get /v1/statistics/

otrzymanie ogólnych statystyk

(Odpowiedź 1)

                                    Odpowiedź 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" }, … ] }

Parametry:

  • start - data początku wyświetlenia statystyk (format - YYYY-MM-DD HH:MM:SS);
  • end - data końcowa wyświetlenia statystyk (format - YYYY-MM-DD HH:MM:SS);
  • sip (nieobowiązkowy) - filtr dla konkretnego loginu SIP;
  • cost_only (nieobowiązkowy) - podgląd tylko kosztów na rozmowy za wybrany okres;
  • type (nieobowiązkowy - tylko dla wspólnych statystyk) - typ żądania: wspólny (nie zaznaczony), toll oraz ru495. (dla statystyk numerów toll free 800 oraz numeru moskiewskiego 495).
  • skip (nieobowiązkowy - za wyjątkiem parametru cost_only) - ilość linii, jakie należy pominąć, wynik zaczyna się od linii skip + 1 (używany do podziału wraz z parametrem limit, domyślnie jest równy 0);
  • limit (nieobowiązkowy - za wyjątkiem parametru cost_only) - ograniczenie na ilość linii (używany do podziału wraz z parametrem skip, maks. 1000, domyślnie 1000).

Maksymalny okres otrzymania statystyk - miesiąc. W przypadku przekroczenia limitu w żądaniu - okres automatycznie jest zmieniony na na miesiąc (do 30 dni). Jeśli nie jest podana data początku statystyk - zostanie wybrana pierwsza data obecnego miesiąca. Jeśli nie jest podana data końca - zostanie wybrana dzisiejsza data i czas.

?type=cost_only: (Response 2)

gdzie

  • start – data początku wyświetlenia statystyk;
  • end – data końcowa wyświetlenia statystyk;
  • id – id połączenia;
  • sip – SIP login;
  • callstart – czas rozpoczęcia połączenia;
  • description – opis kierunki połaczenia;
  • disposition – stan połączenia:
    • 'answered' – rozmowa,
    • 'busy' – zajęte,
    • 'cancel' - odrzucone,
    • 'no answer' - brak odpowiedzi,
    • 'call failed' - nieudane,
    • 'no money' - brak środków, przekroczony limit,
    • 'unallocated number' - numer nie istnieje,
    • 'no limit' - przekroczony limit,
    • 'no day limit' - przekroczony dzienny limit,
    • 'line limit' - przekroczony limit linii,
    • 'no money, no limit' - przekroczony limit;
  • billseconds – czas trwania w sekundach;
  • cost – cena za minutę na sany kierunek;
  • billcost – cena opłaconych minut;
  • currency – waluta;
  • from – numer osoby dzwoniącej;
  • to – numer na który było wykonane połączenia.

get /v1/statistics/pbx/

statystyki centrali wirtualnej telefonicznej

                                    {
    "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"
        },
        …
    ]
}

Parametry:

  • start - data początku wyświetlenia statystyk (format - YYYY-MM-DD HH:MM:SS);
  • end - data końcowa wyświetlenia statystyk (format - YYYY-MM-DD HH:MM:SS);
  • version - format wyświetlenia (2 - nowy, 1 - stary);
  • skip (nieobowiązkowy - za wyjątkiem parametru cost_only) - ilość linii, jakie należy pominąć, wynik zaczyna się od linii skip + 1 (używany do podziału wraz z parametrem limit, domyślnie jest równy 0);
  • limit (nieobowiązkowy - za wyjątkiem parametru cost_only) - ograniczenie na ilość linii (używany do podziału wraz z parametrem skip, maks. 1000, domyślnie 1000).
  • call_type (nieobowiązkowy) - kierunek połączeń ('in' dla przychodzących, 'out' dla wychodzących). Jeśli nie jest zawarty, zostaną wyświetlone wszystkie połączenia.

gdzie

  • start – data początku wyświetlenia statystyk;
  • end – data początku wyświetlenia statystyk;
  • version - format wyświetlenia (2 - nowy, 1 - stary);
  • call_id – indywidualny id połączenia, ten id jest podany w nazwie pliku z nagraniem (indywidualny dla każdego nagrania w statystykach);
  • sip – SIP login;
  • callstart – czas rozpoczęcia połączenia;
  • clid – CallerID;
  • destination – numer na który było wykonane połączenia;
  • disposition – stan połączenia:
    • 'answered' – rozmowa,
    • 'busy' – zajęte,
    • 'cancel' - odrzucone,
    • 'no answer' - brak odpowiedzi,
    • 'call failed' - nieudane,
    • 'no money' - brak środków, przekroczony limit,
    • 'unallocated number' - numer nie istnieje,
    • 'no limit' - przekroczony limit,
    • 'no day limit' - przekroczony dzienny limit,
    • 'line limit' - przekroczony limit linii,
    • 'no money, no limit' - przekroczony limit;
  • seconds – czas trwania w sekundach;
  • is_recorded – (true, false) czy jest nagranie rozmowy lub nie;
  • pbx_call_id – stały ID zewnętrznego połączenia w ramach Centrali (nie zmienia się według scenariuszu, menu głosowego, transferu itd.,wyświetlany jest w statystykach i powiadomieniach);

get /v1/statistics/callback_widget/

statystyki Widgetu CallBack

                                    {
    "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"
                }
            ]
        },
        ...
    ]
}

Parametry:

  • start - data początku wyświetlenia statystyk (format - YYYY-MM-DD HH:MM:SS);
  • end - data końcowa wyświetlenia statystyk (format - YYYY-MM-DD HH:MM:SS);
  • widget_id - (nieobowiązkowy) - identyfikator widgetu, w przypadku braku tego parametru - statystyki dla wszystkich widgetów;
  • type (nieobowiązkowy - tylko dla wspólnych statystyk) - typ żądania: wspólny (nie zaznaczony), toll oraz ru495. (dla statystyk numerów toll free 800 oraz numeru moskiewskiego 495).

Maksymalny okres otrzymania statystyk - miesiąc. W przypadku przekroczenia limitu w żądaniu - okres automatycznie jest zmieniony na na miesiąc (do 30 dni). Jeśli nie jest podana data początku statystyk - zostanie wybrana pierwsza data obecnego miesiąca. Jeśli nie jest podana data końca - zostanie wybrana dzisiejsza data i czas.

gdzie

  • start – data początku wyświetlenia statystyk;
  • end – data końcowa wyświetlenia statystyk;
  • id – id secji;
  • widget_id – id widgetu;
  • sip – SIP login;
  • ip – IP adres użytkownika;
  • kind – typ wydarzenia:
    • 'come' – użytkownik odwiedził stronę z widgetem,
    • 'show' – otwarty formularz widgetu,
    • 'call' – zamówienie połączenia,
    • 'call_request' – zamówienie zaplanowanego połączenia,
    • 'rate' – użytkownik ocenił rozmowę,
    • 'fail' – użytkownik zaznaczył opcję, że rozmowa się nie odbyła,
    • 'close' – użytkownik zamknął formularz widgetu;
  • date – data i czas wydarzenia;
  • referrer_url – adres strony, z jakiej użytkownik odwiedził stronę z widgetem (tylko dla wydarzenia 'come');
  • url – adres strony widgeu (tylko dla wydarzenia 'come');
  • rate – dla wydarzenia 'show' - ilość uzyskanych punktów, dla wydarzenia 'rate' - ocena rozmowy;
  • request_call_date – data i czas zaznaczony użytkownikiem, jako wygodny termin odebrania połaczenia (tylko dla wydarzenia 'call_request');
  • redial – (true, false) czy zostało zrealizowane połączenie zwrotne lub nie (tylko dla wydarzenia 'call_request');
  • number – numer podany użytkownikiem (dla wydarzeń 'call', 'call_request', 'rate', 'fail').

get /v1/statistics/incoming-calls/

uzyskanie ogólnych statystyk połączeń przychodzących

                                    {
    "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,
            "billseconds":0,
            "disposition":"busy",
            "description":"United Kingdom, London"
        },
        …
    ]
}

Parametry

  • start - data rozpoczęcia statystyk (format - YYYY-MM-DD HH:MM:SS);
  • end - data zakończenia statystyk (format - YYYY-MM-DD HH:MM:SS);
  • sip (opcjonalnie) - filtruj po określonym numerze SIP;
  • skip (opcjonalnie - nie uwzględnia się przy parametru cost_only) - liczba wierszy do pominięcia, zaczyna się od wierszu skip + 1 (używany do paginacji razem z parametrem limit, domyślnie wynosi 0);
  • limit (opcjonalnie - nie uwzględnia się przy parametru cost_only) - ограничение на liczba wierszy do wyświetlenia (używany do paginacji razem z parametrem skip, maksymalna wartość 1000, domyślnie 1000).

Maksymalny okres uzyskania statystyk - miesiąc. W przypadku przekroczenia limitu w żądaniu okres jest automatycznie skracany do 30 dni. Jeśli nie określono daty rozpoczęcia statystyk, wybierany jest początek bieżącego miesiąca. Jeśli data zakończenia nie jest określona, statystyki są ograniczone do bieżącej daty i godziny.

Maksymalna liczba wierszy do wyświetlenia dla jednego żądania - 1000. Do paginacji użyj parametrów skip i limit.

Gdzie:

  • start – data rozpoczęcia wyświetlania statystyk;
  • end – data zakończenia wyświetlania statystyk;
  • id – id połączenia;
  • sip – SIP login;
  • callstart – czas rozpoczęcia połączenia;
  • from – z jakiego numeru dzwoniono;
  • to – dokąd dzwoniono;
  • billseconds – liczba sekund połączenia;
  • disposition –status połączenia:
    • 'answered' – rozmowa,
    • 'busy' – odrzucone,
    • 'cancel' - anulowane,
    • 'no answer' - brak odpowiedzi,
    • 'failed' - nie udane,
    • 'no money' - brak środków, przekroczono limit,
    • 'unallocated number' - nieistniejący numer,
    • 'no limit' - przekroczono limit,
    • 'no day limit' - przekroczono dzienny limit,
    • 'line limit' - przekroczono limit kanałów,
    • 'no money, no limit' - przekroczono limit;
  • description – opis kierunku.

PBX

post /v1/pbx/redirection/

zmiana paramentrów przekierowania na numerze wewnętrzym centrali

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

Parametry:

Aby włączyć i skonfigurować przekierowanie:

  • pbx_number – numer wewnętrzny centrali, np 100;
  • status – on;
  • type – typ przekierowania voicemail lub phone;
  • destination – numer telefonu lub email, w zależności od wybranej opcji wyżej;
  • condition – warunek przekierowania: always lub noanswer;
  • voicemail_greeting – powiadomienie o przekierowaniu: no, standart, own. Dostępne tylko przy type = voicemail;
  • greeting_file – audio plik w formacie mp3 lub wav do 5 MB. Dostępne przy type = voicemail i voicemail_greeting = own;

Aby wyłączyć przekierowanie:

  • pbx_number – numer wewnętrzny centrali, np 100;
  • status – off;

get /v1/pbx/redirection/

otrzymanie paramentrów przekierowania na numerze wewnętrznym

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

Parametry:

  • pbx_number – numer wewnętrzny centrali, np 100;

get /v1/pbx/record/request/

żądanie na pobranie nagrania rozmowy

Parametry:

  • call_id – indywidualny id połączenia, ten id jest podany w nazwie pliku z nagraniem (indywidualny dla każdego nagrania w statystykach);
  • pbx_call_id – stały ID zewnętrznego połączenia w ramach Centrali (nie zmienia się według scenariuszu, menu głosowego, transferu itd.,wyświetlany jest w statystykach i powiadomieniach).;
  • lifetime – (nieobowiązkowy) czas ważności linku w sekundach ( min. - 180, maks. - 5184000, domyślnie - 1800).

Uwaga: wystarczy podać jeden z dwóch paramentów (pbx_call_id или call_id), przy podaniu pbx_call_id linków w odpowiedzi na żądanie może być kilka.

Przykład odpowiedzi kiedy ustawiony tylko call_id, tylko jeden link:

(Odpowiedź 1)

                                    Odpowiedź 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" }

Przykład odpowiedzi kiedy ustawiony tylko pbx_call_id, сlinków może być kilka:

(Odpowiedź 2)

                                    Odpowiedź 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" }

Parametry:

  • link – link do pobrania nagrania;
  • lifetime_till – czas ważności linku.

post /v1/pbx/waitmelody/upload

przesłanie melodii

Parametry

  • file - plik

put /v1/pbx/waitmelody/switch

wł/wył melodii na centrali PBX

Parametry

  • state - status (on - włączone, off - wyłączone);
  • melody - typ melodii (none - domyślnie bez melodii, mymelody - wcześniej przesłany plik.

delete /v1/pbx/waitmelody/delete

usunięcie melodii

get /v1/pbx/callinfo/

otrzymaj ustawienia pbx call info

                                    {
    "status": "success",
    "url": "",
    "notifications": {
        "notify_start": "true",
        "notify_internal": "false",
        "notify_end": "true",
        "notify_out_start": "false",
        "notify_out_end": "false",
        "notify_answer": "false"
    }
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

post /v1/pbx/callinfo/url/

zmiana url dla pbx call info

                                    {
    "status": "success",
    "url": ""
}

Parametry:

  • url - link;
  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

post /v1/pbx/callinfo/notifications/

zmiana odpowiedzi na żądania NOTIFY_* dla pbx call info

                                    {
    "status": "success",
    "notifications": {
        "notify_start": "true",
        "notify_internal": "false",
        "notify_end": "true",
        "notify_out_start": "false",
        "notify_out_end": "false",
        "notify_answer": "false"
    }
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • notify_start - "true" lub "false" nieobowiązkowy parametr;
  • notify_internal - "true" lub "false" nieobowiązkowy parametr;
  • notify_end - "true" lub "false" nieobowiązkowy parametr;
  • notify_out_start - "true" lub "false" nieobowiązkowy parametr;
  • notify_out_end - "true" lub "false" nieobowiązkowy parametr;
  • notify_answer - "true" lub "false" nieobowiązkowy parametr.

delete /v1/pbx/callinfo/url/

usunięcie url dla pbx call info

                                    {
    "status": "success",
    "url": ""
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

post /v1/pbx/create/

utworzenie centrali PBX

                                    {
    "status": "success",
    "stop_datetime": "2021-12-31 23:59:59"
}

Parametry:

  • sip_id - Numer SIP do podpięcia centrali PBX, jeśli nie jest ustawiony będzie wybrany wolny SIP (nieobowiązkowy parametr);
  • password - hasło pierwszego numeru wewnętrznego centrali '100';
  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

get /v1/pbx/webhooks/

otrzymaj ustawienia pbx webhooks

                                    {
    "status": "success",
    "url": "",
    "hooks": {
        "number_lookup": "true",
        "call_tracking": "false",
        "sms": "true",
        "speech_recognition": "true"
    }
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

post /v1/pbx/webhooks/url/

zmiany url dla pbx webhooks

                                    {
    "status": "success",
    "url": ""
}

Parametry:

  • url - link;
  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

post /v1/pbx/webhooks/hooks/

zmiana odpowiedzi na żądania innych powiadomień (aktualizacja kontaktów HLR, call tracking, SMS i rozpoznawanie mowy)

                                    {
    "status": "success",
    "hooks": {
        "number_lookup": "true",
        "call_tracking": "false",
        "sms": "true",
        "speech_recognition": "true"
    }
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • number_lookup - "true" lub "false" nieobowiązkowy parametr;
  • call_tracking - "true" lub "false" nieobowiązkowy parametr;
  • sms - "true" lub "false" nieobowiązkowy parametr;
  • speech_recognition - "true" lub "false" nieobowiązkowy parametr.

delete /v1/pbx/webhooks/url/

usunięcie url dla innych powiadomień (aktualizacja kontaktów HLR, call tracking, SMS i rozpoznawanie mowy)

                                    {
    "status": "success",
    "url": ""
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

Wirtualna centrala (numery wewnętrzne)

get /v1/pbx/internal/

wyświetlanie numerów wewnętrznych wirtualnej centrali

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

gdzie

  • pbx_id – id użytkownika centrali;
  • numbers – lista numerów wewnętrznych.

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

online status numeru wewnętrznego

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

gdzie

  • pbx_id – id centrali telefonicznej;
  • number – numer wewnętrzny centrali;
  • is_online – online status (true|false).

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

informacja o numerze wewnętrznym PBX

                                    {
    "status": "success",
    "pbx_id": 12345,
    "number": 100,
    "name": "Extension 100",
    "caller_id": "74990000000",
    "caller_id_app_change": "true",
    "caller_id_by_direction": "false",
    "lines": "3",
    "ip_restriction": "1.1.1.1",
    "record_store": "For automatic speech recognition",
    "record_email": "email@server.com"
}

gdzie:

  • pbx_id – id centrali;
  • number – numer wewnętrzny;
  • name – wyświetlona nazwa;
  • caller_id – CallerID;
  • caller_id_app_change – zmiana CallerID z poziomu aplikacji (true|false);
  • caller_id_by_direction – CallerID według kierunku (true|false);
  • lines – liczba kanałów;
  • ip_restriction – ograniczenie według adres ip (false jeśli nie jest ustawione);
  • record_store – nagrywanie rozmów w chmurę (Without recognition|For manual recognition|For automatic speech recognition|false);
  • record_email – email do wysyłki nagrań rozmów (false jeśli nie jest ustawione).

put /v1/pbx/internal/recording/

włączenie nagrywania rozmów na numerze wewnętrznym

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

Parametry:

  • id – numer wewnętrzny centrali;
  • status – status: "on" - włączony, "off" - wyłączony, "on_email" - włącz nagranie tylko na email, "off_email" - wyłącz nagranie tylko na email, "on_store" - włącz nagranie do chmury, "off_store" - wyłącz nagranie do chmury;
  • email – (nieobowiązkowy) zmiana email, na jaki będą kierowane nagrania rozmów. Możesz podać do 3-trzech adresów email, rozdzielając przecinkiem.
  • speech_recognition – (nieobowiązkowy) zmiana ustawień rozpoznawania mowy: "all" - rozpoznaj wszystkie, "optional" - rozpoznaj wybiorczo w statystykach, "off" - wyłącz.

post /v1/pbx/internal/create/

utworzenie numeru wewnętrznego centrali

                                    {
    "status": "success",
    "numbers": [
        {
            "number": 200,
            "password": "PASSWORD"
        },
        {
            "number": 201,
            "password": "PASSWORD"
        }
    ]
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • start_number - numer z którego zacznie się utworzenie 100...999 lub "any" z pierwszego dostępnego numeru w ramach zakresu 100-999;
  • quantity - ilość utworzonych numerów;
  • return_password - nieobowiązkowy parametr, jeżeli 'true' w odpowiedzi będą hasła do utworzonych ponownie numerów wewnętrznych.

get /v1/pbx/internal/<SIP>/password/

hasło numeru wewnętrznego PBX, dostępne do wglądu przez ograniczony czas

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;

Przykład odpowiedzi:

                                    {
    "status": "success",
    "pbx_id": 114,
    "number": 200,
    "password": "PASSWORD"
}

gdzie

  • password - może mieć zawartość hidden, jeżeli hasło nie jest dostępne do wglądu

put /v1/pbx/internal/<SIP>/password/

zmiana hasła numeru wewnętrznego PBX

                                    {
    "status": "success",
    "pbx_id": 114,
    "number": 200
}

Parametry:

  • value - nowe hasło;
  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

Wirtualna centrala (IVR)

get /v1/pbx/ivr/sounds/list

lista plików przechowywanych na centrali

post /v1/pbx/ivr/sounds/upload

przesłanie pliku

Parametry

  • name - imię pliku,
  • file - plik.

delete /v1/pbx/ivr/sounds/delete

usunięcie pliku wg id

Parametry

  • id - identyfikator pliku

get /v1/pbx/ivr/

lista IVR

                                    {
    "status": "success",
    "pbx_id": 114,
    "ivrs": [
        {
            "menu_id": "0",
            "title": "",
            "type": "file",
            "status": "on",
            "waitexten": 5,
            "auto_responder": {
                "status": "on",
                "waitexten": 1,
                "working_days": [
                    {
                        "day": "mon",
                        "is_active": true,
                        "begin": {
                            "hour": 9,
                            "minute": 0
                        },
                        "end": {
                            "hour": 18,
                            "minute": 0
                        }
                    },
                    {
                        "day": "tue",
                        "is_active": true,
                        "begin": {
                            "hour": 9,
                            "minute": 0
                        },
                        "end": {
                            "hour": 18,
                            "minute": 0
                        }
                    },
                    ...
                    {
                        "day": "sun",
                        "is_active": false
                    }
                ]
            },
            "dinner_status": "on",
            "dinner_time": {
                "begin": {
                    "hour": 12,
                    "minute": 0
                },
                "end": {
                    "hour": 13,
                    "minute": 0
                }
            }
        },
        {
            "menu_id": "1",
            "title": "Menu 1",
            "type": "readtext",
            "status": "off",
            "waitexten": 5,
            "auto_responder": {
                "status": "off",
                "waitexten": 1
            }
        },
        ...
    ]
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

post /v1/pbx/ivr/create/

utworzenie IVR

                                    {
    "status": "success",
    "menu_id": 2
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • buy - 'true' - odpłatne utworzenie menu.

delete /v1/pbx/ivr/delete/

usunięcie IVR

                                    {
    "status": "success"
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • menu_id - powinno być > 0.

get /v1/pbx/ivr/scenario/

lista scenariuszy IVR

                                    {
    "status": "success",
    "scenarios": [
        {
            "id": "132",
            "title": "-1",
            "push_button": -1,
            "first_sips": [
                "102"
            ],
            "second_sips": [],
            "second_sips_delay": 10,
            "third_sips": [],
            "third_sips_delay": 20
        },
        ...
    ]
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • menu_id - ID menu/IVR.

post /v1/pbx/ivr/scenario/create/

utworzenie scenariuszu IVR

                                    {
    "status": "success",
    "menu_id": 0,
    "scenario_id": 2
}

Parametry:

  • push_button - przycisk, "-2" - czarna lista, "-1" - bez wciskania, 10 - automatyczna sekretarka, 0-9 - przyciski, 11..30 - dodatkowe scenariusze;
  • title - nazwa;
  • extension - numer wewnętrzny, lub numery przez spacje, lub "fax";
  • menu_id - ID menu/IVR;
  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

delete /v1/pbx/ivr/scenario/delete/

usunięcie scenariuszu IVR

                                    {
    "status": "success"
}

Parametry:

  • scenario_id - ID scenariuszu;
  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

Rozpoznawanie mowy

get /v1/speech_recognition/

uzyskanie wyników rozpoznawania

                                    {        
    "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
        }
    ]
}

Parametry:

  • call_id – unikalny id połączenia, ten id jest wskazany w nazwie pliku z nagraniem połączenia (unikalny dla każdego nagrania w statystykach);
  • lang - język rozpoznawania (opcjonalnie);
  • return - zwrócony wynik. Opcje: words - słowa, phrases - zwroty. (opcjonalny. domyślnie phrases);
  • alternatives - czy zwracać alternatywne opcje. Opcje: 0 - nie, 1 - tak. (opcjonalny. domyślnie 0).

gdzie

  • lang – język;
  • recognitionStatus: status rozpoznania. Opcje:
    • in progress - w procesie rozpoznania,
    • error - wystąpił błąd podczas rozpoznawania,
    • recognized - rozpoznano,
    • ready for recognize - nagranie gotowe do rozpoznania,
    • not available for recognize - nagranie nie jest dostępne do rozpoznania
  • result:
    • words - tablica:
      • result - lista słów (tablica):
        • s - czas rozpoczęcia słowa
        • e - czas rozpoczęcia słowa
        • w - słowo
      • channel - numer kanału
    • phrases - tablica:
      • result - fraza
      • channel - numer kanału

put /v1/speech_recognition/

rozpoczęcie rozpoznawania

                                    {
    "status":"success"
}

Parametry:

  • call_id – unikalny id połączenia, ten id jest wskazany w nazwie pliku z nagraniem połączenia (unikalny dla każdego nagrania w statystykach);
  • lang - język rozpoznawania (opcjonalnie).

Wirtualne numery

get /v1/direct_numbers/

informacja o numerach wirtualnych użytkownika

                                    {
    "status":"success",
    "info": [
        {
            "number":"442030000000",
            "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"
        },
    ...
    ]
}

Parametry:

W zależności od typu numeru parametry mogą się różnić! Opis parametrów:

  • number – podłączony numer wirtualny użytkownika;
  • status – status numeru;
  • country – kraj (dla common i revenue);
  • description – opis: miasto lub typ (dla common i revenue);
  • number_name – "imię" numeru wirtualnego (ustawione użytkownikiem);
  • sip – SIP, podpięty do numeru;
  • sip_name – "imię" SIP, podpięte do numeru;
  • start_date – data aktywacji numeru użytkownikiem;
  • stop_date – data końca ważności numeru użytkownika;
  • monthly_fee – cena za numer (dla common);
  • currency – waluta podanej ceny (dla common);
  • channels – ilość linii na numerze (dla common);
  • minutes – całkowity czas rozmów przychodzących za obecny miesiąc (dla revenue);
  • autorenew – czy jest włączone automatyczne przedłużanie numeru (dla common, revenue, rufree);
  • is_on_test – czy jest włączony "test" dla numeru;
  • type – typ numeru: common (numer wirtualny), rufree (darmowy numer moskiewski), revenue (darmowy numer moskiewski 495).

get /v1/direct_numbers/number/

informacje o zakupionym numerze

                                    {
    "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"
    }
}

Parametry:

  • type - może mieć jedną z 3 wartości:
    • 'revenue' - Bezpłatny numer Moskwy 495;
    • 'common' - standardowy numer, wszystkie inne;
  • number - numer.

get /v1/direct_numbers/autoprolongation/

status automatycznego przedłużenia

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

Parametry

  • type - może mieć jedną z 2 wartości:
    • 'revenue' - Bezpłatny numer Moskwy 495;
    • 'common' - standardowy numer, wszystkie inne;
  • number - numer.

put /v1/direct_numbers/autoprolongation/

zmień status automatycznego przedłużenia

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

Parametry

  • type - może mieć jedną z 2 wartości:
    • 'revenue' - Bezpłatny numer Moskwy 495;
    • 'common' - standardowy numer, wszystkie inne;
  • number - numer.
  • value - nowy status automatycznego przedłużenia, on lub off.

get /v1/direct_numbers/countries/

lista krajów, w których można zamówić numer

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

Parametry

  • language - opcjonalnie, jeżeli nie ustawiony to będzie język Panelu klienta;

get /v1/direct_numbers/country/

lista kierunków w kraju, w których można zamówić numer

                                    {
    "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"
        },
        ...
    ]
}

Parametry

  • language - opcjonalnie, jeżeli nie ustawiony to będzie język Panelu klienta;
  • country - iso kod kraju (ISO 3166-1 alpha-2).

put /v1/direct_numbers/set_caller_name/

ustawienie nazwy numeru (znaki łacińskie i cyfry, do 30 znaków)

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

Parametry

  • typ - może mieć jedną z 2 wartości:
    • 'revenue' - Bezpłatny numer Moskwy 495;
    • 'common' - standardowy numer, wszystkie inne;
  • number - numer;
  • caller_name - aby usunąć - po prostu puste pole.

put /v1/direct_numbers/set_sip_id/

podpięcie numeru z SIP lub włączenie trybu testowego

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

Parametry

  • type - może mieć jedną z 3 wartości:
    • 'revenue' - Bezpłatny numer Moskwy 495;
    • 'common' - standardowy numer, wszystkie inne;
  • number - numer;
  • sip_id - sip login lub adres zewnętrznego serwera (SIP URI);
  • test_mode - opcjonalnie, (on|off) - aby włączyć tryb testowy.

get /v1/direct_numbers/available/<DIRECTION_ID>/

numery, dostępne do zamówienia

                                    {
    'status': 'success',
    'numbers': [
        {
            'id': 1712p0D1643D0t42r198658,
            'direction_id': 13755,
            'number': '74990000001'
        },
        {
            'id': 184bdf85006c3f1676be200,
            'direction_id': 13755,
            'number': '74990000000'
        },
        ...
    ]
}

Parametry:

  • DIRECTION_ID - ID kierunku lub ru495;
  • mask - nieobowiązkowy parametr do wyszukiwania dopasowań według cyfr.

post /v1/direct_numbers/order/

zamówienie/zakup numeru

                                    {
    'status': 'success',
    'number': '74990000000',
    'is_reserved': 'false',
    'is_activated': 'true'
}

Parametry:

  • number_id - ID zamówionego numeru, otrzymany metodą GET /v1/direct_numbers/available/<DIRECTION_ID>/ naprzykład: 1712p0D1643D0t42r198658 (jeśli nie ma wyboru numerów, parametr nie jest używany);
  • direction_id - ID kierunku/miasta;
  • documents_group_id - ID grupy dokumentów użytkownikaя;
  • purpose - tekstowy opis celu użycia numeru (tylko w razie potrzeby);
  • receive_sms - 1 - włączenie odbiór wiadomości SMS (tylko jeśli numer obsługuje odbiór wiadomości SMS);
  • period - 'month' - jeden miesiąc, '3month' - trzy miesiące (nieobowiązkowy parametr, odbiór sms aktywuje się dla numerów zakupionych min. na 3 mies.);
  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

post /v1/direct_numbers/prolong/

przedłużenie ważności numerów na dowolną liczbę miesięcy

                                    {
    'status': 'success',
    'number': '74990000000',
    'stop_date': '2021-05-01 12:00:00',
    'total_paid': {
        'amount': 2,
        'currency': 'USD'
    }
}

Parametry:

  • number - numer do przedłużenia;
  • months - liczba miesięcy;
  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

Grupy dokumentów

get /v1/documents/files

lista plików/dokumentów w wybranej grupie

                                    {
    "status": "success",
    "documents": [
        {
            "type": "passport",
            "is_verified": "true",
            "source": "upload",
            "name": "file1.jpg"
        },
        {
            "type": "receipt",
            "is_verified": "false",
            "source": "upload",
            "name": "file2.jpg"
        }
    ]
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • group_id - nieobowiązkowy parametr, identyfikator grupy dokumentów, (0 lub nie określono - główna grupa dokumentów).

get /v1/documents/groups/list/

lista grup dokumentów

                                    {
    "status": "success",
    "groups": [
        {
            "id": 0,
            "email": "email@server.com",
            "salutation": 'MR',
            "nationality": null,
            "first_name": "John",
            "middle_name": "Richard",
            "last_name": "Smith",
            "organization": "Company",
            "organization_description": null,
            "organization_reg_number": null,
            "country": "DE",
            "region": "",
            "city": "Berlin",
            "address": "Brudden Strasse 8, 76611",
            "zip_code": '76611',
            "street": 'Brudden Strasse',
            "street_code": null,
            "municipality_code": null,
            "building_number": "8",
            "building_letter": null,
            "phone": "4900000000",
            "type_of_id": "",
            "id_number": "123000099",
            "issuing_authority": null,
            "issuing_date": null,
            "is_readonly": true
        }
    ]
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

get /v1/documents/groups/get/<ID>/

dane wg wybranej grupy dokumentów

                                    {
    "status": "success",
    "group": {
        "id": 0,
        "email": "email@server.com",
        "salutation": 'MR',
        "nationality": null,
        "first_name": "John",
        "middle_name": "Richard",
        "last_name": "Smith",
        "organization": "Company",
        "organization_description": null,
        "organization_reg_number": null,
        "country": "DE",
        "region": "",
        "city": "Berlin",
        "address": "Brudden Strasse 8, 76611",
        "zip_code": '76611',
        "street": 'Brudden Strasse',
        "street_code": null,
        "municipality_code": null,
        "building_number": "8",
        "building_letter": null,
        "phone": "4900000000",
        "type_of_id": "",
        "id_number": "123000099",
        "issuing_authority": null,
        "issuing_date": null,
        "is_readonly": true
    }            
}

Parametry:

  • ID - ID grupy, 0 - główna grupa dokumentów;
  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

get /v1/documents/groups/valid/<ID>/

sprawdzenie: grupy dokumentów odpowiedniości dla konkretnego kierunku/miasta

                                    {
    "status": "success",
    "is_information_match": "true",
    "is_documents_uploaded": "true",
    "is_documents_verified": "true",
    "is_address_match": "true"
}

Parametry:

  • ID - ID grupy, 0 - główna grupa dokumentów;
  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • direction_id - ID kierunku/miasta.

post /v1/documents/groups/create/

utworzenie nowej grupy dokumentów

                                    {
    "status": "success",
    "group": {
        "id": 0,
        "email": "email@server.com",
        "salutation": 'MR',
        "nationality": null,
        "first_name": "John",
        "middle_name": "Richard",
        "last_name": "Smith",
        "organization": "Company",
        "organization_description": null,
        "organization_reg_number": null,
        "country": "DE",
        "region": "",
        "city": "Berlin",
        "address": "Brudden Strasse 8, 76611",
        "zip_code": '76611',
        "street": 'Brudden Strasse',
        "street_code": null,
        "municipality_code": null,
        "building_number": "8",
        "building_letter": null,
        "phone": "4900000000",
        "type_of_id": "",
        "id_number": "123000099",
        "issuing_authority": null,
        "issuing_date": null,
        "is_readonly": true
    }            
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • email - adres email;
  • salutation - zwrot 'MR', 'MS', 'COMPANY';
  • nationality - narodowość, kod kraju iso2;
  • first_name - imię;
  • middle_name - nieobowiązkowy parametr, imię ojca;
  • last_name - nazwisko;
  • date_of_birth - nieobowiązkowy parametr, data urodzenia;
  • organization - nieobowiązkowy parametr, nazwa firmy/przedsiębiorstwa;
  • organization_description - nieobowiązkowy parametr, opis działaności lub branży;
  • organization_reg_number - nieobowiązkowy parametr, numer nip firmy;
  • country - kraj, kod kraju iso2;
  • region - nieobowiązkowy parametr, województwo;
  • city - miasto;
  • address - pełny adres;
  • zip_code - kod pocztowy;
  • street - ulica;
  • street_code - nieobowiązkowy parametr, kod ulicy, tylko dla Danii;
  • municipality_code - nieobowiązkowy parametr, kod gminy, tylko dla Danii;
  • building_number - numer domu;
  • building_letter - nieobowiązkowy parametr, litera numeru domu;
  • phone - numer kontaktowy;
  • type_of_id - nieobowiązkowy parametr, typ dokumentu: "PASSPORT", "DNI", "NIE", "RESIDENCE_PERMIT", "NATIONAL_ID_CARD", "BUSINESS_REGISTRATION";
  • id_number - nieobowiązkowy parametr, numer dokumentu;
  • issuing_authority - nieobowiązkowy parametr, kim wydany dokument;
  • issuing_date - nieobowiązkowy parametr, data wydania dokumentu;
  • direction_id - nieobowiązkowy parametr, ID kierunku/miasta do sprawdzenia odpowiedniości dokumentów.

put /v1/documents/groups/update/<GROUPID>/

aktualizacja danych grupy dokumentów

                                    {
    "status": "success",
    "group": {
        "id": 0,
        "email": "email@server.com",
        "salutation": 'MR',
        "nationality": null,
        "first_name": "John",
        "middle_name": "Richard",
        "last_name": "Smith",
        "organization": "Company",
        "organization_description": null,
        "organization_reg_number": null,
        "country": "DE",
        "region": "",
        "city": "Berlin",
        "address": "Brudden Strasse 8, 76611",
        "zip_code": '76611',
        "street": 'Brudden Strasse',
        "street_code": null,
        "municipality_code": null,
        "building_number": "8",
        "building_letter": null,
        "phone": "4900000000",
        "type_of_id": "",
        "id_number": "123000099",
        "issuing_authority": null,
        "issuing_date": null,
        "is_readonly": true
    }            
}

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • email - adres email;
  • salutation - zwrot 'MR', 'MS', 'COMPANY';
  • nationality - narodowość, kod kraju iso2;
  • first_name - imię;
  • middle_name - nieobowiązkowy parametr, imię ojca;
  • last_name - nazwisko;
  • date_of_birth - nieobowiązkowy parametr, data urodzenia;
  • organization - nieobowiązkowy parametr, nazwa firmy/przedsiębiorstwa;
  • organization_description - nieobowiązkowy parametr, opis działaności lub branży;
  • organization_reg_number - nieobowiązkowy parametr, numer nip firmy;
  • country - kraj, kod kraju iso2;
  • region - nieobowiązkowy parametr, województwo;
  • city - miasto;
  • address - pełny adres;
  • zip_code - kod pocztowy;
  • street - ulica;
  • street_code - nieobowiązkowy parametr, kod ulicy, tylko dla Danii;
  • municipality_code - nieobowiązkowy parametr, kod gminy, tylko dla Danii;
  • building_number - numer domu;
  • building_letter - nieobowiązkowy parametr, litera numeru domu;
  • phone - numer kontaktowy;
  • type_of_id - nieobowiązkowy parametr, typ dokumentu: "PASSPORT", "DNI", "NIE", "RESIDENCE_PERMIT", "NATIONAL_ID_CARD", "BUSINESS_REGISTRATION";
  • id_number - nieobowiązkowy parametr, numer dokumentu;
  • issuing_authority - nieobowiązkowy parametr, kim wydany dokument;
  • issuing_date - nieobowiązkowy parametr, data wydania dokumentu;
  • direction_id - nieobowiązkowy parametr, ID kierunku/miasta do sprawdzenia odpowiedniości dokumentów.

post /v1/documents/upload/

przesłanie pliku dokumentu do grupy

Parametry:

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • group_id - ID grupy, 0 - główna grupa dokumentów;
  • document_type - typ dokumentu: 'certificate', 'contract', 'company_letter', 'inn_ua', passport', 'phone_bill', 'photo_with_doc', 'photo_with_passport', 'receipt', 'driver_id_us_ca', 'driver_id_other';
  • file - przesłany plik.

Przykład:

                                    $zd = new \Zadarma_API_Test\Api(KEY, SECRET);
$zd->request(
    'documents/upload',
    [
        'group_id' => 0,
        'document_type' => 'passport',
        'file' => new CURLFile('passport.jpg', 'image/jpeg', 'passport.jpg')
    ],
    'post'
);

Przykład odpowiedzi:

                                    {
    "status": "success",
    "message": "The File passport.jpg has been successfully uploaded to the website.",
    "doc_name": "passport.jpg"
}

Dealer

get /v1/reseller/account/info/

informacja o koncie dealera

                                    {
    "status": "success",
    "balance": 123,
    "credit": 0,
    "currency": "USD",
    "reseller_fee": 10,
    "user_fee": 10
}

post /v1/reseller/account/money_transfer/

Przeniesienie środków z salda dealera na saldo konta i z powrotem

                                    {
    "status": "success",
    "user": {
        "balance": "62.0000",
        "currency": "EUR"
    },
    "reseller": {
        "balance": "94.825",
        "currency": "USD"
    }
}

Parametry

  • amount - kwota;
  • currency - waluta;
  • type - kierunek przeniesienia środków "to_reseller" lub "to_user".

get /v1/reseller/users/phones/

Lista potwierdzonych numerów użytkownika

                                    {
    "status": "success",
    "list": [
        {
            "id": 0,
            "number": "49025000897",
            "is_proved": false
        }
    ]
}

Parametry

  • user_id - id użytkownika;

post /v1/reseller/users/phones/add/

Dodanie kontaktowego numeru dla użytkownika

                                    {
    "status": "success",
    "id": 98,
    "number": "359000000001",
    "is_proved": true
}

Parametry

  • user_id - id użytkownika;
  • number - numer.

post /v1/reseller/users/phones/update/

Edycja numeru kontaktowego użytkownika

                                    {
    "status": "success",
    "id": 99,
    "number": "359000000002",
    "is_proved": false
}

Parametry

  • user_id - id użytkownika;
  • id - ID numeru, 0 - główny numer kontaktowy konta;
  • number - numer.

post /v1/reseller/users/phones/prove_by_sms

Weryfikacja numeru kontaktowego użytkownika

                                    {
    "number": "359000000002",
    "status": "success",
    "message": "You were sent an SMS message with a code. Code is valid for 1 hour."
}

Parametry

  • user_id - id użytkownika;
  • number - numer.

post /v1/reseller/users/phones/confirm

Potwierdzenie numeru kontaktowego kodem SMS

                                    {
    "status": "success",
    "message": "Your number confirmed!",
    "number": "35900000019"
}

Parametry

  • user_id - id użytkownika;
  • number - numer;
  • code - kod.

post /v1/reseller/users/registration/new/

Rejestracja nowego użytkownika

                                    {
    "status": "success",
    "user_id": 12345,
    "message": "You registered a new user in the system."
},{
    "status": "success",
    "message": "You registered a new user in the system. A registration confirmation link was sent to the email address you provided. To activate the account the user needs to click on that link, after which they can log in on the website."
},{
    "status": "success",
    "message": "You registered a new user in the system. A registration confirmation code was sent to the email address you provided. To activate the account the user needs to send code to you, after which you can confirm registration using API."
}

Parametry

  • email - adres email;
  • first_name - imię;
  • last_name - nieobowiązkowy parametr;
  • middle_name - nieobowiązkowy parametr;
  • organization - nieobowiązkowy parametr;
  • country - ISO2 kod kraju;
  • city - miasto;
  • address - nieobowiązkowy parametr;
  • phone - nieobowiązkowy parametr;
  • password - nieobowiązkowy parametr;
  • tariff - ID taryfy (ID można otrzymać poprzez metodę GET /v1/info/lists/tariffs/) ;
  • tariff_period - nieobowiązkowy parametr, wybrana taryfa month | year;
  • language - nieobowiązkowy parametr, kod języka, pl;
  • currency - nieobowiązkowy parametr, kod waluty, PLN;
  • promocode - nieobowiązkowy parametr, kod promocyjny;
  • gmt - nieobowiązkowy parametr, GMT;
  • id_card - nieobowiązkowy parametr, numer dokumentu ID card, passport.

post /v1/reseller/users/registration/confirm/

Potwierdzenie rejestracji użytkownika

                                    {
    "status": "success",
    "user_id": 12345
}

Parametry

  • code - kod potwierdzenia rejestracji z wiadomości, wysłanej pod adres email użytkownika;
  • email - adres email.

get /v1/reseller/users/list/

Lista użytkowników dealera wyświetlana na stronie (50 pozycji)

                                    {
    "status": "success",
    "total": 205,
    "total_pages": 5,
    "page": 1,
    "users": [
        {
            "id": "1234",
            "email": "test@domain.com",
            "first_name": "Test",
            "last_name": "Test",
            "organization": "",
            "phone": "74990000001",
            "created": "2021-01-26 14:21:04",
            "last_login": "2021-01-30 09:46:31",
            "balance": "0.4000",
            "currency": "GBP",
            "sips_count": "1",
            "is_active": true,
            "allow_topup": true,
            "allow_api_requests": true
        },
        ...
    ]
}

Parametry

  • page- numer strony.

get /v1/reseller/users/find/

Wyszukiwanie konta użytkownika wg kryterium (id, e-mail, SIP)

                                    {
    "status": "success",
    "user": {
        "id": "1234",
        "email": "test@domain.com",
        "first_name": "Test",
        "last_name": "Test",
        "organization": "",
        "phone": "74990000001",
        "created": "2021-01-26 14:21:04",
        "last_login": "2021-01-30 09:46:31",
        "balance": "0.4000",
        "currency": "GBP",
        "sips_count": "1",
        "is_active": true,
        "allow_topup": true,
        "allow_api_requests": true
    }
}

Parametry

  • id - nieobowiązkowy parametr;
  • sip - nieobowiązkowy parametr;
  • email - nieobowiązkowy parametr.

get /v1/reseller/users/topup/

Przeniesienie środków z salda dealera na saldo klienta

                                    {
    "status": "success",
    "user_topup": {
        "amount": 10,
        "currency": "GBP"
    },
    "reseller_withdraw": {
        "amount": 10,
        "currency": "GBP"
    }
}

Parametry

  • user_id - identyfikator użytkownika;
  • amount - kwota;
  • currency - waluta.

get /v1/reseller/users/api_key/

Otrzymaj obecne klucze dostępu do API

                                    {
    "status": "success",
    "user_id": 1234,
    "last_request_datetime": "2021-02-18 10:45:01",
    "allow_reset": true,
    "key": "hidden",
    "secret": "hidden"
},{
    "status": "success",
    "user_id": 1234,
    "last_request_datetime": "2021-02-26 15:59:50",
    "allow_reset": false,
    "key": "abscd",
    "secret": "12345"
}

Parametry

  • user_id - identyfikator użytkownika.

post /v1/reseller/users/api_key/

Otrzymaj nowe klucze dostępu do API

                                    {
    "status": "success",
    "user_id": 1234,
    "key": "abscd",
    "secret": "12345"
}

Parametry

  • user_id- identyfikator użytkownika.

Интеграция WebRTC виджета

get /v1/webrtc/get_key/

otrzymaj klucz dla webrtc-widgetu. Czas działania - 72 godziny.

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

Parametry:

  • sip – login SIP lub numer wewnętrzny centrali PBX.

post /v1/webrtc/create/

Utworzenie integracji WebRTC widgetu

                                    {
    "status": "success"
}

Parametry

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • domain - domena.

put /v1/webrtc/

Zmiana ustawień integracji WebRTC widgetu

                                    {
    "status": "success"
}

Parametry

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • shape - forma widgetu, dostępna wartość: 'square', 'rounded';
  • position - pozycja widgetu, dostępna wartość: 'top_left', 'top_right', 'bottom_right', 'bottom_left'.

get /v1/webrtc/

Dane integracji WebRTC widgetu

                                    {
    "status": "success",
    "is_exists": true,
    "domains": [
        "test.domain.com"
    ],
    "settings": {
        "shape": "square",
        "position": "top_right"
    }
}

Parametry

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

post /v1/webrtc/domain/

Dodanie domeny do integracji WebRTC widgetu

                                    {
   "status": "success"
}

Parametry

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • domain - domena.

delete /v1/webrtc/domain/

Usunięcie domeny z integracji webRTC widgetu

                                    {
   "status": "success"
}

Parametry

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
  • domain - domena.

delete /v1/webrtc/

Usunięcie integracji WebRTC widgetu

                                    {
   "status": "success"
}

Parametry

  • user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.

Metody ZCRM

Klienci

get /v1/zcrm/customers

Zwraca listę klientów

Parametry

  • search (opcjonalnie) — ciąg wyszukiwania. Wyszukiwanie odbywa się w oparciu na:
    • nazwa klienta
    • numery telefonów klientów
    • opis klienta
    • adres i kod pocztowy
    • strona internetowa
    • adresy e-mail
    • messengery
    • nazwiska pracowników
    • numery telefonów pracowników
    • opisy pracowników
    • adresy e-mail pracowników
    • messengery pracowników
  • filter (opcjonalnie) — filtr klientów. Struktura filtra:

(Odpowiedź 1)

                                    Odpowiedź 1:
{ "status": "company", "type": "client", "country": "GB", "city": "London", "label": 12, "employees_count": "50", "responsible": 20 }

gdzie:

  • status — status klienta. Prawidłowe wartości:
    • individual — osoba prywatna
    • company — firma
  • type — typ klienta. Prawidłowe wartości:
    • potential — potencjalny klient
    • client — klient
    • reseller — reseller
    • partner — partner
  • country — kraj klienta. Dwuliterowy kod (PL, US itd.)
  • city — miejscowość klienta (ciąg)
  • label — tag (identyfikator)
  • employees_count — liczba pracowników. Prawidłowe wartości:
    • 50 — mniej niż 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • responsible — odpowiedzialny (identyfikator użytkownika)

Dowolny z parametrów filtra można pominąć, tj. jest opcjonalny.

  • sort (opcjonalnie) — sortowanie klientów. Struktura parametru:

(Odpowiedź 2)

                                    Odpowiedź 2:
{ "attr": "name", "desc": 0 }

gdzie:

  • attr — pole sortowania. Prawidłowe wartości:
    • name — imię klienta
    • status — status klienta
    • type — typ klienta
  • desc — kierunek sortowania. Prawidłowe wartości:
    • 0 — rosnąco
    • 1 — malejąco
    • take (w przypadku paginacji) - ilu klientów zwrócić (domyślnie 20)
    • skip (w przypadku paginacji) — ilu klientów pominąć (domyślnie 0)

Odpowiedź

(Odpowiedź 3)

                                    Odpowiedź 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" } ] } ] }

gdzie:

  • totalCount — całkowita liczba klientów (w tym ciąg wyszukiwania i filtr)
  • customers — tablica klientów (z uwzględnieniem podziału na strony). Każdy element tablicy zawiera następujące parametry:
    • id — identyfikator klienta
    • name — imię klienta
    • status — status klienta. Prawidłowe wartości:
      • individual — osoba prywatna
      • company — firma
    • type — typ klienta. Prawidłowe wartości:
      • potential — potencjalny klient
      • client — klient
      • reseller — reseller
      • partner — partner
    • country — kraj klienta. Dwuliterowy kod (RU, US itd.)
    • city — miejscowość klienta (ciąg)
    • label — tag (identyfikator)
    • employees_count — liczba pracowników. Prawidłowe wartości:
      • 50 — mniej niż 50
      • 50_250 — 50 – 250
      • 250_500 — 250 – 500
    • comment — komentarz
    • country - kraj klienta. Dwuliterowy kod (PL, US itp.)
    • city — miasto klienta
    • address — adres klienta
    • zip — kod pocztowy
    • website — witryna klienta
    • created_at — data i godzina utworzenia klienta (w formacie YYYY-MM-DD HH:mm:ss)
    • created_by — przez kogo został utworzony (identyfikator użytkownika)
    • lead_source — źródło. Prawidłowe wartości:
      • manual — ręcznie
      • call_incoming — przychodzące połączenie
      • call_outgoing — wychodzące połączenie
      • form — formularz
    • lead_created_at — data i godzina utworzenia lead, jeśli klient został utworzony z leadów (w formacie YYYY-MM-DD HH:mm:ss)
    • lead_created_by — przez kogo został utworzony lead, jeśli klient został utworzony z leadów (identyfikator użytkownika)
    • phones — tablica numerów telefonów klientów. Każdy numer zawiera następujące pola:
      • type — typ numeru. Prawidłowe wartości:
        • work — stacjonarny
        • personal — prywatny
      • phone — wartość numeru
    • contacts — tablica kontaktów z klientami. Każdy kontakt zawiera następujące pola:
      • type — typ kontaktu. Prawidłowe wartości:
        • email_work — stacjonarny e-mail
        • email_personal — prywatny e-mail
        • skype
        • telegram
        • viber
        • whatsapp
      • value — wartość kontaktu
    • labels — tablica tagów przypisanych do klienta. Każdy tag zawiera następujące pola:
      • id — identyfikator tagu
      • label — wartość tagu

get /v1/zcrm/customers/<c_id>

Zwraca klienta według jego identyfikatora

Parametry adresu

  • c_id — identyfikator klienta

Odpowiedź

                                    {
  "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"
    }
  ]
}

gdzie:

  • id — identyfikator klienta
  • name — imię klienta
  • status — status klienta. Prawidłowe wartości:
    • individual — osoba prywatna
    • company — firma
  • type — typ klienta. Prawidłowe wartości:
    • potential — potencjalny klient
    • client — klient
    • reseller — reseller
    • partner — partner
  • responsible_user_id — odpowiedzialny (identyfikator użytkownika)
  • employees_count — liczba pracowników. Prawidłowe wartości:
    • 50 — mniej niż 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • country — kraj klienta. Dwuliterowy kod (PL, US itp.)
  • city — miasto klienta
  • address — adres klienta
  • zip — kod pocztowy
  • website — witryna klienta
  • created_at — data i godzina utworzenia klienta (w formacie YYYY-MM-DD HH:mm:ss)
  • created_by — przez kogo został utworzony (identyfikator użytkownika)
  • lead_source — źródło. Prawidłowe wartości:
    • manual — ręcznie
    • call_incoming — przychodzące połączenie
    • call_outgoing — wychodzące połączenie
    • form — formularz
  • lead_created_at — data i godzina utworzenia lead, jeśli klient został utworzony z leadów (w formacie YYYY-MM-DD HH:mm:ss)
  • lead_created_by — przez kogo został utworzony lead, jeśli klient został utworzony z leadów (identyfikator użytkownika)
  • phones — tablica numerów telefonów klientów. Każdy numer zawiera następujące pola:
    • type — typ numeru. Prawidłowe wartości:
      • work — stacjonarny
      • personal — prywatny
    • phone — wartość numeru
  • contacts — tablica kontaktów z klientami. Każdy kontakt zawiera następujące pola:
    • type — typ kontaktu. Prawidłowe wartości:
      • email_work — stacjonarny e-mail
      • email_personal — prywatny e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — wartość kontaktu
  • labels — tablica tagów przypisanych do klienta. Każdy tag zawiera następujące pola:
    • id — identyfikator tagu
    • label — wartość tagu
  • custom_properties — tablica dodatkowych właściwości. Każda dodatkowa właściwość zawiera następujące pola:
    • id — identyfikator dodatkowej właściwości
    • key — unikalne imię dodatkowej właściwości
    • title — wyświetlona nazwa dodatkowej właściwości
    • value — wartość dodatkowej właściwości

post /v1/zcrm/customers

Tworzy nowego klienta z określonymi danymi

Parametry

  • customer — dane nowego klienta. Struktura klienta:

(Odpowiedź 1)

                                    Odpowiedź 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" } ] }

gdzie:

  • name — nazwa klienta
  • status — status klienta. Prawidłowe wartości:
    • individual — osoba prywatna
    • company — firma
  • type — typ klienta. Prawidłowe wartości:
    • potential — potencjalny klient
    • client — klient
    • reseller — reseller
    • partner — partner
  • responsible_user_id — odpowiedzialny (identyfikator użytkownika)
  • employees_count — liczba pracowników. Prawidłowe wartości:
    • 50 — mniej niż 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • comment — komentarz
  • country — kraj klienta. Dwuliterowy kod (PL, US и т.д.)
  • city — miejscowość klienta
  • address — adres klienta
  • zip — kod pocztowy
  • website — witryna klienta
  • lead_source — źródło. Prawidłowe wartości:
    • manual — ręcznie
    • call_incoming — przychodzące połączenie
    • call_outgoing — wychodzące połączenie
    • form — formularz
  • phones — tablica numerów telefonów. Każdy numer musi zawierać następujące pola:
    • type — typ numeru. Prawidłowa wartość:
      • work — stacjonarny
      • personal — prywatny
    • phone — wartość numeru
  • contacts — tablica kontaktów klienta. Każdy kontakt musi zawierać następujące pola:
    • type — typ kontaktu. Prawidłowa wartość:
      • email_work — stacjonarny e-mail
      • email_personal — prywatny e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — wartość kontaktu
  • labels — tablica tagów dodanych do klienta. Każdy element musi zawierać:
    • id — identyfikator istniejącego tagu
  • custom_properties — tablica dodatkowych właściwości. Każdy element musi zawierać:
    • id — identyfikator dodatkowej właściwości
    • key — unikalne imię dodatkowej właściwości
    • value — wartość dodatkowej właściwości

Odpowiedź:

(Odpowiedź 2)

                                    Odpowiedź 2:
{ "id": 65 }

gdzie:

  • id — identyfikator utworzonego klienta

put /v1/zcrm/customers/<c_id>

Aktualizuje istniejącego klienta o określonym ID

Parametry adresu

  • c_id — identyfikator klienta

Parametry

  • customer — nowe dane klientów. Struktura klienta:

                                    {
    "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"
      }
    ]
}

gdzie:

  • name — nazwa klienta
  • status — status klienta. Prawidłowe wartości:
    • individual — osoba prywatna
    • company — firma
  • type — typ klienta. Prawidłowe wartości:
    • potential — potencjalny klient
    • client — klient
    • reseller — reseller
    • partner — partner
  • responsible_user_id — odpowiedzialny (identyfikator użytkownika)
  • employees_count — liczba pracowników. Prawidłowe wartości:
    • 50 — mniej niż 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • comment — komentarz
  • country — kraj klienta. Dwuliterowy kod (PL, US и т.д.)
  • city — miejscowość klienta
  • address — adres klienta
  • zip — kod pocztowy
  • website — witryna klienta
  • lead_source — źródło. Prawidłowe wartości:
    • manual — ręcznie
    • call_incoming — przychodzące połączenie
    • call_outgoing — wychodzące połączenie
    • form — formularz
  • phones — tablica numerów telefonów. Każdy numer musi zawierać następujące pola:
    • type — typ numeru. Prawidłowa wartość:
      • work — stacjonarny
      • personal — prywatny
    • phone — wartość numeru
  • contacts — tablica kontaktów klienta. Każdy kontakt musi zawierać następujące pola:
    • type — typ kontaktu. Prawidłowa wartość:
      • email_work — stacjonarny e-mail
      • email_personal — prywatny e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — wartość kontaktu
  • labels — tablica tagów dodanych do klienta. Każdy element musi zawierać:
    • id — identyfikator istniejącego tagu
  • custom_properties — tablica dodatkowych właściwości. Każdy element musi zawierać:
    • id — identyfikator dodatkowej właściwości
    • key — unikalne imię dodatkowej właściwości
    • value — wartość dodatkowej właściwości

delete /v1/zcrm/customers/<c_id>

Usuwa klienta według jego ID

Parametry adresu

  • c_id — identyfikator klienta

Tagi

get /v1/zcrm/customers/labels

Zwraca listę wszystkich tagów i statystyk według nich

Odpowiedź

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

gdzie:

  • totalCount — całkowita liczba tagów w systemie
  • labels — tablica tagów. Każdy tag ma następujące pola:
    • id — identyfikator tagu
    • label — imię tagu
    • count — liczba klientów i leads korzystających z tego tagu

post /v1/zcrm/customers/labels

Tworzy nowy tag

Parametry

  • name — imię nowego tagu

Odpowiedź

                                    {
  "id": 13,
  "label": "Very best clients",
  "count": 0
}

gdzie:

  • id — identyfikator utworzonego tagu
  • label — nazwa tagu
  • count — liczba klientów i leads korzystających z tego tagu (tutaj zawsze jest to 0)

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

Usuwa tag z systemu według jego ID

Parametry adresu

  • l_id — identyfikator tagu

Dodatkowe właściwości

get /v1/zcrm/customers/custom-properties

Zwraca wszystkie dodatkowe właściwości

Odpowiedź

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

gdzie:

  • totalCount — całkowita liczba dodatkowych właściwości.
  • customProperties — tablica dodatkowych właściwości. Każda dodatkowa właściwość zawiera następujące pola:
    • id — identyfikator dodatkowej właściwości
    • key — unikalne imię dodatkowej właściwości
    • title — wyświetlona nazwa dodatkowej właściwości

Kanał klienta

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

Zwraca wpisy z kanału klienta

Parametry adresu

  • c_id — identyfikator klienta

Odpowiedź

                                    {
  "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"
        }
      ]
    }
  ]
}

gdzie:

  • totalCount — całkowita liczba wpisów
  • items — tablica wpisów. Każdy wpis zawiera następujące atrybuty:
    • id — identyfikator wpisu
    • type — typ wpisu. Możliwa wartość:
      • event — wydarzenie
      • note — tekstowa notatka
      • call — połączenie
    • content — treść wpisu. Jeśli typem wpisu jest notatka, ten atrybut zawiera tekstową treść notatki. Jeśli typ wpisu to zdarzenie, ten atrybut zawiera identyfikator zdarzenia, na przykład:
      • CUSTOMER_CREATED — zdarzenie tworzenia klienta
      • LEAD_CREATED — zdarzenie tworzenia potencjalnego klienta
    • time — czas wpisu w formacie YYYY-MM-DD hh:mm:ss
    • user_id — identyfikator użytkownika, który utworzył notatkę
    • user_name — nazwa użytkownika, który utworzył notatkę
    • call_id — identyfikator połączenia (jeśli typem wpisu jest połączenie)
    • call_type — typ połączenia. Możliwa wartość:
      • incoming — połączenie przychodzące
      • outgoing — połączenie wychodzące
    • call_status — status połączenia. Prawidłowa wartość
      • answer — udane połączenie
      • noanswer — brak odpowiedzi
      • cancel — anulowano
      • busy — zajęty
      • failed — nie powiodło się
    • call_phone — numer telefonu
    • call_duration — czas trwania w sekundach
    • call_record — czy nagrywanie rozmów jest włączone
    • call_contact_name — imię kontaktu połączenia
    • attached_files — tablica plików dołączonych do notatki (jeśli typ wpisu to notatka). Każdy element tablicy zawiera następujące atrybuty:
      • file_id — identyfikator pliku
      • original_filename — oryginalna nazwa pliku

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

Dodaje notatkę tekstową do kanału klienta z możliwością dołączania plików

Parametry adresu

  • c_id — identyfikator klienta

Parametry

  • content — wartość tekstowa notatki
  • files — tablica załączników

Odpowiedź

                                    {
  "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"
    }
  ]
}

gdzie:

  • id - identyfikator wpisu
  • type - typ wpisu. W takim przypadku jest to równe:
    • note - notatka tekstowa
  • content - treść tekstu notatki
  • time - czas notatki w formacie YYYY-MM-DD hh:mm:ss
  • user_id - identyfikator użytkownika, który utworzył notatkę
  • user_name - nazwa użytkownika, który utworzył notatkę
  • attached_files - tablica plików dołączonych do notatki (jeśli typ wpisu to notatka). Każdy element tablicy zawiera następujące atrybuty:
    • file_id — identyfikator pliku
    • original_filename — oryginalna nazwa pliku

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

Aktualizuje zawartość istniejącej notatki tekstowej według jej ID

Parametry adresu

  • c_id — identyfikator klienta
  • i_id — identyfikator notatki tekstowej

Parametry

  • content — nowy tekst notatki

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

Usuwa notatkę z kanału klienta według jej ID

Parametry adresu

  • c_id — identyfikator klienta
  • i_id — identyfikator notatki tekstowej

Pracownicy

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

Zwraca listę pracowników klienta według jego ID

Parametry adresu

  • c_id — identyfikator klienta

Odpowiedź

                                    {
  "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"
        }
      ]
    }
  ]
}

gdzie:

  • totalCount — liczba pracowników klienta
  • employees — tablica pracowników klientów. Każdy element tablicy zawiera następujące atrybuty:
    • id — identyfikator pracownika
    • customer_id — identyfikator klienta, z którym związany jest pracownik
    • name — imię pracownika
    • position — stanowisko pracownika. Prawidłowe wartości:
      • ceo — prezes zarządu
      • director — wiceprezes zarządu
      • manager — menadżer
      • sales_manager — kierownik sprzedaży
      • hr — HR
      • support — obsługa klienta
      • custom — dowolne
    • position_title — nazwa dowolnej pozycji (dla position = custom)
    • comment — komentarz
    • phones — tablica numerów telefonów pracowników. Każdy numer zawiera następujące pola:
      • type — typ numeru. Prawidłowe wartości:
        • work — stacjonarny
        • personal — prywatny
      • phone — wartość numeru
    • contacts — tablica kontaktów z klientami. Każdy kontakt zawiera następujące pola:
      • type — typ kontaktu. Prawidłowe wartości:
        • email_work — stacjonarny e-mail
        • email_personal — prywatny e-mail
        • skype
        • telegram
        • viber
        • whatsapp
      • value — wartość kontaktu

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

Zwraca pracownika klienta według jego ID

Parametry adresu

  • c_id — identyfikator klienta
  • e_id — identyfikator pracownika

Odpowiedź

                                    {
  "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"
    }
  ]
}

gdzie:

  • id — identyfikator pracownika
  • customer_id — identyfikator klienta, z którym związany jest pracownik
  • name — imię pracownika
  • position — stanowisko pracownika. Prawidłowe wartości:
    • ceo — prezes zarządu
    • director — wiceprezes zarządu
    • manager — menadżer
    • sales_manager — kierownik sprzedaży
    • hr — HR
    • support — obsługa klienta
    • custom — dowolne
  • position_title — nazwa dowolnej pozycji (dla position = custom)
  • comment — komentarz
  • phones — tablica numerów telefonów pracowników. Każdy numer zawiera następujące pola:
    • type — typ numeru. Prawidłowe wartości:
      • work — stacjonarny
      • personal — prywatny
    • phone — wartość numeru
  • contacts — tablica kontaktów z klientami. Każdy kontakt zawiera następujące pola:
    • type — typ kontaktu. Prawidłowe wartości:
      • email_work — stacjonarny e-mail
      • email_personal — prywatny e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — wartość kontaktu

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

Tworzy i zapisuje nowego pracownika dla danego klienta

Parametry adresu

  • c_id — identyfikator klienta

Parametry

  • employee — nowe dane pracowników. Struktura pracowników:

(Odpowiedź 1)

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

gdzie:

  • name — imię pracownika
  • position — stanowisko pracownika. Prawidłowe wartości:
    • ceo — prezes zarządu
    • director — wiceprezes zarządu
    • manager — menadżer
    • sales_manager — kierownik sprzedaży
    • hr — HR
    • support — obsługa klienta
    • custom — dowolne
  • position_title — nazwa dowolnej pozycji (dla position = custom)
  • comment — komentarz
  • phones — tablica numerów telefonów pracowników. Każdy numer zawiera następujące pola:
    • type — typ numeru. Prawidłowe wartości:
      • work — stacjonarny
      • personal — prywatny
    • phone — wartość numeru
  • contacts — tablica kontaktów z klientami. Każdy kontakt zawiera następujące pola:
    • type — typ kontaktu. Prawidłowe wartości:
      • email_work — stacjonarny e-mail
      • email_personal — prywatny e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — wartość kontaktu

Odpowiedź

(Odpowiedź 2)

                                    Odpowiedź 2:
{ "id": 23 }

gdzie:

  • id — identyfikator nowego pracownika

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

Aktualizuje istniejącego pracownika o określonym ID

Parametry adresu

  • c_id — identyfikator klienta
  • e_id — identyfikator pracownika

Parametry

  • employee — nowe dane pracownika. Struktura:

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

gdzie:

  • name — imię pracownika
  • position — stanowisko pracownika. Prawidłowe wartości:
    • ceo — prezes zarządu
    • director — wiceprezes zarządu
    • manager — menadżer
    • sales_manager — kierownik sprzedaży
    • hr — HR
    • support — obsługa klienta
    • custom — dowolne
  • position_title — nazwa dowolnej pozycji (dla position = custom)
  • comment — komentarz
  • phones — tablica numerów telefonów pracowników. Każdy numer zawiera następujące pola:
    • type — typ numeru. Prawidłowe wartości:
      • work — stacjonarny
      • personal — prywatny
    • phone — wartość numeru
  • contacts — tablica kontaktów z klientami. Każdy kontakt zawiera następujące pola:
    • type — typ kontaktu. Prawidłowe wartości:
      • email_work — stacjonarny e-mail
      • email_personal — prywatny e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — wartość kontaktu

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

Usuwa pracownika według jego ID

Parametry adresu

  • c_id — identyfikator klienta
  • e_id — identyfikator pracownika

Zadania

get /v1/zcrm/events

Zwraca listę zadań

Parametry

  • search (opcjonalnie) - ciąg wyszukiwania. Wyszukiwanie odbywa się w oparciu:
    • tytuł zadania
    • opis zadania
    • komentarze ukończonych zadań
  • filter (opcjonalnie) - filtr zadań. Struktura filtra:

(Odpowiedź 1)

                                    Odpowiedź 1:
{ "responsible": 456, "createdBy": 456, "start": "2020-06-03 02:56:00", "end": "2020-06-12 02:56:00", "completed": 1 }

gdzie:

  • responsible — odpowiedzialny (identyfikator użytkownika)
  • createdBy — utworzono (identyfikator użytkownika)
  • start — pokaż zadania rozpoczynające się po określonym czasie (format YYYY-MM-DD hh:mm:ss)
  • end — pokaż zadania kończące się przed określonym czasem (format YYYY-MM-DD hh:mm:ss)
  • completed — ustaw na 1, aby w tym wyświetlać ukończone zadania
  • sort (opcjonalnie) - zadania sortowania. Struktura parametrów:

(Odpowiedź 2)

                                    Odpowiedź 2:
{ "attr": "start", "desc": 0 }

gdzie:

  • attr — pole sortowania. Prawidłowe wartości:
    • responsible — odpowiedzialny użytkownik
    • title — tytuł zadania
    • start — czas rozpoczęcia zadania
    • end — czas zakończenia zadania
  • desc — kierunek sortowania. Prawidłowe wartości:
    • 0 — rosnąco
    • 1 — malejąco

Odpowiedź

(Odpowiedź 3)

                                    Odpowiedź 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" } ] } ] }

gdzie

  • totalCount — całkowita liczba zadań
  • events — tablica zadań. Każde zadanie zawiera następujące atrybuty:
    • id — identyfikator zadania
    • type — typ zadania. Możliwa wartość:
      • task — zadanie
      • call — połączenie
    • title — tytuł zadania
    • description — opis zadania (w formacie Quill Delta)
    • start — data i godzina rozpoczęcia zadania (w formacie YYYY-MM-DD hh:mm:ss)
    • end — data i godzina zakończenia zadania (w formacie YYYY-MM-DD hh:mm:ss)
    • allDay — zadanie na cały dzień (true lub false) — datę określa się parametrem start
    • created_by — identyfikator użytkownika, który utworzył zadanie
    • responsible_user — identyfikator użytkownika odpowiedzialnego za zadanie
    • phone — numer telefonu dla połączenia (jeśli typ zadania to połączenie)
    • call_done — wskazuje, czy połączenie zostało wykonane
    • completed — wskazuje, że zadanie jest oznaczone jako ukończone
    • completed_comment — komentarz na ukończone zadanie
    • members — tablica uczestników zadania (tylko identyfikatory użytkowników)
    • customers — tablica klientów i potencjalnych klientów dołączonych do zadania. Każdy element tablicy zawiera następujące pola:
      • id — identyfikator klienta / lead
      • name — imię klienta / lead
      • status — status klienta. Możliwa wartość:
        • individual — osoba prywatna
        • company — firma
      • type — typ klienta. Prawidłowe wartości:
        • potential — potencjalny klient
        • client — klient
        • reseller — reseller
        • partner — partner
      • lead_source — źródło lead. Prawidłowe wartości:
        • manual — ręcznie
        • call_incoming — przychodzące połączenie
        • call_outgoing — wychodzące połączenie
        • form — formularz
      • lead_status — status lead. Możliwa wartość:
        • not_processed — niesortowany
        • in_progress — w przetwarzaniu
        • finished — zakończony
      • contact_type — typ kontaktu. Możliwa wartość:
        • customer — klient
        • lead — lead

get /v1/zcrm/events/<event_id>

Zwraca zadanie według jego ID

Odpowiedź

                                    {
  "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"
    }
  ]
}

gdzie

  • id — identyfikator zadania
  • type — typ zadania. Możliwa wartość:
    • task — zadanie
    • call — połączenie
  • title — tytuł zadania
  • description — opis zadania (w formacie Quill Delta)
  • start — data i godzina rozpoczęcia zadania (w formacie YYYY-MM-DD hh:mm:ss)
  • end — data i godzina zakończenia zadania (w formacie YYYY-MM-DD hh:mm:ss)
  • allDay — zadanie na cały dzień (true lub false) — datę określa się parametrem start
  • created_by — identyfikator użytkownika, który utworzył zadanie
  • responsible_user — identyfikator użytkownika odpowiedzialnego za zadanie
  • phone — numer telefonu dla połączenia (jeśli typ zadania to połączenie)
  • call_done — wskazuje, czy połączenie zostało wykonane
  • completed — wskazuje, że zadanie jest oznaczone jako ukończone
  • completed_comment — komentarz na ukończone zadanie
  • members — tablica uczestników zadania (tylko identyfikatory użytkowników)
  • customers — tablica klientów i potencjalnych klientów dołączonych do zadania. Każdy element tablicy zawiera następujące pola:
    • id — identyfikator klienta / lead
    • name — imię klienta / lead
    • status — status klienta. Możliwa wartość:
      • individual — osoba prywatna
      • company — firma
    • type — typ klienta. Prawidłowe wartości:
      • potential — potencjalny klient
      • client — klient
      • reseller — reseller
      • partner — partner
    • lead_source — źródło lead. Prawidłowe wartości:
      • manual — ręcznie
      • call_incoming — przychodzące połączenie
      • call_outgoing — wychodzące połączenie
      • form — formularz
    • lead_status — status lead. Możliwa wartość:
      • not_processed — niesortowany
      • in_progress — w przetwarzaniu
      • finished — zakończony
    • contact_type — typ kontaktu. Możliwa wartość:
      • customer — klient
      • lead — lead

post /v1/zcrm/events

Tworzy nowe zadanie z określonymi danymi

Parametry

  • event — dane nowego zadania. Struktura:

(Odpowiedź 1)

                                    Odpowiedź 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] }

gdzie

  • type — typ zadania. Możliwa wartość:
    • task — zadanie
    • call — połączenie
  • title — tytuł zadania
  • description — opis zadania (w formacie Quill Delta)
  • start — data i godzina rozpoczęcia zadania (w formacie YYYY-MM-DD hh:mm:ss)
  • end — data i godzina zakończenia zadania (w formacie YYYY-MM-DD hh:mm:ss)
  • allDay — zadanie na cały dzień (true lub false) — datę określa się parametrem start
  • responsible_user — identyfikator użytkownika odpowiedzialnego za zadanie
  • phone — numer telefonu dla połączenia (jeśli typ zadania to połączenie)
  • members — tablica uczestników zadania (tylko identyfikatory użytkowników)
  • customers — tablica klientów i potencjalnych klientów (tylko identyfikatory użytkowników)

Odpowiedź

(Odpowiedź 2)

                                    Odpowiedź 2:
{ "id": 7216 }

gdzie

  • id — identyfikator utworzonego zadania

put /v1/zcrm/events/<event_id>

Aktualizuje istniejące zadanie o określonym identyfikatorze

Parametry

  • event — nowe dane zadania. Struktura:

                                    {
    "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]
}

gdzie

  • title — tytuł zadania
  • description — opis zadania (w formacie Quill Delta)
  • start — data i godzina rozpoczęcia zadania (w formacie YYYY-MM-DD hh:mm:ss)
  • end — data i godzina zakończenia zadania (w formacie YYYY-MM-DD hh:mm:ss)
  • allDay — zadanie na cały dzień (true lub false) — datę określa się parametrem start
  • responsible_user — identyfikator użytkownika odpowiedzialnego za zadanie
  • phone — numer telefonu dla połączenia (jeśli typ zadania to połączenie)
  • members — tablica uczestników zadania (tylko identyfikatory użytkowników)
  • customers — tablica klientów i potencjalnych klientów (tylko identyfikatory użytkowników)

post /v1/zcrm/events/<event_id>/close

Kończy (zamyka) zadanie

Parametry

  • comment (opcjonalnie) - komentarz

delete /v1/zcrm/events/<event_id>

Usuwa zadanie według jej ID

Leads

get /v1/zcrm/leads

Zwraca listę leads

Parametry

  • search (opcjonalnie) - ciąg wyszukiwania. Wyszukiwanie odbywa się w oparciu:
    • imię lead
    • numery telefonów lead
    • opis potencjalnego klienta
    • adres i kod pocztowy
    • strona internetowa
    • adresy e-mail
    • messengery
  • filter (opcjonalnie) - filtr leads. Struktura filtra:

(Odpowiedź 1)

                                    Odpowiedź 1:
{ "source": "call_incoming", "responsible": 32, "label": 12, "createdAfter": "2020-06-11 12:24:00", "createdBefore": "2020-06-26 12:24:00" }

gdzie

  • source — źródło lead. Prawidłowe wartości:
    • manual — dodany ręcznie
    • call_incoming — połączenie przychodzące
    • call_outgoing — połączenie wychodzące
    • form — formularz callback
  • responsible — odpowiedzialny (identyfikator użytkownika). Ten parametr dopuszcza również wartości specjalne:
    • null — zwróci wszystkie leads przypisane do kogoś
    • –1 — zwróci nieprzetworzone leads
    • –2 — zwróci wszystkie leads (zarówno przypisane, jak i niesortowane)
  • label — tag (identyfikator)
  • createdAfter — pokaż tylko utworzone leads po określonym czasie (format: YYYY-MM-DD hh:mm:ss)
  • createdBefore — pokaż tylko leads utworzone przed określonym czasem (format: YYYY-MM-DD hh:mm:ss)

Dowolny z parametrów filtra można pominąć, tj. jest opcjonalny.

  • sort (opcjonalnie) - sortowanie leads. Struktura parametrów:

(Odpowiedź 2)

                                    Odpowiedź 2:
{ "attr": "name", "desc": 0 }

gdzie

  • attr — pole sortowania. Prawidłowe wartości:

    • name — imię lead
    • lead_source — źródło lead
    • lead_status — status lead
    • responsible_user_id — odpowiedzialny użytkownik
    • lead_created_at — czas utworzenia lead
  • desc — kierunek sortowania. Prawidłowe wartości:

    • 0 — rosnąco
    • 1 — malejąco
  • take (w przypadku paginacji) - ile zwrócić leads (domyślnie 20)

  • skip (w przypadku paginacji) - ile pominąć leads (domyślnie 0)

Odpowiedź

(Odpowiedź 3)

                                    Odpowiedź 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" } ] } ] }

gdzie

  • totalCount — całkowita liczba znalezionych leads (w tym ciąg wyszukiwania i filtr)
  • uncategorizedCount —łączna liczba nie analizowanych leads (w tym wyszukiwanie i filtrowanie)
  • leads — tablica potencjalnych klientów (z uwzględnieniem podziału na strony). Każdy element tablicy zawiera następujące parametry:
    • id — identyfikator lead
    • name — imię lead
    • responsible_user_id — odpowiedzialny (identyfikator użytkownika)
    • employees_count — liczba pracowników. Możliwa wartość:
      • 50 — mniej niż 50
      • 50_250 — 50 – 250
      • 250_500 — 250 – 500
    • comment — komentarz
    • country — kraj klienta. Dwuliterowy kod (PL, US itp.)
    • city — miasto klienta
    • address — adres klienta
    • zip — kod pocztowy
    • website — witryna klienta
    • lead_status — status lead. Możliwa wartość:
      • not_processed — niesortowany
      • in_progress — w przetwarzaniu
      • finished — zakończony
    • lead_source — źródło. Prawidłowe wartości:
      • manual — ręcznie
      • call_incoming — przychodzące połączenie
      • call_outgoing — wychodzące połączenie
      • form — formularz
    • lead_created_at — data i godzina utworzenia lead, jeśli klient został utworzony z leadów (w formacie YYYY-MM-DD HH:mm:ss)
    • lead_created_by — przez kogo został utworzony lead, jeśli klient został utworzony z leadów (identyfikator użytkownika)
    • phones — tablica numerów telefonów lead. Każdy numer zawiera następujące pola:
      • type — typ numeru. Prawidłowe wartości:
        • work — stacjonarny
        • personal — prywatny
      • phone — wartość numeru
    • contacts — tablica kontaktów z leads. Każdy kontakt zawiera następujące pola:
      • type — typ kontaktu. Prawidłowe wartości:
        • email_work — stacjonarny e-mail
        • email_personal — prywatny e-mail
        • skype
        • telegram
        • viber
        • whatsapp
      • value — wartość kontaktu
    • labels — tablica tagów przypisanych do klienta. Każdy tag zawiera następujące pola:
      • id — identyfikator tagu
      • label — wartość tagu

get /v1/zcrm/leads/<lead_id>

Zwraca lead według jego ID

Odpowiedź

                                    {
  "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"
    }
  ]
}

gdzie

  • id — identyfikator potencjalnego klienta
  • name — imię lead
  • responsible_user_id — odpowiedzialny (identyfikator użytkownika)
  • employees_count — liczba pracowników. Możliwa wartość:
    • 50 — mniej niż 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • comment — komentarz
  • country - kraj klienta. Dwuliterowy kod (PL, US itp.)
  • city - miasto klienta
  • address - adres klienta
  • zip - kod pocztowy
  • website - witryna klienta
  • lead_status — status lead. Możliwa wartość:
    • not_processed — niesortowany
    • in_progress — w przetwarzaniu
    • finished — zakończony
  • lead_source — źródło. Prawidłowe wartości:
    • manual — ręcznie
    • call_incoming — przychodzące połączenie
    • call_outgoing — wychodzące połączenie
    • form — formularz
  • lead_created_at — data i godzina utworzenia lead, jeśli klient został utworzony z leadów (w formacie YYYY-MM-DD HH:mm:ss)
  • lead_created_by — przez kogo został utworzony lead, jeśli klient został utworzony z leadów (identyfikator użytkownika)
  • phones — tablica numerów telefonów lead. Każdy numer zawiera następujące pola:
    • type — typ numeru. Prawidłowe wartości:
      • work — stacjonarny
      • personal — prywatny
    • phone — wartość numeru
  • contacts — tablica kontaktów z leads. Każdy kontakt zawiera następujące pola:
    • type — typ kontaktu. Prawidłowe wartości:
      • email_work — stacjonarny e-mail
      • email_personal — prywatny e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — wartość kontaktu
  • labels — tablica tagów przypisanych do klienta. Każdy tag zawiera następujące pola:
    • id — identyfikator tagu
    • label — wartość tagu

post /v1/zcrm/leads

Tworzy nowy lead z określonymi danymi

Parametry

  • convert — konwertować lead w klienta. Prawidłowe wartości:
    • 0 - nie konwertować, utwórz lead
    • 1 - utwórz klienta
    • 2 - niedocelowy (operacja zostanie anulowana - nie zostanie utworzony lead ani klient)
  • lead — dane nowego lead. Struktura lead:

(Odpowiedź 1)

                                    Odpowiedź 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" } ] }

gdzie

  • name — imię lead
  • responsible_user_id — odpowiedzialny (identyfikator użytkownika)
  • employees_count — liczba pracowników. Możliwa wartość:
    • 50 — mniej niż 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • comment — komentarz
  • country - kraj lead. Dwuliterowy kod (PL, US itp.)
  • city - miasto lead
  • address - adres lead
  • zip - kod pocztowy
  • website - witryna
  • lead_status — status lead. Możliwa wartość:
    • not_processed — niesortowany
    • in_progress — w przetwarzaniu
    • finished — zakończony
  • lead_source — źródło. Prawidłowe wartości:
    • manual — ręcznie
    • call_incoming — przychodzące połączenie
    • call_outgoing — wychodzące połączenie
    • form — formularz
  • phones — tablica numerów telefonów lead. Każdy numer zawiera następujące pola:
    • type — typ numeru. Prawidłowe wartości:
      • work — stacjonarny
      • personal — prywatny
    • phone — wartość numeru
  • contacts — tablica kontaktów z leads. Każdy kontakt zawiera następujące pola:
    • type — typ kontaktu. Prawidłowe wartości:
      • email_work — stacjonarny e-mail
      • email_personal — prywatny e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — wartość kontaktu
  • labels — tablica tagów dodana do potencjalnej szansy. Każdy element musi zawierać:
    • id — identyfikator istniejącego tagu
    • custom_properties — tablica dodatkowych właściwości. Każdy element musi zawierać:
      • id — identyfikator dodatkowej właściwości albo:
      • key — unikalna nazwa dodatkowej właściwości
      • value — wartość dodatkowej właściwości

Odpowiedź

(Odpowiedź 2)

                                    Odpowiedź 2:
{ "id": 123 }

gdzie

  • id — identyfikator utworzonego leadu

put /v1/zcrm/leads/<lead_id>

Aktualizuje istniejący lead o określonym ID

Parametry

  • convert — konwertować lead w klienta. Prawidłowe wartości:
    • 0 - nie konwertuj
    • 1 - utwórz klienta
    • 2 - niedocelowy (usuń lead)
  • lead — dane nowego lead. Struktura 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"
      }
    ]
}

gdzie

  • name — imię lead
  • responsible_user_id — odpowiedzialny (identyfikator użytkownika)
  • employees_count — liczba pracowników. Możliwa wartość:
    • 50 — mniej niż 50
    • 50_250 — 50 – 250
    • 250_500 — 250 – 500
  • comment — komentarz
  • country - kraj lead. Dwuliterowy kod (PL, US itp.)
  • city - miasto lead
  • address - adres lead
  • zip - kod pocztowy
  • website - witryna
  • lead_status — status lead. Możliwa wartość:
    • not_processed — niesortowany
    • in_progress — w przetwarzaniu
    • finished — zakończony
  • lead_source — źródło. Prawidłowe wartości:
    • manual — ręcznie
    • call_incoming — przychodzące połączenie
    • call_outgoing — wychodzące połączenie
    • form — formularz
  • phones — tablica numerów telefonów lead. Każdy numer zawiera następujące pola:
    • type — typ numeru. Prawidłowe wartości:
      • work — stacjonarny
      • personal — prywatny
    • phone — wartość numeru
  • contacts — tablica kontaktów z leads. Każdy kontakt zawiera następujące pola:
    • type — typ kontaktu. Prawidłowe wartości:
      • email_work — stacjonarny e-mail
      • email_personal — prywatny e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — wartość kontaktu
  • labels — tablica tagów dodana do potencjalnej szansy. Każdy element musi zawierać:
    • id — identyfikator istniejącego tagu
    • custom_properties — tablica dodatkowych właściwości. Każdy element musi zawierać:
      • id — identyfikator dodatkowej właściwości albo:
      • key — unikalna nazwa dodatkowej właściwości
      • value — wartość dodatkowej właściwości

delete /v1/zcrm/leads/<lead_id>

Usuwa lead według jego ID

Użytkownicy

get /v1/zcrm/users

Zwraca listę użytkowników

Odpowiedź

                                    {
  "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"
        }
      ]
    }
  ]
}

gdzie

  • totalCount — całkowita liczba użytkowników
  • users — tablica użytkowników. Każdy element tablicy zawiera następujące atrybuty:
    • id — identyfikator użytkownika
    • email — konto e-mail użytkownika
    • name — nazwa użytkownika
    • group_id — identyfikator grupy użytkowników
    • is_superadmin — wskazuje, czy użytkownik jest superadministratorem (1 czy 0)
    • enabled — czy użytkownik jest odblokowany (1 czy 0)
    • created_at — data i godzina utworzenia użytkownika (format YYYY-MM-DD hh:mm:ss)
    • avatar — awatar użytkownika (identyfikator pliku)
    • role — stanowisko użytkownika
    • status — status użytkownika
    • language — język interfejsu użytkownika. Możliwe opcje:
      • pl — polski
      • de — niemiecki
      • en — angielski
      • es — hiszpański
      • ru — rosyjski
      • ua — ukraiński
    • color — kolor zadań użytkownika w interfejsie ZCRM (tylko wartość odcienia - od 0 do 359)
    • color_hex — kolor zadań użytkownika w interfejsie ZCRM (hex-reprezentacja)
    • internal_number — wewnętrzny numer centrali PBX użytkownika
    • timezone — strefa czasowa użytkownika
    • first_day — określa, który dzień tygodnia jest początkiem tygodnia:
      • 0 — niedziela
      • 1 — poniedziałek
    • device — co używa się do połączeń. Możliwa wartość:
      • webphone — web-telefon
      • softphone — softphone(aplikacja)
    • phone_widget_location — lokalizacja widgetu web telefonu. Możliwa wartość:
      • left — umieść widget telefonu po lewej
      • right — umieść widget telefonu po prawej
    • phones — tablica numerów telefonów użytkowników. Każdy numer zawiera następujące pola:
      • phone — numer
      • type — typ numeru. Możliwa wartość:
        • work — stacjonarny
        • personal — prywatny
    • contacts — tablica kontaktów użytkownika. Każdy kontakt zawiera następujące pola:
      • type — typ kontaktu. Możliwa wartość:
        • email_work — stacjonarny e-mail
        • email_personal — prywatny e-mail
        • skype
        • telegram
        • viber
        • whatsapp
      • value — wartość kontaktu

get /v1/zcrm/users/<user_id>

Zwraca użytkownika według jego ID

Odpowiedź

                                    {
  "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
}

gdzie

  • id — identyfikator użytkownika
  • email — konto e-mail użytkownika
  • name — nazwa użytkownika
  • group_id — identyfikator grupy użytkowników
  • is_superadmin — wskazuje, czy użytkownik jest superadministratorem (1 czy 0)
  • enabled — czy użytkownik jest odblokowany (1 czy 0)
  • created_at — data i godzina utworzenia użytkownika (format YYYY-MM-DD hh:mm:ss)
  • avatar — awatar użytkownika (identyfikator pliku)
  • role — stanowisko użytkownika
  • status — status użytkownika
  • language — język interfejsu użytkownika. Możliwe opcje:
    • pl — polski
    • de — niemiecki
    • en — angielski
    • es — hiszpański
    • ru — rosyjski
    • ua — ukraiński
  • color — kolor zadań użytkownika w interfejsie ZCRM (tylko wartość odcienia - od 0 do 359)
  • color_hex — kolor zadań użytkownika w interfejsie ZCRM (hex-reprezentacja)
  • internal_number — wewnętrzny numer centrali PBX użytkownika
  • timezone — strefa czasowa użytkownika
  • first_day — określa, który dzień tygodnia jest początkiem tygodnia:
    • 0 — niedziela
    • 1 — poniedziałek
  • device — co używa się do połączeń. Możliwa wartość:
    • webphone — web-telefon
    • softphone — softphone(aplikacja)
  • phone_widget_location — lokalizacja widgetu web telefonu. Możliwa wartość:
    • left — umieść widget telefonu po lewej
    • right — umieść widget telefonu po prawej
  • phones — tablica numerów telefonów użytkowników. Każdy numer zawiera następujące pola:
    • phone — numer
    • type — typ numeru. Możliwa wartość:
      • work — stacjonarny
      • personal — prywatny
  • contacts — tablica kontaktów użytkownika. Każdy kontakt zawiera następujące pola:
    • type — typ kontaktu. Możliwa wartość:
      • email_work — stacjonarny e-mail
      • email_personal — prywatny e-mail
      • skype
      • telegram
      • viber
      • whatsapp
    • value — wartość kontaktu
  • pending_email_change_request — jeśli wysłano prośbę o zmianę konta e-mail, ale prośba nie została jeszcze potwierdzona, parametr ten zostanie ustawiony na true

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

Zwraca godziny pracy użytkownika

Odpowiedź

                                    {
  "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"
    }
  ]
}

gdzie

  • schedulePeriod — częstotliwość harmonogramu, jak to się powtarza. W przypadku normalnego tygodnia pracy jest to 7 dni, w przypadku codziennego harmonogramu - 2 dni itd.
  • scheduleWorkingHours — tablica okresów pracy. Każdy okres roboczy zawiera następujące atrybuty:
    • time_start — początek czasu pracy w formacie YYYY-MM-DD hh:mm:ss
    • time_end — koniec czasu pracy w formacie YYYY-MM-DD hh:mm:ss
  • scheduleFixes — tablica zmian wprowadzonych do okresów pracy zdefiniowanych w parametrze scheduleWorkingHours. Każdy element tablicy zawiera następujące atrybuty:
    • index — indeks elementu w harmonogramie Godziny pracy, tj. jaki okres pracy został zmieniony
    • repeat_index — indeks powtórki harmonogramu, w którym zmienia się okres pracy
    • time_start — nowy początek czasu pracy w formacie YYYY-MM-DD hh:mm:ss
    • time_end — nowy koniec czasu pracy w formacie YYYY-MM-DD hh:mm:ss
    • deleted — jeśli jest równe 1, okres pracy jest całkowicie usuwany
  • customWorkingHours — tablica niestandardowych, pojedynczych okresów roboczych. Każdy okres roboczy zawiera następujące atrybuty:
    • time_start — początek czasu pracy w formacie YYYY-MM-DD hh:mm:ss
    • time_end — koniec czasu pracy w formacie YYYY-MM-DD hh:mm:ss

get /v1/zcrm/users/groups

Zwraca grupy i prawa użytkownika dla każdej z nich

Odpowiedź

                                    {
  "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
      }
    }
  ]
}

gdzie

  • totalCount — całkowita liczba grup
  • groups — tablica grup. Każda grupa zawiera następujące atrybuty:
    • id — identyfikator grupy
    • type — typ grupy. Możliwa wartość:
      • admin — administratorzy
      • manager — menadżery
      • chat_operator — operatorzy
      • trainee — stażyści
      • custom — niestandardowy
    • title — nazwa grupy użytkowników (dla type = custom)
    • permissions — prawa użytkownika do grupy. Administratorzy mają pełny dostęp, więc dla administratorów ten obiekt będzie pusty. Pozostałe grupy zawierają następujące atrybuty (z których każda może być równa „true” lub „false”):
      • customers_create — dozwolone tworzenie klientów
      • customers_edit — dozwolona edycja klientów
      • customers_delete — dozwolone usuwanie klientów
      • customers_import_export — dozwolony import i eksport klientów
      • customers_view_all — dozwolone wyświetlanie wszystkich klientów, w tym tych przypisanych do innych użytkowników
      • calendar_other_users_access — dozwolone zadania przeglądania innych użytkowników
      • calls_other_users_access — dozwolony dostęp do połączeń innych użytkowników
      • leads_view — dozwolone przeglądanie leadów innych użytkowników
      • leads_edit — dozwolona edycja leadów innych użytkowników
      • leads_delete — dozwolone usuwanie potencjalnych klientów innych użytkowników
      • leads_import_export — import i eksport leadów jest dozwolony
      • team_add — dozwolone dodawanie i zapraszanie użytkowników do zespołu
      • team_edit — dozwolona edycja użytkowników

Połączenia

get /v1/zcrm/calls

Zwraca listę połączeń

Parametry

  • search (opcjonalnie) - ciąg wyszukiwania. Wyszukiwanie odbywa się w oparciu:
    • numery telefonów
    • nazwiska kontaktów (klientów, pracowników, leads lub użytkowników)
  • filter (opcjonalnie) - filtr połączeń. Struktura filtra:

(Odpowiedź 1)

                                    Odpowiedź 1:
{ "user": 23, "type": "incoming", "status": "answer", "dateFrom": "2020-06-03 14:56:00", "dateTo": "2020-06-26 14:56:00" }

gdzie

  • user — użytkownik (identyfikator)
  • type — typ połączenia. Prawidłowe wartości:
    • incoming — przychodzące połączenie
    • outgoing — wychodzące połączenie
  • status — status połączenia. Prawidłowe wartości:
    • answer — udane połączenie
    • noanswer — brak odpowiedzi
    • cancel — anulowano
    • busy — zajęty
    • failed — nie powiodło się
  • dateFrom — pokazuje tylko połączenia wykonane po określonym czasie (format: YYYY-MM-DD hh:mm:ss)
  • dateTo — pokaż tylko połączenia wykonane przed określonym czasem (format: YYYY-MM-DD hh:mm:ss)

Dowolny z parametrów filtra można pominąć, tj. jest opcjonalny.

  • sort (opcjonalnie) - sortuj połączenia. Struktura parametru:

(Odpowiedź 2)

                                    Odpowiedź 2:
{ "attr": "time", "desc": 0 }

gdzie

  • attr — pole sortowania. Prawidłowe wartości:
    • phone — numer telefonu
    • status — status połączenia
    • duration — czas trwania połączenia
    • time — czas połączenia
  • desc — kierunek sortowania. Prawidłowe wartości:
    • 0 — rosnąco
    • 1 — malejąco
  • take (w przypadku paginacji) - ile połączeń zwrócić (domyślnie 20)
  • skip (w przypadku paginacji) - ile połączeń pominąć (domyślnie 0)

Odpowiedź

(Odpowiedź 3)

                                    Odpowiedź 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" } ] } ] }

gdzie

  • totalCount — łączna liczba połączeń (w tym ciąg wyszukiwania i filtr)
  • calls — tablica połączeń (z uwzględnieniem podziału na strony). Każdy element tablicy zawiera następujące parametry:
    • id - identyfikator połączenia
    • type - typ połączenia. Prawidłowe wartości:
      • incoming — przychodzące połączenie
      • outgoing — wychodzące połączenie
    • status — status połączenia. Prawidłowe wartości:
      • answer — udane połączenie
      • noanswer — brak odpowiedzi
      • cancel — anulowano
      • busy — zajęty
      • failed — nie powiodło się
    • phone - numer telefonu
    • user_id - użytkownik, który zainicjował lub odebrał połączenie
    • time - czas połączenia w formacie YYYY-MM-DD hh:mm:ss
    • duration - czas trwania połączenia w sekundach
    • pbx_call_id - identyfikator połączenia w Zadarma PBX
    • record - czy nagrywanie rozmów jest włączone
    • record_url_till - czas, do którego link do nagrania rozmowy będzie działał
    • contact_type - typ kontaktu. Prawidłowa wartość:
      • customer - klient lub potencjalny klient (patrz parametr is_lead)
      • employee - pracownik klienta
      • user - użytkownik
    • contact_name - nazwa kontaktu
    • contact_customer_id - identyfikator klienta lub potencjalnego klienta (jeśli połączenie jest powiązane z klientem)
    • contact_employee_id - identyfikator pracownika (jeśli połączenie jest powiązane z pracownikiem)
    • employee_customer_id - identyfikator klienta nadrzędnego (jeśli połączenie jest powiązane z pracownikiem)
    • contact_user_id - identyfikator użytkownika (jeśli połączenie jest powiązane z użytkownikiem)
    • is_lead - pokazuje, czy połączenie jest związane z potencjalnym klientem
    • record_urls - tablica nagrań rozmowy (może nie być wyświetlona, bo trzeba specjalnie wywołać). Każdy element tablicy jest obiektem zawierającym pole:
      • URL - link do nagrania rozmowy

Uogólnione kontakty

get /v1/zcrm/contacts

Zwraca listę wszystkich kontaktów (klientów, pracowników, leads, użytkowników) z numerami telefonów

Parametry

  • search (opcjonalnie) - ciąg wyszukiwania. Wyszukiwanie odbywa się w oparciu:
    • nazwiska i numery telefonów klientów, potencjalnych klientów, pracowników i użytkowników
    • Numery wewnętrzne użytkowników PBX
  • take (w przypadku paginacji) - ile kontaktów zwrócić (domyślnie 20)
  • skip (w przypadku paginacji) - ile kontaktów pominąć (domyślnie 0)

Odpowiedź

(Odpowiedź 1)

                                    Odpowiedź 1:
{ "totalCount": 128, "contacts": [ { "contact_type": "customer", }, { "contact_type": "employee", }, { "contact_type": "lead", }, { "contact_type": "user", } ] }

gdzie

  • totalCount — łączna liczba kontaktów (w tym ciąg wyszukiwania)
  • contacts — tablica kontaktów. Każdy kontakt, w zależności od jego typu (klient, pracownik, lead, użytkownik), będzie miał swój własny zestaw atrybutów.

Klient

(Odpowiedź 2)

                                    Odpowiedź 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" } }

gdzie

  • contact_type — rodzaj kontaktu:
    • customer — klient
  • id — identyfikator klienta
  • name — imię klienta
  • status — status klienta. Możliwa wartość:
    • individual — osoba prywatna
    • company — firma
  • type — typ klienta. Możliwa wartość:
    • potential — potencjalny klient
    • client — klient
    • reseller — reseller
    • partner — partner
  • phone — numer telefonu. Zawiera następujące pola:
    • phone — numer
    • type — typ numeru. Możliwa wartość:
      • work — sracjonarny
      • personal — prywatny
  • responsible — odpowiedzialny użytkownik. Zawiera następujące pola:
    • id — identyfikator użytkownika
    • name — nazwa użytkownika
    • ext_num — wewnętrzny numer PBX użytkownika

Pracownik klienta

(Odpowiedź 3)

                                    Odpowiedź 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" } }

gdzie

  • contact_type — rodzaj kontaktu:
    • employee — pracownik
  • id — identyfikator pracownika
  • name — imię pracownika
  • phone — numer telefonu. Zawiera następujące pola:
    • phone — numer
    • type — typ numeru. Możliwa wartość:
      • work — stacjonarny
      • personal — prywatny
  • position — stanowisko pracownika. Zawiera następujące pola:
    • position — rodzaj stanowiska. Prawidłowe wartości:
      • ceo — prezes zarządu
      • director — wiceprezes zarządu
      • manager — menadżer
      • sales_manager — kierownik sprzedaży
      • hr — HR
      • support — obsługa klienta
      • custom — dowolne
    • title — nazwa dowolnej pozycji (dla position = custom)
  • customer — klient, do którego pracownik jest przywiązany. Zawiera następujące pola:
    • id — identyfikator klienta
    • name — imię klienta
  • responsible — użytkownik odpowiedzialny za klienta nadrzędnego. Zawiera następujące pola:
    • id — identyfikator użytkownika
    • name — imię użytkownika
    • ext_num — numer wewnętrzny centrali PBX użytkownika

Lead

(Odpowiedź 4)

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

gdzie

  • contact_type — rodzaj kontaktu:
    • lead — lead
  • id — identyfikator lead
  • name — imię lead
  • phone — numer telefonu. Zawiera następujące pola:
    • phone — numer
    • type — typ numeru. Możliwa wartość:
      • work — stacjonarny
      • personal — prywatny
  • responsible — odpowiedzialny użytkownik. Zawiera następujące pola:
    • id — identyfikator użytkownika
    • name — imię użytkownika
    • ext_num — numer wewnętrzny centrali PBX użytkownika

Użytkownik

(Odpowiedź 5)

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

gdzie

  • contact_type — typ kontakta:
    • user — użytkownik
  • id — identyfikator użytkownika
  • name — imię użytkownika
  • avatar — awatar użytkownika (identyfikator pliku)
  • role — rola użytkownika
  • status — status użytkownika
  • phone — numer telefonu. Zawiera następujące pola:
    • phone — numer
    • type — typ numeru. Prawidłowa wartość:
      • work — stacjonarny
      • personal — prywatny
      • internal — numer wewnętrzny centrali PBX
  • group — grupa użytkownika
    • type — typ grupy. Zawiera następujące pola:
      • admin — administratorzy
      • manager — menadżery
      • chat_operator — operatorzy
      • trainee — stażyści
      • custom — niestandardowe
    • title — imię użytkowników grupy (dla type = custom)

get /v1/zcrm/contacts/identify

Identyfikuje kontakt (klient, pracownik, lead, użytkownik) według numeru telefonu

Parametry

  • phone — numer telefonu

Odpowiedź

Odpowiedź będzie zależeć od rodzaju znalezionego kontaktu (klient, pracownik, lead, użytkownik).

Klient

(Odpowiedź 1)

                                    Odpowiedź 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" } }

gdzie

  • contact_type — rodzaj kontaktu:
    • customer — klient
  • id — identyfikator klienta
  • name — imię klienta
  • status — status klienta. Możliwa wartość:
    • individual — osoba prywatna
    • company — firma
  • type — typ klienta. Możliwa wartość:
    • potential — potencjalny klient
    • client — klient
    • reseller — reseller
    • partner — partner
  • phone — numer telefonu. Zawiera następujące pola:
    • phone — numer
    • type — typ numeru. Prawidłowa wartość:
      • work — stacjonarny
      • personal — prywatny
  • responsible — odpowiedzialny użytkownik. Zawiera następujące pola:
    • id — identyfikator użytkownika
    • name — imię użytkownika
    • ext_num — numer wewnętrzny centrali PBX użytkownika

Pracownik klienta

(Odpowiedź 2)

                                    Odpowiedź 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" } }

gdzie

  • contact_type — rodzaj kontaktu:
    • employee — pracownik
  • id — identyfikator pracownika
  • name — imię pracownika
  • phone — numer telefonu. Zawiera następujące pola:
    • phone — numer
    • type — typ numeru . Możliwa wartość:
      • work — stacjonarny
      • personal — prywatny
  • position — stanowisko pracownika. Prawidłowe wartości:
    • position — rodzaj stanowiska. Prawidłowe wartości:
    • ceo — prezes zarządu
    • director — wiceprezes zarządu
    • manager — menadżer
    • sales_manager — kierownik sprzedaży
    • hr — HR
    • support — obsługa klienta
    • custom — dowolne
    • title — nazwa dowolnej pozycji (dla position = custom)
  • customer — klient, do którego pracownik jest przywiązany. Zawiera następujące pola:
    • id — identyfikator klienta
    • name — imię klienta
  • responsible — użytkownik odpowiedzialny za klienta nadrzędnego. Zawiera następujące pola:
    • id — identyfikator użytkownika
    • name — imię użytkownika
    • ext_num — numer wewnętrzny centrali PBX użytkownika

Lead

(Odpowiedź 3)

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

gdzie

  • contact_type — rodzaj kontaktu:
    • customer — klient
  • id — identyfikator lead
  • name — imię lead
  • status — status klienta. Możliwa wartość:
    • individual — osoba prywatna
    • company — firma
  • type — typ klienta. Możliwa wartość:
    • potential — potencjalny klient
    • client — klient
    • reseller — reseller
    • partner — partner
  • phone — numer telefonu. Zawiera następujące pola:
    • phone — numer
    • type — typ numeru. Prawidłowa wartość:
      • work — stacjonarny
      • personal — prywatny
  • responsible — odpowiedzialny użytkownik. Zawiera następujące pola:
    • id — identyfikator użytkownika
    • name — imię użytkownika
    • ext_num — numer wewnętrzny centrali PBX użytkownika

Użytkownik

(Odpowiedź 4)

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

gdzie

  • contact_type — typ kontakta:
    • user — użytkownik
  • id — identyfikator użytkownika
  • name — imię użytkownika
  • avatar — awatar użytkownika (identyfikator pliku)
  • role — rola użytkownika
  • status — status użytkownika
  • phone — numer telefonu. Zawiera następujące pola:
    • phone — numer
    • type — typ numeru. Prawidłowa wartość:
      • work — stacjonarny
      • personal — prywatny
      • internal — numer wewnętrzny centrali PBX
  • group — grupa użytkownika
    • type — typ grupy. Zawiera następujące pola:
      • admin — administratorzy
      • manager — menadżery
      • chat_operator — operatorzy
      • trainee — stażyści
      • custom — niestandardowe
    • title — imię użytkowników grupy (dla type = custom)

Pliki

get /v1/zcrm/files/<file_id>

Zwraca plik według jego ID

Informacja o połączeniach przychodzących


System Zadarma może wysyłać informację o każdym połączeniu przychodzącym na centralę telefoniczną i kierować połączenia na odpowiedni numer wewnętrzny w zależności od odpowiedzi. Aby to zrobić, należy utworzyć otwarty publicznie dostępny link, jaki będzie otrzymywał POST-żądania z informacjami od systemu Zadarma.

NOTIFY_START

czas rozpoczęcia połączenia przychodzącego na centralę

Parametry, jakie są wysyłane do linku dla powiadomień:

  • event – wydarzenie (NOTIFY_START)
  • call_start – czas rozpoczęcia rozmowy;
  • pbx_call_id – id połączenia;
  • caller_id – numer osoby dzwoniącej;
  • called_did – numer, na który było wykonane połączenie.

Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:

                                    $signatureTest = base64_encode(hash_hmac('sha1', 
        $_POST['caller_id'] . $_POST['called_did'] . 
        $_POST['call_start'], API_SECRET));

Dla żądania NOTIFY_START i NOTIFY_IVR istnieje możliwość na bieżąco zmiany działania scenariuszu dla obecnego połączenia wysyłając w odpowiedzi informację:

Odtwarzać plik:

(Odpowiedź 1)

                                    Odpowiedź 1:
{ "ivr_play": "ID" }

gdzie,

  • ivr_play – wartość kolumny ID na liście nagranych/przesłanych plików.

Odtwarzaj popularny komunikat:

(Odpowiedź 2)

                                    Odpowiedź 2:
{ "ivr_saypopular": 1, "language": "en" }

gdzie,

  • ivr_saypopular – numer komunikatu na liście;

Odtwarzaj cyfry:

(Odpowiedź 3)

                                    Odpowiedź 3:
{ "ivr_saydigits": "12", "language": "en" }

Odtwarzaj cyfry (zgodnie z zasadami liczb zespolonych):

(Odpowiedź 4)

                                    Odpowiedź 4:
{ "ivr_saynumber": "123", "language": "en" }

gdzie,

  • language może zawierać jedno z parametrów: ru, ua, en, es, pl;

Jeśli zostałe zawarte ivr_saydigits lub ivr_saynumber,przy następnym zdarzeniu NOTIFY_IVR będzie dodany parametr: "ivr_saydigits": "COMPLETE" lub "ivr_saynumber": "COMPLETE"

W każdym z powyższych żądań może wystąpić żądanie wprowadzenia numerów od abonenta:

(Odpowiedź 5)

                                    Odpowiedź 5:
{ "wait_dtmf": { "timeout": TIMEOUT, "attempts": ATTEMPTS, "maxdigits": MAXDIGITS, "name": NAME, "default": DEFAULT, } }

gdzie,

  • timeout - czas oczekiwania na wybieranie cyfr w sekundach;
  • attempts - ilość prób wybierania cyfr od abonenta;
  • maxdigits - maks. liczba cyfr, wybieranie których oczekiwać;
  • name - nazwa, jaka będzie w odpowiedzi;
  • default - żądanie, jeśli nic nie wybrano. Możliwe warianty:
    • id scenariuszu przekierowania (w formacie 0-1 gdzie 0 numer menu głosowego, 1 numer scenariuszu);
    • menu głosowego 0-main, gdzie 0 - to id menu;
    • numer wewnętrzny centrali (trzycyfrowy numer);
    • hangup - zakończ rozmowę.

W następnym żądaniu NOTIFY_IVR będzie dodatkowy parametr:

(Odpowiedź 6)

                                    Odpowiedź 6:
{ "wait_dtmf": { "name": NAME, "digits": DIGITS, "default_behaviour": "1" } }

gdzie,

  • name - nazwa, podana w poprzedniej odpowiedzi;
  • digits - cyfry, wybrane abonentem;
  • default_behaviour - podane, jeśli abonent nic nie wybrał i zadziałało domyślne zachowanie;

Przekierowanie połączenia:

(Odpowiedź 7)

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

gdzie,

  • redirect - id scenariuszu przekierowania (w formacie 0-1 gdzie 0 numer menu głosowego, 1 numer scenariuszu); lub menu głosowego 0-main, gdzie 0 - to id menu; lub numer wewnętrzny centrali (trzycyfrowy numer); lub "blacklist" - w tym przypadku połączenie zostanie odrzucone z sygnałem zajętości;
  • return_timeout - Parametr w sekundach. Możliwe warianty:
    • 0, połączenie nie zostanie zwrócone do menu;
    • >= 3 - czas próby łączenia z numerem wewnętrznym, przed zwróceniem na menu;

Zakończ rozmowę:

(Odpowiedź 8)

                                    Odpowiedź 8:
{ "hangup": 1 }

W każdej odpowiedzi możesz opcjonalnie dodać:

Nazwę lun nazwę przychodzącego numeru:

(Odpowiedź 9)

                                    Odpowiedź 9:
{ "caller_name": NAME }

gdzie,

  • caller_name - nazwa numeru.

Lista popularnych komunikatów:

  • Witajcie
  • Dzień dobry
  • Przekierowanie
  • Zadzwoń ze strony
  • Witamy
  • Testowa wiadomość
  • Proszę czekać na połączenie
  • Dodzwoniłeś się poza godzinami pracy
  • W tej chwili wszystkie konsultanci są zajęci, proszę czekać
  • Wybierz numer wewnętrzny abonenta
  • Wybierz numer wewnętrzny pracownika
  • Wybierz numer wewnętrzny
  • Proszę czekać
  • Wybierz numer wewnętrzny i zaczekaj na odpowiedź
  • Proszę zostawić wiadomość
  • Proszę zostawić wiadomość po sygnale
  • Prosimy skontaktować się z nami w godzinach pracy
  • Dziękujemy za skontaktowanie się z nami
  • Dziękujemy za rozmowę
  • Spodziewaj się odpowiedzi operatora
  • Proszę czekać, będzie rozmowa
  • Informujemy, że rozmowa będzie nagrywana
  • W tej chwili jesteśmy poza biurem
  • Proszę zostawić kontakt, oddzwonimy do Ciebie
  • W dniu dzisiejszym biuro jest zamknęte

NOTIFY_INTERNAL

czas rozpoczęcia połączenia na wewnętrzny numer centrali

Parametry, jakie są wysyłane do linku dla powiadomień:

  • event – wydarzenie (NOTIFY_INTERNAL)
  • call_start – czas rozpoczęcia rozmowy;
  • pbx_call_id – id połączenia;
  • caller_id – numer osoby dzwoniącej;
  • called_did – numer, na który było wykonane połączenie.
  • internal – (nieobowiązkowy) wewnętrzny numer.

Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:

                                    $signatureTest = base64_encode(hash_hmac('sha1', 
        $_POST['caller_id'] . $_POST['called_did'] . 
        $_POST['call_start'], API_SECRET));

NOTIFY_ANSWER

odpowiedź przy połączeniu na numer wewnętrzny lub numer zewnętrzny

Parametry, jakie są wysyłane do linku dla powiadomień:

  • event – wydarzenie (NOTIFY_ANSWER)
  • caller_id – numer osoby dzwoniącej;
  • destination – numer, na który było wykonane połączenie;
  • call_start – czas rozpoczęcia rozmowy;
  • pbx_call_id – id połączenia;
  • internal – (nieobowiązkowy) wewnętrzny numer.

Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:

                                    $signatureTest = base64_encode(hash_hmac('sha1', 
        $_POST['caller_id'] . $_POST['destination'] . 
        $_POST['call_start'], API_SECRET));

NOTIFY_END

czas zakończenia połączenia przychodzącego na wewnętrzny numer centrali

Parametry, jakie są wysyłane do linku dla powiadomień:

  • event – wydarzenie (NOTIFY_END)
  • call_start – czas rozpoczęcia rozmowy;
  • pbx_call_id – id połączenia;
  • caller_id – numer osoby dzwoniącej;
  • called_did – numer, na który było wykonane połączenie;
  • internal – (nieobowiązkowy) wewnętrzny numer;
  • duration – czas trwania w sekundach;
  • disposition – stan połączenia:
    • 'answered' – rozmowa,
    • 'busy' – zajęte,
    • 'cancel' - odrzucone,
    • 'no answer' - brak odpowiedzi,
    • 'failed' - nieudane,
    • 'no money' - brak środków, przekroczony limit,
    • 'unallocated number' - numer nie istnieje,
    • 'no limit' - przekroczony limit,
    • 'no day limit' - przekroczony dzienny limit,
    • 'line limit' - przekroczony limit linii,
    • 'no money, no limit' - przekroczony limit;
  • last_internal – numer wewnętrzny, ostatni uczestnik połączenia (po przekierowaniu lub przechwytywaniu);
  • status_code – kod statusu połączenia Q.931;
  • is_recorded – 1 - nagrywanie połączenia, 0 - bez nagrywania;
  • call_id_with_rec – id połączenia z funkcją nagrywania (polecamy ściągać pliki z nagraniami nie wcześniej jak 40 sekund po zawiadomieniu, bo dla prawidłowego zapisania nagrania potrzebny jest czas).

Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:

                                    $signatureTest = base64_encode(hash_hmac('sha1', 
        $_POST['caller_id'] . $_POST['called_did'] . 
        $_POST['call_start'], API_SECRET));

NOTIFY_OUT_START

czas rozpoczęcia połączenia wychodzącego z centrali

Parametry, jakie są wysyłane do linku dla powiadomień:

  • event – wydarzenie (NOTIFY_OUT_START)
  • call_start – czas rozpoczęcia połączenia;
  • pbx_call_id – id połączenia;
  • caller_id – numer ustawiony na numerze wewnętrznym lub ustawiony w zasadach wybierania zgodnie z kierunkiem. Jeśli numer nie jest ustawiony, wyświetla się 0;
  • destination – numer na który było wykonane połączenie;
  • internal – (nieobowiązkowy) wewnętrzny numer.

Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:

                                    $signatureTest = base64_encode(hash_hmac('sha1', 
        $_POST['internal'] . $_POST['destination'] . 
        $_POST['call_start'], API_SECRET));

NOTIFY_OUT_END

czas zakończenia połączenia wychodzącego z centrali

Parametry, jakie są wysyłane do linku dla powiadomień:

  • event – wydarzenie (NOTIFY_OUT_END)
  • call_start – czas rozpoczęcia połączenia;
  • pbx_call_id – id połączenia;
  • caller_id – numer ustawiony na numerze wewnętrznym lub ustawiony w zasadach wybierania zgodnie z kierunkiem. Jeśli numer nie jest ustawiony, wyświetla się 0;
  • destination – numer na który było wykonane połączenia;
  • internal – (nieobowiązkowy) wewnętrzny numer;
  • duration – czas trwania w sekundach;
  • disposition – stan połączenia:
    • 'answered' – rozmowa,
    • 'busy' – zajęte,
    • 'cancel' - odrzucone,
    • 'no answer' - brak odpowiedzi,
    • 'failed' - nieudane,
    • 'no money' - brak środków, przekroczony limit,
    • 'unallocated number' - numer nie istnieje,
    • 'no limit' - przekroczony limit,
    • 'no day limit' - przekroczony dzienny limit,
    • 'line limit' - przekroczony limit linii,
    • 'no money, no limit' - przekroczony limit;
  • status_code – kod statusu połączenia Q.931;
  • is_recorded – 1 - nagrywanie połączenia, 0 - bez nagrywania;
  • call_id_with_rec –id połączenia z funkcją nagrywania (polecamy ściągać pliki z nagraniami nie wcześniej jak 40 sekund po zawiadomieniu, bo dla prawidłowego zapisania nagrania potrzebny jest czas).

Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:

                                    $signatureTest = base64_encode(hash_hmac('sha1', 
        $_POST['internal'] . $_POST['destination'] . 
        $_POST['call_start'], API_SECRET));

NOTIFY_RECORD

nagranie rozmowy jest gotowe do pobrania

Parametry, jakie są wysyłane do linku dla powiadomień:

  • event – wydarzenie (NOTIFY_RECORD)
  • call_id_with_rec – indywidualny id z nagraniem rozmowy;
  • pbx_call_id – stały ID zewnętrznego połączenia w ramach Centrali (nie zmienia się według scenariuszu, menu głosowego, transferu itd.,wyświetlany jest w statystykach i powiadomieniach).

Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:

                                    $signatureTest = base64_encode(hash_hmac('sha1', 
        $_POST['pbx_call_id'] . $_POST['call_id_with_rec'], API_SECRET));

NOTIFY_IVR

odpowiedź abonenta na określone żądanie

Parametry, jakie są wysyłane do linku dla powiadomień:

  • event – wydarzenie (NOTIFY_IVR)
  • call_start – czas rozpoczęcia rozmowy;
  • pbx_call_id – id połączenia;
  • caller_id – numer osoby dzwoniącej;
  • called_did – numer, na który było wykonane połączenie.

Sporządzanie weryfikacyjnego podpisu dla powiadomienia o połączeniach przychodzących, przykład na PHP:

                                    $signatureTest = base64_encode(hash_hmac('sha1', 
        $_POST['caller_id'] . $_POST['called_did'] . 
        $_POST['call_start'], API_SECRET));

Możliwe wysyłane odpowiedzi są odpowiednie do żądań NOTIFY_START

Przykład na PHP:

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

W celu zwiększenia bezpieczeństwa proponujemy zezwolić dostęp do Twojego linku tylko z IP 185.45.152.42.

Również, jeśli utworzyłeś klucze dostępu API, w każdym żądaniu na Twój link będzie wysłany dodatkowy nagłówek "Signature", po jakim możesz zweryfikować integralność i autentyczność danych.

Przykładowy skrypt możesz sprawdzić w naszym repozytorium na GitHub.

Inne powiadomienia


Parametr "result" w tych powiadomieniach jest w formacie JSON. Możesz otrzymać go w formacie XML zaznaczając w linku format=xml.

NUMBER_LOOKUP

wynik sprawdzenia numerów

Parametry, jakie są wysyłane do linku do powiadomień:

  • event – wydarzenie (NUMBER_LOOKUP)
  • success – status sukcesu sprawdzenia;
  • description – tekstowy opis zakończenia sprawdzenia;
  • result – dane wyniku;
    • number – sprawdzony numer;
    • mcc – kod kraju;
    • mnc – kod operatora;
    • ported – znak przeniesienia numeru do innego operatora;
    • roaming – znak przebywania w roamingu;
    • error – status błędu;
    • errorDescription – tekstowy opis błędu;
    • mccName – nazwa kraju;
    • mncName – nazwa operatora;

Sporządzenie weryfikacji podpisu:

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

CALL_TRACKING

raport połączeń na numery, podłączone do calltracking

Wysyłany co 15 minut, przy otrzymaniu nowych połączeń.

Parametry, jakie są wysyłane do linku do powiadomień:

  • event – wydarzenie (CALL_TRACKING)
  • result - tablica
    • tracker - ID tracking (można sprawdzić na stronię kopiowania kodu);
    • start - czas rozpoczęcia rozmowy;
    • duration - czas trwania rozmowy w sek.;
    • caller_id - numer osoby dzwoniącej;
    • caller_did - numer, na jaki dzwonili;
    • country - (opcjonalnie) kraj, do którego było wykonane połączenie;
    • ga_id - (opcjonalnie, jeśli w ustawieniach jest ID Google Analytics) id użytkownika Google Analytics;
    • metrika_id - (opcjonalnie, jeśli w ustawieniach jest ID Yandex.Metrika) id użytkownika Yandex.Metrika;
    • url - adres strony, z której było połączenie;
    • utm_source, utm_medium, utm_campaign, utm_term, utm_content - (opcjonalnie, jeśli określono tagi utm podczas przejścia na stronę) tagi utm, za pomocą których użytkownik odwiedził witrynę po raz ostatni;
    • first_utm - (opcjonalnie, jeśli witryna została odwiedzona po raz pierwszy z tagami utm innymi niż te po raz ostatni) lista tagów utm wskazanych powyżej, kiedy użytkownik po raz pierwszy odwiedził stronę;

Sporządzenie weryfikacji podpisu:

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

SMS

informacja o wiadomościach SMS

Parametry, jakie są wysyłane do linku do powiadomień:

  • event – zdarzenie (SMS)
  • result – tablica;
  • caller_id – numer nadawcy;
  • caller_did – numer odbiorcy;
  • text – tekst wiadomości.

Sporządzenie weryfikacji podpisu:

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

SPEECH_RECOGNITION

wynik rozpoznawania głosu

Parametry, jakie są wysyłane do linku dla powiadomień:

  • event – wydarzenie (SPEECH_RECOGNITION)
  • lang – język;
  • call_id – indywidualny id połączenia, ten id jest podany w nazwie pliku z nagraniem;
  • pbx_call_id – stały ID zewnętrznego połączenia w ramach Centrali;
  • result:
    • words - tablica:
      • result - lista słów (tablica):
        • s - czas rozpoczęcia słowa
        • e - czas rozpoczęcia słowa
        • w - słowo
      • channel - numer kanału
    • phrases - tablica:
      • result - fraza
      • channel - numer kanału