[Intum](https://intum.pl/pomoc.md) / [Konto](https://intum.pl/pomoc/konto.md)

# [Crony - cykliczne zadania na koncie](https://intum.pl/pomoc/konto/crony.md) | [API](#api)

Crony to cykliczne zadania, które system wykonuje automatycznie według ustalonego harmonogramu, np. nocne przeliczanie raportów telefonicznych albo uruchamianie własnej automatyzacji co godzinę. Listę cronów znajdziesz w menu **Konto → Cykliczne akcje**. Dostęp ma administrator i właściciel konta (uprawnienie "Cykliczne akcje (cron)", można je też nadać własnej roli).

## Rodzaje cronów

- **Przeliczenie raportów VoIP** - odświeża raporty połączeń telefonicznych (liczba rozmów i czas rozmów w module Raporty)
- **Przeliczenie raportów Helpdesk** - raz dziennie dolicza raporty zgłoszeń (nowe zgłoszenia, czasy rozwiązania i pierwszej odpowiedzi) oraz zapisuje stan dzienny metryk typu "stan na dzień" (np. zgłoszenia według statusu), którego nie da się odtworzyć wstecz. Liczone są tylko te metryki, których raporty masz na koncie
- Uruchomienie Flow - cyklicznie odpala wybrany przepływ automatyzacji z modułu Integracje. Dzięki temu automatyzacja może działać według harmonogramu, a nie tylko po zdarzeniu (jak przy webhookach)
- Uruchomienie aplikacji - cyklicznie odpala akcję zainstalowanej aplikacji, która tego wymaga (np. GetResponse). Taki cron zakłada się sam przy instalacji aplikacji

Crony raportowe zakładają się same w momencie utworzenia raportu w module Raporty, nie trzeba ich konfigurować ręcznie. Crony uruchamiające Flow dodajesz samodzielnie przyciskiem **Dodaj cykliczną akcję**.

## Harmonogram

Harmonogram zapisujesz w formacie cron. Kilka przykładów:

- `0 3 * * *` - codziennie o 3:00 w nocy
- `*/30 * * * *` - co 30 minut
- `0 8 * * 1` - w każdy poniedziałek o 8:00
- `0 3 * * * Europe/Warsaw` - codziennie o 3:00 czasu polskiego (z podaną strefą czasową)

Zadania startują z dokładnością do kilku minut od wyznaczonej godziny.

## Kiedy cron się uruchomi

Na liście cronów i na stronie crona widać **Następne uruchomienie** - dokładny termin, w którym zadanie wystartuje. Po każdym przebiegu zapisuje się data ostatniego uruchomienia i jego status ("ok" albo treść błędu), więc łatwo sprawdzić, czy wszystko działa.

Cron można też odpalić od razu przyciskiem **Uruchom teraz** na stronie crona, bez czekania na termin z harmonogramu.

## Wyłączanie

Odznacz pole **Aktywny** w edycji crona. Zadanie przestanie się uruchamiać, ale konfiguracja zostaje. Po ponownym włączeniu termin następnego uruchomienia wyliczy się od nowa, więc cron nie nadrabia zaległych przebiegów.


---

## 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**

## Endpointy

| Metoda | Ścieżka | Opis |
|--------|---------|------|
| GET | `/account/crons.json` | Lista cronów konta |
| GET | `/account/crons/:id.json` | Pojedynczy cron |
| POST | `/account/crons.json` | Utworzenie crona |
| PATCH | `/account/crons/:id.json` | Aktualizacja crona |
| DELETE | `/account/crons/:id.json` | Usunięcie crona |
| POST | `/account/crons/:id/run.json` | Ręczne uruchomienie (kolejkuje wykonanie w tle) |

Autoryzacja: `Authorization: Bearer TOKEN`. Token musi mieć uprawnienie `crons` (domyślnie admin/owner).

## Pola crona

| Pole | Typ | Wymagane | Opis |
|------|-----|----------|------|
| `kind` | string | tak | Rodzaj akcji: `voip_reports`, `helpdesk_reports`, `flow`, `app` |
| `schedule` | string | tak | Harmonogram w formacie cron, np. `"0 3 * * *"`. Opcjonalnie ze strefą czasową: `"0 3 * * * Europe/Warsaw"` |
| `target_code` | string | dla `kind: flow` / `app` | Cel akcji: dla `flow` kod przepływu (Connect::Flow), dla `app` kind aplikacji (np. `"service/getresponse_ma_app"`) |
| `name` | string | nie | Własna nazwa crona (domyślnie wyświetlana jest nazwa akcji) |
| `active` | boolean | nie | Czy cron jest aktywny (domyślnie `true`) |

Pola tylko do odczytu w odpowiedzi: `next_run_at` (termin następnego uruchomienia), `last_run_at`, `last_status` (`"ok"` albo `"error: ..."`).

Akcje systemowe (`voip_reports`, `helpdesk_reports`) mogą istnieć na koncie tylko raz. Cronów `kind: flow` / `kind: app` może być wiele, każdy z innym `target_code`.

## Przykład - cron uruchamiający Flow co godzinę

```
POST /account/crons.json
Authorization: Bearer TOKEN
Content-Type: application/json
```

```json
{
  "cron": {
    "kind": "flow",
    "target_code": "moj_flow",
    "schedule": "0 * * * *",
    "active": true
  }
}
```

Odpowiedź `201 Created` zawiera utworzony rekord razem z wyliczonym `next_run_at`.

## Przykład - ręczne uruchomienie

```
POST /account/crons/123/run.json
Authorization: Bearer TOKEN
```

Odpowiedź `200 OK`. Wykonanie jest kolejkowane w tle, wynik pojawi się w `last_run_at` / `last_status`.
