API CRM

Dokumentacja API

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.

image-1674566228447.png

3. Dzięki temu wygenerowany zostanie Twój unikalny klucz API, który pozwoli na autoryzację zapytań z API CRM.

image-1674566436546.png

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.

image-1676638844394.png

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

email

email

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

email

email

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:
person, organisation.

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.

email

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.

email

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

  1. Wskazać plik do importu.
  2. Pobrać listę pól możliwych do wykonania mapowania.
  3. Wykonać mapowanie, tj, wskazać powiązanie między polem z pliku a polami z CRM.
  4. 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.