API CRM
Dokumentacja API
- Autoryzacja
- Uprawnienia oraz grupy uprawnień
- Grupy użytkowników
- Konta SIP, prezentacja numeru, pola nadawcy
- Użytkownicy
- Tagi
- Własne pola
- Kontakty- osoby
- Kontakty- organizacje
- Historia kontaktu
- Import kontaktów
- Eksport kontaktów
Autoryzacja
Uruchomienie usługi API
1. Zaloguj się do swojego konta Wirtualnej Centrali Telefonicznej (panel.telecube.pl) i przejdź do zakładki Rozbudowa Centrali > Integracja API.
2. Następnie uruchom usługę API klikając w odpowiedni button.
3. Dzięki temu wygenerowany zostanie Twój unikalny klucz API, który pozwoli na autoryzację zapytań z API CRM.
Pamiętaj, aby dodać adresy IP, z których będziesz wykonywać żądania do sekcji adresów autoryzowanych!
4. Przejdź do Twojej instancji CRM, otwórz zakładkę Panel Zarządzania > Ustawienia CRM > Integracje > API CRM.
Będąc już w odpowiedniej zakładce, możesz skopiować swój Klucz Api, oraz podejrzeć historię żądań które zostały wykonane.
Klucz API (autoryzacja)
Zapytania do API powinny być autoryzowane metodę Bearer Token gdzie tokenem jest klucz API
curl --location 'my-crm.ccrm.pl/publicApi/people' \
--header 'Authorization: Bearer 1234567890abcdefghijklmnoprstuwvxyz'
Odpowiedzi
Kod odpowiedzi 401- niepoprawny token autoryzacji, nieautoryzowany adres IP lub niewłączona usługa API
{
"success": false,
"message": "Unauthorized"
}
Kod odpowiedzi 403- przekroczony limit zapytań
{
"success": false,
"message": "Request limit has been exceeded"
}
Uprawnienia oraz grupy uprawnień
1. Pobranie listy utworzonych grup uprawnień
Metoda pozwala na pobranie listy istniejących grup uprawnień.
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/permissions/groups
Metoda stosuje stronicowanie powyżej 1000 rekordów. API zwróci zawsze maksymalnie 1000 rekordów, a o resztę należy zapytać dodając do adresu page={numer_strony}. Przykładowo, dla sytuacji gdzie jest więcej niż 1000 rekordów stosujemy:
{twoja_nazwa}.ccrm.pl/publicApi/users/permissions/groups?page=2
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
string |
|
data.id |
int |
Ilość usuniętych rekordów. |
data.uuid |
uuid |
Wartość identyfikująca rekord. |
data.name |
string |
Nazwa grupy uprawnień. |
data.permission |
array |
Zawiera informacje o uprawnieniach przypisanych do grupy. |
data.permission.id |
int |
Identyfikator uprawnienia. |
data.permission.value |
string |
Identyfikator systemowy uprawnienia. |
data.permission.name |
string |
Nazwa uprawnienia. |
data.permission.description |
string |
Opis uprawnienia. |
user |
array |
Użytkownicy przypisani do grupy uprawnień. |
user.uuid |
uuid |
Unikalny identyfikator użytkownika. |
user.firstName |
string |
Imię użytkownika. |
user.lastName |
string |
Nazwisko użytkownika. |
otherData.totalCount |
int |
Ilość grup uprawnień. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":[
{
"id":16,
"uuid":"94176fe5-1893-4432-8322-995ee28ccbbb",
"name":"Grupa testowa",
"show":1,
"permission":[
{
"id":22,
"value":"PERMISSION_INDEX",
"name":"Wyświetlenie listy uprawnień",
"description":"Użytkownik może zobaczyć uprawnienia przydzielone do danej grupy."
},
"user":[
{
"uuid":"fdf75d0c-fc9f-41dc-9a54-af2121ay756ys",
"firstName":"Jan",
"lastName":"Kowalski"
}
]
},
2. Pobranie listy możliwych uprawnień do przydzielenia
Metoda pozwala na pobranie kategorii i istniejących w ramach nich uprawnień. Poszczególne uprawnienia są następnie przydzielane do poszczególnych grup uprawnień.
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/permissions/categories
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
array |
|
data.id |
int |
Unikalny identyfikator kategorii uprawnień. |
data.name |
|
Nazwa kategorii uprawnień. |
data.group |
array |
Zawiera informacje o uprawnieniach przypisanych do danej kategorii. |
data.group.id |
|
Identyfikator uprawnienia. |
data.group.value |
|
Identyfikator systemowy uprawnienia. |
data.group.name |
|
Nazwa uprawnienia. |
data.group.description |
|
Opis uprawnienia. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":[
{
"id":9,
"name":"Uprawnienia",
"group":[
{
"id":22,
"value":"PERMISSION_INDEX",
"name":"Wyświetlenie listy uprawnień",
"description":"Użytkownik może zobaczyć uprawnienia przydzielone do danej grupy."
},
{
"id":23,
"value":"PERMISSION_ADD_EDIT",
"name":"Zarządzanie grupami uprawnień",
"description":"Użytkownik może tworzyć i modyfikować grupy uprawnień"
},
{
"id":24,
"value":"PERMISSION_DELETE",
"name":"Usuwanie grup uprawnień",
"description":"Użytkownik może usuwać utworzone grupy uprawnień."
}
]
},
],
"otherData":{
"totalCount":11
},
"message":"OK"
}
3. Stworzenie nowej grupy uprawnień
Metoda pozwala na utworzenie nowej grupy uprawnień.
Metoda: POST
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/permissions/groups
Struktura żądania
Właściwość |
Wartość |
Opis |
Wymagane |
name |
string |
Nazwa grupy uprawnień. |
TAK |
permissions |
array |
Lista uprawnień. |
|
permissions.* |
int |
Identyfikator uprawnienia. |
|
Przykład żądania
{
"name":"Grupa testowa",
"permissions":[
22
]
}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data.id |
int |
Identyfikator grupy uprawnień. |
data.uuid |
uuid |
Wartość identyfikująca rekord. |
data.name |
string |
Nazwa. |
otherData |
object |
|
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":{
"id":18,
"uuid":"3094930a-1238-41ba-b3de-19df6d0d4s87",
"name":"Grupa testowa",
},
"otherData":{
},
"message":"OK"
}
4. Edycja istniejącej grupy uprawnień
Metoda pozwala na edycję utworzonej uprzednio grupy uprawnień.
Metoda: PATCH
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/permissions/groups/{uuid}
Struktura żądania
Właściwość |
Wartość |
Opis |
Wymagane |
name |
string |
Nazwa grupy uprawnień. |
TAK |
permissions |
array |
Lista uprawnień. |
|
permissions.* |
int |
Identyfikator uprawnienia. |
|
Przykład żądania
{
"name":"Grupa testowa",
"permissions":[
22,
36,
39,
]
}
Struktura odpowiedzi
Właściwość |
Wartość |
success |
bool |
data |
string |
otherData |
object |
message |
string |
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
5. Usunięcie istniejącej grupy uprawnień
Metoda pozwala na usunięcie utworzonej uprzednio grupy uprawnień.
Metoda: DELETE
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/permissions/groups/{uuid}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
string |
|
otherData.totalCount |
int |
Ilość usuniętych rekordów. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
"totalCount":1
},
"message":"OK"
}
Grupy użytkowników
1. Pobranie istniejących grup i podgrup użytkowników
Metoda pozwala na pobranie listy utworzonych grup i podgrup użytkowników.
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/groupsType
Metoda stosuje stronicowanie powyżej 1000 rekordów. API zwróci zawsze maksymalnie 1000 rekordów, a o resztę należy zapytać dodając do adresu page={numer_strony}. Przykładowo, dla sytuacji gdzie jest więcej niż 1000 rekordów stosujemy:
{twoja_nazwa}.ccrm.pl/publicApi/users/groupsType?page=2
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
array |
|
data.name |
string |
Nazwa grupy użytkowników. |
data.uuid |
string |
Wartość identyfikująca rekord. |
data.main |
int | in:0,1 |
Informacja czy grupa jest główną grupą użytkowników, obecnie jest to grupa Stanowisko. |
data.groupCount |
int |
Ilość podgrup w grupie. |
data.userGroup |
array |
Podgrupy użytkowników. |
data.userGroup.name |
string |
Nazwa podgrupy. |
data.userGroup.uuid |
uuid |
Wartość identyfikująca rekord. |
data.userGroup.users |
array |
Lista użytkowników dodanych do podgrupy. |
data.userGroup.users.firstName |
string |
Imię użytkownika. |
data.userGroup.users.lastName |
string |
Nazwisko użytkownika. |
data.userGroup.users.uuid |
uuid |
Wartość identyfikująca rekord. |
otherData.totalCount |
int |
Ilość grup. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":[
{
"name":"Grupa",
"uuid":"1585e46c-f433-4cef-a02b-a763a404eaed",
"main":0,
"groupCount":1,
"userCount":3,
"userGroup":[
{
"name":"Podgrupa 1",
"uuid":"304ab289-12f7-4cd5-a081-ad1f391c23e5",
"users":[
{
"first_name":"Jan",
"last_name":"Kowalski",
"uuid":"633d9c10-e769-4869-b82a-4f1b769f5d3c"
},
{
"first_name":"Marian",
"last_name":"Nowak",
"uuid":"073fe413-1f64-4987-8b51-170bbd499373"
},
{
"first_name":"Damian",
"last_name":"Bartosz",
"uuid":"7bb2e17a-87f0-4825-aaca-16ac6beac038"
}
]
}
]
},
],
"otherData":{
"totalCount":6
},
"message":"OK"
}
2. Stworzenie grupy użytkowników
Metoda pozwala na dodanie nowej grupy użytkowników.
Metoda: POST
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/groupsType
Struktura żądania
Właściwość |
Wartość |
Opis |
Wymagane |
name |
string |
Nazwa grupy. |
TAK |
Przykład żądania
{
"name":"Grupa testowa"
}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
object |
|
data.uuid |
int |
Wartość identyfikująca rekord. |
data.name |
string |
Nazwa grupy. |
otherData |
object |
|
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":{
"uuid":"8383aece-126a-40df-ba8e-281af2b03dea",
"name":"Grupa testowa"
},
"otherData":{
},
"message":"OK"
}
3. Edycja grupy użytkowników
Metoda pozwala na edycję istniejącej grupy użytkowników.
Metoda: PATCH
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/groupsType/{uuid}
Struktura żądania
Właściwość |
Wartość |
Opis |
Wymagane |
name |
string |
Nazwa grupy |
TAK |
Przykład żądania
{
"name":"Grupa testowa 2"
}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
object |
|
data.uuid |
int |
Wartość identyfikująca rekord. |
data.name |
string |
Nazwa grupy. |
otherData |
object |
|
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":{
"uuid":"8383aece-126a-40df-ba8e-281af2b03dea",
"name":"Grupa testowa 2"
},
"otherData":{
},
"message":"OK"
}
4. Usunięcie grupy użytkowników
Metoda pozwala na usunięcie istniejącej grupy użytkowników.
Metoda: DELETE
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/groupsType/{uuid}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
string |
|
otherData.totalCount |
int |
Ilość usuniętych rekordów. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
"totalCount":1
},
"message":"OK"
}
5. Stworzenie podgrupy użytkowników
Metoda pozwala na stworzenie nowej podgrupy użytkowników.
Metoda: POST
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/groups
Struktura żądania
Właściwość |
Wartość |
Opis |
Wymagane |
name |
string |
Nazwa podgrupy. |
TAK |
userGroupType |
string |
Uuid grupy. |
TAK |
Przykład żądania
{
"name":"Podgrupa 1",
"userGroupType":"b67d124f-403b-4cf6-8297-6a26417c385a"
}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
string |
|
data.uuid |
int |
Wartość identyfikująca rekord. |
data.name |
string |
Nazwa grupy. |
otherData |
object |
|
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":{
"name":"Podgrupa 1",
"uuid":"90bfe570-ea16-4e54-bad3-c693907ea171"
},
"otherData":{
},
"message":"OK"
}
6. Edycja podgrupy użytkowników
Metoda pozwala na edycję istniejącej podgrupy użytkowników.
Metoda: PATCH
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/groups/{uuid}
Struktura żądania
Właściwość |
Wartość |
Opis |
Wymagane |
name |
string |
Nazwa podgrupy. |
TAK |
Przykład żądania
{
"name":"Podgrupa 2"
}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
string |
|
data.uuid |
int |
Wartość identyfikująca rekord. |
data.name |
string |
Nazwa podgrupy. |
otherData |
object |
|
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":{
"name":"Podgrupa 12",
"uuid":"90bfe570-ea16-4e54-bad3-c693907ea171"
},
"otherData":{
},
"message":"OK"
}
7. Usunięcie podgrupy użytkowników
Metoda pozwala na usunięcie istniejącej podgrupy użytkowników.
Metoda: DELETE
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/groups/{uuid}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
string |
|
otherData.totalCount |
int |
Ilość usuniętych rekordów. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
"totalCount":1
},
"message":"OK"
}
Konta SIP, prezentacja numeru, pola nadawcy
1. Lista dostępnych kont SIP
Metoda pozwala na pobranie listy kont SIP utworzonych na centrali, które mogą zostać przypisane i powiązane z użytkownikami CRM w celach obsługi połączeń i identyfikacji użytkowników.
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/sipAccounts
Struktura żądania
Właściwość |
Wartość |
Opis |
success |
bool |
|
data.extensionId |
int |
Unikalny identyfikator konta SIP. |
data.extensionType |
in: VOICE, FAX, SIPT |
Typ konta SIP (VOICE- dla połączeń głosowych, FAX- konto dla faksów). |
data.extension |
int |
Numer wewnętrzny konta SIP. |
data.serverId |
string |
Serwer rejestracji konta SIP. |
data.name |
string |
Nazwa konta SIP. |
data.callerId |
string |
Prezentacja numeru ustawiona bezpośrednio na koncie SIP. |
data.assigned |
int | in: 0,1 |
Informacja czy konto jest powiązane z użytkownikiem CRM. |
otherData |
object |
|
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":[
{
"extensionId":99999,
"extensionType":"VOICE",
"extension":10,
"serverId":"SIP8",
"name":"Konsultant1",
"callerId":777888999,
"assigned":0
},
],
"otherData":{
},
"message":"OK"
}
2. Lista numerów do prezentacji dla połączeń
Metoda pozwala na pobranie listy numerów telefonu posiadanych w ramach Wirtualnej Centrali, które mogą zostać przypisane do użytkownika dla celów prezentacji przy połączeniach wychodzących.
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/call/presentation/available
Struktura żądania
Właściwość |
Wartość |
Opis |
success |
bool |
|
data.presentation |
string |
Numer telefonu używany dla celów prezentacji przy połączeniach. |
data.name |
string |
Nazwa (opis) numeru. |
data.clipPrefix |
string |
Prefiks numeru, używany do identyfikacji dla połączeń przychodzących. |
data.intlFormat |
string |
Międzynarodowy format numeru. |
otherData.totalCount |
int |
Ilość rekordów. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":[
{
"presentation":48777888999,
"name":"",
"clipPrefix":"",
"intlFormat":"+48 777 888 999"
},
],
"otherData":{
"totalCount":1
},
"message":"OK"
}
3. Lista numerów i pól nadawcy dla SMS
Metoda pozwala na pobranie listy numerów telefonu oraz pól nadawcy posiadanych w ramach Wirtualnej Centrali, które mogą zostać przypisane do użytkownika dla celów prezentacji przy wysyłce wiadomości SMS.
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/sms/presentation/available
Struktura żądania
Właściwość |
Wartość |
Opis |
success |
bool |
|
data.presentation |
string |
Prezentacja numerem lub nazwa pola nadawcy do prezentacji SMS. |
data.id |
int |
Unikalny identyfikator systemowy pola nadawcy. |
otherData.totalCount |
int |
Ilość rekordów. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":[
{
"presentation":48777888999,
"id":9999
},
{
"presentation":"Pozdrawiamy",
"id":9999
}
],
"otherData":{
"totalCount":2
},
"message":"OK"
}
Użytkownicy
1. Pobranie listy istniejących użytkowników
Metoda pozwala na pobranie listy utworzonych użytkowników.
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users
Metoda stosuje stronicowanie powyżej 1000 rekordów. API zwróci zawsze maksymalnie 1000 rekordów, a o resztę należy zapytać dodając do adresu page={numer_strony}. Przykładowo, dla sytuacji gdzie jest więcej niż 1000 rekordów stosujemy:
{twoja_nazwa}.ccrm.pl/publicApi/users?page=2
Struktura żądania
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
array |
|
data.uuid |
uuid |
Wartość identyfikująca rekord. |
data.firstName |
string |
Imię. |
data.lastName |
string |
Nazwisko. |
data.email |
null | Email |
Adres e-mail. |
data.avatar |
null | string |
Nazwa pliku z avatarem. |
data.permission |
array |
Grupa uprawnień. |
data.permission.uuid |
uuid |
Unikalny identyfikator grupy uprawnień. |
data.permission.name |
string |
Nazwa grupy uprawnień. |
data.smsPresentation |
array |
Lista prezentacji SMS. |
data.smsPresentation.presentation |
string |
Właściwa prezentacja pola nadawcy. |
data.smsPresentation.uuid |
uuid |
Wartość identyfikująca rekord. |
data.callPresentation |
array |
Lista prezentacja dla celów połączeń. |
data.callPresentation.presentation |
string |
Właściwa prezentacja dla połączeń. |
data.callPresentation.uuid |
uuid |
Wartość identyfikująca rekord. |
data.callPresentation.name |
string |
Nazwa numeru. |
data.callPresentation.clipPrefix |
null | string |
Prefiks dopisany do numeru. |
extensionId |
null | int |
Unikalny identyfikator przypisanego konta SIP. |
extension |
null | int |
Numer konta SIP. |
dynamicExtension |
int | in:0,1 |
Wskazanie, czy użytkownik korzysta ze statycznego czy dynamicznego wyboru konta SIP. |
dnd |
int | in:0,1 |
Informacja, czy użytkownik posiada włączone DND. |
workNumber |
null | string |
Numer służbowy. |
status |
string in: online, offline |
Informacja o statusie użytkownika. |
callTalking |
int | in: 0,1 |
Informacja czy użytkownik aktualnie prowadzi rozmowę. |
groupMain |
object |
Główna grupa użytkowników, do jakiej przypisany jest użytkownik. Szerszy opis w pomocniczej tabeli groups. |
groups |
array |
Lista grup do których przypisany jest użytkownik. Szerszy opis w pomocniczej tabeli groups. |
otherData.totalCount |
int |
Ilość użytkowników. |
message |
string |
|
Tabela uzupełniająca: groups
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
name |
string |
Nazwa grupy. |
typeUuid |
uuid |
Wartość identyfikująca typ grupy (grupę nadrzędną). |
type |
string |
Typ grupy (nazwa grupy nadrzędnej). |
Przykład odpowiedzi
{
"success":true,
"data":[
{
"uuid":"f6e4999b-6292-45ab-bb02-20b2e9284280",
"firstName":"Anna",
"lastName":"Zaradna",
"email":"azaradna@firma.pl",
"avatar":"",
"permission":{
"uuid":"e167c85c-9e8e-4dcd-bfff-fde2c963ecfa",
"name":"Standardowa",
},
"smsPresentation":[
{
"presentation":"LOSOWY NUMER",
"uuid":"7c2177f8-e47b-4fc5-8270-bd259ff8e4df"
}
],
"callPresentation":[
{
"presentation":"ANONIMOWY",
"uuid":"9b171bcd-b54d-4794-bf70-6386bae2d577",
"name":null,
"clipPrefix":null
}
],
"extensionId":null,
"extension":null,
"dynamicExtension":1,
"dnd":null,
"workNumber":"+48 777 888 999",
"status":"offline",
"callTalking":0,
"groupMain":{
"uuid":"42fae84d-202c-48b4-b902-e8015607240c",
"name":"Specjalista obsługi klienta",
"typeuuid":"2526b503-01bb-43c8-8e65-8b1bfc2e7ee5",
"type":"Stanowisko"
},
"groups":[
{
"uuid":"42fae84d-202c-48b4-b902-e8015607240c",
"name":"Specjalista obsługi klienta",
"typeuuid":"2526b503-01bb-43c8-8e65-8b1bfc2e7ee5",
"type":"Stanowisko"
},
]
},
],
"otherData":{
"totalCount":18
},
"message":"OK"
}
2. Stworzenie nowego użytkownika
Metoda pozwala na edycję wcześniej utworzonego użytkownika.
Metoda: POST
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users
Struktura żądania
Właściwość |
Wartość |
Opis |
Wymagane |
|
|
Adres e-mail. |
TAK |
password |
string |
Hasło użytkownika. |
TAK |
firstName |
string |
Imię. |
TAK |
lastName |
string |
Nazwisko. |
TAK |
extensionId |
int |
Unikalny identyfikator przypisanego konta SIP. |
TAK, jeżeli dynamicExtension = 0 |
permission |
uuid |
Uuid grupy uprawnień. |
TAK |
workNumber |
phone |
Numer telefonu. |
|
dynamicExtension |
int | in:0,1 |
Flaga oznaczająca, czy konto użytkownika będzie wykorzystywać dynamicznie przypisywane konta SIP. |
TAK |
dynamicExtensionIds |
array |
Lista dozwolonych identyfikatorów kont SIP. |
TAK, jeżeli dynamicExtension = 1 |
smsPresentation |
array |
Lista prezentacji SMS. |
|
callPresentation |
array |
Lista prezentacji numerem dla celów połączeń. |
|
callPresentation.presentation |
string |
Właściwa prezentacja. |
|
callPresentation.name |
string |
Nazwa numeru. |
|
callPresentation.clipPrefix |
string |
Prefiks dopisany do numeru. |
|
callPresentation.intlFormat |
string |
Międzynarodowy format numeru. |
|
groups |
array |
Lista grup użytkowników. |
TAK |
groups.* |
uuid |
Uuid grupy użytkowników. |
|
message |
string |
|
|
Przykład żądania
{
"email":"jkowalski5@firma.pl",
"password":"Hasło123!",
"firstName":"Jan",
"lastName":"Kowalski",
"extensionId":34819,
"permission":"482a11cb-0226-4616-ac89-3ac49f290ace",
"workNumber":"48333666999",
"dynamicExtension":0,
"dynamicExtensionIds":{
},
"smsPresentation":[
"LOSOWY NUMER",
48777888999
],
"callPresentation":[
{
"presentation":"ANONIMOWY"
},
{
"presentation":48777888999,
"name":"",
"clipPrefix":null,
"intlFormat":"+48 777 888 999"
}
],
„groups”:[
518d257c-a87e-44e4-80f9-5b15ec4da85a",
"7b880d97-3caf-4cae-867a-c95901309585"
]
}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
array |
|
data.uuid |
uuid |
Wartość identyfikująca rekord. |
data.firstName |
string |
Imię. |
data.lastName |
string |
Nazwisko. |
data.email |
null | Email |
Adres e-mail. |
data.avatar |
null | string |
Nazwa pliku z avatarem. |
data.permission |
array |
Grupa uprawnień. |
data.permission.uuid |
uuid |
Unikalny identyfikator grupy uprawnień. |
data.permission.name |
string |
Nazwa grupy uprawnień. |
data.smsPresentation |
array |
Lista prezentacji SMS. |
data.smsPresentation.presentation |
string |
Właściwa prezentacja pola nadawcy. |
data.smsPresentation.uuid |
uuid |
Wartość identyfikująca rekord. |
data.callPresentation |
array |
Lista prezentacja dla celów połączeń. |
data.callPresentation.presentation |
string |
Właściwa prezentacja dla połączeń. |
data.callPresentation.uuid |
uuid |
Wartość identyfikująca rekord. |
data.callPresentation.name |
string |
Nazwa numeru. |
data.callPresentation.clipPrefix |
null | string |
Prefiks dopisany do numeru. |
extensionId |
null | int |
Unikalny identyfikator przypisanego konta SIP. |
extension |
null | int |
Numer konta SIP. |
dynamicExtension |
int | in:0,1 |
Wskazanie, czy użytkownik korzysta ze statycznego czy dynamicznego wyboru konta SIP. |
dnd |
int | in:0,1 |
Informacja, czy użytkownik posiada włączone DND. |
workNumber |
null | string |
Numer służbowy. |
status |
string in: online, offline |
Informacja o statusie użytkownika. |
callTalking |
int | in: 0,1 |
Informacja czy użytkownik prowadzi rozmowę. |
groupMain |
object |
Główna grupa użytkowników, do jakiej przypisany jest użytkownik. Szerszy opis w pomocniczej tabeli groups. |
groups |
array |
Lista grup do których przypisany jest użytkownik. Szerszy opis w pomocniczej tabeli groups. |
otherData |
object |
|
message |
string |
|
Tabela uzupełniająca: groups
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
name |
string |
Nazwa grupy. |
typeUuid |
uuid |
Wartość identyfikująca typ grupy (grupę nadrzędną). |
type |
string |
Typ grupy (nazwa grupy nadrzędnej). |
Przykład odpowiedzi
{
"success":true,
"data":{
"uuid":"d16bf172-734c-4c67-8f27-9301f7623c43",
"firstName":"Jan",
"lastName":"Kowalski",
"email":"jkowalski@firma.pl",
"avatar":null,
"permission":{
"uuid":"482a11cb-0226-4616-ac89-3ac49f290ace",
"name":"Administrator",
"permanent":0
},
"permanent":0,
"active":1,
"extensionId":34819,
"extension":30,
"dynamicExtension":0,
"dnd":null,
"workNumber":"+48 777 888 999",
"status":null,
"callTalking":0,
"groupMain":{
"uuid":"7b880d97-3caf-4cae-867a-c95901309585",
"name":"Administrator",
"typeuuid":"33ceacf9-89be-4f75-89a2-0596031f2032",
"type":"Stanowisko"
},
"groups":[
{
"uuid":"7b880d97-3caf-4cae-867a-c95901309585",
"name":"Administrator",
"typeuuid":"33ceacf9-89be-4f75-89a2-0596031f2032",
"type":"Stanowisko"
},
{
"uuid":"518d257c-a87e-44e4-80f9-5b15ec4da85a",
"name":"Podgrupa 1",
"typeuuid":"9582f65b-0a05-43bf-998d-7ebc70037af2",
"type":"Druga grupa"
}
]
},
"otherData":{
},
"message":"OK"
}
3. Edycja użytkownika
Metoda pozwala na edycję wcześniej utworzonego użytkownika.
Metoda: PATCH
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/{uuid}
Struktura żądania
Właściwość |
Wartość |
Opis |
Wymagane |
|
|
Adres e-mail. |
TAK |
password |
string |
Hasło użytkownika. |
TAK |
firstName |
string |
Imię. |
TAK |
lastName |
string |
Nazwisko. |
TAK |
extensionId |
int |
Unikalny identyfikator przypisanego konta SIP. |
TAK, jeżeli dynamicExtension = 0 |
permission |
uuid |
Uuid grupy uprawnień. |
TAK |
workNumber |
phone |
Numer telefonu. |
|
dynamicExtension |
int | in:0,1 |
Flaga oznaczająca, czy konto użytkownika będzie wykorzystywać dynamicznie przypisywane konta SIP. |
TAK |
dynamicExtensionIds |
array |
Lista dozwolonych identyfikatorów kont SIP. |
TAK, jeżeli dynamicExtension = 1 |
smsPresentation |
array |
Lista prezentacji SMS. |
|
callPresentation |
array |
Lista prezentacji numerem dla celów połączeń. |
|
callPresentation.presentation |
string |
Właściwa prezentacja. |
|
callPresentation.name |
string |
Nazwa numeru. |
|
callPresentation.clipPrefix |
string |
Prefiks dopisany do numeru. |
|
callPresentation.intlFormat |
string |
Międzynarodowy format numeru. |
|
groups |
array |
Lista grup użytkowników. |
TAK |
groups.* |
uuid |
Uuid grupy użytkowników. |
|
message |
string |
|
|
Przykład żądania
{
"email":"jkowalski@firma.pl",
"password":"Hasło123!",
"passwordConfirmation":" Hasło123!",
"firstName":"Jan",
"lastName":"Kowalski",
"extensionId":null,
"permission":"e167c85c-9e8e-4dcd-bfff-fde2c963ecfa",
"workNumber":"",
"dynamicExtension":1,
"dynamicExtensionIds":[
13420,
13495
],
"smsPresentation":[
"LOSOWY NUMER"
],
"callPresentation":[
{
"presentation":"ANONIMOWY"
}
],
"groups":{
"639a997c-5f8d-4966-a5c4-e6d0cbc3d769":"94971867-82e1-45d8-a656-bf4b0e4d226e",
"1585e46c-f433-4cef-a02b-a763a404eaed":"",
"b67d124f-403b-4cf6-8297-6a26417c385a":"",
"2526b503-01bb-43c8-8e65-8b1bfc2e7ee5":"42fae84d-202c-48b4-b902-e8015607240c",
"7861298f-e8f2-4df5-9c67-858e9510bbdf":"b891d6c4-06da-40a4-8b4e-b0a2cc1cec22"
}
}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
array |
|
data.uuid |
uuid |
Wartość identyfikująca rekord. |
data.firstName |
string |
Imię. |
data.lastName |
string |
Nazwisko. |
data.email |
null | Email |
Adres e-mail. |
data.avatar |
null | string |
Nazwa pliku z avatarem. |
data.permission |
array |
Grupa uprawnień. |
data.permission.uuid |
uuid |
Unikalny identyfikator grupy uprawnień. |
data.permission.name |
string |
Nazwa grupy uprawnień. |
data.smsPresentation |
array |
Lista prezentacji SMS. |
data.smsPresentation.presentation |
string |
Właściwa prezentacja pola nadawcy. |
data.smsPresentation.uuid |
uuid |
Wartość identyfikująca rekord. |
data.callPresentation |
array |
Lista prezentacja dla celów połączeń. |
data.callPresentation.presentation |
string |
Właściwa prezentacja dla połączeń. |
data.callPresentation.uuid |
uuid |
Wartość identyfikująca rekord. |
data.callPresentation.name |
string |
Nazwa numeru. |
data.callPresentation.clipPrefix |
null | string |
Prefiks dopisany do numeru. |
extensionId |
null | int |
Unikalny identyfikator przypisanego konta SIP. |
extension |
null | int |
Numer konta SIP. |
dynamicExtension |
int | in:0,1 |
Wskazanie, czy użytkownik korzysta ze statycznego czy dynamicznego wyboru konta SIP. |
dnd |
int | in:0,1 |
Informacja, czy użytkownik posiada włączone DND. |
workNumber |
null | string |
Numer służbowy. |
status |
string in: online, offline |
Informacja o statusie użytkownika. |
callTalking |
int | in: 0,1 |
Informacja czy użytkownik prowadzi rozmowę. |
groupMain |
object |
Główna grupa użytkowników, do jakiej przypisany jest użytkownik. Szerszy opis w pomocniczej tabeli groups. |
groups |
array |
Lista grup do których przypisany jest użytkownik. Szerszy opis w pomocniczej tabeli groups. |
otherData |
object |
|
message |
string |
|
Tabela uzupełniająca: groups
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
name |
string |
Nazwa grupy. |
typeUuid |
uuid |
Wartość identyfikująca typ grupy (grupę nadrzędną). |
type |
string |
Typ grupy (nazwa grupy nadrzędnej). |
Przykład odpowiedzi
{
"success":true,
"data":{
"uuid":"d16bf172-734c-4c67-8f27-9301f7623c43",
"firstName":"Jan",
"lastName":"Kowalski",
"email":"jkowalski@firma.pl",
"avatar":null,
"permission":{
"uuid":"482a11cb-0226-4616-ac89-3ac49f290ace",
"name":"Administrator",
"permanent":0
},
"permanent":0,
"active":1,
"extensionId":34819,
"extension":30,
"dynamicExtension":0,
"dnd":null,
"workNumber":"+48 777 888 999",
"status":null,
"callTalking":0,
"groupMain":{
"uuid":"7b880d97-3caf-4cae-867a-c95901309585",
"name":"Administrator",
"typeuuid":"33ceacf9-89be-4f75-89a2-0596031f2032",
"type":"Stanowisko"
},
"groups":[
{
"uuid":"7b880d97-3caf-4cae-867a-c95901309585",
"name":"Administrator",
"typeuuid":"33ceacf9-89be-4f75-89a2-0596031f2032",
"type":"Stanowisko"
},
{
"uuid":"518d257c-a87e-44e4-80f9-5b15ec4da85a",
"name":"Podgrupa 1",
"typeuuid":"9582f65b-0a05-43bf-998d-7ebc70037af2",
"type":"Druga grupa"
}
]
},
"otherData":{
},
"message":"OK"
}
4. Zablokowanie użytkownika
Metoda pozwala na zablokowanie utworzonego wcześniej użytkownika, uniemożliwiając mu dostęp (logowanie) do CRM. Blokada użytkownika odbywa się w ten sam sposób jak jego edycja, wysyłamy tylko jedno pole active o wartości 0.
Metoda: PATCH
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/{uuid}
Struktura żądania
Wysyłamy wyłącznie active: 0.
Właściwość |
Wartość |
Opis |
Wymagane |
active |
0 |
|
TAK |
Przykład żądania
{
"active":0
}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
array |
|
data.uuid |
uuid |
Wartość identyfikująca rekord. |
data.firstName |
string |
Imię. |
data.lastName |
string |
Nazwisko. |
data.email |
null | Email |
Adres e-mail. |
data.avatar |
null | string |
Nazwa pliku z avatarem. |
data.permission |
array |
Grupa uprawnień. |
data.permission.uuid |
uuid |
Unikalny identyfikator grupy uprawnień. |
data.permission.name |
string |
Nazwa grupy uprawnień. |
data.smsPresentation |
array |
Lista prezentacji SMS. |
data.smsPresentation.presentation |
string |
Właściwa prezentacja pola nadawcy. |
data.smsPresentation.uuid |
uuid |
Wartość identyfikująca rekord. |
data.callPresentation |
array |
Lista prezentacja dla celów połączeń. |
data.callPresentation.presentation |
string |
Właściwa prezentacja dla połączeń. |
data.callPresentation.uuid |
uuid |
Wartość identyfikująca rekord. |
data.callPresentation.name |
string |
Nazwa numeru. |
data.callPresentation.clipPrefix |
null | string |
Prefiks dopisany do numeru. |
extensionId |
null | int |
Unikalny identyfikator przypisanego konta SIP. |
extension |
null | int |
Numer konta SIP. |
dynamicExtension |
int | in:0,1 |
Wskazanie, czy użytkownik korzysta ze statycznego czy dynamicznego wyboru konta SIP. |
dnd |
int | in:0,1 |
Informacja, czy użytkownik posiada włączone DND. |
workNumber |
null | string |
Numer służbowy. |
status |
string in: online, offline |
Informacja o statusie użytkownika. |
callTalking |
int | in: 0,1 |
Informacja czy użytkownik prowadzi rozmowę. |
groupMain |
object |
Główna grupa użytkowników, do jakiej przypisany jest użytkownik. Szerszy opis w pomocniczej tabeli groups. |
groups |
array |
Lista grup do których przypisany jest użytkownik. Szerszy opis w pomocniczej tabeli groups. |
otherData |
object |
|
message |
string |
|
Tabela uzupełniająca: groups
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
name |
string |
Nazwa grupy. |
typeUuid |
uuid |
Wartość identyfikująca typ grupy (grupę nadrzędną). |
type |
string |
Typ grupy (nazwa grupy nadrzędnej). |
Przykład odpowiedzi
{
"success":true,
"data":{
"uuid":"f6b84e79-39df-4854-945d-202c89678f19",
"firstName":"Jan",
"lastName":"Kowalski",
"email":"jkowalski@firma.pl",
"avatar":"",
"permission":{
"uuid":"e167c85c-9e8e-4dcd-bfff-fde2c963ecfa",
"name":"Standardowa",
"permanent":0
},
"smsPresentation":[
{
"presentation":"LOSOWY NUMER",
"uuid":"90fba2c5-70b6-42f8-9942-a43c7ee7dd25"
}
],
"callPresentation":[
{
"presentation":"ANONIMOWY",
"uuid":"2b756093-8417-4785-b8f0-89a84a5ff9bf",
"name":null,
"clipPrefix":null
}
],
"permanent":0,
"active":0,
"extensionId":7675,
"extension":125,
"dynamicExtension":0,
"dnd":null,
"workNumber":"",
"status":null,
"callTalking":0,
"groupMain":{
"uuid":"edcc29af-9e2a-41b5-acce-74863904d27e",
"name":"Sprzedawca",
"typeuuid":"2526b503-01bb-43c8-8e65-8b1bfc2e7ee5",
"type":"Stanowisko"
},
"groups":[
{
"uuid":"edcc29af-9e2a-41b5-acce-74863904d27e",
"name":"Sprzedawca",
"typeuuid":"2526b503-01bb-43c8-8e65-8b1bfc2e7ee5",
"type":"Stanowisko"
}
]
},
"otherData":{
},
"message":"OK"
}
5. Usunięcie użytkownika
Metoda pozwala na całkowite usunięcie wcześniej utworzonego użytkownika.
Metoda: DELETE
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/users/{uuid}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
string |
|
otherData.totalCount |
int |
Ilość usuniętych rekordów. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
"totalCount":1
},
"message":"OK"
}
Tagi
1. Pobranie listy istniejących tagów
Metoda pozwala na pobranie listy utworzonych w CRM tagów dla oznaczania zdarzeń.
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/tags
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data.name |
string |
Opis wyświetlany na tagu. |
data.uuid |
uuid |
Wartość identyfikująca rekord. |
data.color |
|
Kolor tła tagu. |
type |
array |
Element CRM, dla którego dany tag może być używany (historia kontaktu, organizacje,osoby,pliki, BaseLinker- w przypadku włączonej integracji). |
otherData.totalCount |
int |
Ilość rekordów. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":[
{
"name":"Nowy",
"uuid":"739094bd-056b-403d-86f0-de805079797a",
"color":"#cf5c60",
"type":[
"billing",
"organisation",
"person",
"file"
]
},
],
"otherData":{
"totalCount":16
},
"message":"OK"
}
2. Utworzenie tagu
Metoda pozwala na utworzenie nowego tagu.
Metoda: POST
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/tags
Struktura żądania
Właściwość |
Wartość |
Opis |
Wymagane |
color |
string |
Kolor tła tagu. |
TAK |
name |
string |
Opis wyświetlany na tagu. |
TAK |
type |
array |
Element CRM, dla którego dany tag może być używany (historia kontaktu, organizacje,osoby,pliki, BaseLinker- w przypadku włączonej integracji). |
|
type.* |
string |
person, organisation, billing, file, baselinker (opcjonalnie przy włączonej integracji). |
TAK |
Przykład żądania
{
"color":"#000000",
"name":"TAG123",
"type":[
"person",
"organisation",
"billing",
"file"
]
}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data.name |
string |
Opis wyświetlany na tagu. |
data.uuid |
uuid |
Wartość identyfikująca rekord. |
data.color |
|
Kolor tła tagu. |
type |
array |
Element CRM, dla którego dany tag może być używany (historia kontaktu, organizacje,osoby,pliki, BaseLinker- w przypadku włączonej integracji). |
otherData.totalCount |
object |
Ilość rekordów. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":{
"name":"TAG123",
"uuid":"d2bad9ae-af8b-45d8-8773-e84be3e21b33",
"color":"#000000",
"type":[
"billing",
"organisation",
"person",
"file"
]
},
"otherData":{
},
"message":"OK"
}
3. Edycja tagu
Metoda pozwala na edycję uprzednio utworzonego tagu.
Metoda: PATCH
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/tags/{uuid}
Struktura żądania
Właściwość |
Wartość |
Opis |
Wymagane |
color |
string |
Kolor tła tagu. |
TAK |
name |
string |
Opis wyświetlany na tagu. |
TAK |
type |
array |
Element CRM, dla którego dany tag może być używany (historia kontaktu, organizacje,osoby,pliki, BaseLinker- w przypadku włączonej integracji). |
|
type.* |
string |
person, organisation, billing, file, baselinker (opcjonalnie przy włączonej integracji). |
TAK |
Przykład żądania
{
"color":"#c4c4c4",
"name":"TAG12"
}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data.name |
string |
Opis wyświetlany na tagu |
data.uuid |
uuid |
Wartość identyfikująca rekord |
data.color |
|
Kolor tła tagu |
type |
array |
Element CRM, dla którego dany tag może być używany (historia kontaktu, organizacje,osoby,pliki, BaseLinker- w przypadku włączonej integracji) |
otherData.totalCount |
object |
|
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":{
"name":"SPAM12",
"uuid":"e3675c7c-75c5-48de-8e7d-7065090d5d9a",
"color":"#c4c4c4",
"type":[
"billing"
]
},
"otherData":{
},
"message":"OK"
}
4. Usunięcie tagu
Metoda pozwala na usunięcie uprzednio utworzonego tagu.
Metoda: DELETE
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/tags/{uuid}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
string |
|
otherData.totalCount |
int |
Ilość usuniętych rekordów |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
"totalCount":1
},
"message":"OK"
}
Własne pola
1. Pobranie listy istniejących własnych pól
Metoda pozwala na pobranie listy utworzonych własnych pól dla kontaktów, odpowiednio dla osób oraz organizacji.
Metoda: GET
Adres URL (dla kontaktów- osób): {twoja_nazwa}.ccrm.pl/publicApi/people/customFields
Metoda: GET
Adres URL (dla kontaktów- organizacji): {twoja_nazwa}.ccrm.pl/publicApi/organisations/customFields
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data.uuid |
string |
Wartość identyfikująca rekord. |
data.type |
string |
Typ własnego pola. |
data.param |
object |
Parametry własnego pola, zależne od typu, patrz tabela pierwsza. |
data.param.contactType |
array |
Lista typów kontaktów do których przypisane jest własne pole, możliwe: |
data.canDelete |
bool |
Flaga oznaczająca możliwość usunięcia własnego pola. |
otherData |
object |
|
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":[
{
"uuid":"7b0abc08-afa4-4946-ad23-ad4646072853",
"type":"date",
"param":{
"type":"date",
"name":"Data zamówienia",
"required":true,
"contactType":[
"person",
"organisation"
]
},
"canDelete":1
},
{
"uuid":"12350856-bfba-4a7e-b69c-da35b8a6a3e1",
"type":"text",
"param":{
"type":"text",
"name":"Tekst wielolin",
"required":false,
"contactType":[
"person",
"organisation"
],
"isLink":false,
"isMultiline":true,
"minLength":0,
"maxLength":15,
"uuid":"12350856-bfba-4a7e-b69c-da35b8a6a3e1"
},
"canDelete":1
},
{
"uuid":"96d8ad7a-ffef-4b5f-a38f-f21e7c8bb97e",
"type":"number",
"param":{
"type":"number",
"name":"number",
"required":false,
"contactType":[
"person",
"organisation"
],
"minValue":5,
"maxValue":20,
"uuid":"96d8ad7a-ffef-4b5f-a38f-f21e7c8bb97e"
},
"canDelete":1
},
{},
{
"uuid":"183619e0-af10-4584-b260-bd81324a6ec2",
"type":"select",
"param":{
"type":"select",
"name":"Lista rozw",
"required":true,
"contactType":[
"organisation",
"person"
],
"isMultiple":true,
"options":[
"cd",
"dvd"
]
},
"canDelete":1
},
{
"uuid":"c894f58b-fe44-4afa-9776-bf44bf820bf4",
"type":"checkbox",
"param":{
"type":"checkbox",
"name":"checkboxTest",
"required":false,
"contactType":[
"person",
"organisation"
]
},
"canDelete":1
}
],
"otherData":{
},
"message":"OK"
}
2. Dodanie pola własnego
Metoda pozwala na utworzenie nowego własnego pola dla kontaktu.
Metoda: POST
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/customFields
2.1 Pole tekstowe
Struktura żądania
Właściwość |
Wartość |
Możliwe wartości |
Opis |
Wymagane |
contactType |
array |
person organisation |
Określa, czy pole ma zostać dopisane do profili osób czy organizacji. |
TAK |
required |
bool |
true false |
Określa, czy pole jest wymagane do uzupełnienia podczas edycji profilu. |
TAK |
name |
string |
|
Określa nazwę pola. |
TAK |
type |
string |
text |
Wskazuje typ pola. |
TAK |
minLenght |
int |
number |
Określa minimalną ilość znaków jaką przyjmuje pole |
TAK |
maxLenght |
int |
number |
Określa maksymalną ilość znaków jaką przyjmuje pole |
TAK |
isMultiline |
bool |
true false |
Określa, czy pole jest polem wieloliniowym |
TAK |
isLink |
bool |
true false |
Określa, czy wartość wpisana w polu jest linkiem |
TAK |
Przykład żądania
{
"type":"text",
"name":"Pole tekstowe",
"required":false,
"contactType":[
"person",
"organisation"
],
"isLink":true,
"isMultiline":true,
"minLength":0,
"maxLength":50
}
Struktura odpowiedzi
Właściwość |
Wartość |
success |
bool |
data |
string |
otherData |
object |
message |
string |
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
2.2 Pole numeryczne
Struktura żądania
Właściwość |
Wartość |
Możliwe wartości |
Opis |
Wymagane |
contactType |
array |
person organisation |
Określa, czy pole ma zostać dopisane do profili osób czy organizacji. |
TAK |
required |
bool |
true false |
Określa, czy pole jest wymagane do uzupełnienia podczas edycji profilu. |
TAK |
name |
string |
|
Określa nazwę pola. |
TAK |
type |
string |
number |
Wskazuje typ pola. |
TAK |
minValue |
int |
number |
Określa minimalną wartość pola. |
TAK |
maxValue |
int |
number |
Określa maksymalną wartość pola. |
TAK |
Przykład żądania
{
"type":"number",
"name":"Pole numeryczne",
"required":false,
"contactType":[
"person",
"organisation"
],
"minValue":0,
"maxValue":100
}
Struktura odpowiedzi
Właściwość |
Wartość |
success |
bool |
data |
string |
otherData |
object |
message |
string |
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
2.3 Lista rozwijana
Struktura żądania
Właściwość |
Wartość |
Możliwe wartości |
Opis |
Wymagane |
contactType |
array |
person organisation |
Określa, czy pole ma zostać dopisane do profili osób czy organizacji. |
TAK |
required |
bool |
true false |
Określa, czy pole jest wymagane do uzupełnienia podczas edycji profilu. |
TAK |
name |
string |
|
Określa nazwę pola. |
TAK |
type |
string |
select |
Wskazuje typ pola. |
TAK |
options |
array |
|
Możliwe wartości (poszczególne wybory w liście. |
TAK |
isMultiple |
bool |
number |
Określa czy pole pozwala na wielokrotny wybór |
TAK |
Przykład żądania
{
"type":"select",
"name":"Lista rozwijana",
"required":true,
"contactType":[
"person",
"organisation"
],
"isMultiple":true,
"options":[
"Opcja 1",
"Opcja 2"
]
}
Struktura odpowiedzi
Właściwość |
Wartość |
success |
bool |
data |
string |
otherData |
object |
message |
string |
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
2.4 Checkbox
Struktura żądania
Właściwość |
Wartość |
Możliwe wartości |
Opis |
Wymagane |
contactType |
array |
person organisation |
Określa, czy pole ma zostać dopisane do profili osób czy organizacji. |
TAK |
required |
bool |
true false |
Określa, czy pole jest wymagane do uzupełnienia podczas edycji profilu. |
TAK |
name |
string |
|
Określa nazwę pola. |
TAK |
type |
string |
checkbox |
Wskazuje typ pola. |
TAK |
Przykład żądania
{
"type":"checkbox",
"name":"Checkbox",
"required":true,
"contactType":[
"person",
"organisation"
]
}
Struktura odpowiedzi
Właściwość |
Wartość |
success |
bool |
data |
string |
otherData |
object |
message |
string |
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
2.5 Data
Struktura żądania
Właściwość |
Wartość |
Możliwe wartości |
Opis |
Wymagane |
contactType |
array |
person organisation |
Określa, czy pole ma zostać dopisane do profili osób czy organizacji. |
TAK |
required |
bool |
true false |
Określa, czy pole jest wymagane do uzupełnienia podczas edycji profilu. |
TAK |
name |
string |
|
Określa nazwę pola. |
TAK |
type |
string |
date |
Wskazuje typ pola. |
TAK |
Przykład żądania
{
"type":"date",
"name":"Data",
"required":true,
"contactType":[
"person",
"organisation"
]
}
Struktura odpowiedzi
Właściwość |
Wartość |
success |
bool |
data |
string |
otherData |
object |
message |
string |
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
2.6 Data i czas
Właściwość |
Wartość |
Możliwe wartości |
Opis |
Wymagane |
contactType |
array |
person organisation |
Określa, czy pole ma zostać dopisane do profili osób czy organizacji. |
TAK |
required |
bool |
true false |
Określa, czy pole jest wymagane do uzupełnienia podczas edycji profilu. |
TAK |
name |
string |
|
Określa nazwę pola. |
TAK |
type |
string |
datetime |
Wskazuje typ pola. |
TAK |
Przykład żądania
{
"type":"datetime",
"name":"Data i czas",
"required":true,
"contactType":[
"person",
"organisation"
]
}
Struktura odpowiedzi
Właściwość |
Wartość |
success |
bool |
data |
string |
otherData |
object |
message |
string |
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
3. Edycja istniejącego pola własnego
Metoda pozwala na edycję utworzonego wcześniej własnego pola dla kontaktu.
Metoda: PATCH
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/customFields
Struktury żądań dla edycji wybranego rodzaju pola są identyczne jak w przypadku punktu 2 "Dodanie nowego pola własnego".
4. Usunięcie istniejącego pola własnego
Metoda pozwala na usunięcie utworzonego wcześniej własnego pola dla kontaktu.
Metoda: DELETE
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/customFields
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
string |
|
otherData.totalCount |
int |
Ilość usuniętych rekordów. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
Kontakty- osoby
1. Pobranie listy kontaktów- osób zapisanych w CRM
Metoda pozwala na pobranie kontaktów (osób) zapisanych w bazie CRM.
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/people
Metoda stosuje stronicowanie powyżej 1000 rekordów. API zwróci zawsze maksymalnie 1000 rekordów, a o resztę należy zapytać dodając do adresu page={numer_strony}. Przykładowo, dla sytuacji gdzie jest więcej niż 1000 rekordów stosujemy:
{twoja_nazwa}.ccrm.pl/publicApi/people?page=2
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data.uuid |
uuid |
Wartość identyfikująca rekord. |
data.firstName |
string | null |
Pierwsze imię. |
data.middleName |
string | null |
Drugie imię. |
data.lastName |
string | null |
Nazwisko. |
data.pesel |
string | null |
PESEL. |
data.avatar |
string | null |
Nazwa pliku z avatarem. |
data.description |
string | null |
Opis. |
data.phone1 |
string | null |
Numer telefonu. |
data.phone1Name |
string | null |
Nazwa numeru telefonu. |
data.phone2 |
string | null |
Numer telefonu. |
data.phone2Name |
string | null |
Nazwa numeru telefonu. |
data.phone3 |
string | null |
Numer telefonu. |
data.phone3Name |
string | null |
Nazwa numeru telefonu. |
data.email1 |
string | null |
Adres e-mail. |
data.email1Name |
string | null |
Nazwa adresu e-mail. |
data.email2 |
string | null |
Adres e-mail. |
data.email2Name |
string | null |
Nazwa adresu e-mail. |
data.email3 |
string | null |
Adres e-mail. |
data.email3Name |
string | null |
Nazwa adresu e-mail. |
data.idDocType |
string | null | in:Dowód osobisty, Paszport, Karta pobytu, Prawo jazdy, Inny |
Typ dokumentu |
data.idDocTypeName |
string | null |
Nazwa dokumentu. |
data.idDocNumber |
string | null |
Numer dokumentu. |
data.idDocIssuer |
string | null |
Organ wydający dokument. |
otherData.totalCount |
int |
Ilość osób. |
message |
string |
|
data.address1 |
object |
Tabela pomocnicza: address. |
data.address2 |
object |
Tabela pomocnicza: address. |
data.address3 |
object |
Tabela pomocnicza: address. |
data.organisations |
array |
Tabela pomocnicza: organisation. |
data.flags |
array |
Tabela pomocnicza: flag. |
data.supervisors |
array |
Tabela pomocnicza: supervisor. |
data.CustomValue |
array |
Tabela pomocnicza: customValue. |
Tabela pomocnicza: address
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
name |
string |
Nazwa adresu. |
street |
string | null |
Ulica. |
buildingNo |
string | null |
Budynek. |
localNo |
string | null |
Lokal. |
postcode |
string | null |
Kod pocztowy. |
city |
string | null |
Miasto. |
voivodeship |
string | null |
Województwo. |
country |
string | null |
Kraj. |
district |
string | null |
Powiat. |
Tabela pomocnicza: organisation
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
name |
string |
Nazwa organizacji. |
phone1 |
string | null |
Numer telefonu. |
phone1Name |
string | null |
Nazwa numeru telefonu. |
phone2 |
string | null |
Numer telefonu. |
phone2Name |
string | null |
Nazwa numeru telefonu. |
phone3 |
string | null |
Numer telefonu. |
phone3Name |
string | null |
Nazwa numeru telefonu. |
email1 |
string | null |
Adres e-mail. |
email1Name |
string | null |
Nazwa adresu e-mail. |
email2 |
string | null |
Adres e-mail. |
email2Name |
string | null |
Nazwa adresu e-mail. |
email3 |
string | null |
Adres e-mail. |
email3Name |
string | null |
Nazwa adresu e-mail. |
role |
string | null |
Rola jaką pełni osoba kontaktowa w danej organizacji. |
Tabela pomocnicza: flag
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
name |
string |
Nazwa flagi. |
color |
string |
Kolor flagi. |
reluuid |
uuid |
Wartość identyfikująca powiązanie flagi z osobą kontaktową. |
Tabela pomocnicza: supervisor
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
role |
string in:watcher,manager |
Pełniona funkcja (watcher- obserwator, manager- opiekun). |
useruuid |
uuid |
Wartość identyfikująca użytkownika. |
firstName |
string |
Imię. |
lastName |
string |
Nazwisko. |
extension |
int |
Numer SIP. |
workNumber |
string |
Numer służbowy. |
|
string |
Adres email. |
Tabela pomocnicza: customValue
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
type |
string |
Typ własnego pola. |
value |
string |
Wartość własnego pola. |
Przykład odpowiedzi
{
"success":true,
"data":[
{
"uuid":"2b4a0a5d-292c-4d3a-8ef4-60707f70b49c",
"firstName":"Jadwiga",
"middleName":null,
"lastName":"Testowa",
"pesel":null,
"avatar":null,
"description":null,
"phone1":"+48 777 888 999",
"phone1Name":null,
"phone2":"",
"phone2Name":null,
"phone3":"",
"phone3Name":null,
"email1":"jadwigatestowa@op.pl",
"email2":null,
"email3":null,
"email1Name":"Służbowy",
"email2Name":null,
"email3Name":null,
"idDocType":null,
"idDocTypeName":null,
"idDocNumber":null,
"idDocIssuer":null,
"address1":{
"uuid":"e49e3994-7aa4-40d4-9e36-02e955ee75ee",
"name":"Adres",
"street":"Katowicka",
"buildingNo":"12",
"localNo":"2",
"postcode":"44-199",
"city":"Jastrzębie-Zdrój",
"voivodeship":"śląskie",
"country":"Polska",
"district":"jastrzębski"
},
"address2":{
"uuid":"45ab0f18-755b-440f-8277-4513713262f0",
"name":"Adres",
"street":null,
"buildingNo":null,
"localNo":null,
"postcode":null,
"city":null,
"voivodeship":null,
"country":null,
"district":null
},
"address3":{
"uuid":"9a5c9a06-5e8a-4533-9ed3-be023e6f662d",
"name":"Adres",
"street":null,
"buildingNo":null,
"localNo":null,
"postcode":null,
"city":null,
"voivodeship":null,
"country":null,
"district":null
},
"organisations":[
{
"uuid":"74a39828-b179-4c9e-bcfe-884a4702ff80",
"name":"Firma XYZ",
"phone1":"+48 444 555 666",
"phone1Name":"Służbowy",
"phone2":"",
"phone2Name":null,
"phone3":"",
"phone3Name":null,
"email1":"test1@gmail.com",
"email1Name":null,
"email2":"test2@gmail.com",
"email2Name":null,
"email3":"test3@gmail.com",
"email3Name":null,
"role":null
}
],
"flags":[
{
"name":"Indywidualny",
"uuid":"787179de-895c-43f7-be17-0e3dac027041",
"color":"#a67341",
"reluuid":"9d6f429f-c1e8-4394-afd2-0b96d31d22ef"
},
],
"supervisors":[
{
"uuid":"ff6abb0b-e9d4-4fd2-98fa-b62a0c77535b",
"role":"manager",
"useruuid":"a06c5ace-5cc6-4583-a7f3-a942d72e1c0c",
"firstName":"Jan",
"lastName":"Kowalski",
"extension":888,
"workNumber":"+48 22 113 14 15",
"email":"jkowalski@firmaxyz.pl"
},
],
"customValue":[
{
"uuid":"81b120cf-8e98-480b-acb9-790c420029d1",
"type":"text",
"param":{
"type":"text",
"name":"Produkt",
"required":false,
"contactType":[
"person"
],
"isLink":false,
"isMultiline":false,
"minLength":0,
"maxLength":50,
"uuid":"81b120cf-8e98-480b-acb9-790c420029d1"
},
"value":"Produkt1"
},
]
},
],
"otherData":{
"totalCount":655330
},
"message":"OK"
}
2. Dodanie nowego kontaktu- osoby
Metoda pozwala na dodanie osoby do bazy kontaktów w CRM.
Metoda: POST
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/people
Struktura żądania
Właściwość |
Wartość |
Opis |
firstName |
required | max:100 | string |
Pierwsze imię. |
middleName |
null | max:100 | string |
Drugie imię. |
lastName |
required | max:100 | string |
Nazwisko. |
pesel |
null | PESEL |
PESEL. |
description |
null | max:65535 | string |
Opis. |
phone1 |
null | phone |
Numer telefonu. |
phone1Name |
null | string | max:128 |
Nazwa numeru telefonu. |
phone2 |
null | phone |
Numer telefonu. |
phone2Name |
null | string | max:128 |
Nazwa numeru telefonu. |
phone3 |
null | phone |
Numer telefonu. |
phone3Name |
null | string | max:128 |
Nazwa numeru telefonu. |
email1 |
null | max:128 | email |
Adres e-mail. |
email1Name |
null | string | max:128 |
Nazwa adresu e-mail. |
email2 |
null | max:128 | email |
Adres e-mail. |
email2Name |
null | string | max:128 |
Nazwa adresu e-mail. |
email3 |
null | max:128 | email |
Adres e-mail. |
email3Name |
null | string | max:128 |
Nazwa adresu e-mail. |
idDocType |
null | string | in:"Dowód osobisty","Paszport","Karta pobytu","Prawo jazdy","Inny" | required_with:idDocNumber |
Nazwa dokumentu. |
idDocNumber |
null | string | required_with:idDocType |
Numer dokumentu. |
idDocIssuer |
null | string |
Organ wydający dokument. |
addresses |
null | array |
Tabela pomocnicza: address - request data. |
organisations |
null | array |
Tabela pomocnicza: organisation - request data. |
supervisors |
null | array |
Tabela pomocnicza: supervisor - request data. |
customFields |
null | array |
Tabela pomocnicza: customField - request data. |
avatar |
null | string | uuid |
uuid avataru. |
Tabela pomocnicza: address - request data
Właściwość |
Wartość |
Opis |
name |
required | max:128 | string |
Nazwa adresu. |
street |
null | max:128 | string |
Ulica. |
city |
null | max:64 | string |
Miasto. |
postcode |
null | max:16 | string |
Kod pocztowy. |
building_no |
null | max:16 | string |
Budynek. |
local_no |
null | max:16 | string |
Lokal. |
voivodeship |
null| max:64 | string |
Województwo. |
country |
null | max:64 | string |
Kraj. |
name |
required | max:128 | string |
Nazwa adresu. |
street |
null | max:128 | string |
Ulica. |
district |
null | max:64 | string |
Powiat. |
Tabela pomocnicza: organisation - request data
Właściwość |
Wartość |
Opis |
. |
uuid |
Uuid organizacji. |
Tabela pomocnicza: supervisor - request data
Właściwość |
Wartość |
Opis |
user |
uuid |
Uuid użytkownika CRM. |
role |
required | string | in: watcher, manager |
Rola przypisanego użytkownika. |
Tabela pomocnicza: customField - request data
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Uuid własnego pola. |
Przykład żądania
{
"description":"Opis Bartosza",
"phone1":"48999666333",
"phone1Name":"Numer 1",
"email1":"bartosz@bartosz.pl",
"email1Name":"Email 1",
"firstName":"Bartosz",
"lastName":"Nowak",
"middleName":"Adam",
"customFields":[
{
"uuid":"81b120cf-8e98-480b-acb9-790c420029d1",
"value":"Produkt 1"
},
{
"uuid":"78488c2c-95e1-4c51-b3d2-2674b93a1372",
"value":"12"
},
{
"uuid":"183619e0-af10-4584-b260-bd81324a6ec2",
"value":[
"cd"
]
},
{
"uuid":"5e4d85b1-5e37-4cd9-8fd5-21e8e5ed4e0f",
"value":"12"
}
],
"organisations":[
"69861ece-9b84-4d6d-afc7-90f63317b5f4"
],
"addresses":[
{
"buildingNo":"15",
"city":"Gliwice",
"country":"Polska",
"localNo":"4",
"postcode":"44-100",
"street":"Makoszowska",
"voivodeship":"śląskie",
"district":"miasto Tychy",
"name":"Adres główny"
},
{
"buildingNo":"8",
"city":"Gliwice",
"country":"Polska",
"localNo":"2",
"postcode":"44-100",
"street":"Bydgoska",
"voivodeship":"śląskie",
"district":"miasto Tychy",
"name":"Adres korespondencyjny"
},
{
"buildingNo":"99",
"city":"Gliwice",
"country":"Polska",
"localNo":"1",
"postcode":"44-100",
"street":"Podkarpacka",
"voivodeship":"śląskie",
"district":"miasto Tychy",
"name":"Adres dodatkowy"
}
],
"supervisors":[
{
"role":"manager",
"user":"f6e4999b-6292-45ab-bb02-20b2e9284280"
},
{
"role":"watcher",
"user":"34b1f634-65e9-4b9a-bec8-b8de541a580a"
}
]
}
Struktura odpowiedzi
Jak w przypadku metody na pobranie pobranie listy kontaktów- osób zapisanych w CRM (pkt 1).
Przykład odpowiedzi
{
"success":true,
"data":{
"uuid":"0330dbf9-a34a-4220-8be9-69551ef8c91a",
"firstName":"Bartosz",
"middleName":"Adam",
"lastName":"Nowak",
"pesel":null,
"avatar":null,
"description":"Opis Bartosza",
"phone1":"+48 999 666 333",
"phone1Name":"Numer 1",
"phone2":"",
"phone2Name":null,
"phone3":"",
"phone3Name":null,
"email1":"bartosz@bartosz.pl",
"email2":null,
"email3":null,
"email1Name":"Email 1",
"email2Name":null,
"email3Name":null,
"idDocType":"",
"idDocTypeName":null,
"idDocNumber":null,
"idDocIssuer":null,
"address1":{
"uuid":"651ce08f-2a36-4f07-bf47-8e516c0bc915",
"name":"Adres główny",
"street":"Makoszowska",
"buildingNo":15,
"localNo":4,
"postcode":"44-100",
"city":"Gliwice",
"voivodeship":"śląskie",
"country":"Polska",
"district":"miasto Tychy"
},
"address2":{
"uuid":"fed78150-9e4d-4997-8aca-33132aa9eb38",
"name":"Adres korespondencyjny",
"street":"Bydgoska",
"buildingNo":8,
"localNo":2,
"postcode":"44-100",
"city":"Gliwice",
"voivodeship":"śląskie",
"country":"Polska",
"district":"miasto Tychy"
},
"address3":{
"uuid":"3349bbb7-b714-40aa-973c-b4aa95a765bb",
"name":"Adres dodatkowy",
"street":"Podkarpacka",
"buildingNo":99,
"localNo":1,
"postcode":"44-100",
"city":"Gliwice",
"voivodeship":"śląskie",
"country":"Polska",
"district":"miasto Tychy"
},
"organisations":[
{
"uuid":"69861ece-9b84-4d6d-afc7-90f63317b5f4",
"name":"Firma XYZ",
"phone1":"+48 888 555 222",
"phone1Name":null,
"phone2":"",
"phone2Name":null,
"phone3":"",
"phone3Name":null,
"email1":"firmaxyz@firmaxyz.pl",
"email1Name":"Email firmowy",
"email2":null,
"email2Name":null,
"email3":null,
"email3Name":null,
"role":null
}
],
"supervisors":[
{
"uuid":"7c42b8a4-5184-4a6a-8c7b-c47eac063802",
"role":"manager",
"useruuid":"f6e4999b-6292-45ab-bb02-20b2e9284280",
"firstName":"Marian",
"lastName":"Nowak",
"extension":null,
"workNumber":"",
"email":"mnowak@firmatestowa.pl"
},
{
"uuid":"02b363d3-714b-49e3-91b4-91a7d8ca085c",
"role":"watcher",
"useruuid":"34b1f634-65e9-4b9a-bec8-b8de541a580a",
"firstName":"Adam",
"lastName":"Wasik",
"extension":101,
"workNumber":"+48 333 555 444",
"email":"awasik@firmatestowa.pl "
}
],
"customValue":[
{
"uuid":"81b120cf-8e98-480b-acb9-790c420029d1",
"type":"text",
"param":{
"type":"text",
"name":"Produkt",
"required":false,
"contactType":[
"person"
],
"isLink":false,
"isMultiline":false,
"minLength":0,
"maxLength":50,
"uuid":"81b120cf-8e98-480b-acb9-790c420029d1"
},
"value":"Produkt 1"
},
{
"uuid":"7b0abc08-afa4-4946-ad23-ad4646072853",
"type":"date",
"param":{
"type":"date",
"name":"Data zamówienia",
"required":true,
"contactType":[
"person",
"organisation"
]
},
"value":null
},
{
"uuid":"96d8ad7a-ffef-4b5f-a38f-f21e7c8bb97e",
"type":"number",
"param":{
"type":"number",
"name":"Ilość",
"required":false,
"contactType":[
"person",
"organisation"
],
"minValue":5,
"maxValue":20,
"uuid":"96d8ad7a-ffef-4b5f-a38f-f21e7c8bb97e"
},
"value":13
},
"otherData":{
"totalCount":1
},
"message":"OK"
}
3. Edycja istniejącego kontaktu- osoby
Metoda pozwala na edytowanie istniejącej osoby w bazie kontaktów CRM.
Metoda: PATCH
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/people/{uuid}
Struktura żądania
Jak w przypadku metody na dodanie nowego kontaktu- osoby (pkt 2).
Przykład żądania
{
"firstName":".Stanisława",
"middleName":"Janina",
"lastName":"Testowa",
"pesel":"",
"description":"",
"phone1":"48888555222",
"phone1Name":"Prywatny",
"phone2":"",
"phone2Name":"",
"phone3":"",
"phone3Name":"",
"email1":"",
"email1Name":"",
"email2":"",
"email2Name":"",
"email3":"",
"email3Name":"",
"idDocType":"",
"idDocNumber":"",
"idDocIssuer":""
}
Struktura odpowiedzi
Jak w przypadku metody na pobranie pobranie listy kontaktów- osób zapisanych w CRM (pkt 1).
Przykład odpowiedzi
{
"success":true,
"data":{
"uuid":"4b1b1dc7-8875-4550-bd26-7526320f0df9",
"firstName":".Stanisława",
"middleName":"Janina",
"lastName":"Testowa",
"pesel":null,
"avatar":"",
"description":null,
"phone1":"+48 888 555 222",
"phone1Name":"Prywatny",
"phone2":"",
"phone2Name":null,
"phone3":"",
"phone3Name":null,
"email1":null,
"email2":null,
"email3":null,
"email1Name":null,
"email2Name":null,
"email3Name":null,
"idDocType":null,
"idDocTypeName":null,
"idDocNumber":null,
"idDocIssuer":null,
"address1":{
"uuid":"45a0a082-ff89-4d85-8975-402d3e8d5a6c",
"name":null,
"street":null,
"buildingNo":null,
"localNo":null,
"postcode":null,
"city":null,
"voivodeship":null,
"country":null,
"district":null
},
"address2":null,
"address3":null,
"organisations":{
},
"customValue":null
},
"otherData":{
"totalCount":1
},
"message":"OK"
}
4. Usunięcie istniejącego kontaktu- osoby
Metoda pozwala na usunięcie istniejącej osoby w bazie kontaktów CRM.
Metoda: DELETE
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/people/{uuid}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
string |
|
otherData.totalCount |
int |
Ilość usuniętych rekordów. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
"totalCount":1
},
"message":"OK"
}
Kontakty- organizacje
1. Pobranie listy kontaktów- organizacji zapisanych w CRM
Metoda pozwala na pobranie kontaktów (organizacji) zapisanych w bazie CRM.
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/organisations
Metoda stosuje stronicowanie powyżej 1000 rekordów. API zwróci zawsze maksymalnie 1000 rekordów, a o resztę należy zapytać dodając do adresu page={numer_strony}. Przykładowo, dla sytuacji gdzie jest więcej niż 1000 rekordów stosujemy:
{twoja_nazwa}.ccrm.pl/publicApi/organisations?page=2
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
Wartość identyfikująca rekord. |
data.name |
string |
Nazwa organizacji. |
data.avatar |
string | null |
Nazwa pliku z avatarem. |
data.description |
string | null |
Opis. |
data.nip |
string | null |
Numer NIP. |
data.regon |
string | null |
Numer REGON. |
data.otherRegistryId |
string | null |
Identyfikator dla innego rejestru (inny niż KRS, CEIDG, REGON) |
data.registry |
string | null | in: CEIDG, KRS, REGON, Inne |
Rejestr. |
data.legalForm |
string | null | in: Jednoosobowa działalność gospodarcza, Spółka cywilna, Spółka jawna, Fundacja itd. |
Forma działalności. |
data.legalFormName |
string | null |
Nazwa działalności. |
data.registryName |
string | null |
Nazwa rejestru. |
data.court |
string | null |
Sąd prowadzący rejestr. |
data.active |
int | null in:0,1 |
Status aktywności organizacji. |
data.courtDepartment |
string | null |
Wydział. |
data.krsNumber |
string | null |
Numer KRS. |
data.representation |
string | null |
Reprezentacja. |
phone1 |
string | null |
Numer telefonu. |
phone1Name |
string | null |
Nazwa numeru telefonu. |
phone2 |
string | null |
Numer telefonu. |
phone2Name |
string | null |
Nazwa numeru telefonu. |
phone3 |
string | null |
Numer telefonu. |
phone3Name |
string | null |
Nazwa numeru telefonu. |
email1 |
string | null |
Adres e-mail. |
email1Name |
string | null |
Nazwa adresu e-mail. |
email2 |
string | null |
Adres e-mail. |
email2Name |
string | null |
Nazwa adresu e-mail. |
email3 |
string | null |
Adres e-mail. |
email3Name |
string | null |
Nazwa adresu e-mail. |
uuid |
string | null |
Wartość identyfikująca rekord. |
data.address1 |
object |
Tabela pomocnicza: address. |
data.address2 |
object |
Tabela pomocnicza: address. |
data.address3 |
object |
Tabela pomocnicza: address. |
data.people |
array |
Tabela pomocnicza: people. |
data.flags |
array |
Tabela pomocnicza: flag. |
data.supervisors |
array |
Tabela pomocnicza: supervisor. |
data.CustomValue |
array |
Tabela pomocnicza: customValue. |
otherData.totalCount |
int |
Ilość organizacji |
message |
string |
|
Tabela pomocnicza: address
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
name |
string |
Nazwa adresu. |
street |
string | null |
Ulica. |
buildingNo |
string | null |
Budynek. |
localNo |
string | null |
Lokal. |
postcode |
string | null |
Kod pocztowy. |
city |
string | null |
Miasto. |
voivodeship |
string | null |
Województwo. |
country |
string | null |
Kraj. |
district |
string | null |
Powiat. |
Tabela pomocnicza: people
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
firstName |
string | null |
Pierwsze imię. |
lastName |
string | null |
Nazwisko. |
phone1 |
string | null |
Numer telefonu. |
phone1Name |
string | null |
Nazwa numeru telefonu. |
phone2 |
string | null |
Numer telefonu. |
phone2Name |
string | null |
Nazwa numeru telefonu. |
phone3 |
string | null |
Numer telefonu. |
phone3Name |
string | null |
Nazwa numeru telefonu. |
email1 |
string | null |
Adres e-mail. |
email1Name |
string | null |
Nazwa adresu e-mail. |
email2 |
string | null |
Adres e-mail. |
email2Name |
string | null |
Nazwa adresu e-mail. |
email3 |
string | null |
Adres e-mail. |
email3Name |
string | null |
Nazwa adresu e-mail. |
role |
string in:watcher,manager |
Pełniona funkcja (manager- opiekun/ watcher- obserwator). |
Tabela pomocnicza: flag
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
name |
string |
Nazwa flagi. |
color |
string |
Kolor flagi. |
reluuid |
uuid |
Wartość identyfikująca powiązanie flagi z osobą kontaktową. |
Tabela pomocnicza: supervisor
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
role |
string in:watcher,manager |
Pełniona funkcja (watcher- obserwator, manager- opiekun). |
useruuid |
uuid |
Wartość identyfikująca użytkownika. |
firstName |
string |
Imię. |
lastName |
string |
Nazwisko. |
extension |
int |
Numer SIP. |
workNumber |
string |
Numer służbowy. |
|
string |
Adres email. |
Tabela pomocnicza: customValue
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord. |
type |
string |
Typ własnego pola. |
value |
string |
Wartość własnego pola. |
Przykład odpowiedzi
{
"success":true,
"data":[
{
"name":"testowafirma Sp. z o.o.",
"avatar":null,
"description":"Opis firmy testowej",
"nip":9999999999,
"regon":"",
"otherRegistryId":null,
"registry":null,
"legalForm":null,
"legalFormName":null,
"registryName":null,
„court":null,
„active”:null,
"courtDepartment":null,
"krsNumber":null,
"representation":null,
"email1":"jkowalski@firmatestowa.pl",
"email2":null,
"email3":null,
"email1Name":"Ogólny 1",
"email2Name":null,
"email3Name":null,
"phone1":"+48 666 999 888",
"phone2":"",
"phone3":"",
"phone1Name":"Ogólny 1",
"phone2Name":null,
"phone3Name":null,
"uuid":"e06d8e0d-84fd-401c-9166-9dbleyfdce03",
"address1":{
"uuid":"1d122a29-50a3-9999-bb2c-8c91e57e0972",
"name":"Adres siedziby",
"street":"Mikołowska",
"buildingNo":13,
"localNo":2,
"postcode":"44-199",
"city":"Gliwice",
"voivodeship":"śląskie",
"country":"Polska",
"district":null
},
"address2":{
"uuid":"42f872ad-91bd-48c9-8bdd-a3b7312ef6b5",
"name":"Adres korespondencyjny",
"street":null,
"buildingNo":null,
"localNo":null,
"postcode":null,
"city":null,
"voivodeship":null,
"country":null,
"district":null
},
"address3":{
"uuid":"a3ee1516-1d94-4a2a-a8ae-5eec82cc90b8",
"name":"Adres dodatkowy",
"street":null,
"buildingNo":null,
"localNo":null,
"postcode":null,
"city":null,
"voivodeship":null,
"country":null,
"district":null
},
"people":[
{
"uuid":"c670824b-03a5-404a-839b-513a3e3b060e",
"firstName":"Janusz",
"lastName":"Kowalski",
"phone1":"+48 777 888 999",
"phone1Name":"Służbowy",
"phone2":"",
"phone2Name":null,
"phone3":"",
"phone3Name":null,
"email1":null,
"email1Name":null,
"email2":null,
"email2Name":null,
"email3":null,
"email3Name":null,
"role":null
}
],
"flags":[
{
"name":"Korporacja",
"uuid":"ce35e673-c87a-4250-b63f-7e61d1a3b663",
"color":"#1fbc9c",
"reluuid":"88cccfd4-c9f5-49da-9023-5a98c90935ed"
},
],
"supervisors":[
{
"uuid":"caef28a3-87c4-4939-860e-6f78755dfd6a",
"role":"manager",
"useruuid":"431bde18-c17b-495b-80be-e234d1ac587c",
"firstName":"Jan",
"lastName":"Mazurek",
"extension":13,
"workNumber":"",
"email":"jmazurek@innafirma.pl"
},
],
"customValue":[
{
"uuid":"52b671a0-937b-4160-99bb-ca1ad5693255",
"type":"select",
"param":{
"type":"select",
"name":"Lista wyboru",
"required":false,
"contactType":[
"person",
"organisation"
],
"isMultiple":false,
"options":[
"Tak",
"Nie"
],
"uuid":"52b671a0-937b-4160-99bb-ca1ad5693255"
},
"value":null
},
]
},
],
"otherData":{
"totalCount":4
},
"message":"OK"
}
2. Dodanie nowego kontaktu- organizacji
Metoda pozwala na dodanie organizacji do bazy kontaktów w CRM.
Metoda: POST
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/organisations
Struktura żądania
Właściwość |
Wartość |
Opis |
name |
required | max:256 | string |
Nazwa. |
description |
null | max:65535 | string |
Opis. |
phone1 |
null | phone |
Numer telefonu. |
phone1Name |
null | string | max:128 |
Nazwa numeru telefonu. |
phone2 |
null | phone |
Numer telefonu. |
phone2Name |
null | string | max:128 |
Nazwa numeru telefonu. |
phone3 |
null | phone |
Numer telefonu. |
phone3Name |
null | string | max:128 |
Nazwa numeru telefonu. |
email1 |
null | max:128 | email |
Adres e-mail. |
email1Name |
null | string | max:128 |
Nazwa adresu e-mail. |
email2 |
null | max:128 | email |
Adres e-mail. |
email2Name |
null | string | max:128 |
Nazwa adresu e-mail. |
email3 |
null | max:128 | email |
Adres e-mail. |
email3Name |
null | string | max:128 |
Nazwa adresu e-mail. |
nip |
null | max:32 | NIP |
Numer NIP. |
regon |
null | max:32 | Regon |
Numer REGON. |
registry |
null | max:256 | string |
Rejestr wpisu działalności. |
addresses |
null | array |
Tabela pomocnicza: address - request data. |
people |
null | array |
Tabela pomocnicza: people - request data. |
supervisors |
null | array |
Tabela pomocnicza: supervisor - request data. |
customFields |
null | array |
Tabela pomocnicza: customField - request data. |
avatar |
null | string | uuid |
uuid avataru |
Tabela pomocnicza: address - request data
Właściwość |
Wartość |
Opis |
name |
required | max:128 | string |
Nazwa adresu. |
street |
null | max:128 | string |
Ulica. |
city |
null | max:64 | string |
Miasto. |
postcode |
null | max:16 | string |
Kod pocztowy. |
building_no |
null | max:16 | string |
Budynek. |
local_no |
null | max:16 | string |
Lokal. |
voivodeship |
null| max:64 | string |
Województwo. |
country |
null | max:64 | string |
Kraj. |
name |
required | max:128 | string |
Nazwa adresu. |
street |
null | max:128 | string |
Ulica. |
district |
null | max:64 | string |
Powiat. |
Tabela pomocnicza: people - request data
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Uuid osoby kontaktowej (kontaktu- osoby powiązanej z organizacją). |
Tabela pomocnicza: supervisor - request data
Właściwość |
Wartość |
Opis |
user |
uuid |
Uuid użytkownika CRM. |
role |
required | string | in: watcher, manager |
Rola przypisanego użytkownika. |
Tabela pomocnicza: customField - request data
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Uuid własnego pola. |
Przykład żądania
{
"name":"Firma XYZ",
"nip":"9518767503",
"description":"Opis firmy XYZ",
"registry":"CEIDG",
"phone1":"48221131416",
"phone1Name":"Numer 1",
"email1":"firmaxyz@firmaxyz.pl",
"email1Name":"Email 1",
"customFields":[
{
"uuid":"96d8ad7a-ffef-4b5f-a38f-f21e7c8bb97e",
"value":"12"
},
{
"uuid":"183619e0-af10-4584-b260-bd81324a6ec2",
"value":[
"cd"
]
},
{
"uuid":"5e4d85b1-5e37-4cd9-8fd5-21e8e5ed4e0f",
"value":"7"
}
],
"people":[
"b4919840-dceb-4dfb-b6dc-72ded87c0077"
],
"addresses":[
{
"buildingNo":"15",
"city":"Gliwice",
"country":"Polska",
"localNo":"4",
"postcode":"44-100",
"street":"Makoszowska",
"voivodeship":"łódzkie",
"district":"pabianicki",
"name":"Adres siedziby"
},
{
"buildingNo":"8",
"city":"Gliwice",
"country":"Polska",
"localNo":"2",
"postcode":"44-100",
"street":"Bydgoska",
"voivodeship":"małopolskie",
"district":"nowotarski",
"name":"Adres korespondencyjny"
},
{
"buildingNo":"99",
"city":"Gliwice",
"country":"Polska",
"localNo":"1",
"postcode":"44-100",
"street":"Podkarpacka",
"voivodeship":"mazowieckie",
"district":"nowodworski",
"name":"Adres dodatkowy"
}
],
"supervisors":[
{
"role":"manager",
"user":"f6e4999b-6292-45ab-bb02-20b2e9284280"
},
{
"role":"watcher",
"user":"34b1f634-65e9-4b9a-bec8-b8de541a580a"
}
]
}
Struktura odpowiedzi
Jak w przypadku metody na pobranie pobranie listy kontaktów- osób zapisanych w CRM (pkt 1).
Przykład odpowiedzi
{
"success":true,
"data":{
"name":"Firma XYZ",
"avatar":null,
"description":"Opis firmy XYZ",
"nip":9518767503,
"regon":"",
"active":null,
"otherRegistryId":null,
"registry":"CEIDG",
"legalForm":null,
"legalFormName":null,
"registryName":null,
"court":null,
"courtDepartment":null,
"krsNumber":null,
"representation":null,
"email1":"firmaxyz@firmaxyz.pl",
"email2":null,
"email3":null,
"email1Name":"Email 1",
"email2Name":null,
"email3Name":null,
"phone1":"+48 22 113 14 16",
"phone2":"",
"phone3":"",
"phone1Name":"Numer 1",
"phone2Name":null,
"phone3Name":null,
"uuid":"75589e9b-171b-4d1f-a0b7-2d808e491d93",
"address1":{
"uuid":"31617331-7913-4fc7-b997-8bc1470fcd47",
"name":"Adres siedziby",
"street":"Makoszowska",
"buildingNo":15,
"localNo":4,
"postcode":"44-100",
"city":"Gliwice",
"voivodeship":"łódzkie",
"country":"Polska",
"district":"pabianicki"
},
"address2":{
"uuid":"34ea0bb2-5c9f-480f-beec-f7b3897fd44a",
"name":"Adres korespondencyjny",
"street":"Bydgoska",
"buildingNo":8,
"localNo":2,
"postcode":"44-100",
"city":"Gliwice",
"voivodeship":"małopolskie",
"country":"Polska",
"district":"nowotarski"
},
"address3":{
"uuid":"95fba500-56f8-4ee6-a14f-95626ff461f9",
"name":"Adres dodatkowy",
"street":"Podkarpacka",
"buildingNo":99,
"localNo":1,
"postcode":"44-100",
"city":"Gliwice",
"voivodeship":"mazowieckie",
"country":"Polska",
"district":"nowodworski"
},
"people":[
{
"uuid":"b4919840-dceb-4dfb-b6dc-72ded87c0077",
"firstName":"Rafał",
"lastName":"Sobota",
"phone1":"+48 222 333 444",
"phone1Name":null,
"phone2":"",
"phone2Name":null,
"phone3":"",
"phone3Name":null,
"email1":null,
"email1Name":null,
"email2":null,
"email2Name":null,
"email3":null,
"email3Name":null,
"role":null
}
],
"flags":{
},
"customValue":[
{
"uuid":"7b0abc08-afa4-4946-ad23-ad4646072853",
"type":"date",
"param":{
"type":"date",
"name":"Data zamówienia",
"required":true,
"contactType":[
"person",
"organisation"
]
},
"value":null
},
{
"uuid":"c894f58b-fe44-4afa-9776-bf44bf820bf5",
"type":"checkbox",
"param":{
"type":"checkbox",
"name":"checkbox",
"required":false,
"contactType":[
"person",
"organisation"
]
},
"value":false
},
{
"uuid":"5e4d85b1-5e37-4cd9-8fd5-21e8e5ed4e0f",
"type":"number",
"param":{
"type":"number",
"name":"Pole numeryczne",
"required":true,
"contactType":[
"person",
"organisation"
],
"minValue":0,
"maxValue":100
},
"value":7
}
]
},
"otherData":{
"totalCount":1
},
"message":"OK"
}
3. Edycja istniejącego kontaktu- organizacji
Metoda pozwala na edytowanie istniejącej organizacji w bazie kontaktów CRM.
Metoda: PATCH
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/organisations/{uuid}
Struktura żądania
Jak w przypadku metody na dodanie nowego kontaktu- organizacji (pkt 2).
Przykład żądania
{
"name":"Moja nowa firma",
"nip":"7311852569",
"description":"Nowy opis",
"phone1":"48333666999",
"phone1Name":"Służbowy",
"phone2":"",
"phone2Name":"",
"phone3":"",
"phone3Name":"",
"email1":"",
"email1Name":"",
"email2":"",
"email2Name":"",
"email3":"",
"email3Name":"",
"registry":"",
"legalForm":"",
"regon":"",
"representation":""
}
Struktura odpowiedzi
Jak w przypadku metody na pobranie pobranie listy kontaktów- osób zapisanych w CRM (pkt 1).
Przykład odpowiedzi
{
"success":true,
"data":{
"name":" Moja nowa firma ",
"avatar":"",
"description":"Nowy opis",
"nip":"7311852569",
"regon":"",
"active":null,
"otherRegistryId":null,
"registry":null,
"legalForm":null,
"legalFormName":null,
"registryName":null,
"court":null,
"courtDepartment":null,
"krsNumber":null,
"representation":null,
"email1":null,
"email2":null,
"email3":null,
"email1Name":null,
"email2Name":null,
"email3Name":null,
"phone1":"+48 333 666 999",
"phone2":"",
"phone3":"",
"phone1Name":null,
"phone2Name":null,
"phone3Name":null,
"uuid":"94096f48-29d3-43fe-a3d5-7ec35f1526dd",
"people":{
},
"customValue":null
},
"otherData":{
},
"message":"OK"
}
4. Usunięcie istniejącego kontaktu- organizacji
Metoda pozwala na usunięcie istniejącej organizacji w bazie kontaktów CRM.
Metoda: DELETE
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/organisations/{uuid}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
string |
|
otherData.totalCount |
int |
Ilość usuniętych rekordów. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
"totalCount":1
},
"message":"OK"
}
Historia kontaktu
1. Pobranie listy połączeń za dany okres
Metoda pozwala na pobranie zdarzeń z historii kontaktu (połączeń, SMS, faksów) dla wskazanego w żądaniu okresu.
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/callHistory
Metoda stosuje stronicowanie powyżej 1000 rekordów. API zwróci zawsze maksymalnie 1000 rekordów, a o resztę należy zapytać dodając do adresu page={numer_strony}. Przykładowo, dla sytuacji gdzie jest więcej niż 1000 rekordów stosujemy:
{twoja_nazwa}.ccrm.pl/publicApi/callHistory?page=2
Dodatkowo, obowiązkowo należy podać zakres dat z jakich mają zostać zwrócone rekordy. Spację należy zakodować w formie %20. Przykładowo:
{twoja_nazwa}.ccrm.pl/publicApi/callHistory?dateFrom=2022-02-01%2008:00:00&dateTo=2023-01-27%2008:00:00
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data.to |
array |
Rozmówca. Szerszy opis w pomocniczej tabeli callers. |
data.from |
array |
Rozmówca. Szerszy opis w pomocniczej tabeli callers. |
data.userTalk.status |
string |
Informacja, czy połączenie przeszło przez kolejkę czy nie lub czy było połączeniem wewnętrznym. Możliwe wartości: queue, noQueue, internal. |
data.userTalk.receivers |
array |
Użytkownik CRM, który jest powiązany z połączeniem. Szerszy opis w pomocniczej tabeli user talk. |
data.uuid |
uuid |
Wartość identyfikująca rekord. |
data.callDirection |
string |
Kierunek połączenia Możliwe wartości in, out, internal. |
data.callDate |
datetime |
Data i czas zdarzenia. |
data.duration |
int |
Ilość sekund w których trwało połączenie. |
data.destination |
string |
Kierunek. |
data.cost |
int |
Koszt. |
data.service |
string |
Rodzaj zdarzenia bilingowego. Możliwe wartości CALL, SMS, FAX. |
data.smsData |
string |
Treść SMS. |
data.note |
int |
Wartość oznaczająca czy do zdarzenia bilingowego zostały sporządzone notatki. |
data.externalNumber.numberNotFormatted |
string |
Niesformatowany, zewnętrzny numer telefonu. |
data.externalNumber.numberFormatted |
string |
Sformatowany, zewnętrzny numer telefonu. |
data.externalNumber.type |
string |
Typ rozmówcy. Możliwe wartości unknown, person, organisation. |
data.flags |
array |
Tagi przypisane do zdarzenia. Szerszy opis w pomocniczej tabeli flags. |
data.status |
string |
Status rekordu. Możliwe wartości: answered, noAnswer, busy. |
otherData.totalCount |
int |
Ilość rekordów. |
message |
string |
|
Tabela pomocnicza: user talk
Właściwość |
Wartość |
Opis |
internal |
Int |
Numer wewnętrzny. |
uuid |
uuid |
Uuid użytkownika - jeśli znaleziono. |
firstName |
string |
Imię użytkownika - jeśli znaleziono. |
lastName |
string |
Nazwisko użytkownika - jeśli znaleziono. |
Tabela pomocnicza: callers
Właściwość |
Wartość |
Opis |
type |
string |
Typ rozmówcy. Możliwe wartości unknown, person, organisation. |
uuid |
uuid |
Wartość identyfikująca rozmówcę - jeśli znaleziono. |
firstName |
string |
Imię - jeśli znaleziono. |
lastName |
string |
Nazwisko - jeśli znaleziono. |
avatar |
string |
Nazwa pliku z avatarem - jeśli znaleziono. |
name |
string |
Nazwa organizacji - jeśli znaleziono. |
number |
string |
Numer telefonu. |
numberNotFormatted |
string |
Niesformatowany numer telefonu. |
Tabela pomocnicza: flags
Właściwość |
Wartość |
Opis |
name |
string |
Nazwa flagi. |
uuid |
uuid |
Wartość identyfikująca rekord. |
color |
string |
Kolor flagi. |
relUuid |
uuid |
Wartość identyfikująca relacje. |
Przykład odpowiedzi
{
"success":true,
"data":[
{
"to":{
"type":"unknown",
"number":"+48 777 888 999",
"numberNotFormatted":48777888999
},
"from":{
"type":"unknown",
"number":"+48 555 555 555",
"numberNotFormatted":48555555555
},
"userTalk":{
"status":"queue",
"receivers":[
{
"internal":107,
"uuid":"fdf75d0c-fc9f-41dc-9a54-af2121db989b",
"firstName":"Jan",
"lastName":"Kowalski"
}
]
},
"uuid":"e4baaa94-095a-41b3-b638-203dcfcfd3fe",
"callDirection":"IN",
"callDate":"2022-12-29 11:24:57",
"duration":368,
"destination":"Połączenie Przychodzące",
"cost":0,
"service":"CALL",
"smsData":null,
"note":1,
"externalNumber":{
"numberNotFormatted":48333333333,
"numberFormatted":"+48 333 333 333",
"type":"unknown"
},
"flags": [
{
"name": "Billing",
"uuid": "62bd7385-c4ba-46f5-94b5-2fae4ebc87d4",
"color": "#fa702e",
"reluuid": "9fb11e8a-099e-4ea8-8f17-fdf095f06637"
}
],
"status":"ANSWERED"
}
],
"otherData":{
"totalCount":8437
},
"message":"OK"
}
2. Pobranie notatek powiązanych z danym zdarzeniem
Metoda pozwala na pobranie notatek powiązanych z danym zdarzeniem (połączeniem, SMSem, faksem).
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/notes
Dodatkowo, obowiązkowo należy podać wartość callHistory aby wyświetlić notatki właśnie z tego konkretnego zdarzenia z bilingu. Przykładowo:
{twoja_nazwa}.ccrm.pl/publicApi/notes?callHistory=337b7045-c171-4c8c-946b-ba123e91c369
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
string |
|
data.text |
string |
Właściwy tekst notatki. |
data.created |
datetime |
Data utworzenia notatki. |
data.uuid |
uuid |
Unikalny identyfikator notatki. |
data.user.firstName |
string |
Imię autora (użytkownika CRM) notatki. |
data.user.lastName |
string |
Nazwisko autora (użytkownika CRM) notatki. |
data.user.uuid |
uuid |
Unikalny identyfikator autora (użytkownika CRM) notatki. |
data.status |
string |
Informacja czy notatka istnieje lub czy została usunięta. |
data.call |
object |
Wskazuje powiązanie notatki ze zdarzeniem z historii kontaktu. Szerszy opis w pomocniczej tabeli note call. |
organisation |
object |
Informacja czy notatka jest powiązana z profilem organizacji z kontaktów. Szerszy opis w pomocniczej tabeli note organisation. |
person |
object |
Informacja czy notatka jest powiązana z profilem osoby z kontaktów. Szerszy opis w pomocniczej tabeli note person. |
pin |
int |
Informacja czy notatka została przypięta. |
files |
array |
Informacja o załączonych plikach. Szerszy opis w pomocniczej tabeli files. |
edit |
int |
Informacja czy notatka była edytowana. |
Tabela pomocnicza: note call
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca rekord historii kontaktu. |
callDate |
datetime |
Data i czas rekordu w historii kontaktu. |
callDirection |
string |
Kierunek połączenia. Możliwe wartości in, out, internal. |
service |
string |
Rodzaj zdarzenia bilingowego. Możliwe wartości call, sms, fax. |
externalNumber.numberNotFormatted |
string |
Niesformatowany, zewnętrzny numer telefonu. |
externalNumber.numberFormatted |
string |
Sformatowany, zewnętrzny numer telefonu. |
Tabela pomocnicza: note files
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca plik. |
uploadedAt |
datetime |
Data i czas wysłania pliku. |
relatedTo |
string |
Powiązanie pliku, domyślnie „note”. |
mimeType |
string |
Format pliku. |
fileExtension |
string |
Rozszerzenie pliku. |
fileSize |
int |
Rozmiar pliku. |
fileDescription |
string |
Opis pliku. |
fileName |
string |
Nazwa pliku. |
Tabela pomocnicza: note peson
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca kontakt. |
firstName |
string |
Imię. |
lastName |
string |
Nazwisko. |
Tabela pomocnicza: note organisation
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca organizację. |
name |
string |
Nazwa organizacji. |
Przykład odpowiedzi
{
"success":true,
"data":[
{
"text":"{"blocks":[{"key":"be2bp","text":"Notatka do tego połączenia","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[],"data":{}}],"entityMap":{}}",
"created":"2022-12-29 12:13:35",
"uuid":"1fa7bda9-e853-43d6-9b3c-c194ad59cefd",
"user":{
"firstName":"Jan",
"lastName":"Kowalski",
"uuid":"a26b956b-ce46-48f4-a1bd-b657136d4148"
},
"status":"exist",
"call":{
"uuid":"e4baaa94-095a-41b3-b638-203dcfcfd3fe",
"callDate":"2022-12-29 10:24:57",
"callDirection":"IN",
"service":"CALL",
"externalNumber":{
"numberNotFormatted":48777888999,
"numberFormatted":"+48 777 888 999"
}
},
"organisation":null,
"person":null,
"pin":0,
"files":{
},
"edit":1,
}
],
"otherData":{
"totalCount":1
},
"message":"OK"
}
Import kontaktów
Metody pozwalają na zaimportowanie oraz zarządzanie wykonanymi importami kontaktów do TeleCube CRM. Import może zostać wykonany zarówno do kategorii osób jak i organizacji, każdorazowo osobnym zleceniem.
1. Pobranie listy wykonanych importów
Metoda umożliwia pobranie listy uprzednio wykonanych importów.
Metoda: GET
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/importData
Metoda stosuje stronicowanie powyżej 1000 rekordów. API zwróci zawsze maksymalnie 1000 rekordów, a o resztę należy zapytać dodając do adresu page={numer_strony}. Przykładowo, dla sytuacji gdzie jest więcej niż 1000 rekordów stosujemy:
{twoja_nazwa}.ccrm.pl/publicApi/importData?page=2
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
uuid |
uuid |
Wartość identyfikująca plik. |
fileName |
string |
Nazwa pliku. |
from |
string |
Źródło danych. |
resource |
string |
Importowany zasób. |
created |
datetime |
Data i godzina. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":[
{
"uuid":"f42f4011-7bb7-4624-a039-2417a53caec9",
"fileName":"Import.csv",
"status":"rollbackFinish",
"from":"file",
"resource":"people",
"created":"2022-12-29 15:24:42"
},
{
"uuid":"215113ce-d19e-4cd0-b250-8111f00bdb7e",
"fileName":"people.csv",
"status":"finish",
"from":"file",
"resource":"people",
"created":"2022-10-25 11:27:50"
},
{
"uuid":"ab205d0e-3e59-4cc5-b8da-1462cba88622",
"fileName":"exportPerson-2022-10-24-12 23 38.csv",
"status":"finish",
"from":"file",
"resource":"people",
"created":"2022-10-25 09:41:15"
},
],
"otherData":{
"totalCount":3
},
"message":"OK"
}
2. Wykonanie importu
Aby poprawnie wykonać import, należy wykonać poszczególne czynności zgodnie z podaną kolejnością:
- Wskazać plik do importu.
- Pobrać listę pól możliwych do wykonania mapowania.
- Wykonać mapowanie, tj, wskazać powiązanie między polem z pliku a polami z CRM.
- Wykonać import.
2.1 Wskazanie pliku do importu
Metoda pozwala na wgranie posiadanego pliku do mechanizmu importu.
Metoda: POST
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/importData/file
Struktura żądania
Właściwość |
Obligatoryjne |
Wartość |
Opis |
resource |
TAK |
in:people,organisation |
|
file |
TAK |
mimes:json,csv,txt |
|
separator |
|
null |string |
Najczęściej “,” lub “;”. |
message |
|
string |
|
Przykład żądania
{
"resource":"people",
"file":"{plik}",
"separator":null
}
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data.uuid |
uuid |
Wartość identyfikująca rekord. |
data.paramfileName |
string |
Nazwa pliku. |
data.param.mimeType |
string |
Format danych. |
data.mappingColumn |
array | null |
Lista powiązanych kolumn z pliku z nazwami kolumn w systemie CRM. |
data.info.totalCount |
int |
Ilość rekordów w pliku. |
data.dataColumns |
array |
Kolumny danych z pliku. |
data.status |
string in: userInteraction, readyToImport, finish, rollbackFinish |
Status importu. |
data.from |
string |
Źródło importu. |
data.resource |
string |
Zasób importu. |
data.created |
datetime |
Data wysłania pliku. |
otherData.totalCount |
int |
Ilość stworzonych rekordów. |
message |
string |
|
Przykład odpowiedzi
{
"success":true,
"data":{
"uuid":"d2c6d108-a97e-4b7b-ad1a-2b6a5be1f210",
"param":{
"fileName":"importFile/bbwrmTAXOeIq417cCoLVLmd2WWdXlX4HG6WZoWHd.txt",
"mimeType":"text/plain"
},
"mappingColumn":null,
"info":{
"totalCount":1
},
"dataColumns":[
"Imię",
"Nazwisko",
"Miasto"
],
"status":"user_interaction",
"from":"file",
"resource":"people",
"created":"2022-12-29 20:47:36"
},
"otherData":{
"totalCount":1
},
"message":"OK"
}
2.2 Pobranie listy pól możliwych do wykonania mapowania
Metoda pozwala na pobranie listy możliwych pól (w tym utworzonych pól własnych dla kontaktów), które w dalszym kroku będzie można powiązać z kolumnami arkusza, aby prawidłowo wskazać powiązanie danych.
Metoda: GET
Adres URL (dla osób): {twoja_nazwa}.ccrm.pl/publicApi/importData/availableFields/people
Adres URL (dla organizacji): {twoja_nazwa}.ccrm.pl/publicApi/importData/availableFields/organisation
Struktura odpowiedzi
Właściwość |
Wartość |
Opis |
success |
bool |
|
data |
array |
Lista możliwych pól do mapowania. |
otherData |
array |
|
message |
string |
|
Przykład odpowiedzi
{
"success": true,
"data": [
"First name",
"Middle name",
"Last name",
"Pesel",
"Description",
"Phone 1",
"Phone 1 Name",
"Phone 2",
"Phone 2 Name",
"Phone 3",
"Phone 3 Name",
"Email 1",
"Email 1 Name",
"Email 2",
"Email 2 Name",
"Email 3",
"Email 3 Name",
"Doc type Name",
"Id Doc Type",
"Doc number",
"Doc issuer",
"Address 1 Name",
"Address 1 street",
"Address 1 building no",
"Address 1 local no",
"Address 1 postcode",
"Address 1 city",
"Address 1 voivodeship",
"Address 1 country",
"Address 1 district",
"Address 2 Name",
"Address 2 street",
"Address 2 building no",
"Address 2 local no",
"Address 2 postcode",
"Address 2 city",
"Address 2 voivodeship",
"Address 2 country",
"Address 2 district",
"Address 3 Name",
"Address 3 street",
"Address 3 building no",
"Address 3 local no",
"Address 3 postcode",
"Address 3 city",
"Address 3 voivodeship",
"Address 3 country",
"Address 3 district",
"Tag",
"Watcher",
"Manager",
"Data zamówienia",
],
"otherData": [],
"message": "OK"
}
2.3 Wykonanie mapowania
Metoda pozwala na dokonanie mapowania pomiędzy polami dostępnymi w CRM a kolumnami z arkusza. Każda kolumna powinna być powiązana wyłącznie z jednym polem.
Metoda: POST
Adres URL: www.{twoja_nazwa}.ccrm.pl/publicApi/importData/mapping/{uuid}
Struktura żądania
Właściwość |
Wartość |
Opis |
mapping |
object |
Lista nazw pól z pliku w połączeniu z nazwami systemowymi CRM. |
Przykład żądania
{
"mapping":{
"Imię":"First name",
"Nazwisko":"Last name",
"Miasto":"Address 1 city"
}
}
Struktura odpowiedzi
Właściwość |
Wartość |
success |
bool |
data |
array |
otherData |
array |
message |
string |
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
": "OK"
}
2.4 Wykonanie importu
Metoda: POST
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/importData/import/{uuid}
Struktura odpowiedzi
Właściwość |
Wartość |
success |
bool |
data |
array |
otherData |
array |
message |
string |
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
3. Wycofanie importu
Metoda pozwala na wycofanie uprzednio wykonanego importu danych.
Metoda: POST
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/importData/rollback/{uuid}
Struktura odpowiedzi
Właściwość |
Wartość |
success |
bool |
data |
array |
otherData |
array |
message |
string |
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
4. Usunięcie pliku importu
Metoda pozwala na usunięcie wcześniej importowanego pliku. Przed wykonaniem tej metody, należy wcześniej wycofać import przy użyciu metody powyżej.
Metoda: DELETE
Adres URL: {twoja_nazwa}.ccrm.pl/publicApi/importData/{uuid}
Struktura odpowiedzi
Właściwość |
Wartość |
success |
bool |
data |
array |
otherData |
array |
message |
string |
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
Eksport kontaktów
Metoda pozwala na eksport danych o kontaktach zapisanych w CRM.
Dane możliwe do wyeksportowania dla kontaktów (osób)
Właściwość |
Wartość |
Opis |
firstName |
string |
Imię. |
middleName |
null | string |
Drugie imię. |
lastName |
string |
Nazwisko. |
pesel |
null | PESEL |
PESEL. |
description |
null | string |
Opis. |
phone1 |
null | phone |
Numer telefonu 1. |
phone1Name |
null | string |
Nazwa numeru telefonu 1. |
phone2 |
null | phone |
Numer telefonu 2. |
phone2Name |
null | string |
Nazwa numeru telefonu 2. |
phone3 |
null | phone |
Numer telefonu 3. |
phone3Name |
null | string |
Nazwa numeru telefonu 3. |
email1 |
null | email |
Adres e-mail 1. |
email1Name |
null | string |
Nazwa adresu e-mail 1. |
email2 |
null | email |
Adres e-mail 2. |
email2Name |
null | string |
Nazwa adresu e-mail 2. |
email3 |
null | email |
Adres e-mail 3. |
email3Name |
null | string |
Nazwa adresu e-mail 3. |
idDocType |
null | string |
Dokument potwierdzający tożsamość. |
idDocNumber |
null | string |
Numer dokumentu tożsamości. |
idDocIssuer |
null | string |
Organ wydający dokument tożsamości. |
addresses |
null | array |
Adresy powiązane z osobą, maksymalnie 3 adresy. |
addresses.*.name |
string |
Nazwa adresu (np. Siedziby, korespondencyjny). |
addresses.*.street |
null | string |
Ulica. |
addresses.*.city |
null | string |
Miasto. |
addresses.*.postcode |
null | string |
Kod pocztowy. |
addresses.*.building_no |
null | string |
Numer budynku. |
addresses.*.local_no |
null | string |
Numer lokalu. |
addresses.*.voivodeship |
null | string |
Województwo. |
addresses.*.country |
null | string |
Kraj. |
addresses.*.district |
null | string |
Powiat. |
organisations |
null | array |
Powiązanie z organizacją istniejącą w bazie CRM. |
organisations.* |
uuid |
Organizacja. |
supervisors |
null | array |
Opiekunowie i obserwatorzy. |
supervisors.*.user |
uuid |
Użytkownik wskazany jako opiekun lub obserwator. |
supervisors.*.role |
string |
Rola użytkownika (manager- opiekun, watcher- obserwator). |
customFields.*.uuid |
uuid |
Własne pola utworzone dla profilu organizacji. |
Dane możliwe do wyeksportowania dla kontaktów (organizacji)
Właściwość |
Wartość |
Opis |
name |
string |
Nazwa. |
description |
null | string |
Opis. |
phone1 |
null | phone |
Numer telefonu 1. |
phone1Name |
null | string |
Nazwa numeru telefonu 1. |
phone2 |
null | phone |
Numer telefonu 2. |
phone2Name |
null | string |
Nazwa numeru telefonu 2. |
phone3 |
null | phone |
Numer telefonu 3. |
phone3Name |
null | string |
Nazwa numeru telefonu 3. |
email1 |
null | email |
Adres e-mail 1. |
email1Name |
null | string |
Nazwa adresu e-mail 1. |
email2 |
null | email |
Adres e-mail 2. |
email2Name |
null | string |
Nazwa adresu e-mail 2. |
email3 |
null | email |
Adres e-mail 3. |
email3Name |
null | string |
Nazwa adresu e-mail 3. |
nip |
null | nip |
NIP podmiotu. |
regon |
null | regon |
REGON podmiotu. |
registry |
null | string |
Rejestr właściwy dla podmiotu (KRS, CEIDG, REGON). |
addresses |
null | array |
Adresy powiązane z podmiotem, maksymalnie 3 adresy. |
addresses.*.name |
string |
Nazwa adresu (np. Siedziby, korespondencyjny). |
addresses.*.street |
null | string |
Ulica. |
addresses.*.city |
null | string |
Miasto. |
addresses.*.postcode |
null | string |
Kod pocztowy. |
addresses.*.building_no |
null | string |
Numer budynku. |
addresses.*.local_no |
null | string |
Numer lokalu. |
addresses.*.voivodeship |
null | string |
Województwo. |
addresses.*.country |
null | string |
Kraj. |
addresses.*.district |
null | string |
Powiat. |
people |
null | array |
Osoby powiązane z podmiotem (osoby z kontaktów). |
people.* |
uuid |
Osoba powiązana (osoba z kontaktów). |
supervisors |
null | array |
Opiekunowie i obserwatorzy. |
supervisors.*.user |
uuid |
Użytkownik wskazany jako opiekun lub obserwator. |
supervisors.*.role |
string |
Rola użytkownika (manager- opiekun, watcher- obserwator). |
customFields.*.uuid |
uuid |
Własne pola utworzone dla profilu organizacji. |
Metoda: POST
Adres URL (dla osób): {twoja_nazwa}.ccrm.pl/publicApi/people/export
Adres URL (dla organizacji): {twoja_nazwa}.ccrm.pl/publicApi/organisations/export
Struktura żądania
Właściwość |
Wartość |
Opis |
columns |
array |
|
columns.* |
string |
Nazwa kolumny. |
pushUrl |
string |
Adres URL na który API ma wysłać link do pobrania wygenerowanego pliku. |
Przykład żądania
{
"columns":[
"firstName",
"middleName",
"lastName"
],
"pushUrl":"{adres_twojego_api_do_wysyłki_pliku}"
}
Struktura odpowiedzi
Właściwość |
Wartość |
success |
bool |
data |
string |
otherData |
object |
message |
string |
Przykład odpowiedzi
{
"success":true,
"data":"OK",
"otherData":{
},
"message":"OK"
}
Po wygenerowaniu pliku, API wyśle na wskazany w żądaniu adres URL (metodą POST) link do pobrania pliku o następującej strukturze:
{
url: "https://{twoja_nazwa}.ccrm.pl/api/storage/download/d333a333-f9f8-4d33-a333-fb3b3333attb"
}
Aby pobrać plik z linku, należy korzystać z tego samego adresu IP, który był użyty przy wysłaniu żądania o jego wygenerowanie.