Nawigacja API

Wprowadzenie

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/

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

saldo użytkownika

get /v1/info/price/

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

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

Parametry:

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

get /v1/info/timezone/

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

strefa czasowa użytkownika

get /v1/tariff/

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

informacja o obecnej taryfie użytkownika

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;
  • 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/

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

callback

Parametry:

  • from – Twój numer telefonu lub SIP, lun numer wewnętrzny centrali, lub 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/

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

wysłanie SMS

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 tylko za granicę Rosyjskiej Federacji.

post /v1/info/number_lookup/

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

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:

Przykład odpowiedzi dla kliku numerów:

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

get /v1/webrtc/get_key/

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

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

SIP

get /v1/sip/

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

lista loginów SIP

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/

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

online status SIP loginów

put /v1/sip/callerid/

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

zmiana CallerID

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/

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

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

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/

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

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

Parametry:

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

put /v1/sip/redirection/

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

zmiana przekierowania

Parametry:

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

Statystyki

get /v1/statistics/

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

otrzymanie ogólnych statystyk

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,
    • '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/

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

statystyki centrali wirtualnej telefonicznej

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,
    • '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/

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

statystyki Widgetu CallBack

json_0 xml_0

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').

PBX

get /v1/pbx/internal/

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

wyświetlanie numerów wewnętrznych wirtualnej centrali

gdzie

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

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

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

online status numeru wewnętrznego

gdzie

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

put /v1/pbx/internal/recording/

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

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

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.

get /v1/pbx/record/request/

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

żą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:

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

Parametry:

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

post /v1/pbx/redirection/

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

zmiana paramentrów przekierowania na numerze wewnętrzym centrali

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/

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

otrzymanie paramentrów przekierowania na numerze wewnętrznym

Parametry:

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

Rozpoznawanie mowy

get /v1/speech_recognition/

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

uzyskanie wyników rozpoznawania

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/

                                        {
    "status":"success"
}
                                    

rozpoczęcie rozpoznawania

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/

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

informacja o numerach wirtualnych użytkownika

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), inum (darmowy numer międzynarodowy), rufree (darmowy numer moskiewski), revenue (darmowy numer moskiewski 495).

get /v1/direct_numbers/number/

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

informacje o zakupionym numerze

Parametry:

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

get /v1/direct_numbers/autoprolongation/

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

status automatycznego przedłużenia (NB! inum nie znajduje się na tej liście)

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/

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

zmień status automatycznego przedłużenia (NB! inum nie znajduje się na tej liście)

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/

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

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

Parametry

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

get /v1/direct_numbers/country/

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

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

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/

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

ustawienie caller name

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/

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

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

Parametry

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

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ź

Odpowiedź

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:

Odpowiedź

Odpowiedź :
{ "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ź

Odpowiedź

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ź

Odpowiedź

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ź

Odpowiedź

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ź

Odpowiedź

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ź

Odpowiedź

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ź

Odpowiedź

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ź

Odpowiedź

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:

Odpowiedź

Odpowiedź :
{ "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ź

Odpowiedź

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:

Odpowiedź

Odpowiedź :
{ "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>

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ź

Odpowiedź

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:

Odpowiedź

Odpowiedź :
{ "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ź

Odpowiedź

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ź

Odpowiedź

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ź

Odpowiedź

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ź

Odpowiedź

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.

Dostępne metody

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:

Odpowiedź

Odpowiedź :
$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;

  • default_behaviour - podane, jeśli abonent nic nie wybrał i zadziałało domyślne zachowanie;

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:

Odpowiedź

Odpowiedź :
$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:

Odpowiedź

Odpowiedź :
$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:

Odpowiedź

Odpowiedź :
$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:

Odpowiedź

Odpowiedź :
$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:

Odpowiedź

Odpowiedź :
$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:

Odpowiedź

Odpowiedź :
$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:

Odpowiedź

Odpowiedź :
$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

SPEECH_RECOGNITION

wynik rozpoznawania głosu

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

  • event – wydarzenie (SPEECH_RECOGNITION)
  • lang – język;
  • 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

Ustawić link do powiadomień, a także włączyć/wyłączyć rodzaje powiadomień możesz w zakładce API panelu klienta.

Aby system zaakceptował link, należy na początku skryptu koniecznie dodać kod weryfikacyjny.

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));