[Intum](https://intum.pl/pomoc.md) / [Automatyzacja](https://intum.pl/pomoc/automatyzacja.md)

# [Zadania cykliczne bez dubli](https://intum.pl/pomoc/automatyzacja/zadania-cykliczne-bez-dubli.md) | [API](#api)

Zadania cykliczne znajdziesz w **Organize > Ustawienia > Zadania cykliczne**. Stamtąd możesz tworzyć nowe i edytować istniejące.

Standardowo zadanie cykliczne tworzy nowe zadanie przy każdym uruchomieniu. Jeśli poprzednie nie zostało zamknięte, w systemie pojawiają się duplikaty tego samego tematu. Np. "Sprawdź faktury" może się nakładać tygodniowo i po miesiącu mamy 4 otwarte zadania o tym samym.

Pole **group_period** w zadaniach cyklicznych rozwiązuje ten problem. Zamiast tworzyć kolejne zadanie, system szuka istniejącego w danym okresie i je ponownie wykorzystuje.

## Jak to działa

W formularzu zadania cyklicznego jest pole "Grupowanie w okresie" z opcjami:

- **week** - jedno zadanie na tydzień
- **month** - jedno na miesiąc
- **quarter** - jedno na kwartał
- **year** - jedno na rok
- **all** - zawsze to samo zadanie, bez względu na okres

Gdy pole jest ustawione, przy kolejnym uruchomieniu cykliczności system sprawdza czy w danym okresie istnieje już zadanie utworzone przez ten recurring. Jeśli tak:

1. Nie tworzy nowego zadania
2. Jeśli istniejące zadanie jest zamknięte, otwiera je ponownie
3. Aktualizuje datę wykonania na nową
4. Jeśli zmienił się odpowiedzialny (bo np. ktoś edytował recurring), dodaje komentarz o zmianie przypisania

Jeśli w danym okresie nie ma jeszcze zadania, tworzy nowe normalnie.

## Przykład

Recurring "Przegląd faktur kosztowych" ustawiony na co tydzień z `group_period: week`.

Poniedziałek: system tworzy zadanie i przypisuje do Ani.
Środa: recurring odpala się ponownie (bo np. ktoś ręcznie uruchomił), ale zadanie z tego tygodnia już istnieje. Nic się nie dzieje.
Następny poniedziałek: nowy tydzień, nowe zadanie.

Gdyby Ania nie zamknęła zadania z poprzedniego tygodnia, ono zostaje takie jakie jest, tylko zmieni się data wykonania i zadanie pójdzie na górę listy. Nowe zadanie powstaje tylko dla nowego okresu.

## Kiedy używać

Pole `group_period` ma sens przy zadaniach, które dotyczą konkretnego okresu rozliczeniowego albo powtarzalnej czynności, gdzie drugi egzemplarz nie wnosi nic nowego. Typowe przypadki:

- miesięczne rozliczenia i raporty
- cotygodniowe przeglądy (backlog, faktury, tickety)
- kwartalne audyty
- roczne odnowienia (certyfikaty, licencje, umowy)

Dla zadań gdzie każde wystąpienie jest osobną sprawą (np. "Wyślij newsletter"), lepiej zostawić pole puste i pozwolić systemowi tworzyć nowe zadania normalnie.

---

## API

### Ogólne API

# Intum API

Dokumentacja API platformy [Intum](https://intum.pl) - system operacyjny firmy.

## Host

Host jest zawsze taki sam jak adres konta: `xxxx.intum.com` lub `xxx.intum.pl` (w zależności od ustawień konta)

## Autoryzacja

Wszystkie requesty API wymagają `api_token`:
- header: `Authorization: Bearer TOKEN`

Token możesz wygenerować w **Ustawienia Konta** → **Tokeny API**

## Organize::Recurring - pole group_period

Pole `group_period` (string) w zadaniach cyklicznych.

Dozwolone wartości: `week`, `month`, `quarter`, `year`, `all`, `null`.

### Tworzenie zadania cyklicznego z grupowaniem

```
POST /organize/recurrings.json
{
  "recurring": {
    "name": "Przegląd faktur kosztowych",
    "kind": "task",
    "every": "week",
    "at": "09:00",
    "start_date": "2026-04-21",
    "group_period": "month",
    "fields": {
      "task": {
        "title": "Przegląd faktur kosztowych",
        "content": "Sprawdź nowe faktury i przypisz do projektów",
        "priority": "normal"
      }
    }
  }
}
```

### Zmiana grupowania w istniejącym recurring

```
PATCH /organize/recurrings/123.json
{
  "recurring": {
    "group_period": "week"
  }
}
```

### Wyłączenie grupowania

```
PATCH /organize/recurrings/123.json
{
  "recurring": {
    "group_period": null
  }
}
```

Ustawienie `group_period` na `null` przywraca standardowe zachowanie (nowe zadanie przy każdym uruchomieniu).

### Zachowanie

Gdy `group_period` jest ustawione, system przy uruchomieniu recurring:

1. Szuka istniejącego zadania utworzonego przez ten recurring w bieżącym okresie
2. Jeśli znajdzie i jest zamknięte - otwiera je ponownie i aktualizuje datę wykonania
3. Jeśli znajdzie i jest otwarte - nic nie robi
4. Jeśli nie znajdzie - tworzy nowe zadanie