Tok rada: OKR Ciklus — Planiranje i Evaluacija
Uključeni moduli: OKR (Cirkulacija · OKR-ovi · Ključni rezultati · Check-in · Odobravanje) · Ciljevi · DataPulse
Ko ga koristi: Menadžment · Menadžeri odeljenja · Svi zaposleni
Tipično trajanje: Jedan ciklus = 1 kvartal ili 1 godina (konfigurisano u Cirkulaciji)
Pregled
Modul OKR implementira metodologiju Ciljeva i Ključnih rezultata (Objectives & Key Results). Kompletni ciklus pokriva: definisanje perioda (Cirkulacija), kreiranje ciljeva sa merljivim ključnim rezultatima (OKR + Ključni rezultati), periodične check-in-ove o napretku sa opcionalnim hijerarhijskim odobravanjem i zatvaranje ciklusa kada napredak dostigne 100%.
Važne distinkcije:
- OKR = subjektivni napredak na korisnički definisanim ciljevima (periodični check-in)
- Ciljevi = poseban modul; automatski prati stvarne CRM metrike (fakture, potencijalni klijenti, ugovori) u odnosu na numerički cilj — bez manuelnog check-in-a
- DataPulse = analitička kontrolna tabla samo za čitanje; nema sopstvene tabele, ne integriše se sa OKR-om
tblhr_checkinsiz HR modula = fizičko prisustvo (vreme početka/kraja na radnom mestu) — nema veze sa OKR check-in-ovima
Obavezan uslov: Bez najmanje jednog zapisa u
tblokr_setting_circulationsa važećimfrom_date/to_date, OKR modul ne funkcioniše ispravno. Ovo je prvo podešavanje koje treba konfigurisati.
Dijagram toka
[PODEŠAVANJE CIKLUSA — admin, jednom po periodu]
│
├── Cirkulacija: definisanje perioda (npr. K1 2026: 01.01–31.03)
├── Jedinice: jedinice mere (%, RSD, broj stavki)
├── Pitanja: pitanja prikazana na svakom check-in-u
├── Kriterijumi evaluacije: bodovi evaluacije po kriterijumu
└── Podešavanje odobravanja (opciono): ko odobrava check-in-ove
│
↓
[KREIRANJE OKR-A]
│
├── Tip: Lični (1) · Odeljenje (2) · Kompanija (3)
├── Prikaz: Javni (1) · Privatni (2)
├── Cilj + Ključni rezultati (cilj, jedinica, plan)
└── approval_status = 0 (nacrt)
│
↓
[PERIODIČNI CHECK-IN]
│
├── Korisnik otvara okr/checkin_detailt/{id}
├── Popunjava po Ključnom rezultatu: achieved, progress (0–100%), confidence_level
├── Popunjava: evaluation_criteria (bod), komentar, odgovore na Pitanja
├── Postavlja: recently_checkin (danas) + upcoming_checkin (budući datum)
└── Podnosi → approval_status = 3 (Čeka odobrenje)
│
↓
[ODOBRAVANJE CHECK-IN-A]
│
├── Ako NE POSTOJI Podešavanje odobravanja za relevantno odeljenje/OKR:
│ → approval_status = 1 (Automatski odobreno) ← odmah
│
└── Ako POSTOJI Podešavanje odobravanja:
├── Sistem razrešava odobravače (direct_manager / department_manager / fixed staff)
├── Obaveštenje poslato prvom odobravatelju
├── Odobravač odobrava (approve=1) ili odbija (approve=-1)
│ → Ako svi odobrere: approval_status = 1
│ → Ako neko odbije: approval_status = 2
└── Kreator obavešten sa approved_checkin / rejected_checkin
│
↓
[NAPREDAK AŽURIRAN]
│
├── okrs.progress = prosek svih vrednosti napretka Ključnih rezultata
├── Ako progress = 100% → okrs.status = 1 (Završeno)
└── Nepromenljiv zapis u tblokrs_checkin_log (kompletni snimak stanja)
│
↓
[ZATVARANJE CIKLUSA]
│
├── OKR-ovi sa status=1 (Završeno) su potpuno ostvareni
├── Izveštaj ciklusa: napredak · nivoi poverenja · istorija check-in-a
└── Admin može pregledati izveštaje (zahteva dozvolu reports → view)
[CIKLUS ZATVOREN ✓]
Korak po korak
1. Konfiguracija ciklusa (admin)
Gde: /admin/okr → Podešavanja
1a. Cirkulacija — obavezno
Kartica: Podešavanja → Cirkulacija → Dodaj Cirkulaciju
| Polje | Tip | Opis |
|---|---|---|
name_circulation |
varchar | Npr. "K1 2026", "Godišnji 2026" |
from_date |
DATE | Prvi dan perioda |
to_date |
DATE | Poslednji dan perioda |
Sistem automatski detektuje trenutni ciklus putem MONTH(NOW()) = month(from_date) AND YEAR(from_date) = YEAR(NOW()). Ako ne postoji ciklus sa from_date u tekućem mesecu, novi OKR-ovi ne mogu biti vezani za aktivan ciklus.
1b. Jedinice
Kartica: Podešavanja → Jedinice → Dodaj Jedinicu
Primeri: %, RSD, USD, Stavke, Br. klijenata. Jedinice se biraju na svakom Ključnom rezultatu.
1c. Pitanja (opciono)
Kartica: Podešavanja → Pitanja → Dodaj Pitanje
Pitanja konfigurisana ovde pojavljuju se obavezno na formularu za check-in za sve korisnike. Npr. "Šta je išlo dobro?", "Koji blokeri postoje?", "Kakva pomoć vam je potrebna?".
1d. Kriterijumi evaluacije (opciono)
Kartica: Podešavanja → Kriterijumi evaluacije → Dodaj Kriterijum
Numerički bodovi na definisanim kriterijumima (npr. group_criteria=1, name="Kvalitet rezultata", scores=85). Na check-in-u, korisnik bira kriterijum i sistem evidentira bod.
1e. Podešavanje odobravanja (opciono)
Kartica: Podešavanja → Proces odobravanja → Dodaj Odobravanje
Ako ne konfigurišete nijedna pravila odobravanja, svi check-in-ovi se automatski odobravaju (approval_status = 1 odmah posle podnošenja).
| Polje | Opis |
|---|---|
name |
Naziv pravila |
department |
ID-jevi ciljanih odeljenja (pretraga FIND_IN_SET) |
okrs |
ID-jevi specifičnih ciljanih OKR-ova (alternativa odeljenju) |
setting |
JSON sa lancem odobravača (čvorovi) |
choose_when_approving |
0 = sistem automatski razrešava odobravača; 1 = korisnik bira odobravača pri check-in-u |
number_day_approval |
Rok u danima za svakog odobravača |
notification_recipient |
Dodatno obavešteno osoblje (CC) |
Tipovi odobravača u JSON setting:
| Tip odobravača | Kako se razrešava |
|---|---|
direct_manager |
tblstaff.team_manage korisnika koji radi check-in |
department_manager |
tbldepartments.manager_id odeljenja OKR-a |
staff |
Fiksni staffid eksplicitno naveden |
Napomena: Za
direct_manageridepartment_manager, poljeteam_managena osoblju imanager_idna odeljenju moraju biti popunjeni. Ako nedostaju, razrešavanje ne uspeva i check-in može ostati blokiran.
2. Kreiranje OKR-a
Gde: /admin/okr → Novi OKR
| Polje | Vrednosti | Napomene |
|---|---|---|
type |
1=Lični · 2=Odeljenje · 3=Kompanija |
Lični: person_assigned = trenutni korisnik |
display |
1=Javni · 2=Privatni |
Privatni: vidljiv samo vlasniku + kreatoru |
circulation |
FK → tblokr_setting_circulation | Aktivan ciklus |
okr_superior |
FK → drugi OKR | Nadređeni OKR (za hijerarhiju OKR-ova) |
okr_cross |
lista ID-jeva | Unakrsno referencisani OKR-ovi |
category |
FK → tblokr_setting_category | Kategorija cilja |
Potrebna dozvola:
okr → viewILIokr → view_ownILIis_admin(). Korisnici saview_ownmogu kreirati samo lične OKR-ove (type=1) dodeljene sebi.
Ključni rezultati
Dodaju se posle kreiranja OKR-a. Svaki Ključni rezultat ima:
| Polje | Opis |
|---|---|
main_results |
Opis ključnog rezultata |
target |
Ciljna vrednost (broj) |
unit |
FK → tblokr_setting_unit |
plan |
Plan akcije |
tasks |
ID-jevi CRM Zadataka povezanih sa ovim Ključnim rezultatom |
3. Periodični check-in
Gde: /admin/okr → kliknuti na OKR → dugme Check-in
Uslov pristupa: approval_status mora biti 0 (nacrt) ili 1 (odobreno). Ako je 2 (odbijeno) ili 3 (na čekanju), dugme za check-in je skriveno.
Na svakom check-in-u, sistem potpuno zamenjuje redove u tblokrs_checkin za taj OKR (ne dodaje — prepisuje trenutno stanje). Istorija se čuva u tblokrs_checkin_log (nepromenljivo).
Polja koja se popunjavaju po Ključnom rezultatu:
| Polje | Obavezno | Opis |
|---|---|---|
achieved |
Da | Trenutno ostvarena vrednost |
progress |
Da | Procenat 0–100 |
confidence_level |
Da | 1=Dobro je · 2=Nije baš dobro · 3=Veoma dobro |
evaluation_criteria |
Ako je konfigurisano | Bod iz definisane mreže |
comment |
Ne | Slobodni komentar |
answer |
Ako postoje Pitanja | Odgovori na pitanja iz Podešavanja |
Polja na nivou OKR-a:
| Polje | Opis |
|---|---|
recently_checkin |
Današnji datum (trenutni check-in) |
upcoming_checkin |
Planirani datum sledećeg check-in-a |
Obračun ukupnog napretka:
total_progress = (zbir svih vrednosti napretka KR) / (broj KR × 100) × 100
Ako je total_progress = 100 → okrs.status = 1 (Završeno) i complete_okrs = 1.
4. Tok odobravanja
Bez konfigurisanih pravila odobravanja: check-in se automatski odobrava (approval_status = 1) odmah po podnošenju.
Sa pravilima odobravanja:
Podnošenje check-in-a
→ approval_status = 3 (Na čekanju)
→ sistem pretražuje Podešavanje odobravanja putem FIND_IN_SET(department) ili FIND_IN_SET(okrs_id)
→ prvi odobravač obavešten
Odobravač otvara zahtev → odobrava ili odbija
→ svi odobravači odobrere → approval_status = 1
→ neko odbije → approval_status = 2
→ kreator obavešten
Ako je choose_when_approving = 1, korisnik koji radi check-in manuelno bira odobravača sa padajućeg menija u trenutku podnošenja.
5. Ciljevi — poseban modul
Gde: /admin/goals
Ciljevi automatski prate stvarne CRM metrike u odnosu na numerički cilj. Bez manuelnog check-in-a, bez odobravanja.
goal_type |
Šta automatski meri |
|---|---|
1 |
Primljene uplate (iz tblinvoicepaymentrecords) |
2 |
Potencijalni klijenti konvertovani u klijente |
3 |
Novi klijenti iz potencijalnih klijenata |
4 |
Svi novi klijenti |
5 |
Ugovori dodati (po tipu) |
6 |
Konvertovani predlozi |
7 |
Ugovori po datumu početka |
8 |
Ukupne fakture |
Na kraju perioda (end_date), ako cilj nije dostignut i notify_when_fail=1, sistem šalje obaveštenje. Slično za dostizanje cilja sa notify_when_achieve=1.
6. DataPulse
Gde: /admin/datapulse
Analitička kontrolna tabla samo za čitanje sa 16 tipova grafikona (plaćanja po agentu, klijenti po okrugu, potencijalni klijenti po izvoru, evidentirano vreme po zaposlenom itd.). Nema sopstvene tabele — čita direktno iz centralnih CRM tabela. Ne zahteva konfiguraciju i nema granularne dozvole (svaki autentifikovani zaposleni može pristupiti).
Statusi OKR-a
| Polje | Vrednost | Oznaka |
|---|---|---|
okrs.status |
0 |
Nezavršeno |
okrs.status |
1 |
Završeno (postavljeno automatski kada progress=100%) |
okrs.approval_status |
0 |
Nacrt |
okrs.approval_status |
1 |
Odobreno |
okrs.approval_status |
2 |
Odbijeno |
okrs.approval_status |
3 |
Čeka odobrenje |
Potrebne dozvole
| Dozvola | Pristup |
|---|---|
okr → view |
Pregled svih OKR-ova u sistemu |
okr → view_own |
Pregled samo sopstvenih OKR-ova (person_assigned = self ili creator = self) |
okr → edit |
Izmena OKR-ova (view_own može samo menjati sopstvene) |
okr → delete |
Brisanje |
| Podešavanja OKR-a | Isključivo is_admin() |
reports → view |
Pristup sekciji Izveštaja u OKR-u |
Česti problemi
| Problem | Uzrok | Rešenje |
|---|---|---|
| OKR-ovi se ne pojavljuju na kontrolnoj tabli | Nedostaje Cirkulacija sa from_date u tekućem mesecu |
Kreirati ciklus sa from_date = prvi dan tekućeg meseca |
| Dugme za check-in se ne pojavljuje | approval_status je 2 ili 3 |
Odobravač mora obraditi prethodni zahtev pre novog check-in-a |
| Odobravač ne prima obaveštenje | team_manage ili manager_id nisu postavljeni na osoblju/odeljenju |
Popuniti polja u HR → Osoblje i Podešavanja → Odeljenja |
| Check-in je obrisao prethodni napredak | Ispravno ponašanje — check-in prepisuje trenutno stanje | Kompletna istorija nalazi se u tblokrs_checkin_log |
choose_when_approving=1 ali padajući meni se ne pojavljuje |
Odobravač nije postavljen u approval_setting | Proveriti da je choose_when_approving=1 u odgovarajućem podešavanju |
Reference modula
- OKR — dokumentacija modula
- Ciljevi — automatski CRM ciljevi
- DataPulse — analitička kontrolna tabla
- HR — Osoblje — polje
team_manageza direct_manager - HR — Platni spisak — bonus_kpi napajan iz OKR napretka