Wprowadzenie
Interfejs API jest całkowicie bezpłatny i dostępny na wszystkich kontach Zadarma
W API dostępne są wszystkie niezbędne funkcje do pracy z:
- Telefonia i numery wirtualne
- Centrala PBX i Teamsale CRM
- SMS i HLR
- Śledzenie połączeń
- Rozpoznawanie mowy
Autoryzacja
Każde żądanie, które wymaga autoryzacji, wysyłane jest z dodatkowym nagłówkiem typu:
"Authorization: klucz_użytkownika: podpis"
Klucze do autoryzacji należy wygenerować w Panelu klienta.
Podpis tworzony jest według następującego algorytmu:
- szereg przekazywanych danych (GET, POST, PUT, DELETE) układa się alfabetycznie według nazwy klucza;
- z otrzymanego szeregu tworzy się linia zapytania (np, funkcja http_build_query w PHP), przykład „from=DATEFROM&to=DATETO…”;
- i dalej – łączy się według formuły: linia = imię_metoda linia_zapytania md5 (linia_zapytania), gdzie “imię_metoda” – linia zapytania, rozpoczynając od domeny (z zaznaczeniem wersji API), do początku wyliczenia parametrów, na przykład - '/v1/sip/'
- otrzymana linia jest haszowana dzięki algorytmowi sha1 z sekretnym kluczem użytkownika: hash = hash (linia, sekretny klucz)
- następnie hash kodowany jest w base64 podpis = base64_encode (hash)
ksort($params);
$paramsStr = http_build_query($params, null, '&', PHP_QUERY_RFC1738);
$sign = base64_encode(hash_hmac('sha1', $method . $paramsStr . md5($paramsStr), $secret));
$header = 'Authorization: ' . $userKey . ':' . $sign;
Gotowy do pracy PHP z API, można pobrać z GitHub.
Format odpowiedzi: json (domyślnie) i xml.
Żeby otrzymać odpowiedź od API w formacie xml, dodaje się do żądania parametr "format=xml".
Ograniczenia
{
"status":"error",
"message":"Check phone's number"
}
Odpowiedź również przedstawia informację o limitach i obecnym żądaniu, na przykład:
X-Zadarma-Method: /v1/ X-RateLimit-Reset: 1434371160 X-RateLimit-Limit: 100 X-RateLimit-Remaining: 99
gdzie,
- X-Zadarma-Method - obecna metoda składania żądania;
- X-RateLimit-Remaining - ilość pozostałych żądań, z uwzględnieniem limitu na metodę i użytkownika;
- X-RateLimit-Limit - łączna liczba ograniczeń zapytania na minutę;
- X-RateLimit-Reset - czas zresetowania limitu.
Ograniczenia ogólne - 100 zapytań na minutę, na metodach statystycznych - 3 zapytania 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.
Uwaga: jeśli potrzebujesz stale aktualnych statystyk PBX, nie trzeba żądać statystyk poprzez metodę statistics/pbx/ co minutę. Włącz powiadomienia webhooks i otrzymuj informacje o każdym połączeniu w momencie jego rozpoczęcia i zakończenia.
Metody
get /v1/info/balance/
saldo użytkownika
{
"status":"success",
"balance":10.34,
"currency":"USD"
}
get /v1/info/price/
cena na połączenia zgodnie z wybraną taryfą użytkownika
{
"status":"success",
"info": {
"prefix":"4420",
"description":"United Kingdom, London",
"price":"0.009",
"currency":"USD",
}
}
Parametry:
- number – numer telefonu
- caller_id (nieobowiązkowy) – CallerID, jaki będzie wyświetlony przy wykonaniu połączenia.
get /v1/info/timezone/
strefa czasowa użytkownika
{
"status":"success",
"unixtime":1483228800,
"datetime":"2017-01-01 00:00:00",
"timezone":"UTC+0"
}
get /v1/tariff/
informacja o obecnej taryfie użytkownika
{
"status":"success",
"info": {
"tariff_id":5,
"tariff_name":"Standart, special",
"is_active":false,
"cost":0,
"currency":USD,
"used_seconds":1643,
"used_seconds_mobile":34,
"used_seconds_fix":726,
"tariff_id_for_next_period":5,
"tariff_for_next_period":Standart, special
}
}
gdzie
- tariff_id– ID obecnej taryfy użytkownika;
- tariff_name – nazwa obecnej taryfy użytkownika;
- is_active – czy jest aktywna obecna taryfa lub nie;
- cost – cena taryfy;
- currency – waluta taryfy;
- used_seconds – ilość wykorzystanych sekund taryfy;
- used_seconds_mobile – ilość wykorzystanych sekund taryfy na komórkowe;
- used_seconds_fix – ilość wykorzystanych sekund taryfy na stacjonarne;
- used_seconds_speech_recognition – liczba wykorzystanych sekund taryfy na rozpoznawanie mowy;
- tariff_id_for_next_period – ID taryfy użytkownika na następny okres;
- tariff_for_next_period – nazwa taryfy użytkownika na następny okres.
get /v1/request/callback/
callback
{
"status":"success",
"from":442037691880,
"to":442037691881,
"time":1435573082
}
Parametry:
- from – Twój numer telefonu lub SIP, lun numer wewnętrzny centrali, lub numer scenariuszu (w formacie 0-1 gdzie 0 numer menu głosowego, 1 numer scenariuszu), na jaki jest kierowany callback;
- to – numer telefonu lub SIP, na jaki dzwonisz;
- sip (nieobowiązkowy) – numer SIP użytkownika numer wewnętrzny centrali (np. 100), przez który będzie kierowane połączenie. Będzie wykorzystany CallerID tego numeru, w statystkach będzie wyświetlony dany numer SIP/centrali, jeśli dla danego numeru jest włączone nagrywanie rozmów lub prefiksy na połączenia wychodzące - będzie to użyte
- predicted (nieobowiązkowy) – jeśli podany ten parametr, żądani jest predykatywne (system wykonuje połączenia na numer "to" i tylko w przypadku odpowiedzi, następnie dzwoni na numer abonenta).
post /v1/sms/send/
wysłanie SMS
{
"status":"success",
"messages":1,
"cost":0.24,
"currency":"USD",
"sms_detalization":[
{
"senderid":"xxxxxxxxxxx",
"number":"1234567890",
"cost":0.06
}
],
"denied_numbers":[
{
"number":"1234567890",
"message":"Причина неотправки 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);
- sender – (opcjonalnie) SMS nadawca (numer wirtualny lub tekst) listę dostępnych senderID można uzyskać przez metodę GET /v1/sms/senderid/
- language – (opcjonalnie) język szablonu SMS. Jeśli nie zostanie określony, domyślnie jest wybrany język konta osobistego.
get /v1/sms/templates/
Pobranie listy szablonów SMS
{
"list": [
{
"cath_id":"1",
"title":"Название категории шаблонов",
"templates": [
{
"id":"1",
"text":"Текст шаблона с переменной {$var}"
},
{
"id":"2",
"text":"Текст шаблона два"
},
]
}
]
}
Parametry
- skip – (opcjonalnie) liczba szablonów do pominięcia, domyślnie 0;
- limit - (opcjonalnie) liczba szablonów do wyświetlenia (domyślnie 25, maksymalnie 1000)
get /v1/sms/senderid/
Żądanie listy dostępnych nadawców SMS na podany numer
{
"senders": ["Teamsale", "1234567890"]
}
Parametry
- phones – numer telefonu, dla którego chcesz uzyskać listę dozwolonych nadawców.
get /v1/request/checknumber/
potwierdzenie numeru
{
"status":"success",
"from":442037691880,
"to":442037691881,
"lang":"fr",
"time":1612779278
}
Parametry
- caller_id - numer wyświetlany podczas dzwonienia, dostępne są tylko numery zakupione w systemie Zadarma,
- to - wywoływany numer telefonu lub login SIP,
- code - kod do odtworzenia. Tylko cyfry i nie więcej niż 20 znaków,
- lang - język odtworzenia. Jeśli nie ma, jest wybierany panelu klienta, sprawdza się pod kątem dostępności w językach systemu.
post /v1/info/number_lookup/
aktualizacja bazy klientów (HLR)
Parametry:
- numbers – lista numerów w formacie międzynarodowym.
Jeśli numbers zawiera 1 numer, wynik będzie wysłany od razu, jeśli podana jest lista numerów, wynik zostanie wysłany mailowo, lub na podany adres url.
Zwróć uwagę: ustawienia danej metody można zmieniać tylko w Panelu klienta na stronie aktualizacji.
Przykład odpowiedzi dla 1 numeru:
(Odpowiedź 1)
Odpowiedź 1:
{
"status":"success",
"info":{
"mcc":"24702",
"mnc":"02",
"mccName":"Latvia",
"mncName":"Tele2",
"ported":false,
"roaming":false,
"errorDescription":"No Error"
}
}
Przykład odpowiedzi dla kliku numerów:
(Odpowiedź 2)
Odpowiedź 2:
{
"status":"success"
}
Przykład wyniku, wysłanego na adres, podany na stronie aktualizacji:
(Odpowiedź 3)
Odpowiedź 3:
{
"success":true,
"description":"Success",
"result": [
{
"mcc":"24702",
"mnc":"02",
"ported":false,
"roaming":false,
"errorDescription":"No Error",
"mccName":"Latvia",
"mncName":"Tele2",
"number":"3712812858",
}, ...
]
}
get /v1/info/lists/currencies/
Lista walut
{
"status": "success",
"currencies": [
"USD",
"EUR",
"RUB",
"GBP",
"PLN"
]
}
get /v1/info/lists/languages/
Lista dostępnych języków panelu klienta
{
"status": "success",
"languages": [
"en",
"es",
"de",
"pl",
"ru",
"ua",
"fr"
]
}
get /v1/info/lists/tariffs/
Lista taryf
{
"status": "success",
"currency": "EUR",
"tariffs": [
{
"tariff_id": 5,
"name": "Standard",
"cost": 0,
"days": "30"
},
...
],
"package_tariffs": [
{
"id": 1,
"name": "EU",
"tariffs": [
{
"tariff_id": 23,
"name": "Office",
"cost": 22,
"cost_annual": 216
},
...
]
},
...
]
}
Parametry
- currency – waluta
SIP
get /v1/sip/
lista loginów SIP
{
"status":"success",
"sips":[
{"id":"00001", "display_name":"SIP 1", "lines":3},
{"id":"00002", "display_name":"SIP 2", "lines":3}
],
"left":3
}
gdzie
- id– SIP-id;
- display_name – wyświetlone imię;
- lines – ilość linii;
- left – ilość pozostałych SIP, jaki można utworzyć (zależy od salda na koncie i ilości już utworzonych SIP).
get /v1/sip/<SIP>/status/
online status SIP loginów
{
"status":"success",
"sip":"00001",
"is_online":"false"
}
put /v1/sip/callerid/
zmiana CallerID
{
"status":"success",
"sip":"00001",
"new_caller_id":"442037691880"
}
Parametry:
- id – SIP id, jakiemu zmieniasz CallerID;
- number – numer, na jaki zmieniasz w formacie międzynarodowym (z listy numerów potwierdzonych lub wykupionych).
get /v1/sip/redirection/
wyświetlanie obecnych przekierowań na loginach SIP użytkownika
{
"status":"success",
"info": [
{
"sip_id":"00001",
"status":"on",
"condition":"always",
"destination":"phone",
"destination_value":"442037691880"
},
...
]
}
Parametry:
- id – (nieobowiązkowy) wybór konkretnego SIP id.
gdzie
- sip_id– SIP id użytkownika;
- status – obecny status: on lub off;
- condition – warunek przekierowania: always –zawsze (domyślnie), unavailable – w przypadku nie odpowiedzi lub nie dostępności;
- destination – na jaki numer przekierowanie: phone – na numer telefonu, pbx – numer wewnętrzny centrali;
- destination_value – na jaki numer przekierowanie: phone – na numer telefonu lub ID centrali.
put /v1/sip/redirection/
włączenie/wyłączenie przekierowania na loginie SIP
{
"status":"success",
"sip":"00001",
"current_status":"on"
}
Parametry:
- id – SIP id;
- status – status przekierowania na wybrany numer SIP.
put /v1/sip/redirection/
zmiana przekierowania
{
"status":"success",
"sip":"00001",
"destination":"442037691880"
}
Parametry:
- id – SIP id;
- type – typ przekierowania – na telefon;
- number – numer telefonu.
- condition – parametr opcjonalny, warunek przekierowania (always - zawsze, unavailable - w przypadku braku połączenia lub braku połączenia SIP)
post /v1/sip/create/
Utworzenie loginu SIP
{
"status": "success",
"sip": "123456"
}
Parametry
- name - wyświetlona nazwa;
- password - hasło;
- callerid - numer CallerID;
- redirect_to_phone - nieobowiązkowy parametr, przekierowanie na telefon;
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
Statystyki
get /v1/statistics/
otrzymanie ogólnych statystyk
(Odpowiedź 1)
Odpowiedź 1:
{
"status":"success",
"start":"2015-06-01 00:00:00",
"end":"2015-06-29 13:45:23",
"stats":[
{
"id":"155112249",
"sip":"00001",
"callstart":"2015-06-02 12:20:25",
"from":442037691880,
"to":442037691881,
"description":"United Kingdom, London",
"disposition":"busy",
"billseconds":0,
"cost":0.1950,
"billcost":0.0000,
"currency":"USD"
},
…
]
}
Parametry:
- start - data początku wyświetlenia statystyk (format - YYYY-MM-DD HH:MM:SS);
- end - data końcowa wyświetlenia statystyk (format - YYYY-MM-DD HH:MM:SS);
- sip (nieobowiązkowy) - filtr dla konkretnego loginu SIP;
- cost_only (nieobowiązkowy) - podgląd tylko kosztów na rozmowy za wybrany okres;
- type (nieobowiązkowy - tylko dla wspólnych statystyk) - typ żądania: wspólny (nie zaznaczony).
- skip (nieobowiązkowy - za wyjątkiem parametru cost_only) - ilość linii, jakie należy pominąć, wynik zaczyna się od linii skip + 1 (używany do podziału wraz z parametrem limit, domyślnie jest równy 0);
- limit (nieobowiązkowy - za wyjątkiem parametru cost_only) - ograniczenie na ilość linii (używany do podziału wraz z parametrem skip, maks. 1000, domyślnie 1000).
Maksymalny okres otrzymania statystyk - miesiąc. W przypadku przekroczenia limitu w żądaniu - okres automatycznie jest zmieniony na na miesiąc (do 30 dni). Jeśli nie jest podana data początku statystyk - zostanie wybrana pierwsza data obecnego miesiąca. Jeśli nie jest podana data końca - zostanie wybrana dzisiejsza data i czas.
?type=cost_only: (Response 2)
gdzie
- start – data początku wyświetlenia statystyk;
- end – data końcowa wyświetlenia statystyk;
- id – id połączenia;
- sip – SIP login;
- callstart – czas rozpoczęcia połączenia;
- description – opis kierunki połaczenia;
- disposition – stan połączenia:
- 'answered' – rozmowa,
- 'busy' – zajęte,
- 'cancel' - odrzucone,
- 'no answer' - brak odpowiedzi,
- 'call failed' - nieudane,
- 'no money' - brak środków, przekroczony limit,
- 'unallocated number' - numer nie istnieje,
- 'no limit' - przekroczony limit,
- 'no day limit' - przekroczony dzienny limit,
- 'line limit' - przekroczony limit linii,
- 'no money, no limit' - przekroczony limit;
- billseconds – czas trwania w sekundach;
- cost – cena za minutę na sany kierunek;
- billcost – cena opłaconych minut;
- currency – waluta;
- from – numer osoby dzwoniącej;
- to – numer na który było wykonane połączenia.
get /v1/statistics/pbx/
statystyki centrali wirtualnej telefonicznej
Uwaga: jeśli potrzebujesz stale aktualnych statystyk PBX, nie trzeba żądać statystyk poprzez metodę statistics/pbx/ co minutę. Włącz powiadomienia webhooks i otrzymuj informacje o każdym połączeniu w momencie jego rozpoczęcia i zakończenia.
{
"status":"success",
"start":"2015-06-01 00:00:00",
"end":"2015-06-30 23:59:59",
"version":2,
"stats":[
{
"call_id":1439981389.2702773,
"sip":200,
"callstart":"2015-06-01 15:04:00",
"clid":200,
"destination":5,
"disposition":"answered",
"seconds":5,
"is_recorded":true,
"pbx_call_id":"in_ae6b03b3b0765d127ec0b739209346bbc4f0d52d"
},
…
]
}
Parametry:
- start - data początku wyświetlenia statystyk (format - YYYY-MM-DD HH:MM:SS);
- end - data końcowa wyświetlenia statystyk (format - YYYY-MM-DD HH:MM:SS);
- version - format wyświetlenia (2 - nowy, 1 - stary);
- skip (nieobowiązkowy - za wyjątkiem parametru cost_only) - ilość linii, jakie należy pominąć, wynik zaczyna się od linii skip + 1 (używany do podziału wraz z parametrem limit, domyślnie jest równy 0);
- limit (nieobowiązkowy - za wyjątkiem parametru cost_only) - ograniczenie na ilość linii (używany do podziału wraz z parametrem skip, maks. 1000, domyślnie 1000).
- call_type (nieobowiązkowy) - kierunek połączeń ('in' dla przychodzących, 'out' dla wychodzących). Jeśli nie jest zawarty, zostaną wyświetlone wszystkie połączenia.
gdzie
- start – data początku wyświetlenia statystyk;
- end – data początku wyświetlenia statystyk;
- version - format wyświetlenia (2 - nowy, 1 - stary);
- call_id – indywidualny id połączenia, ten id jest podany w nazwie pliku z nagraniem (indywidualny dla każdego nagrania w statystykach);
- sip – SIP login;
- callstart – czas rozpoczęcia połączenia;
- clid – CallerID;
- destination – numer na który było wykonane połączenia;
- disposition – stan połączenia:
- 'answered' – rozmowa,
- 'busy' – zajęte,
- 'cancel' - odrzucone,
- 'no answer' - brak odpowiedzi,
- 'call failed' - nieudane,
- 'no money' - brak środków, przekroczony limit,
- 'unallocated number' - numer nie istnieje,
- 'no limit' - przekroczony limit,
- 'no day limit' - przekroczony dzienny limit,
- 'line limit' - przekroczony limit linii,
- 'no money, no limit' - przekroczony limit;
- seconds – czas trwania w sekundach;
- is_recorded – (true, false) czy jest nagranie rozmowy lub nie;
- pbx_call_id – stały ID zewnętrznego połączenia w ramach Centrali (nie zmienia się według scenariuszu, menu głosowego, transferu itd.,wyświetlany jest w statystykach i powiadomieniach);
get /v1/statistics/callback_widget/
statystyki Widgetu CallBack
{
"status":"success",
"start":"2016-09-01 00:00:00",
"end":"2016-09-30 23:59:59",
"stats":[
{
"id":"57d16d6a1e46c53d1f8ce323",
"widget_id":"1",
"sip":"00001",
"ip":"127.0.0.1",
"actions":[
{
"kind":"come",
"date":"2016-09-08 16:53:45",
"referrer_url":"http://test.domain.com/page1/",
"url":"http://home.domain.com/page2/"
},
{
"kind":"show",
"date":"2016-09-08 16:53:46",
"rate":15
},
{
"kind":"call_request",
"date":"2016-09-08 16:54:07",
"number":"442037691880",
"request_call_date":"2016-09-09 10:00:00",
"redial":"n"
},
{
"kind":"close",
"date":"2016-09-08 16:54:35"
}
]
},
...
]
}
Parametry:
- start - data początku wyświetlenia statystyk (format - YYYY-MM-DD HH:MM:SS);
- end - data końcowa wyświetlenia statystyk (format - YYYY-MM-DD HH:MM:SS);
- widget_id - (nieobowiązkowy) - identyfikator widgetu, w przypadku braku tego parametru - statystyki dla wszystkich widgetów;
- type (nieobowiązkowy - tylko dla wspólnych statystyk) - typ żądania: wspólny (nie zaznaczony), toll oraz ru495. (dla statystyk numerów toll free 800 oraz numeru moskiewskiego 495).
Maksymalny okres otrzymania statystyk - miesiąc. W przypadku przekroczenia limitu w żądaniu - okres automatycznie jest zmieniony na na miesiąc (do 30 dni). Jeśli nie jest podana data początku statystyk - zostanie wybrana pierwsza data obecnego miesiąca. Jeśli nie jest podana data końca - zostanie wybrana dzisiejsza data i czas.
gdzie
- start – data początku wyświetlenia statystyk;
- end – data końcowa wyświetlenia statystyk;
- id – id secji;
- widget_id – id widgetu;
- sip – SIP login;
- ip – IP adres użytkownika;
- kind – typ wydarzenia:
- 'come' – użytkownik odwiedził stronę z widgetem,
- 'show' – otwarty formularz widgetu,
- 'call' – zamówienie połączenia,
- 'call_request' – zamówienie zaplanowanego połączenia,
- 'rate' – użytkownik ocenił rozmowę,
- 'fail' – użytkownik zaznaczył opcję, że rozmowa się nie odbyła,
- 'close' – użytkownik zamknął formularz widgetu;
- date – data i czas wydarzenia;
- referrer_url – adres strony, z jakiej użytkownik odwiedził stronę z widgetem (tylko dla wydarzenia 'come');
- url – adres strony widgeu (tylko dla wydarzenia 'come');
- rate – dla wydarzenia 'show' - ilość uzyskanych punktów, dla wydarzenia 'rate' - ocena rozmowy;
- request_call_date – data i czas zaznaczony użytkownikiem, jako wygodny termin odebrania połaczenia (tylko dla wydarzenia 'call_request');
- redial – (true, false) czy zostało zrealizowane połączenie zwrotne lub nie (tylko dla wydarzenia 'call_request');
- number – numer podany użytkownikiem (dla wydarzeń 'call', 'call_request', 'rate', 'fail').
get /v1/statistics/incoming-calls/
uzyskanie ogólnych statystyk połączeń przychodzących
{
"status":"success",
"start":"2015-06-01 00:00:00",
"end":"2015-06-29 13:45:23",
"stats":[
{
"id":"155112249",
"sip":"00001",
"callstart":"2015-06-02 12:20:25",
"from":442037691880,
"to":442037691881,
"billseconds":0,
"disposition":"busy",
"description":"United Kingdom, London"
},
…
]
}
Parametry
- start - data rozpoczęcia statystyk (format - YYYY-MM-DD HH:MM:SS);
- end - data zakończenia statystyk (format - YYYY-MM-DD HH:MM:SS);
- sip (opcjonalnie) - filtruj po określonym numerze SIP;
- skip (opcjonalnie - nie uwzględnia się przy parametru cost_only) - liczba wierszy do pominięcia, zaczyna się od wierszu skip + 1 (używany do paginacji razem z parametrem limit, domyślnie wynosi 0);
- limit (opcjonalnie - nie uwzględnia się przy parametru cost_only) - ограничение на liczba wierszy do wyświetlenia (używany do paginacji razem z parametrem skip, maksymalna wartość 1000, domyślnie 1000).
Maksymalny okres uzyskania statystyk - miesiąc. W przypadku przekroczenia limitu w żądaniu okres jest automatycznie skracany do 30 dni. Jeśli nie określono daty rozpoczęcia statystyk, wybierany jest początek bieżącego miesiąca. Jeśli data zakończenia nie jest określona, statystyki są ograniczone do bieżącej daty i godziny.
Maksymalna liczba wierszy do wyświetlenia dla jednego żądania - 1000. Do paginacji użyj parametrów skip i limit.
Gdzie:
- start – data rozpoczęcia wyświetlania statystyk;
- end – data zakończenia wyświetlania statystyk;
- id – id połączenia;
- sip – SIP login;
- callstart – czas rozpoczęcia połączenia;
- from – z jakiego numeru dzwoniono;
- to – dokąd dzwoniono;
- billseconds – liczba sekund połączenia;
- disposition –status połączenia:
- 'answered' – rozmowa,
- 'busy' – odrzucone,
- 'cancel' - anulowane,
- 'no answer' - brak odpowiedzi,
- 'failed' - nie udane,
- 'no money' - brak środków, przekroczono limit,
- 'unallocated number' - nieistniejący numer,
- 'no limit' - przekroczono limit,
- 'no day limit' - przekroczono dzienny limit,
- 'line limit' - przekroczono limit kanałów,
- 'no money, no limit' - przekroczono limit;
- description – opis kierunku.
PBX
post /v1/pbx/redirection/
zmiana paramentrów przekierowania na numerze wewnętrzym centrali
{
"status":"success",
"current_status":"on",
"pbx_id":"1234",
"pbx_name":"100",
"type":"phone",
"destination":"79123456789",
"condition":"noanswer"
}
Parametry:
Aby włączyć i skonfigurować przekierowanie:
- pbx_number – numer wewnętrzny centrali, np 100;
- status – on;
- type – typ przekierowania voicemail lub phone;
- destination – numer telefonu lub email, w zależności od wybranej opcji wyżej;
- condition – warunek przekierowania: always lub noanswer;
- voicemail_greeting – powiadomienie o przekierowaniu: no, standart, own. Dostępne tylko przy type = voicemail;
- greeting_file – audio plik w formacie mp3 lub wav do 5 MB. Dostępne przy type = voicemail i voicemail_greeting = own;
Aby wyłączyć przekierowanie:
- pbx_number – numer wewnętrzny centrali, np 100;
- status – off;
get /v1/pbx/redirection/
otrzymanie paramentrów przekierowania na numerze wewnętrznym
{
"status":"success",
"current_status":"on",
"pbx_id":"1234",
"pbx_name":"100",
"type":"phone",
"destination":"79123456789",
"condition":"noanswer",
}
Parametry:
- pbx_number – numer wewnętrzny centrali, np 100;
get /v1/pbx/record/request/
żądanie na pobranie nagrania rozmowy
Parametry:
- call_id – indywidualny id połączenia, ten id jest podany w nazwie pliku z nagraniem (indywidualny dla każdego nagrania w statystykach);
- pbx_call_id – stały ID zewnętrznego połączenia w ramach Centrali (nie zmienia się według scenariuszu, menu głosowego, transferu itd.,wyświetlany jest w statystykach i powiadomieniach).;
- lifetime – (nieobowiązkowy) czas ważności linku w sekundach ( min. - 180, maks. - 5184000, domyślnie - 1800).
Uwaga: wystarczy podać jeden z dwóch paramentów (pbx_call_id или call_id), przy podaniu pbx_call_id linków w odpowiedzi na żądanie może być kilka.
Przykład odpowiedzi kiedy ustawiony tylko call_id, tylko jeden link:
(Odpowiedź 1)
Odpowiedź 1:
{
"status":"success",
"link": "https://api.zadarma.com/v1/pbx/record/download/NjM3M..NzM2Mg/1-1458313316.343456-100-2016-01-11-100155.mp3",
"lifetime_till": "2016-01-01 23:56:22"
}
Przykład odpowiedzi kiedy ustawiony tylko pbx_call_id, сlinków może być kilka:
(Odpowiedź 2)
Odpowiedź 2:
{
"status":"success",
"links":[
"https://api.zadarma.com/v1/pbx/record/download/NjM3M..NzM2Mg/1-1458313316.343456-100-2016-01-11-100155.mp3",
"https://api.zadarma.com/v1/pbx/record/download/pw7Cj..iOzn99/1-1458313475.213487-101-2016-01-11-100211.mp3"
],
"lifetime_till": "2016-01-01 23:56:22"
}
Parametry:
- link – link do pobrania nagrania;
- lifetime_till – czas ważności linku.
post /v1/pbx/waitmelody/upload
przesłanie melodii
Parametry
- file - plik
put /v1/pbx/waitmelody/switch
wł/wył melodii na centrali PBX
Parametry
- state - status (on - włączone, off - wyłączone);
- melody - typ melodii (none - domyślnie bez melodii, mymelody - wcześniej przesłany plik.
delete /v1/pbx/waitmelody/delete
usunięcie melodii
get /v1/pbx/callinfo/
otrzymaj ustawienia pbx call info
{
"status": "success",
"url": "",
"notifications": {
"notify_start": "true",
"notify_internal": "false",
"notify_end": "true",
"notify_out_start": "false",
"notify_out_end": "false",
"notify_answer": "false"
}
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
post /v1/pbx/callinfo/url/
zmiana url dla pbx call info
{
"status": "success",
"url": ""
}
Parametry:
- url - link;
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
post /v1/pbx/callinfo/notifications/
zmiana odpowiedzi na żądania NOTIFY_* dla pbx call info
{
"status": "success",
"notifications": {
"notify_start": "true",
"notify_internal": "false",
"notify_end": "true",
"notify_out_start": "false",
"notify_out_end": "false",
"notify_answer": "false"
}
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- notify_start - "true" lub "false" nieobowiązkowy parametr;
- notify_internal - "true" lub "false" nieobowiązkowy parametr;
- notify_end - "true" lub "false" nieobowiązkowy parametr;
- notify_out_start - "true" lub "false" nieobowiązkowy parametr;
- notify_out_end - "true" lub "false" nieobowiązkowy parametr;
- notify_answer - "true" lub "false" nieobowiązkowy parametr.
delete /v1/pbx/callinfo/url/
usunięcie url dla pbx call info
{
"status": "success",
"url": ""
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
post /v1/pbx/create/
utworzenie centrali PBX
{
"status": "success",
"stop_datetime": "2021-12-31 23:59:59"
}
Parametry:
- sip_id - Numer SIP do podpięcia centrali PBX, jeśli nie jest ustawiony będzie wybrany wolny SIP (nieobowiązkowy parametr);
- password - hasło pierwszego numeru wewnętrznego centrali '100';
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
get /v1/pbx/webhooks/
otrzymaj ustawienia pbx webhooks
{
"status": "success",
"url": "",
"hooks": {
"number_lookup": "true",
"call_tracking": "false",
"sms": "true",
"speech_recognition": "true"
}
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
post /v1/pbx/webhooks/url/
zmiany url dla pbx webhooks
{
"status": "success",
"url": ""
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.- url - link do skryptu z kodem weryfikacyjnym <?php if (isset($_GET['zd_echo'])) exit($_GET['zd_echo']); ?> na początku skryptu.
post /v1/pbx/webhooks/hooks/
zmiana odpowiedzi na żądania innych powiadomień (aktualizacja kontaktów HLR, call tracking, SMS i rozpoznawanie mowy)
{
"status": "success",
"hooks": {
"number_lookup": "true",
"call_tracking": "false",
"sms": "true",
"speech_recognition": "true"
}
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- number_lookup - "true" lub "false" nieobowiązkowy parametr;
- call_tracking - "true" lub "false" nieobowiązkowy parametr;
- sms - "true" lub "false" nieobowiązkowy parametr;
- speech_recognition - "true" lub "false" nieobowiązkowy parametr.
delete /v1/pbx/webhooks/url/
usunięcie url dla innych powiadomień (aktualizacja kontaktów HLR, call tracking, SMS i rozpoznawanie mowy)
{
"status": "success",
"url": ""
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
Wirtualna centrala (numery wewnętrzne)
get /v1/pbx/internal/
wyświetlanie numerów wewnętrznych wirtualnej centrali
{
"status":"success",
"pbx_id":1234,
"numbers": [
100,
101,
...
]
}
gdzie
- pbx_id – id użytkownika centrali;
- numbers – lista numerów wewnętrznych.
get /v1/pbx/internal/<PBXSIP>/status/
online status numeru wewnętrznego
{
"status":"success",
"pbx_id":1234,
"number":100,
"is_online":"false"
}
gdzie
- pbx_id – id centrali telefonicznej;
- number – numer wewnętrzny centrali;
- is_online – online status (true|false).
get /v1/pbx/internal/<PBXSIP>/info/
informacja o numerze wewnętrznym PBX
{
"status": "success",
"pbx_id": 12345,
"number": 100,
"name": "Extension 100",
"caller_id": "+44000000000",
"caller_id_app_change": "true",
"caller_id_by_direction": "false",
"lines": "3",
"ip_restriction": "1.1.1.1",
"record_store": "For automatic speech recognition",
"record_email": "email@server.com",
"supervisor_status": 1
}
gdzie:
- pbx_id – id centrali;
- number – numer wewnętrzny;
- name – wyświetlona nazwa;
- caller_id – CallerID;
- caller_id_app_change – zmiana CallerID z poziomu aplikacji (true|false);
- caller_id_by_direction – CallerID według kierunku (true|false);
- lines – liczba kanałów;
- ip_restriction – ograniczenie według adres ip (false jeśli nie jest ustawione);
- record_store – nagrywanie rozmów w chmurę (Without recognition|For manual recognition|For automatic speech recognition|false);
- record_email – email do wysyłki nagrań rozmów (false jeśli nie jest ustawione).
put /v1/pbx/internal/recording/
włączenie nagrywania rozmów na numerze wewnętrznym
{
"status":"success",
"internal_number":100,
"recording":"on",
"email":"test@test.com",
"speech_recognition":"all"
}
Parametry:
- id – numer wewnętrzny centrali;
- status – status: "on" - włączony, "off" - wyłączony, "on_email" - włącz nagranie tylko na email, "off_email" - wyłącz nagranie tylko na email, "on_store" - włącz nagranie do chmury, "off_store" - wyłącz nagranie do chmury;
- email – (nieobowiązkowy) zmiana email, na jaki będą kierowane nagrania rozmów. Możesz podać do 3-trzech adresów email, rozdzielając przecinkiem.
- speech_recognition – (nieobowiązkowy) zmiana ustawień rozpoznawania mowy: "all" - rozpoznaj wszystkie, "optional" - rozpoznaj wybiorczo w statystykach, "off" - wyłącz.
post /v1/pbx/internal/create/
utworzenie numeru wewnętrznego centrali
{
"status": "success",
"numbers": [
{
"number": 200,
"password": "PASSWORD"
},
{
"number": 201,
"password": "PASSWORD"
}
]
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- start_number - numer z którego zacznie się utworzenie 100...999 lub "any" z pierwszego dostępnego numeru w ramach zakresu 100-999;
- quantity - ilość utworzonych numerów;
- return_password - nieobowiązkowy parametr, jeżeli 'true' w odpowiedzi będą hasła do utworzonych ponownie numerów wewnętrznych.
get /v1/pbx/internal/<SIP>/password/
hasło numeru wewnętrznego PBX, dostępne do wglądu przez ograniczony czas
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
Przykład odpowiedzi:
{
"status": "success",
"pbx_id": 114,
"number": 200,
"password": "PASSWORD"
}
gdzie
- password - może mieć zawartość hidden, jeżeli hasło nie jest dostępne do wglądu
put /v1/pbx/internal/<SIP>/password/
zmiana hasła numeru wewnętrznego PBX
{
"status": "success",
"pbx_id": 114,
"number": 200
}
Parametry:
- value - nowe hasło;
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
put /v1/pbx/internal/<SIP>/edit/
zmiana numeru wewnętrznego centrali
Parametry
- supervisor_status - status menadżera, 0 - wyłączony, 1 - włączony;
- user_id - opcjonalny parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich użytkowników
Wirtualna centrala (IVR)
get /v1/pbx/ivr/sounds/list
lista plików przechowywanych na centrali
post /v1/pbx/ivr/sounds/upload
przesłanie pliku
Parametry
- name - imię pliku,
- file - plik.
delete /v1/pbx/ivr/sounds/delete
usunięcie pliku wg id
Parametry
- id - identyfikator pliku
get /v1/pbx/ivr/
lista IVR
{
"status": "success",
"pbx_id": 114,
"ivrs": [
{
"menu_id": "0",
"title": "",
"type": "file",
"status": "on",
"waitexten": 5,
"auto_responder": {
"status": "on",
"waitexten": 1,
"working_days": [
{
"day": "mon",
"is_active": true,
"begin": {
"hour": 9,
"minute": 0
},
"end": {
"hour": 18,
"minute": 0
}
},
{
"day": "tue",
"is_active": true,
"begin": {
"hour": 9,
"minute": 0
},
"end": {
"hour": 18,
"minute": 0
}
},
...
{
"day": "sun",
"is_active": false
}
]
},
"dinner_status": "on",
"dinner_time": {
"begin": {
"hour": 12,
"minute": 0
},
"end": {
"hour": 13,
"minute": 0
}
}
},
{
"menu_id": "1",
"title": "Menu 1",
"type": "readtext",
"status": "off",
"waitexten": 5,
"auto_responder": {
"status": "off",
"waitexten": 1
}
},
...
]
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
post /v1/pbx/ivr/create/
utworzenie IVR
{
"status": "success",
"menu_id": 2
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- buy - 'true' - odpłatne utworzenie menu.
delete /v1/pbx/ivr/delete/
usunięcie IVR
{
"status": "success"
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- menu_id - powinno być > 0.
get /v1/pbx/ivr/scenario/
lista scenariuszy IVR
{
"status": "success",
"scenarios": [
{
"id": "132",
"title": "-1",
"push_button": -1,
"first_sips": [
"102"
],
"second_sips": [],
"second_sips_delay": 10,
"third_sips": [],
"third_sips_delay": 20
},
...
]
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- menu_id - ID menu/IVR.
post /v1/pbx/ivr/scenario/create/
utworzenie scenariuszu IVR
{
"status": "success",
"menu_id": 0,
"scenario_id": 2
}
Parametry:
- push_button - przycisk, "-2" - wywołanie scenariusza po naciśnięciu przycisku: jeśli klient nie naciśnie przycisku, zostanie uruchomiony scenariusz Bez wciskania, 0-9 - przyciski, 10 - automatyczna sekretarka, 11-30 - dodatkowe scenariusze;
- title - nazwa;
- extension - numer wewnętrzny, lub numery przez spacje, lub "fax";
- menu_id - ID menu/IVR;
- user_id - nieobowiązkowy parametr, dostępny do wykorzystania wyłącznie przez dealerów i tylko dla stworzonych przez nich użytkowników;
- trigger_to_did_ext_lines - nieobowiązkowy parametr, wskazuje, które numery są uruchamiane podczas wywoływania. Może zawierać numer lub listę numerów oddzielonych spacją;
- trigger_from_clid_numbers - nieobowiązkowy parametr, wskazuje, kiedy dzwonisz, z jakich numerów uruchamiany jest scenariusz. Może zawierać numer lub listę numerów oddzielonych spacją.
put /v1/pbx/ivr/scenario/edit/
edytowanie scenariusza IVR
Treść żądania PUT:
(Odpowiedź 1)
Odpowiedź 1:
[
"id": "630cb6b3dc666e947503a77a",
"title": "Scenario 1",
"queue_strategy": "off",
"queue_announce_position": 0,
"numbers": [
[
"number": 100,
"delay": 0,
"duration": 20
],
[
"number": 101,
"delay": 20,
"duration": 20
],
[
"number": 102,
"delay": 40,
"duration": 20
],
]
]
Opis:
- id - ID scenariusza;
- title - nazwa;
- queue_strategy - strategia kierowania połączeń na numery wewnętrzne w kolejce (off, random, roundrobin, leastrecent, rrmemory, fewestcalls)
- queue_announce_position - powiadomienie o numerze w kolejce
- numbers - numery wewnętrzne
- parametry opóźnienia i czasu trwania połączenia na numer wewnętrzny:
- number - numer wewnętrzny lub "fax";
- delay - opóźnienie połączenia w sekundach
- duration - czas trwania połączenia w sekundach
Opis strategii kierowania połączeń na numery wewnętrzne w kolejce:
- off - kolejkowanie wyłączone
- random - losowo
- roundrobin - równomiernie, oddać pierwszeństwo temu, kto nie rozmawiał od dłuższego czasu, brać pod uwagę wszystkie połączenia
- leastrecent - równomiernie, oddać pierwszeństwo temu, kto nie rozmawiał od dłuższego czasu, brać pod uwagę tylko odebrane połączenia
- rrmemory - równomiernie, oddać pierwszeństwo temu, kto mniej rozmawiał, brać pod uwagę wszystkie połączenia
- fewestcalls - równomiernie, oddać pierwszeństwo temu, kto mniej rozmawiał, brać pod uwagę tylko odebrane połączenia
Parametry opóźnienia i czasu trwania połączenia na numery wewnętrzne są używane tylko przy wyłączonym kolejkowaniu (queue_strategy : "off").
Odpowiedź: (Odpowiedź 2)
Odpowiedź 2:
{"status": "success"}
Błąd: (Odpowiedź 3)
Odpowiedź 3:
{"status": "error","message": "Wrong parameters!"}
delete /v1/pbx/ivr/scenario/delete/
usunięcie scenariuszu IVR
{
"status": "success"
}
Parametry:
- scenario_id - ID scenariuszu;
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
Rozpoznawanie mowy
get /v1/speech_recognition/
uzyskanie wyników rozpoznawania
{
"status":"success",
"lang":"en-EN",
"recognitionStatus":"in progress",
"otherLangs":["es-ES"],
"words": [
{
"result": [
{
"s": 0.02,
"e": 0.22,
"w": "word",
},
{
"s": 0.31,
"e": 0.56,
"w": "one",
}
],
"channel": 1
}
],
"phrases":[
{
"result": "word one",
"channel": 1
}
]
}
Parametry:
- call_id – unikalny id połączenia, ten id jest wskazany w nazwie pliku z nagraniem połączenia (unikalny dla każdego nagrania w statystykach);
- lang - język rozpoznawania (opcjonalnie);
- return - zwrócony wynik. Opcje: words - słowa, phrases - zwroty. (opcjonalny. domyślnie phrases);
- alternatives - czy zwracać alternatywne opcje. Opcje: 0 - nie, 1 - tak. (opcjonalny. domyślnie 0).
gdzie
- lang – język;
- recognitionStatus: status rozpoznania. Opcje:
- in progress - w procesie rozpoznania,
- error - wystąpił błąd podczas rozpoznawania,
- recognized - rozpoznano,
- ready for recognize - nagranie gotowe do rozpoznania,
- not available for recognize - nagranie nie jest dostępne do rozpoznania
- result:
- words - tablica:
- result - lista słów (tablica):
- s - czas rozpoczęcia słowa
- e - czas rozpoczęcia słowa
- w - słowo
- channel - numer kanału
- result - lista słów (tablica):
- phrases - tablica:
- result - fraza
- channel - numer kanału
- words - tablica:
put /v1/speech_recognition/
rozpoczęcie selektywnego rozpoznawania połączeń w statystykach centrali należy najpierw włączyć rozpoznawanie w ustawieniach numeru wewnętrznego
{
"status":"success"
}
Parametry:
- call_id – unikalny id połączenia, ten id jest wskazany w nazwie pliku z nagraniem połączenia (unikalny dla każdego nagrania w statystykach);
- lang - język rozpoznawania (opcjonalnie).
Wirtualne numery
get /v1/direct_numbers/
informacja o numerach wirtualnych użytkownika
{
"status":"success",
"info": [
{
"number":"442030000000",
"status":"on",
"country":"Great Britain",
"description":"London",
"number_name":null,
"sip":00001,
"sip_name":null,
"start_date":"2015-01-01 18:14:44",
"stop_date":"2016-02-11 18:14:40",
"monthly_fee":2,
"currency":USD,
"channels":2,
"autorenew":"true",
"is_on_test":"false",
"type":"common"
},
...
]
}
Parametry:
W zależności od typu numeru parametry mogą się różnić! Opis parametrów:
- number – podłączony numer wirtualny użytkownika;
- status – status numeru;
- on - numer jest włączony;
- parking - numer jest wyłączony (brak płatności), ale pozostaje na koncie przez 7 dni i można go przywrócić po doładowaniu konta;
- checking - numer zamówiony, opłacony, przesłane dokumenty, oczekiwanie na aktywację;
- checking_upload - numer zamówiony, opłacona, oczekuje przesłania wymaganych dokumentów;
- reserved_on - numer jest zarezerwowany, oczekuje na dokonanie płatności;
- reserved_checking - numer jest zarezerwowany, oczekuje na dokonanie płatności, dokumenty są przesłane;
- reserved_checking_upload - numer jest zarezerwowany, oczekuje na dokonanie płatności, oczekuje przesłania dokumentów;
- 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).
get /v1/direct_numbers/number/
informacje o zakupionym numerze
{
"status": "success",
"info": {
"number": "35924913550",
"status": "on",
"country": "Bulgaria",
"description": "Sofia",
"number_name": "TT",
"sip": "00004",
"sip_name": "SIP",
"start_date": "2016-06-08 14:32:17",
"stop_date": "2016-06-29 10:52:18",
"monthly_fee": 2,
"currency": "USD",
"channels": "2",
"autorenew": "true",
"receive_sms": null,
"is_on_test": "false"
}
}
Parametry:
- type - może mieć jedną z wartości:
- 'revenue' - numer telefonu w formacie międzynarodowym;
- 'common' - standardowy numer, wszystkie inne;
- number - numer.
get /v1/direct_numbers/autoprolongation/
status automatycznego przedłużenia
{
"status": "success",
"number": "35924913550",
"autoprolongation": "on"
}
Parametry
- type - może mieć jedną z wartości:
- 'revenue' - numer telefonu w formacie międzynarodowym;
- 'common' - standardowy numer, wszystkie inne;
- number - numer.
get /v1/direct_numbers/checking-wrongs/
uzyskiwanie informacji o błędach weryfikacji dokumentu lub adresu
{
"status":"success",
"info":{
"wrong_document":{
"document_type":"contract",
"message":"The passport has expired. It is considered invalid."
},
"wrong_address":{
"message":"Invalid address"
}
}
}
Parametry
- group_id - id grupy dokumentów.
put /v1/direct_numbers/autoprolongation/
zmień status automatycznego przedłużenia
{
"status": "success",
"number": "35924913550",
"autoprolongation": "off"
}
Parametry
- type - może mieć jedną z wartości:
- 'revenue' - numer telefonu w formacie międzynarodowym;
- 'common' - standardowy numer, wszystkie inne;
- number - numer.
- value - nowy status automatycznego przedłużenia, on lub off.
get /v1/direct_numbers/countries/
lista krajów, w których można zamówić numer
{
"status": "success",
"info": [
{
"countryCode": "61",
"countryCodeIso": "AU",
"name": "Australia"
},
...
]
}
Parametry
- language - opcjonalnie, jeżeli nie ustawiony to będzie język Panelu klienta;
get /v1/direct_numbers/country/
lista kierunków w kraju, w których można zamówić numer
{
"status": "success",
"info": [
{
"id": "3753",
"countryCode": "49",
"areaCode": "800",
"name": "Номер 800 (Toll-free)",
"connect_fee": 0,
"monthly_fee": 15,
"currency": "USD",
"restrictions": {
"upload": [
"Certificate of registration copy or passport or ID copy (both sides)",
"Proof of address (a copy of utility bill no older than of 6 months) -
your current address (city, street, number and postal code).
The address must be located in the country of ordered phone number"
]
},
"receive_sms": "false",
"is_toll": "true",
"feature": "Available from all networks"
"connect_time": "0"
},
{
"id": "3766",
"countryCode": "49",
"areaCode": "821",
"name": "Аугсбург",
"connect_fee": 3,
"monthly_fee": 3,
"currency": "USD",
"restrictions": {
"upload": [
"Passport or ID copy (both sides)"
],
"specify": [
"You current address (city, street, number and postal code).
The address must be located in the region of the city
where you ordered the phone number"
]
},
"receive_sms": "false",
"is_toll": "false",
"feature": null,
"connect_time": "0"
},
...
]
}
Parametry
- language - opcjonalnie, jeżeli nie ustawiony to będzie język Panelu klienta;
- country - iso kod kraju (ISO 3166-1 alpha-2).
put /v1/direct_numbers/set_caller_name/
ustawienie nazwy numeru (znaki łacińskie i cyfry, do 30 znaków)
{
"status": "success",
"number": "+44000000000",
"caller_name": "test"
}
Parametry
- typ - może mieć jedną z wartości:
- 'revenue' - numer telefonu w formacie międzynarodowym;
- 'common' - standardowy numer, wszystkie inne;
- number - numer;
- caller_name - aby usunąć - po prostu puste pole.
put /v1/direct_numbers/set_sip_id/
podpięcie numeru z SIP lub włączenie trybu testowego
{
"status": "success",
"number": "+44000000000",
"sip_id": "00001"
}
Parametry
- type - może mieć jedną z wartości:
- 'revenue' - numer telefonu w formacie międzynarodowym;
- 'common' - standardowy numer, wszystkie inne;
- number - numer;
- sip_id - sip login lub adres zewnętrznego serwera (SIP URI);
- test_mode - opcjonalnie, (on|off) - aby włączyć tryb testowy.
get /v1/direct_numbers/available/<DIRECTION_ID>/
numery, dostępne do zamówienia
{
'status': 'success',
'numbers': [
{
'id': 1712p0D1643D0t42r198658,
'direction_id': 13755,
'number': '+44000000001'
},
{
'id': 184bdf85006c3f1676be200,
'direction_id': 13755,
'number': '+44000000000'
},
...
]
}
Parametry:
- DIRECTION_ID - ID kierunku
- mask - nieobowiązkowy parametr do wyszukiwania dopasowań według cyfr.
post /v1/direct_numbers/order/
zamówienie/zakup numeru
{
'status': 'success',
'number': '+44000000000',
'is_reserved': 'false',
'is_activated': 'true'
}
Parametry:
- number_id - ID zamówionego numeru, otrzymany metodą GET /v1/direct_numbers/available/<DIRECTION_ID>/ naprzykład: 1712p0D1643D0t42r198658 (jeśli nie ma wyboru numerów, parametr nie jest używany);
- direction_id - ID kierunku/miasta;
- documents_group_id - ID grupy dokumentów użytkownikaя;
- purpose - tekstowy opis celu użycia numeru (tylko w razie potrzeby);
- receive_sms - 1 - włączenie odbiór wiadomości SMS (tylko jeśli numer obsługuje odbiór wiadomości SMS);
- period - 'month' - jeden miesiąc, '3month' - trzy miesiące (nieobowiązkowy parametr, odbiór sms aktywuje się dla numerów zakupionych min. na 3 mies.);
- autorenew_period - parametr opcjonalny, okres przedłużenia numeru (year, month), od tego zależy wysokość abonamentu za numer, domyślnie month;
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
post /v1/direct_numbers/prolong/
przedłużenie ważności numerów na dowolną liczbę miesięcy
{
'status': 'success',
'number': '+44000000000',
'stop_date': '2021-05-01 12:00:00',
'total_paid': {
'amount': 2,
'currency': 'USD'
}
}
Parametry:
- number - numer do przedłużenia;
- months - liczba miesięcy;
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
put /v1/direct_numbers/receive_sms/
włączenie odbiór SMS (tylko jeśli numer obsługuje odbiór SMS)
{
"status": "success",
"number": "",
"receive_sms": "on"
}
Parametry:
- number - numer
- value - status (może być "on" lun"off")
- documents_group_id - opcjonalny parametr, identyfikator grupy dokumentów konta
- user_id - opcjonalny parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich użytkowników
Grupy dokumentów
get /v1/documents/files
lista plików/dokumentów w wybranej grupie
{
"status": "success",
"documents": [
{
"type": "passport",
"is_verified": "true",
"source": "upload",
"name": "file1.jpg"
},
{
"type": "receipt",
"is_verified": "false",
"source": "upload",
"name": "file2.jpg"
}
]
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- group_id - nieobowiązkowy parametr, identyfikator grupy dokumentów, (0 lub nie określono - główna grupa dokumentów).
get /v1/documents/groups/list/
lista grup dokumentów
{
"status": "success",
"groups": [
{
"id": 0,
"email": "email@server.com",
"salutation": 'MR',
"nationality": null,
"first_name": "John",
"middle_name": "Richard",
"last_name": "Smith",
"organization": "Company",
"organization_description": null,
"organization_reg_number": null,
"country": "DE",
"region": "",
"city": "Berlin",
"address": "Brudden Strasse 8, 76611",
"zip_code": '76611',
"street": 'Brudden Strasse',
"street_code": null,
"municipality_code": null,
"building_number": "8",
"building_letter": null,
"phone": "4900000000",
"type_of_id": "",
"id_number": "123000099",
"issuing_authority": null,
"issuing_date": null,
"is_readonly": true
}
]
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
get /v1/documents/groups/get/<ID>/
dane wg wybranej grupy dokumentów
{
"status": "success",
"group": {
"id": 0,
"email": "email@server.com",
"salutation": 'MR',
"nationality": null,
"first_name": "John",
"middle_name": "Richard",
"last_name": "Smith",
"organization": "Company",
"organization_description": null,
"organization_reg_number": null,
"country": "DE",
"region": "",
"city": "Berlin",
"address": "Brudden Strasse 8, 76611",
"zip_code": '76611',
"street": 'Brudden Strasse',
"street_code": null,
"municipality_code": null,
"building_number": "8",
"building_letter": null,
"phone": "4900000000",
"type_of_id": "",
"id_number": "123000099",
"issuing_authority": null,
"issuing_date": null,
"is_readonly": true
}
}
Parametry:
- ID - ID grupy, 0 - główna grupa dokumentów;
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
get /v1/documents/groups/valid/<ID>/
sprawdzenie: grupy dokumentów odpowiedniości dla konkretnego kierunku/miasta
{
"status": "success",
"is_information_match": "true",
"is_documents_uploaded": "true",
"is_documents_verified": "true",
"is_address_match": "true"
}
Parametry:
- ID - ID grupy, 0 - główna grupa dokumentów;
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- direction_id - ID kierunku/miasta.
post /v1/documents/groups/create/
utworzenie nowej grupy dokumentów
{
"status": "success",
"group": {
"id": 0,
"email": "email@server.com",
"salutation": 'MR',
"nationality": null,
"first_name": "John",
"middle_name": "Richard",
"last_name": "Smith",
"organization": "Company",
"organization_description": null,
"organization_reg_number": null,
"country": "DE",
"region": "",
"city": "Berlin",
"address": "Brudden Strasse 8, 76611",
"zip_code": '76611',
"street": 'Brudden Strasse',
"street_code": null,
"municipality_code": null,
"building_number": "8",
"building_letter": null,
"phone": "4900000000",
"type_of_id": "",
"id_number": "123000099",
"issuing_authority": null,
"issuing_date": null,
"is_readonly": true
}
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- email - adres email;
- salutation - zwrot 'MR', 'MS', 'COMPANY';
- nationality - narodowość, kod kraju iso2;
- first_name - imię;
- middle_name - nieobowiązkowy parametr, imię ojca;
- last_name - nazwisko;
- date_of_birth - nieobowiązkowy parametr, data urodzenia;
- organization - nieobowiązkowy parametr, nazwa firmy/przedsiębiorstwa;
- organization_description - nieobowiązkowy parametr, opis działaności lub branży;
- organization_reg_number - nieobowiązkowy parametr, numer nip firmy;
- country - kraj, kod kraju iso2;
- region - nieobowiązkowy parametr, województwo;
- city - miasto;
- address - pełny adres;
- zip_code - kod pocztowy;
- street - ulica;
- street_code - nieobowiązkowy parametr, kod ulicy, tylko dla Danii;
- municipality_code - nieobowiązkowy parametr, kod gminy, tylko dla Danii;
- building_number - numer domu;
- building_letter - nieobowiązkowy parametr, litera numeru domu;
- phone - numer kontaktowy;
- type_of_id - nieobowiązkowy parametr, typ dokumentu: "PASSPORT", "DNI", "NIE", "RESIDENCE_PERMIT", "NATIONAL_ID_CARD", "BUSINESS_REGISTRATION";
- id_number - nieobowiązkowy parametr, numer dokumentu;
- issuing_authority - nieobowiązkowy parametr, kim wydany dokument;
- issuing_date - nieobowiązkowy parametr, data wydania dokumentu;
- direction_id - nieobowiązkowy parametr, ID kierunku/miasta do sprawdzenia odpowiedniości dokumentów.
put /v1/documents/groups/update/<GROUPID>/
aktualizacja danych grupy dokumentów
{
"status": "success",
"group": {
"id": 0,
"email": "email@server.com",
"salutation": 'MR',
"nationality": null,
"first_name": "John",
"middle_name": "Richard",
"last_name": "Smith",
"organization": "Company",
"organization_description": null,
"organization_reg_number": null,
"country": "DE",
"region": "",
"city": "Berlin",
"address": "Brudden Strasse 8, 76611",
"zip_code": '76611',
"street": 'Brudden Strasse',
"street_code": null,
"municipality_code": null,
"building_number": "8",
"building_letter": null,
"phone": "4900000000",
"type_of_id": "",
"id_number": "123000099",
"issuing_authority": null,
"issuing_date": null,
"is_readonly": true
}
}
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- email - adres email;
- salutation - zwrot 'MR', 'MS', 'COMPANY';
- nationality - narodowość, kod kraju iso2;
- first_name - imię;
- middle_name - nieobowiązkowy parametr, imię ojca;
- last_name - nazwisko;
- date_of_birth - nieobowiązkowy parametr, data urodzenia;
- organization - nieobowiązkowy parametr, nazwa firmy/przedsiębiorstwa;
- organization_description - nieobowiązkowy parametr, opis działaności lub branży;
- organization_reg_number - nieobowiązkowy parametr, numer nip firmy;
- country - kraj, kod kraju iso2;
- region - nieobowiązkowy parametr, województwo;
- city - miasto;
- address - pełny adres;
- zip_code - kod pocztowy;
- street - ulica;
- street_code - nieobowiązkowy parametr, kod ulicy, tylko dla Danii;
- municipality_code - nieobowiązkowy parametr, kod gminy, tylko dla Danii;
- building_number - numer domu;
- building_letter - nieobowiązkowy parametr, litera numeru domu;
- phone - numer kontaktowy;
- type_of_id - nieobowiązkowy parametr, typ dokumentu: "PASSPORT", "DNI", "NIE", "RESIDENCE_PERMIT", "NATIONAL_ID_CARD", "BUSINESS_REGISTRATION";
- id_number - nieobowiązkowy parametr, numer dokumentu;
- issuing_authority - nieobowiązkowy parametr, kim wydany dokument;
- issuing_date - nieobowiązkowy parametr, data wydania dokumentu;
- direction_id - nieobowiązkowy parametr, ID kierunku/miasta do sprawdzenia odpowiedniości dokumentów.
post /v1/documents/upload/
przesłanie pliku dokumentu do grupy
Parametry:
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- group_id - ID grupy, 0 - główna grupa dokumentów;
- document_type - typ dokumentu: 'certificate', 'contract', 'company_letter', 'inn_ua', passport', 'phone_bill', 'photo_with_doc', 'photo_with_passport', 'receipt', 'driver_id_us_ca', 'driver_id_other';
- file - przesłany plik.
Przykład:
$zd = new \Zadarma_API_Test\Api(KEY, SECRET);
$zd->request(
'documents/upload',
[
'group_id' => 0,
'document_type' => 'passport',
'file' => new CURLFile('passport.jpg', 'image/jpeg', 'passport.jpg')
],
'post'
);
Przykład odpowiedzi:
{
"status": "success",
"message": "The File passport.jpg has been successfully uploaded to the website.",
"doc_name": "passport.jpg"
}
Dealer
get /v1/reseller/account/info/
informacja o koncie dealera
{
"status": "success",
"balance": 123,
"credit": 0,
"currency": "USD",
"reseller_fee": 10,
"user_fee": 10
}
post /v1/reseller/account/money_transfer/
Przeniesienie środków z salda dealera na saldo konta i z powrotem
{
"status": "success",
"user": {
"balance": "62.0000",
"currency": "EUR"
},
"reseller": {
"balance": "94.825",
"currency": "USD"
}
}
Parametry
- amount - kwota;
- currency - waluta;
- type - kierunek przeniesienia środków "to_reseller" lub "to_user".
get /v1/reseller/users/phones/
Lista potwierdzonych numerów użytkownika
{
"status": "success",
"list": [
{
"id": 0,
"number": "49025000897",
"is_proved": false
}
]
}
Parametry
- user_id - id użytkownika;
post /v1/reseller/users/phones/add/
Dodanie kontaktowego numeru dla użytkownika
{
"status": "success",
"id": 98,
"number": "359000000001",
"is_proved": true
}
Parametry
- user_id - id użytkownika;
- number - numer.
post /v1/reseller/users/phones/update/
Edycja numeru kontaktowego użytkownika
{
"status": "success",
"id": 99,
"number": "359000000002",
"is_proved": false
}
Parametry
- user_id - id użytkownika;
- id - ID numeru, 0 - główny numer kontaktowy konta;
- number - numer.
post /v1/reseller/users/phones/prove_by_sms
Weryfikacja numeru kontaktowego użytkownika
{
"number": "359000000002",
"status": "success",
"message": "You were sent an SMS message with a code. Code is valid for 1 hour."
}
Parametry
- user_id - id użytkownika;
- number - numer,
- confirm_number_reuse - potwierdzenie numeru, który jest używany na innym koncie (parametr opcjonalny)
post /v1/reseller/users/phones/prove_by_callback
Żądanie o potwierdzenia numeru kontaktowego użytkownika (zostanie wykonane połączenie i po odebraniu abonent usłyszy kod potwierdzający)
{
"number": "359000000002",
"status": "success",
"message": "You were sent an SMS message with a code. Code is valid for 1 hour."
}
Parametry:
- user_id - wymagany parametr, identyfikator użytkownika;
- number - wymagany parametr, potwierdzany numer (w formacie międzynarodowym)
- caller_id - numer wyświetlany podczas dzwonienia, dostępne są tylko numery podłączone w systemie;
- language - język komunikatu
- sip_id - parametr opcjonalny, jeśli nie został określony, przyjmuje pierwszy dostępny SIP dealera,
- confirm_number_reuse - parametr opcjonalny, potwierdzenie numeru używanego na innym koncie
post /v1/reseller/users/phones/confirm
Potwierdzenie numeru kontaktowego kodem SMS
{
"status": "success",
"message": "Your number confirmed!",
"number": "35900000019"
}
Parametry
- user_id - id użytkownika;
- number - numer;
- code - kod.
post /v1/reseller/users/registration/new/
Rejestracja nowego użytkownika
{
"status": "success",
"user_id": 12345,
"message": "You registered a new user in the system."
},{
"status": "success",
"message": "You registered a new user in the system. A registration confirmation link was sent to the email address you provided. To activate the account the user needs to click on that link, after which they can log in on the website."
},{
"status": "success",
"message": "You registered a new user in the system. A registration confirmation code was sent to the email address you provided. To activate the account the user needs to send code to you, after which you can confirm registration using API."
}
Parametry
- email - adres email;
- first_name - imię;
- last_name - nieobowiązkowy parametr;
- middle_name - nieobowiązkowy parametr;
- organization - nieobowiązkowy parametr;
- country - ISO2 kod kraju;
- city - miasto;
- address - nieobowiązkowy parametr;
- phone - nieobowiązkowy parametr;
- password - nieobowiązkowy parametr;
- tariff - ID taryfy (ID można otrzymać poprzez metodę GET /v1/info/lists/tariffs/) ;
- tariff_period - nieobowiązkowy parametr, wybrana taryfa month | year;
- language - nieobowiązkowy parametr, kod języka, pl;
- currency - nieobowiązkowy parametr, kod waluty, PLN;
- promocode - nieobowiązkowy parametr, kod promocyjny;
- gmt - nieobowiązkowy parametr, GMT;
- id_card - nieobowiązkowy parametr, numer dokumentu ID card, passport.
post /v1/reseller/users/registration/confirm/
Potwierdzenie rejestracji użytkownika
{
"status": "success",
"user_id": 12345
}
Parametry
- code - kod potwierdzenia rejestracji z wiadomości, wysłanej pod adres email użytkownika;
- email - adres email.
get /v1/reseller/users/list/
Lista użytkowników dealera wyświetlana na stronie (50 pozycji)
{
"status": "success",
"total": 205,
"total_pages": 5,
"page": 1,
"users": [
{
"id": "1234",
"email": "test@domain.com",
"first_name": "Test",
"last_name": "Test",
"organization": "",
"phone": "+44000000001",
"created": "2021-01-26 14:21:04",
"last_login": "2021-01-30 09:46:31",
"balance": "0.4000",
"currency": "GBP",
"sips_count": "1",
"is_active": true,
"allow_topup": true,
"allow_api_requests": true
},
...
]
}
Parametry
- page- numer strony.
get /v1/reseller/users/find/
Wyszukiwanie konta użytkownika wg kryterium (id, e-mail, SIP)
{
"status": "success",
"user": {
"id": "1234",
"email": "test@domain.com",
"first_name": "Test",
"last_name": "Test",
"organization": "",
"phone": "+44000000001",
"created": "2021-01-26 14:21:04",
"last_login": "2021-01-30 09:46:31",
"balance": "0.4000",
"currency": "GBP",
"sips_count": "1",
"is_active": true,
"allow_topup": true,
"allow_api_requests": true
}
}
Parametry
- id - nieobowiązkowy parametr;
- sip - nieobowiązkowy parametr;
- email - nieobowiązkowy parametr.
post /v1/reseller/users/topup/
Przeniesienie środków z salda dealera na saldo klienta
{
"status": "success",
"user_topup": {
"amount": 10,
"currency": "GBP"
},
"reseller_withdraw": {
"amount": 10,
"currency": "GBP"
}
}
Parametry
- user_id - identyfikator użytkownika;
- amount - kwota;
- currency - waluta.
get /v1/reseller/users/api_key/
Otrzymaj obecne klucze dostępu do API
{
"status": "success",
"user_id": 1234,
"last_request_datetime": "2021-02-18 10:45:01",
"allow_reset": true,
"key": "hidden",
"secret": "hidden"
},{
"status": "success",
"user_id": 1234,
"last_request_datetime": "2021-02-26 15:59:50",
"allow_reset": false,
"key": "abscd",
"secret": "12345"
}
Parametry
- user_id - identyfikator użytkownika.
post /v1/reseller/users/api_key/
Otrzymaj nowe klucze dostępu do API
{
"status": "success",
"user_id": 1234,
"key": "abscd",
"secret": "12345"
}
Parametry
- user_id- identyfikator użytkownika.
Интеграция WebRTC виджета
get /v1/webrtc/get_key/
otrzymaj klucz dla webrtc-widgetu. Czas działania - 72 godziny.
{
"status":"success",
"key": YOUR_KEY
}
Parametry:
- sip – login SIP lub numer wewnętrzny centrali PBX.
post /v1/webrtc/create/
Utworzenie integracji WebRTC widgetu
{
"status": "success"
}
Parametry
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- domain - domena.
put /v1/webrtc/
Zmiana ustawień integracji WebRTC widgetu
{
"status": "success"
}
Parametry
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- shape - forma widgetu, dostępna wartość: 'square', 'rounded';
- position - pozycja widgetu, dostępna wartość: 'top_left', 'top_right', 'bottom_right', 'bottom_left'.
get /v1/webrtc/
Dane integracji WebRTC widgetu
{
"status": "success",
"is_exists": true,
"domains": [
"test.domain.com"
],
"settings": {
"shape": "square",
"position": "top_right"
}
}
Parametry
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
post /v1/webrtc/domain/
Dodanie domeny do integracji WebRTC widgetu
{
"status": "success"
}
Parametry
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- domain - domena.
delete /v1/webrtc/domain/
Usunięcie domeny z integracji webRTC widgetu
{
"status": "success"
}
Parametry
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników;
- domain - domena.
delete /v1/webrtc/
Usunięcie integracji WebRTC widgetu
{
"status": "success"
}
Parametry
- user_id - nieobowiązkowy parametr, dostępny tylko dla dealerów i tylko dla utworzonych przez nich kont użytkowników.
Metody Teamsale CRM
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,
"utm": 19,
"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)
- utm - etykieta źródłowa (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"
}
],
"utms": [
{
"id": 19,
"param": "utm_source",
"value": "google",
"display_value": "Google"
}
]
}
]
}
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
- type — typ numeru. Prawidłowe wartości:
- 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
- value — wartość kontaktu
- type — typ kontaktu. Prawidłowe wartości:
- labels — tablica tagów przypisanych do klienta. Każdy tag zawiera następujące pola:
- id — identyfikator tagu
- label — wartość tagu
- utms - tablica etykiet źródłowych. Każda etykieta zawiera następujące pola:
- id — identyfikator etykiety
- param — typ etykiety. Możliwa wartość:
- utm_source
- utm_medium
- utm_campaign
- utm_content
- phone — telefon
- custom — dowolny
- utm_source
- value — rzeczywista wartość etykiety
- display_value — wyświetla wartość etykiety
get /v1/zcrm/customers/<c_id>
Zwraca klienta według jego identyfikatora
Parametry adresu
- c_id — identyfikator klienta
Odpowiedź
{
"id": 65,
"name": "Good Company",
"status": "company",
"type": "client",
"responsible_user_id": 20,
"employees_count": "50",
"comment": "",
"country": "GB",
"city": "London",
"address": "",
"zip": "",
"website": "",
"created_at": "2020-04-28 05:47:47",
"created_by": 20,
"lead_source": "manual",
"lead_created_at": null,
"lead_created_by": null,
"phones": [
{
"type": "work",
"phone": "+44123456789"
}
],
"contacts": [
{
"type": "email_work",
"value": "good_company@example.com"
}
],
"labels": [
{
"id": 12,
"label": "Best clients"
}
],
"utms": [
{
"id": 19,
"param": "utm_source",
"value": "google",
"display_value": "Google"
}
],
"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
- type — typ numeru. Prawidłowe wartości:
- 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
- value — wartość kontaktu
- type — typ kontaktu. Prawidłowe wartości:
- labels — tablica tagów przypisanych do klienta. Każdy tag zawiera następujące pola:
- id — identyfikator tagu
- param — typ etykiety. Możliwa wartość:
- utm_source
- utm_medium
- utm_campaign
- utm_content
- phone — telefon
- custom — dowolny
- utm_source
- value — rzeczywista wartość etykiety
- display_value — wyświetla wartość etykiety
- param — typ etykiety. Możliwa wartość:
- label — wartość tagu
- id — identyfikator 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 }
],
"utms": [
{ "id": 19 },
{ "id": 20 }
],
"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
- type — typ numeru. Prawidłowa wartość:
- 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
- value — wartość kontaktu
- type — typ kontaktu. Prawidłowa wartość:
- labels — tablica tagów dodanych do klienta. Każdy element musi zawierać:
- id — identyfikator istniejącego tagu
- utms - tablica etykiet źródłowych. Każdy element musi zawierać:
- id — identyfikator istniejącej etykiety
- custom_properties — tablica dodatkowych właściwości. Każdy element musi zawierać:
- id — identyfikator dodatkowej właściwości
- key — unikalne imię dodatkowej właściwości
- value — wartość dodatkowej właściwości
Odpowiedź:
(Odpowiedź 2)
Odpowiedź 2:
{
"id": 65
}
gdzie:
- id — identyfikator utworzonego klienta
put /v1/zcrm/customers/<c_id>
Aktualizuje istniejącego klienta o określonym ID
Parametry adresu
- c_id — identyfikator klienta
Parametry
- customer — nowe dane klientów. Struktura klienta:
{
"name": "Good Company",
"status": "company",
"type": "client",
"responsible_user_id": 20,
"employees_count": "50",
"comment": "",
"country": "GB",
"city": "London",
"address": "",
"zip": "",
"website": "",
"lead_source": "manual",
"phones": [
{
"type": "work",
"phone": "+44123456789"
}
],
"contacts": [
{
"type": "email_work",
"value": "good_company@example.com"
}
],
"labels": [
{ "id": 12 },
{ "id": 13 }
],
"utms": [
{ "id": 19 },
{ "id": 20 }
],
"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
- type — typ numeru. Prawidłowa wartość:
- 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
- value — wartość kontaktu
- type — typ kontaktu. Prawidłowa wartość:
- labels — tablica tagów dodanych do klienta. Każdy element musi zawierać:
- id — identyfikator istniejącego tagu
- utms - tablica etykiet źródłowych. Każdy element musi zawierać:
- id — identyfikator istniejącej etykiety
- 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
Etykiety źródła
get /v1/zcrm/customers/utms
Zwraca tablicę wszystkich tagów analitycznych i ich statystyk
Odpowiedź
[
{
"id": 78,
"param": "utm_source",
"value": "google",
"display_value": "Google",
"count": 1267
}
]
Gdzie każda etykieta źródła zawiera następujące pola:
- param — typ etykiety źródła. Prawidłowe wartości:
- utm_source
- utm_medium
- utm_campaign
- utm_content
- phone — telefon
- custom — dowolna
- value — rzeczywista wartość etykiety źródła
- display_value — wyświetlana wartość etykiety źródła
- count — liczbę klientów i potencjalnych klientów korzystających z tej etykiety źródła
post /v1/zcrm/customers/utms
Tworzy nową etykietę źródła
Parametry
- utm — dane nowej etykiety źródła. Struktura etykiety:
(Odpowiedź 1)
Odpowiedź 1:
{
"param": "utm_source",
"value": "google",
"display_value": "Google"
}
Gdzie:
- param — typ etykiety źródła. Prawidłowe wartości:
- utm_source
- utm_medium
- utm_campaign
- utm_content
- phone — telefon
- custom — dowolna
- value — rzeczywista wartość etykiety źródła
- display_value — (opcjonalnie) wyświetlana wartość etykiety źródła
Odpowiedź
(Odpowiedź 2)
Odpowiedź 2:
{
"id": 78
}
Gdzie:
- id — identyfikator wygenerowanej etykiety źródła
put /v1/zcrm/customers/utms/<utm_id>
Aktualizuje istniejącą etykietę źródła o określonym identyfikatorze (ID)
Opcje adresu
- utm_id — identyfikator etykiety źródła
Parametry
- utm — nowe dane etykiet źródła. Struktura etykiety Analytics:
{
"param": "utm_source",
"value": "google",
"display_value": "Google"
}
Gdzie:
- param — typ etykiety źródła Prawidłowe wartości:
- utm_source
- utm_medium
- utm_campaign
- utm_content
- phone — telefon
- custom — dowolna
- value — rzeczywista wartość etykiety źródła
- display_value — wyświetlana wartość etykiety źródła
delete /v1/zcrm/customers/utms/<utm_id>
Usuwa tag call tracking z systemu na podstawie jego identyfikatora (ID)
Opcje adresu
- utm_id — identyfikator etykiety analitycznej
Tagi
get /v1/zcrm/customers/labels
Zwraca listę wszystkich tagów i statystyk według nich
Odpowiedź
{
"totalCount": 5,
"labels": [
{
"id": 12,
"label": "Best clients",
"count": 14
}
]
}
gdzie:
- totalCount — całkowita liczba tagów w systemie
- labels — tablica tagów. Każdy tag ma następujące pola:
- id — identyfikator tagu
- label — imię tagu
- count — liczba klientów i leads korzystających z tego tagu
post /v1/zcrm/customers/labels
Tworzy nowy tag
Parametry
- name — imię nowego tagu
Odpowiedź
{
"id": 13,
"label": "Very best clients",
"count": 0
}
gdzie:
- id — identyfikator utworzonego tagu
- label — nazwa tagu
- count — liczba klientów i leads korzystających z tego tagu (tutaj zawsze jest to 0)
delete /v1/zcrm/customers/labels/<l_id>
Usuwa tag z systemu według jego ID
Parametry adresu
- l_id — identyfikator tagu
Dodatkowe właściwości
get /v1/zcrm/customers/custom-properties
Zwraca wszystkie dodatkowe właściwości
Odpowiedź
{
"totalCount": 8,
"customProperties": [
{
"id": 18,
"key": "loyalty",
"title": "Loyalty"
}
]
}
gdzie:
- totalCount — całkowita liczba dodatkowych właściwości.
- customProperties — tablica dodatkowych właściwości. Każda dodatkowa właściwość zawiera następujące pola:
- id — identyfikator dodatkowej właściwości
- key — unikalne imię dodatkowej właściwości
- title — wyświetlona nazwa dodatkowej właściwości
Kanał klienta
get /v1/zcrm/customers/<c_id>/feed
Zwraca wpisy z kanału klienta
Parametry adresu
- c_id — identyfikator klienta
Odpowiedź
{
"totalCount": 17,
"items": [
{
"id": 37825,
"type": "note",
"content": "Call to the client",
"time": "2020-06-08 06:55:02",
"user_id": 20,
"user_name": "John Beam",
"call_id": null,
"call_type": null,
"call_status": null,
"call_phone": null,
"call_duration": null,
"call_record": null,
"call_contact_name": null,
"attached_files": [
{
"file_id": 576,
"original_filename": "document.doc"
}
]
}
]
}
gdzie:
- totalCount — całkowita liczba wpisów
- items — tablica wpisów. Każdy wpis zawiera następujące atrybuty:
- id — identyfikator wpisu
- type — typ wpisu. Możliwa wartość:
- event — wydarzenie
- note — tekstowa notatka
- call — połączenie
- content — treść wpisu. Jeśli typem wpisu jest notatka, ten atrybut zawiera tekstową treść notatki. Jeśli typ wpisu to zdarzenie, ten atrybut zawiera identyfikator zdarzenia, na przykład:
- CUSTOMER_CREATED — zdarzenie tworzenia klienta
- LEAD_CREATED — zdarzenie tworzenia potencjalnego klienta
- time — czas wpisu w formacie
YYYY-MM-DD hh:mm:ss
- user_id — identyfikator użytkownika, który utworzył notatkę
- user_name — nazwa użytkownika, który utworzył notatkę
- call_id — identyfikator połączenia (jeśli typem wpisu jest połączenie)
- call_type — typ połączenia. Możliwa wartość:
- incoming — połączenie przychodzące
- outgoing — połączenie wychodzące
- call_status — status połączenia. Prawidłowa wartość
- answer — udane połączenie
- noanswer — brak odpowiedzi
- cancel — anulowano
- busy — zajęty
- failed — nie powiodło się
- call_phone — numer telefonu
- call_duration — czas trwania w sekundach
- call_record — czy nagrywanie rozmów jest włączone
- call_contact_name — imię kontaktu połączenia
- attached_files — tablica plików dołączonych do notatki (jeśli typ wpisu to notatka). Każdy element tablicy zawiera następujące atrybuty:
- file_id — identyfikator pliku
- original_filename — oryginalna nazwa pliku
post /v1/zcrm/customers/<c_id>/feed
Dodaje notatkę tekstową do kanału klienta z możliwością dołączania plików
Parametry adresu
- c_id — identyfikator klienta
Parametry
- content — wartość tekstowa notatki
- files — tablica załączników
Odpowiedź
{
"id": 37825,
"type": "note",
"content": "Call to the client",
"time": "2020-06-08 06:55:02",
"user_id": 20,
"user_name": "John Beam",
"attached_files": [
{
"file_id": 576,
"original_filename": "document.doc"
}
]
}
gdzie:
- id - identyfikator wpisu
- type - typ wpisu. W takim przypadku jest to równe:
- note - notatka tekstowa
- content - treść tekstu notatki
- time - czas notatki w formacie
YYYY-MM-DD hh:mm:ss
- user_id - identyfikator użytkownika, który utworzył notatkę
- user_name - nazwa użytkownika, który utworzył notatkę
- attached_files - tablica plików dołączonych do notatki (jeśli typ wpisu to notatka). Każdy element tablicy zawiera następujące atrybuty:
- file_id — identyfikator pliku
- original_filename — oryginalna nazwa pliku
put /v1/zcrm/customers/<c_id>/feed/<i_id>
Aktualizuje zawartość istniejącej notatki tekstowej według jej ID
Parametry adresu
- c_id — identyfikator klienta
- i_id — identyfikator notatki tekstowej
Parametry
- content — nowy tekst notatki
delete /v1/zcrm/customers/<c_id>/feed/<i_id>
Usuwa notatkę z kanału klienta według jej ID
Parametry adresu
- c_id — identyfikator klienta
- i_id — identyfikator notatki
Pracownicy
get /v1/zcrm/customers/<c_id>/employees
Zwraca listę pracowników klienta według jego ID
Parametry adresu
- c_id — identyfikator klienta
Odpowiedź
{
"totalCount": 5,
"employees": [
{
"id": 23,
"customer_id": 11,
"name": "Steven Knight",
"position": "manager",
"position_title": "",
"comment": "",
"phones": [
{
"type": "work",
"phone": "+44123456789"
}
],
"contacts": [
{
"type": "email_work",
"value": "s.knight@example.com"
}
]
}
]
}
gdzie:
- totalCount — liczba pracowników klienta
- employees — tablica pracowników klientów. Każdy element tablicy zawiera następujące atrybuty:
- id — identyfikator pracownika
- customer_id — identyfikator klienta, z którym związany jest pracownik
- name — imię pracownika
- position — stanowisko pracownika. Prawidłowe wartości:
- ceo — prezes zarządu
- director — wiceprezes zarządu
- manager — menadżer
- sales_manager — kierownik sprzedaży
- hr — HR
- support — obsługa klienta
- custom — dowolne
- position_title — nazwa dowolnej pozycji (dla position = custom)
- comment — komentarz
- phones — tablica numerów telefonów pracowników. Każdy numer zawiera następujące pola:
- type — typ numeru. Prawidłowe wartości:
- work — stacjonarny
- personal — prywatny
- phone — wartość numeru
- type — typ numeru. Prawidłowe wartości:
- 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
- value — wartość kontaktu
- type — typ kontaktu. Prawidłowe wartości:
get /v1/zcrm/customers/<c_id>/employees/<e_id>
Zwraca pracownika klienta według jego ID
Parametry adresu
- c_id — identyfikator klienta
- e_id — identyfikator pracownika
Odpowiedź
{
"id": 23,
"customer_id": 11,
"name": "Steven Knight",
"position": "manager",
"position_title": "",
"comment": "",
"phones": [
{
"type": "work",
"phone": "+44123456789"
}
],
"contacts": [
{
"type": "email_work",
"value": "s.knight@example.com"
}
]
}
gdzie:
- id — identyfikator pracownika
- customer_id — identyfikator klienta, z którym związany jest pracownik
- name — imię pracownika
- position — stanowisko pracownika. Prawidłowe wartości:
- ceo — prezes zarządu
- director — wiceprezes zarządu
- manager — menadżer
- sales_manager — kierownik sprzedaży
- hr — HR
- support — obsługa klienta
- custom — dowolne
- position_title — nazwa dowolnej pozycji (dla position = custom)
- comment — komentarz
- phones — tablica numerów telefonów pracowników. Każdy numer zawiera następujące pola:
- type — typ numeru. Prawidłowe wartości:
- work — stacjonarny
- personal — prywatny
- phone — wartość numeru
- type — typ numeru. Prawidłowe wartości:
- 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
- value — wartość kontaktu
- type — typ kontaktu. Prawidłowe wartości:
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
- type — typ numeru. Prawidłowe wartości:
- 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
- value — wartość kontaktu
- type — typ kontaktu. Prawidłowe wartości:
Odpowiedź
(Odpowiedź 2)
Odpowiedź 2:
{
"id": 23
}
gdzie:
- id — identyfikator nowego pracownika
put /v1/zcrm/customers/<c_id>/employees/<e_id>
Aktualizuje istniejącego pracownika o określonym ID
Parametry adresu
- c_id — identyfikator klienta
- e_id — identyfikator pracownika
Parametry
- employee — nowe dane pracownika. Struktura:
{
"name": "Steven Knight",
"position": "manager",
"position_title": "",
"comment": "",
"phones": [
{
"type": "work",
"phone": "+44123456789"
}
],
"contacts": [
{
"type": "email_work",
"value": "john@example.com"
}
]
}
gdzie:
- name — imię pracownika
- position — stanowisko pracownika. Prawidłowe wartości:
- ceo — prezes zarządu
- director — wiceprezes zarządu
- manager — menadżer
- sales_manager — kierownik sprzedaży
- hr — HR
- support — obsługa klienta
- custom — dowolne
- position_title — nazwa dowolnej pozycji (dla position = custom)
- comment — komentarz
- phones — tablica numerów telefonów pracowników. Każdy numer zawiera następujące pola:
- type — typ numeru. Prawidłowe wartości:
- work — stacjonarny
- personal — prywatny
- phone — wartość numeru
- type — typ numeru. Prawidłowe wartości:
- 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
- value — wartość kontaktu
- type — typ kontaktu. Prawidłowe wartości:
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
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,
"utm": 19,
"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"
}
],
"utms": [
{
"id": 19,
"param": "utm_source",
"value": "google",
"display_value": "Google"
}
]
}
]
}
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
- type — typ numeru. Prawidłowe wartości:
- 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
- value — wartość kontaktu
- type — typ kontaktu. Prawidłowe wartości:
- labels — tablica tagów przypisanych do klienta. Każdy tag zawiera następujące pola:
- id — identyfikator tagu
- label — wartość tagu
- utms - tablica etykiet źródłowych. Każda etykieta zawiera następujące pola:
- id — identyfikator etykiety
- param — typ etykiety. Możliwa wartość:
- utm_source
- utm_medium
- utm_campaign
- utm_content
- phone — telefon
- custom — dowolny
- utm_source
- value — rzeczywista wartość etykiety
- display_value — wyświetla wartość etykiety
get /v1/zcrm/leads/<lead_id>
Zwraca lead według jego ID
Odpowiedź
{
"id": 3486,
"name": "Good Company",
"responsible_user_id": 234,
"employees_count": "50",
"comment": "",
"country": "GB",
"city": "London",
"address": "",
"zip": "",
"website": "",
"lead_status": "not_processed",
"lead_source": "manual",
"lead_created_at": "2020-04-28 05:47:47",
"lead_created_by": 234,
"phones": [
{
"type": "work",
"phone": "+44123456789"
}
],
"contacts": [
{
"type": "email_work",
"value": "good_company@example.com"
}
],
"labels": [
{
"id": 22,
"label": "Лучшие клиенты"
}
],
"utms": [
{
"id": 19,
"param": "utm_source",
"value": "google",
"display_value": "Google"
}
],
"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
- type — typ numeru. Prawidłowe wartości:
- 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
- value — wartość kontaktu
- type — typ kontaktu. Prawidłowe wartości:
- labels — tablica tagów przypisanych do klienta. Każdy tag zawiera następujące pola:
- id — identyfikator tagu
- label — wartość tagu
- utms - tablica etykiet źródłowych. Każda etykieta zawiera następujące pola:
- id — identyfikator etykiety
- param — typ etykiety. Możliwa wartość:
- utm_source
- utm_medium
- utm_campaign
- utm_content
- phone — telefon
- custom — dowolny
- utm_source
- value — rzeczywista wartość etykiety
- display_value — wyświetla wartość etykiety
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 }
],
"utms": [
{ "id": 19 },
{ "id": 20 }
],
"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
- type — typ numeru. Prawidłowe wartości:
- 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
- value — wartość kontaktu
- type — typ kontaktu. Prawidłowe wartości:
- labels — tablica tagów dodana do potencjalnej szansy. Każdy element musi zawierać:
- id — identyfikator istniejącego tagu
- utms - tablica etykiet źródłowych. Każdy element musi zawierać:
- id — identyfikator istniejącej etykiety
- 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
- id — identyfikator istniejącej etykiety
Odpowiedź
(Odpowiedź 2)
Odpowiedź 2:
{
"id": 123
}
gdzie
- id — identyfikator utworzonego leadu
put /v1/zcrm/leads/<lead_id>
Aktualizuje istniejący lead o określonym ID
Parametry
- convert — konwertować lead w klienta. Prawidłowe wartości:
- 0 - nie konwertuj
- 1 - utwórz klienta
- 2 - niedocelowy (usuń lead)
- lead — dane nowego lead. Struktura lead:
{
"name": "Good Company",
"responsible_user_id": 234,
"employees_count": "50",
"comment": "",
"country": "GB",
"city": "London",
"address": "",
"zip": "",
"website": "",
"lead_source": "manual",
"lead_status": "in_progress",
"phones": [
{
"type": "work",
"phone": "+44123456789"
}
],
"contacts": [
{
"type": "email_work",
"value": "good_company@example.com"
}
],
"labels": [
{ "id": 22 },
{ "id": 23 }
],
"utms": [
{ "id": 19 },
{ "id": 20 }
],
"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
- type — typ numeru. Prawidłowe wartości:
- 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
- value — wartość kontaktu
- type — typ kontaktu. Prawidłowe wartości:
- labels — tablica tagów dodana do potencjalnej szansy. Każdy element musi zawierać:
- id — identyfikator istniejącego tagu
- utms - tablica etykiet źródłowych. Każdy element musi zawierać:
- id — identyfikator istniejącej etykiety
- 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
- id — identyfikator istniejącej etykiety
delete /v1/zcrm/leads/<lead_id>
Usuwa lead według jego ID
Użytkownicy
get /v1/zcrm/users
Zwraca listę użytkowników
Odpowiedź
{
"totalCount": 2,
"users": [
{
"id": 234,
"email": "john@example.com",
"name": "John Beam",
"group_id": 653,
"is_superadmin": 1,
"enabled": 1,
"created_at": "2020-04-27 01:01:31",
"avatar": 2457,
"role": "",
"status": "",
"language": "en",
"color": "220",
"color_hex": "5678BD",
"internal_number": "100",
"timezone": "Europe/London",
"first_day": 1,
"device": "webphone",
"phone_widget_location": "right",
"phones": [
{
"phone": "+44123456789",
"type": "work"
}
],
"contacts": [
{
"type": "email_work",
"value": "ivanov@example.com"
}
]
}
]
}
gdzie
- totalCount — całkowita liczba użytkowników
- users — tablica użytkowników. Każdy element tablicy zawiera następujące atrybuty:
- id — identyfikator użytkownika
- email — konto e-mail użytkownika
- name — nazwa użytkownika
- group_id — identyfikator grupy użytkowników
- is_superadmin — wskazuje, czy użytkownik jest superadministratorem (1 czy 0)
- enabled — czy użytkownik jest odblokowany (1 czy 0)
- created_at — data i godzina utworzenia użytkownika (format
YYYY-MM-DD hh:mm:ss
) - avatar — awatar użytkownika (identyfikator pliku)
- role — stanowisko użytkownika
- status — status użytkownika
- language — język interfejsu użytkownika. Możliwe opcje:
- pl — polski
- de — niemiecki
- en — angielski
- es — hiszpański
- ru — rosyjski
- ua — ukraiński
- color — kolor zadań użytkownika w interfejsie ZCRM (tylko wartość odcienia - od 0 do 359)
- color_hex — kolor zadań użytkownika w interfejsie ZCRM (hex-reprezentacja)
- internal_number — wewnętrzny numer centrali PBX użytkownika
- timezone — strefa czasowa użytkownika
- first_day — określa, który dzień tygodnia jest początkiem tygodnia:
- 0 — niedziela
- 1 — poniedziałek
- device — co używa się do połączeń. Możliwa wartość:
- webphone — web-telefon
- softphone — softphone(aplikacja)
- phone_widget_location — lokalizacja widgetu web telefonu. Możliwa wartość:
- left — umieść widget telefonu po lewej
- right — umieść widget telefonu po prawej
- phones — tablica numerów telefonów użytkowników. Każdy numer zawiera następujące pola:
- phone — numer
- type — typ numeru. Możliwa wartość:
- work — stacjonarny
- personal — prywatny
- contacts — tablica kontaktów użytkownika. Każdy kontakt zawiera następujące pola:
- type — typ kontaktu. Możliwa wartość:
- email_work — stacjonarny e-mail
- email_personal — prywatny e-mail
- skype
- telegram
- viber
- value — wartość kontaktu
- type — typ kontaktu. Możliwa wartość:
get /v1/zcrm/users/<user_id>
Zwraca użytkownika według jego ID
Odpowiedź
{
"id": 234,
"email": "john@example.com",
"name": "John Beam",
"group_id": 653,
"is_superadmin": 1,
"enabled": 1,
"created_at": "2020-04-27 01:01:31",
"avatar": 2457,
"role": "",
"status": "",
"language": "en",
"color": "220",
"color_hex": "5678BD",
"internal_number": "100",
"timezone": "Europe/London",
"first_day": 1,
"device": "webphone",
"phone_widget_location": "right",
"phones": [
{
"phone": "+44123456789",
"type": "work"
}
],
"contacts": [
{
"type": "email_work",
"value": "simpson@example.com"
}
],
"pending_email_change_request": false
}
gdzie
- id — identyfikator użytkownika
- email — konto e-mail użytkownika
- name — nazwa użytkownika
- group_id — identyfikator grupy użytkowników
- is_superadmin — wskazuje, czy użytkownik jest superadministratorem (1 czy 0)
- enabled — czy użytkownik jest odblokowany (1 czy 0)
- created_at — data i godzina utworzenia użytkownika (format
YYYY-MM-DD hh:mm:ss
) - avatar — awatar użytkownika (identyfikator pliku)
- role — stanowisko użytkownika
- status — status użytkownika
- language — język interfejsu użytkownika. Możliwe opcje:
- pl — polski
- de — niemiecki
- en — angielski
- es — hiszpański
- ru — rosyjski
- ua — ukraiński
- color — kolor zadań użytkownika w interfejsie ZCRM (tylko wartość odcienia - od 0 do 359)
- color_hex — kolor zadań użytkownika w interfejsie ZCRM (hex-reprezentacja)
- internal_number — wewnętrzny numer centrali PBX użytkownika
- timezone — strefa czasowa użytkownika
- first_day — określa, który dzień tygodnia jest początkiem tygodnia:
- 0 — niedziela
- 1 — poniedziałek
- device — co używa się do połączeń. Możliwa wartość:
- webphone — web-telefon
- softphone — softphone(aplikacja)
- phone_widget_location — lokalizacja widgetu web telefonu. Możliwa wartość:
- left — umieść widget telefonu po lewej
- right — umieść widget telefonu po prawej
- phones — tablica numerów telefonów użytkowników. Każdy numer zawiera następujące pola:
- phone — numer
- type — typ numeru. Możliwa wartość:
- work — stacjonarny
- personal — prywatny
- contacts — tablica kontaktów użytkownika. Każdy kontakt zawiera następujące pola:
- type — typ kontaktu. Możliwa wartość:
- email_work — stacjonarny e-mail
- email_personal — prywatny e-mail
- skype
- telegram
- viber
- value — wartość kontaktu
- type — typ kontaktu. Możliwa wartość:
- pending_email_change_request — jeśli wysłano prośbę o zmianę konta e-mail, ale prośba nie została jeszcze potwierdzona, parametr ten zostanie ustawiony na true
get /v1/zcrm/users/<user_id>/working-hours
Zwraca godziny pracy użytkownika
Odpowiedź
{
"schedulePeriod": 7,
"scheduleWorkingHours": [
{
"time_start": "2020-06-15 09:00:00",
"time_end": "2020-06-15 18:00:00"
}
],
"scheduleFixes": [
{
"index": 2,
"repeat_index": 1,
"time_start": "2020-06-24 09:00:00",
"time_end": "2020-06-24 13:00:00",
"deleted": 0
}
],
"customWorkingHours": [
{
"time_start": "2020-06-27 11:00:00",
"time_end": "2020-06-27 15:00:00"
}
]
}
gdzie
- schedulePeriod — częstotliwość harmonogramu, jak to się powtarza. W przypadku normalnego tygodnia pracy jest to 7 dni, w przypadku codziennego harmonogramu - 2 dni itd.
- scheduleWorkingHours — tablica okresów pracy. Każdy okres roboczy zawiera następujące atrybuty:
- time_start — początek czasu pracy w formacie
YYYY-MM-DD hh:mm:ss
- time_end — koniec czasu pracy w formacie
YYYY-MM-DD hh:mm:ss
- time_start — początek czasu pracy w formacie
- 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
- time_start — początek czasu pracy w formacie
get /v1/zcrm/users/groups
Zwraca grupy i prawa użytkownika dla każdej z nich
Odpowiedź
{
"totalCount": 4,
"groups": [
{
"id": 45,
"type": "manager",
"title": "",
"permissions": {
"customers_create": true,
"customers_edit": true,
"customers_delete": true,
"customers_import_export": true,
"customers_view_all": false,
"calendar_other_users_access": false,
"calls_other_users_access": false,
"leads_view": false,
"leads_edit": false,
"leads_delete": false,
"leads_import_export": false,
"team_add": false,
"team_edit": false
}
}
]
}
gdzie
- totalCount — całkowita liczba grup
- groups — tablica grup. Każda grupa zawiera następujące atrybuty:
- id — identyfikator grupy
- type — typ grupy. Możliwa wartość:
- admin — administratorzy
- manager — menadżery
- chat_operator — operatorzy
- trainee — stażyści
- custom — niestandardowy
- title — nazwa grupy użytkowników (dla type = custom)
- permissions — prawa użytkownika do grupy. Administratorzy mają pełny dostęp, więc dla administratorów ten obiekt będzie pusty. Pozostałe grupy zawierają następujące atrybuty (z których każda może być równa „true” lub „false”):
- customers_create — dozwolone tworzenie klientów
- customers_edit — dozwolona edycja klientów
- customers_delete — dozwolone usuwanie klientów
- customers_import_export — dozwolony import i eksport klientów
- customers_view_all — dozwolone wyświetlanie wszystkich klientów, w tym tych przypisanych do innych użytkowników
- calendar_other_users_access — dozwolone zadania przeglądania innych użytkowników
- calls_other_users_access — dozwolony dostęp do połączeń innych użytkowników
- leads_view — dozwolone przeglądanie leadów innych użytkowników
- leads_edit — dozwolona edycja leadów innych użytkowników
- leads_delete — dozwolone usuwanie potencjalnych klientów innych użytkowników
- leads_import_export — import i eksport leadów jest dozwolony
- team_add — dozwolone dodawanie i zapraszanie użytkowników do zespołu
- team_edit — dozwolona edycja użytkowników
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)
- position — rodzaj stanowiska. Prawidłowe wartości:
- 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)
- type — typ grupy. Zawiera następujące pola:
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)
- type — typ grupy. Zawiera następujące pola:
Transakcje
get /v1/zcrm/deals
Zwraca listę transakcji
Opcje
-
search (opcjonalnie) — wyszukiwana lista. Wyszukiwanie transakcji odbywa się według nazwy.
-
filter (opcjonalnie) — filtr transakcji. Struktura filtra:
(Odpowiedź 1)
Odpowiedź 1:
{
"currency": "USD",
"responsible_user": 20,
"status": "new"
}
Gdzie:
- currency — waluta transakcji. Trzyliterowy kod ISO 4217: EUR, USD itp.
- responsible_user —odpowiedzialny (identyfikator użytkownika)
-
status — status transakcji. Prawidłowe wartości:
- new — nowa
- in_progress — w toku
- decision - podejmują decyzję
- payment — oczekiwana jest płatność
- success — transakcja powiodła się
- canceled — transakcja anulowana
Każdy z parametrów filtru można pominąć, tj. jest opcjonalne.
- sort (opcjonalne) — sortowanie transakcji. Struktura parametrów:
(Odpowiedź 2)
Odpowiedź 2:
{
"attr": "name",
"desc": 0
}
Gdzie:
- attr — pole sortowania. Prawidłowe wartości:
- title — nazwa transakcji
- budget — budżet transakcji
- status — status transakcji
- created_at — data utworzenia transakcji
- desc — kierunek sortowania. Prawidłowe wartości:
- 0 — rosnąco
- 1 — malejąco
-
take (dla paginacji) — ile transakcji zwrócić (domyślnie 20)
-
skip (dla paginacji) — ile transakcji pominąć (domyślnie 0)
Odpowiedź
(Odpowiedź 3)
Odpowiedź 3:
{
"totalCount": 82,
"deals": [
{
"id": 83,
"title": "Good deal",
"budget": 990.00,
"currency": "USD",
"status": "new",
"responsible_user": 20,
"created_at": "2021-10-05 12:40:10",
"created_by": 20,
"customer_id": 65,
"customer_is_lead": 0,
"customer_name": "Good company",
"customer_responsible_user": 20
}
]
}
Gdzie:
- totalCount — łączna liczba transakcji (w tym ciąg wyszukiwania i filtr)
- deals — tablica transakcji (biorąc pod uwagę paginację). Każdy element tablicy zawiera następujące parametry:
- id — identyfikator transakcji
- title — nazwa transakcji
- budget — budżet transakcji
- currency — waluta transakcji. Trzyliterowy kod ISO 4217: EUR, USD itp.
- status — status transakcji. Prawidłowe wartości:
- new — nowa
- in_progress — w toku
- decision - podejmują decyzję
- payment — oczekiwana jest płatność
- success — transakcja powiodła się
- canceled — transakcja anulowana
- responsible_user — odpowiedzialny (identyfikator użytkownika)
- created_at — data i godzina utworzenia transakcji (w formacie
YYYY-MM-DD HH:mm:ss
) - created_by — utworzone przez (identyfikator użytkownika)
- customer_id — identyfikator klienta powiązanego z transakcją
- customer_is_lead — flaga pokazująca, czy klient jest leadem
- customer_name — nazwa klienta powiązanego z transakcją
- customer_responsible_user — odpowiedzialny za klienta (identyfikator użytkownika)
get /v1/zcrm/deals/<deal_id>
Zwraca transakcje według jej identyfikatora (ID)
Opcje adresu
- deal_id — identyfikator transakcji
Odpowiedź
{
"id": 83,
"title": "Good deal",
"budget": 990.00,
"currency": "USD",
"status": "new",
"responsible_user": 20,
"created_at": "2021-10-05 12:40:10",
"created_by": 20,
"customer_id": 65,
"customer_is_lead": 0,
"customer_name": "Good company",
"customer_responsible_user": 20
}
Gdzie:
- id — identyfikator transakcji
- title — nazwa transakcji
- budget — budżet transakcji
- currency — waluta transakcji. Trzyliterowy kod ISO 4217: EUR, USD itp.
- status — status transakcji. Prawidłowe wartości:
- new — nowa
- in_progress — w toku
- decision - podejmują decyzję
- payment — oczekiwana jest płatność
- success — transakcja powiodła się
- canceled — transakcja anulowana
- responsible_user — odpowiedzialny (identyfikator użytkownika)
- created_at — data i godzina utworzenia transakcji (w formacie
YYYY-MM-DD HH:mm:ss
) - created_by — utworzone przez (identyfikator użytkownika)
- customer_id — identyfikator klienta powiązanego z transakcją
- customer_is_lead — flaga pokazująca, czy klient jest leadem
- customer_name — nazwa klienta powiązanego z transakcją
- customer_responsible_user — odpowiedzialny za klienta (identyfikator użytkownika)
post /v1/zcrm/deals
Tworzy nową transakcje z określonymi danymi
Parametry
- deal — szczegóły nowej transakcji. Struktura transakcji:
(Odpowiedź 1)
Odpowiedź 1:
{
"title": "Good deal",
"budget": 990.00,
"currency": "USD",
"status": "new",
"responsible_user": 20,
"customer_id": 65
}
Gdzie:
- title — nazwa transakcji
- budget — budżet transakcji
- currency — waluta transakcji. Trzyliterowy kod ISO 4217: EUR, USD itp.
- status — status transakcji. Prawidłowe wartości:
- new — nowa
- in_progress — w toku
- decision - podejmują decyzję
- payment — oczekiwana jest płatność
- success — transakcja powiodła się
- canceled — transakcja anulowana
- responsible_user — odpowiedzialny (identyfikator użytkownika)
- customer_id — identyfikator klienta powiązanego z transakcją
Odpowiedź:
(Odpowiedź 2)
Odpowiedź 2:
{
"id": 83
}
Gdzie:
- id — identyfikator utworzonej transakcji
put /v1/zcrm/deals/<deal_id>
Aktualizuje istniejącą transakcje o podanym identyfikatorze
Opcje adresu
- deal_id — identyfikator transakcji
Parametry
- deal — nowe dane transakcyjne. Struktura transakcji:
{
"title": "Good deal",
"budget": 990.00,
"currency": "USD",
"status": "new",
"responsible_user": 20
}
Gdzie:
- title — nazwa transakcji
- budget — budżet transakcji
- currency — waluta transakcji. Trzyliterowy kod ISO 4217: EUR, USD itp.
- status — status transakcji. Prawidłowe wartości:
- new — nowa
- in_progress — w toku
- decision - podejmują decyzję
- payment — oczekiwana jest płatność
- success — transakcja powiodła się
- canceled — transakcja anulowana
- responsible_user — odpowiedzialny (identyfikator użytkownika)
delete /v1/zcrm/deals/<deal_id>
Usunięcie transakcji według jej identyfikatora (ID)
Opcje adresu
- deal_id — identyfikator transakcji
Feed transakcji
get /v1/zcrm/deals/<deal_id>/feed
Zwraca wpisy w feed transakcji
Opcje adresu
- deal_id — identyfikator transakcji
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",
"attached_files": [
{
"file_id": 576,
"original_filename": "document.doc"
}
]
}
]
}
Gdzie:
- totalCount — łączna 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 — zdarzenie
- note — notatka tekstowa
- content — treść wpisu. Jeśli typem wpisu jest notatka, ten atrybut zawiera treść notatki. Jeśli typem rekordu jest zdarzenie, ten atrybut zawiera identyfikator zdarzenia, na przykład:
- DEAL_CREATED — zdarzenie tworzenia transakcji
- DEAL_STATUS_CHANGED: success — zdarzenie zmiany statusu transakcji: transakcja zakończona sukcesem
- time — czas w formacie
YYYY-MM-DD hh:mm:ss
- user_id — identyfikator użytkownika, który utworzył wpis
- user_name — imię użytkownika, który utworzył wpis
- attached_files — tablica wpisów dołączonych do notatki (jeśli typem wiadomości jest notatka). Każdy element tablicy zawiera następujące atrybuty:
- file_id — identyfikator pliku
- original_filename — oryginalna nazwa pliku
post /v1/zcrm/deals/<deal_id>/feed
Dodaje notatkę tekstową do feedu z możliwością dołączania plików
Opcje adresu
- deal_id — identyfikator transakcji
Parametry
- content — treść tekstu notatki
- files — tablica załączonych plików
Odpowiedź
{
"id": 37825,
"type": "note",
"content": "Call to the client",
"time": "2020-06-08 06:55:02",
"user_id": 20,
"user_name": "John Beam",
"attached_files": [
{
"file_id": 576,
"original_filename": "document.doc"
}
]
}
Gdzie:
- id — identyfikator wpisu
- type — typ wpisu. Możliwa wartość:
- note — notatka tekstowa
- content — treść wpisu
- time — czas w formacie
YYYY-MM-DD hh:mm:ss
- user_id — identyfikator użytkownika, który utworzył wpis
- user_name — imię użytkownika, który utworzył wpis
- attached_files — tablica wpisów dołączonych do notatki (jeśli typem wiadomości jest notatka). Każdy element tablicy zawiera następujące atrybuty:
- file_id — identyfikator pliku
- original_filename — oryginalna nazwa pliku
- type — typ wpisu. Możliwa wartość:
put /v1/zcrm/deals/<deal_id>/feed/<i_id>
Aktualizuje treść istniejącej notatki tekstowej według jej identyfikatora
Opcje adresu
- deal_id — identyfikator transakcji
- i_id — identyfikator notatki
Parametry
- content — nowy tekst notatki
delete /v1/zcrm/deals/<deal_id>/feed/<i_id>
Usuwa notatkę w feed transakcji według jej identyfikatora
Opcje adresu
- deal_id — identyfikator transakcji
- i_id — identyfikator notatki
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
lubfalse
) — datę określa się parametrem start - created_by — identyfikator użytkownika, który utworzył zadanie
- responsible_user — identyfikator użytkownika odpowiedzialnego za zadanie
- phone — numer telefonu dla połączenia (jeśli typ zadania to połączenie)
- call_done — wskazuje, czy połączenie zostało wykonane
- completed — wskazuje, że zadanie jest oznaczone jako ukończone
- completed_comment — komentarz na ukończone zadanie
- members — tablica uczestników zadania (tylko identyfikatory użytkowników)
- customers — tablica klientów i potencjalnych klientów dołączonych do zadania. Każdy element tablicy zawiera następujące pola:
- id — identyfikator klienta / lead
- name — imię klienta / lead
- status — status klienta. Możliwa wartość:
- individual — osoba prywatna
- company — firma
- type — typ klienta. Prawidłowe wartości:
- potential — potencjalny klient
- client — klient
- reseller — reseller
- partner — partner
- lead_source — źródło lead. Prawidłowe wartości:
- manual — ręcznie
- call_incoming — przychodzące połączenie
- call_outgoing — wychodzące połączenie
- form — formularz
- lead_status — status lead. Możliwa wartość:
- not_processed — niesortowany
- in_progress — w przetwarzaniu
- finished — zakończony
- contact_type — typ kontaktu. Możliwa wartość:
- customer — klient
- lead — lead
get /v1/zcrm/events/<event_id>
Zwraca zadanie według jego ID
Odpowiedź
{
"id": 40,
"type": "task",
"title": "Create text for Good Company",
"description": "",
"start": "2020-05-26 09:00:00",
"end": "2020-05-26 12:30:00",
"allDay": false,
"created_by": 234,
"responsible_user": 234,
"phone": "",
"call_done": 0,
"completed": 0,
"completed_comment": "",
"members": [234, 235],
"customers": [
{
"id": 3486,
"name": "Good Company",
"status": "company",
"type": "client",
"lead_source": "manual",
"lead_status": "not_processed",
"contact_type": "customer"
}
]
}
gdzie
- id — identyfikator zadania
- type — typ zadania. Możliwa wartość:
- task — zadanie
- call — połączenie
- title — tytuł zadania
- description — opis zadania (w formacie Quill Delta)
- start — data i godzina rozpoczęcia zadania (w formacie
YYYY-MM-DD hh:mm:ss
) - end — data i godzina zakończenia zadania (w formacie
YYYY-MM-DD hh:mm:ss
) - allDay — zadanie na cały dzień (
true
lubfalse
) — 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
lubfalse
) — datę określa się parametrem start - responsible_user — identyfikator użytkownika odpowiedzialnego za zadanie
- phone — numer telefonu dla połączenia (jeśli typ zadania to połączenie)
- members — tablica uczestników zadania (tylko identyfikatory użytkowników)
- customers — tablica klientów i potencjalnych klientów (tylko identyfikatory użytkowników)
Odpowiedź
(Odpowiedź 2)
Odpowiedź 2:
{
"id": 7216
}
gdzie
- id — identyfikator utworzonego zadania
put /v1/zcrm/events/<event_id>
Aktualizuje istniejące zadanie o określonym identyfikatorze
Parametry
- event — nowe dane zadania. Struktura:
{
"title": "Create text for Good Company",
"description": "",
"start": "2020-05-26 09:00:00",
"end": "2020-05-26 12:30:00",
"allDay": false,
"created_by": 234,
"responsible_user": 234,
"phone": "",
"members": [234, 235],
"customers": [3486, 3487]
}
gdzie
- title — tytuł zadania
- description — opis zadania (w formacie Quill Delta)
- start — data i godzina rozpoczęcia zadania (w formacie
YYYY-MM-DD hh:mm:ss
) - end — data i godzina zakończenia zadania (w formacie
YYYY-MM-DD hh:mm:ss
) - allDay — zadanie na cały dzień (
true
lubfalse
) — datę określa się parametrem start - responsible_user — identyfikator użytkownika odpowiedzialnego za zadanie
- phone — numer telefonu dla połączenia (jeśli typ zadania to połączenie)
- members — tablica uczestników zadania (tylko identyfikatory użytkowników)
- customers — tablica klientów i potencjalnych klientów (tylko identyfikatory użytkowników)
post /v1/zcrm/events/<event_id>/close
Kończy (zamyka) zadanie
Parametry
- comment (opcjonalnie) - komentarz
delete /v1/zcrm/events/<event_id>
Usuwa zadanie według jej ID
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:
- take (w przypadku paginacji) - ile połączeń zwrócić (domyślnie 20)
- skip (w przypadku paginacji) - ile połączeń pominąć (domyślnie 0)
(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
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
Pliki
get /v1/zcrm/files/<file_id>
Zwraca plik według jego ID
Informacja o połączeniach przychodzących
System Zadarma może wysyłać informację o każdym połączeniu przychodzącym na centralę telefoniczną i kierować połączenia na odpowiedni numer wewnętrzny w zależności od odpowiedzi. Aby to zrobić, należy utworzyć otwarty publicznie dostępny link, jaki będzie otrzymywał POST-żądania z informacjami od systemu Zadarma.
NOTIFY_START
czas rozpoczęcia połączenia przychodzącego na centralę
Parametry, jakie są wysyłane do linku dla powiadomień:
- event – wydarzenie (NOTIFY_START)
- call_start – czas rozpoczęcia rozmowy;
- pbx_call_id – id połączenia;
- caller_id – numer osoby dzwoniącej;
- called_did – numer, na który było wykonane połączenie.
Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:
$signatureTest = base64_encode(hash_hmac('sha1',
$_POST['caller_id'] . $_POST['called_did'] .
$_POST['call_start'], API_SECRET));
Dla żądania NOTIFY_START i NOTIFY_IVR istnieje możliwość na bieżąco zmiany działania scenariuszu dla obecnego połączenia wysyłając w odpowiedzi informację:
Odtwarzać plik:
(Odpowiedź 1)
Odpowiedź 1:
{
"redirect": ID,
"return_timeout": TIMEOUT (необязательное)
}
Gdzie:
- redirect - identyfikator scenariuszu przekierowania (w formacie 0-1, gdzie 0 to numer menu głosowego, 1 to numer skryptu); lub w formacie 1, gdzie 1 to numer scenariusza (numer menu głosowego w tym przypadku to 0); lub menu PBX w formacie 0-głównym, gdzie 0 to identyfikator 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 - Wartość w sekundach. Możliwa wartość:
- 0, połączenie nie wróci do menu;
- >= 3 - czas trwania połączenia wewnętrznego przed powrotem połączenia do menu;
- rewrite_forward_number - przekazywanie na numer telefonu. Parametr opcjonalny, dostępny tylko w połączeniu z parametrem przekierowania. Wymagany do zmiany „w locie” numeru telefonu do przekierowania, który jest określony w ustawieniach numeru wewnętrznego centrali.
2. Zakończenie połączenia:
(Odpowiedź 2)
Odpowiedź 2:
{
"hangup": 1
}
3. Ustaw nazwę numeru przychodzącego
Możesz ustawić nazwę numeru dzwoniącego (pole CallerID SIP) i będzie ona odzwierciedlona w aplikacji. W ten sposób wygodnie jest przekazywać imię dzwoniącego, jeśli jego numer jest w Twoim systemie.
(Odpowiedź 3)
Odpowiedź 3:
{
"caller_name": NAME
}
Gdzie:
- caller_name - nazwa dzwoniącego.
W każdej z poniższych opcji (numery 4-7) może pojawić się odpowiedź od abonenta w postaci liczb. Opcje wprowadzania cyfr:
(Odpowiedź 4)
Odpowiedź 4:
{
"wait_dtmf": {
"timeout": TIMEOUT,
"attempts": ATTEMPTS,
"maxdigits": MAXDIGITS,
"name": NAME,
"default": DEFAULT,
}
}
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:
{
"ivr_play": "ID"
}
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 nie zostały wybrane żadne cyfry (aby żądanie zadziałało, należy najpierw odtworzyć plik parametrem ivr_play zgodnie z paragrafu 4 poniżej). Możliwa wartość:
- 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:
{
"ivr_saypopular": 1,
"language": "en"
}
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:
{
"ivr_saydigits": "12",
"language": "en"
}
gdzie,
- redirect - id scenariuszu przekierowania (w formacie 0-1 gdzie 0 numer menu głosowego, 1 numer scenariuszu); lub menu głosowego 0-main, gdzie 0 - to id menu; lub numer wewnętrzny centrali (trzycyfrowy numer); lub "blacklist" - w tym przypadku połączenie zostanie odrzucone z sygnałem zajętości;
- return_timeout - Parametr w sekundach. Możliwe warianty:
- 0, połączenie nie zostanie zwrócone do menu;
- >= 3 - czas próby łączenia z numerem wewnętrznym, przed zwróceniem na menu;
Zakończ rozmowę:
(Odpowiedź 8)
Odpowiedź 8:
{
"ivr_saynumber": "123",
"language": "en"
}
W każdej odpowiedzi możesz opcjonalnie dodać:
Nazwę lun nazwę przychodzącego numeru:
(Odpowiedź 9)
Odpowiedź 9:
{
"wait_dtmf": {
"name": NAME,
"digits": DIGITS,
"default_behaviour": "1"
}
}
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
- transfer_from – (opcjonalnie) inicjator transferu, numer wewnętrzny.
- transfer_type – (opcjonalnie) typ transferu.
Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:
$signatureTest = base64_encode(hash_hmac('sha1',
$_POST['caller_id'] . $_POST['called_did'] .
$_POST['call_start'], API_SECRET));
NOTIFY_ANSWER
odpowiedź przy połączeniu na numer wewnętrzny lub numer zewnętrzny
Parametry, jakie są wysyłane do linku dla powiadomień:
- event – wydarzenie (NOTIFY_ANSWER)
- caller_id – numer osoby dzwoniącej;
- destination – numer, na który było wykonane połączenie;
- call_start – czas rozpoczęcia rozmowy;
- pbx_call_id – id połączenia;
- internal – (nieobowiązkowy) wewnętrzny numer
- transfer_from – (opcjonalnie) inicjator transferu, numer wewnętrzny.
- transfer_type – (opcjonalnie) typ transferu.
Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:
$signatureTest = base64_encode(hash_hmac('sha1',
$_POST['caller_id'] . $_POST['destination'] .
$_POST['call_start'], API_SECRET));
NOTIFY_END
czas zakończenia połączenia przychodzącego na wewnętrzny numer centrali
Parametry, jakie są wysyłane do linku dla powiadomień:
- event – wydarzenie (NOTIFY_END)
- call_start – czas rozpoczęcia rozmowy;
- pbx_call_id – id połączenia;
- caller_id – numer osoby dzwoniącej;
- called_did – numer, na który było wykonane połączenie;
- internal – (nieobowiązkowy) wewnętrzny numer;
- duration – czas trwania w sekundach;
- disposition – stan połączenia:
- 'answered' – rozmowa,
- 'busy' – zajęte,
- 'cancel' - odrzucone,
- 'no answer' - brak odpowiedzi,
- 'failed' - nieudane,
- 'no money' - brak środków, przekroczony limit,
- 'unallocated number' - numer nie istnieje,
- 'no limit' - przekroczony limit,
- 'no day limit' - przekroczony dzienny limit,
- 'line limit' - przekroczony limit linii,
- 'no money, no limit' - przekroczony limit;
- last_internal – numer wewnętrzny, ostatni uczestnik połączenia (po przekierowaniu lub przechwytywaniu);
- status_code – kod statusu połączenia Q.931;
- is_recorded – 1 - nagrywanie połączenia, 0 - bez nagrywania;
- call_id_with_rec – id połączenia z funkcją nagrywania (polecamy ściągać pliki z nagraniami nie wcześniej jak 40 sekund po zawiadomieniu, bo dla prawidłowego zapisania nagrania potrzebny jest czas).
Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:
$signatureTest = base64_encode(hash_hmac('sha1',
$_POST['caller_id'] . $_POST['called_did'] .
$_POST['call_start'], API_SECRET));
NOTIFY_OUT_START
czas rozpoczęcia połączenia wychodzącego z centrali
Parametry, jakie są wysyłane do linku dla powiadomień:
- event – wydarzenie (NOTIFY_OUT_START)
- call_start – czas rozpoczęcia połączenia;
- pbx_call_id – id połączenia;
- caller_id – numer ustawiony na numerze wewnętrznym lub ustawiony w zasadach wybierania zgodnie z kierunkiem. Jeśli numer nie jest ustawiony, wyświetla się 0;
- destination – numer na który było wykonane połączenie;
- internal – (nieobowiązkowy) wewnętrzny numer.
Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:
$signatureTest = base64_encode(hash_hmac('sha1',
$_POST['internal'] . $_POST['destination'] .
$_POST['call_start'], API_SECRET));
NOTIFY_OUT_END
czas zakończenia połączenia wychodzącego z centrali
Parametry, jakie są wysyłane do linku dla powiadomień:
- event – wydarzenie (NOTIFY_OUT_END)
- call_start – czas rozpoczęcia połączenia;
- pbx_call_id – id połączenia;
- caller_id – numer ustawiony na numerze wewnętrznym lub ustawiony w zasadach wybierania zgodnie z kierunkiem. Jeśli numer nie jest ustawiony, wyświetla się 0;
- destination – numer na który było wykonane połączenia;
- internal – (nieobowiązkowy) wewnętrzny numer;
- duration – czas trwania w sekundach;
- disposition – stan połączenia:
- 'answered' – rozmowa,
- 'busy' – zajęte,
- 'cancel' - odrzucone,
- 'no answer' - brak odpowiedzi,
- 'failed' - nieudane,
- 'no money' - brak środków, przekroczony limit,
- 'unallocated number' - numer nie istnieje,
- 'no limit' - przekroczony limit,
- 'no day limit' - przekroczony dzienny limit,
- 'line limit' - przekroczony limit linii,
- 'no money, no limit' - przekroczony limit;
- status_code – kod statusu połączenia Q.931;
- is_recorded – 1 - nagrywanie połączenia, 0 - bez nagrywania;
- call_id_with_rec –id połączenia z funkcją nagrywania (polecamy ściągać pliki z nagraniami nie wcześniej jak 40 sekund po zawiadomieniu, bo dla prawidłowego zapisania nagrania potrzebny jest czas).
Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:
$signatureTest = base64_encode(hash_hmac('sha1',
$_POST['internal'] . $_POST['destination'] .
$_POST['call_start'], API_SECRET));
NOTIFY_RECORD
nagranie rozmowy jest gotowe do pobrania
Parametry, jakie są wysyłane do linku dla powiadomień:
- event – wydarzenie (NOTIFY_RECORD)
- call_id_with_rec – indywidualny id z nagraniem rozmowy;
- pbx_call_id – stały ID zewnętrznego połączenia w ramach Centrali (nie zmienia się według scenariuszu, menu głosowego, transferu itd.,wyświetlany jest w statystykach i powiadomieniach).
Sporządzanie weryfikacyjnego podpisu dla powiadamienia o połączeniach przychodzących, przykład na PHP:
$signatureTest = base64_encode(hash_hmac('sha1',
$_POST['pbx_call_id'] . $_POST['call_id_with_rec'], API_SECRET));
NOTIFY_IVR
odpowiedź abonenta na określone żądanie
Parametry, jakie są wysyłane do linku dla powiadomień:
- event – wydarzenie (NOTIFY_IVR)
- call_start – czas rozpoczęcia rozmowy;
- pbx_call_id – id połączenia;
- caller_id – numer osoby dzwoniącej;
- called_did – numer, na który było wykonane połączenie.
Sporządzanie weryfikacyjnego podpisu dla powiadomienia o połączeniach przychodzących, przykład na PHP:
$signatureTest = base64_encode(hash_hmac('sha1',
$_POST['caller_id'] . $_POST['called_did'] .
$_POST['call_start'], API_SECRET));
Możliwe wysyłane odpowiedzi są odpowiednie do żądań NOTIFY_START
Przykład na PHP:
<?php if (isset($_GET['zd_echo'])) exit($_GET['zd_echo']); ?>
W celu zwiększenia bezpieczeństwa proponujemy zezwolić dostęp do Twojego linku tylko z IP 185.45.152.42.
Również, jeśli utworzyłeś klucze dostępu API, w każdym żądaniu na Twój link będzie wysłany dodatkowy nagłówek "Signature", po jakim możesz zweryfikować integralność i autentyczność danych.
Przykładowy skrypt możesz sprawdzić w naszym repozytorium na GitHub.
Inne powiadomienia
Parametr "result" w tych powiadomieniach jest w formacie JSON. Możesz otrzymać go w formacie XML zaznaczając w linku format=xml.
NUMBER_LOOKUP
wynik sprawdzenia numerów
Parametry, jakie są wysyłane do linku do powiadomień:
- event – wydarzenie (NUMBER_LOOKUP)
- success – status sukcesu sprawdzenia;
- description – tekstowy opis zakończenia sprawdzenia;
- result – dane wyniku;
- number – sprawdzony numer;
- mcc – kod kraju;
- mnc – kod operatora;
- ported – znak przeniesienia numeru do innego operatora;
- roaming – znak przebywania w roamingu;
- error – status błędu;
- errorDescription – tekstowy opis błędu;
- mccName – nazwa kraju;
- mncName – nazwa operatora;
Sporządzenie weryfikacji podpisu:
$signatureTest = base64_encode(hash_hmac('sha1', $_POST['result'], API_SECRET));
CALL_TRACKING
raport połączeń na numery, podłączone do calltracking
Wysyłany co 8 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ę;
- pbx_call_id – id połączenia (oprócz Toll Free);
Sporządzenie weryfikacji podpisu:
$signatureTest = base64_encode(hash_hmac('sha1', $_POST['result'], API_SECRET));
SMS
informacja o wiadomościach SMS
Parametry, jakie są wysyłane do linku do powiadomień:
- event – zdarzenie (SMS)
- result – tablica;
- caller_id – numer nadawcy;
- caller_did – numer odbiorcy;
- text – tekst wiadomości.
Sporządzenie weryfikacji podpisu:
$signatureTest = base64_encode(hash_hmac('sha1', $_POST['result'], API_SECRET));
SPEECH_RECOGNITION
wynik rozpoznawania głosu
Parametry, jakie są wysyłane do linku dla powiadomień:
- event – wydarzenie (SPEECH_RECOGNITION)
- lang – język;
- call_id – indywidualny id połączenia, ten id jest podany w nazwie pliku z nagraniem;
- pbx_call_id – stały ID zewnętrznego połączenia w ramach Centrali;
- result:
- words - tablica:
- result - lista słów (tablica):
- s - czas rozpoczęcia słowa
- e - czas rozpoczęcia słowa
- w - słowo
- channel - numer kanału
- result - lista słów (tablica):
- phrases - tablica:
- result - fraza
- channel - numer kanału
- words - tablica: