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

# [Automatyzacje - reguły typu "kiedy, jeśli, to"](https://intum.pl/pomoc/automatyzacja/automatyzacje-reguly-typu-kiedy-jesli-to.md) | [API](#api)

Reguły automatyzacji wykonują za Ciebie powtarzalne czynności: powiadamiają, zmieniają pola, wysyłają e-maile i SMS-y, tworzą zadania. Znajdziesz je w module Automatyzacja, w sekcji Automatyzacje.

Każda reguła składa się z trzech części:

- kiedy (wyzwalacz) - co uruchamia regułę,
- jeśli (warunki) - kiedy reguła ma zadziałać,
- to (akcje) - co ma się wykonać, po kolei.

## Wyzwalacze

**Zdarzenie** - reguła reaguje na utworzenie lub zmianę rekordu: zadania, projektu, klienta, zgłoszenia albo wyniku formularza. Przykład: status zadania zmienił się na "Reklamacja".

**Harmonogram** - reguła działa cyklicznie według wyrażenia cron, np. codziennie o 7:00.

**Przesunięcie w czasie** - reguła wykonuje się dla każdego rekordu po zadanym czasie od pola daty, np. 3 dni po utworzeniu klienta albo 24 godziny przed terminem zadania. Każdy rekord przechodzi przez taką regułę dokładnie raz.

## Warunki

Najprostszy warunek to pole = wartość, np. status_id = 5. Można też sprawdzać:

- zmianę pola: "status zmienił się z X na Y" (tylko dla zdarzeń typu zmiana),
- kilka wariantów naraz (grupa "any" - wystarczy, że jeden pasuje),
- negację, zawieranie tekstu, porównania większe/mniejsze, czy pole jest wypełnione.

Puste warunki oznaczają, że reguła działa zawsze. Dla reguł czasowych warunek jest sprawdzany w momencie wykonania kroku - jeśli jeszcze nie pasuje, system ponawia sprawdzenie przez 7 dni.

## Akcje

Reguła może mieć wiele akcji, wykonują się po kolei:

- notyfikacja do osoby (także "odpowiedzialny za rekord", "twórca" - z zastępstwami urlopowymi),
- zmiana pola rekordu, np. ustaw priorytet,
- e-mail z szablonu do klienta,
- SMS na telefon klienta (przez konektor SMS skonfigurowany w koncie),
- wiadomość na czat, np. Google Chat,
- nowe zadanie dla zespołu,
- uruchomienie eskalacji - gdy potrzebujesz ponowień w czasie ("po 5 minutach przypomnij, po godzinie SMS do szefa"),
- webhook (POST na zewnętrzny adres) albo własny flow.

W treściach można używać pól rekordu w nawiasach: {{name}}, {{title}} - system podstawi wartości.

## Testowanie i kontrola

Na stronie reguły jest przycisk Testuj - podajesz numer rekordu i widzisz, czy warunki są spełnione i co dokładnie by się wykonało, bez realnej wysyłki. Obok jest log wykonań: każde uruchomienie z wynikiem i powodem.

Wbudowane bezpieczniki:

- akcje reguł nie uruchamiają kolejnych reguł (ochrona przed pętlą),
- limit wykonań na godzinę chroni przed lawiną,
- po serii błędów reguła wyłącza się sama, a twórca dostaje notyfikację,
- opcjonalne okno godzin, np. wysyłki tylko między 8:00 a 18:00.

## Kampanie e-mail

Do sekwencji e-maili do klientów (np. powitanie, poradnik po 3 dniach, przypomnienie po tygodniu) służy aplikacja Kampanie e-mail z katalogu aplikacji. Tworzy ona zwykłe reguły czasowe, więc wszystko widać także na liście Automatyzacji.

---

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

## Endpoints

| Metoda | Ścieżka | Opis |
|--------|---------|------|
| GET | `/automation/rules.json` | Lista (filtry: `q`, `active`, `trigger_kind`, `source_type`, `app_code`, `group_code`) |
| POST | `/automation/rules.json` | Utworzenie |
| PATCH | `/automation/rules/:id.json` | Aktualizacja |
| DELETE | `/automation/rules/:id.json` | Usunięcie |
| POST | `/automation/rules/:id/dry_run.json` | Dry-run na rekordzie (`subject_id`) - bez wykonania akcji |
| POST | `/automation/rules/:id/run.json` | Ręczne wykonanie (`subject_id` / `subject_ids`, max 100) |

## Przykład: reguła zdarzeniowa

```json
POST /automation/rules.json
{ "rule": {
  "name": "Reklamacja - reakcja",
  "trigger_kind": "event", "source_type": "Organize::Task", "event": "update",
  "conditions_json": "{\"changed\": {\"status_id\": {\"to\": 5}}}",
  "actions": [
    { "kind": "predefined", "action": "notification", "user": "responsible", "message": "Reklamacja: {{title}}" },
    { "kind": "predefined", "action": "update_record", "field": "priority", "value": "1" }
  ]
} }
```

## Przykład: sekwencja czasowa (drip)

```json
{ "rule": {
  "name": "Powitanie klienta (3 dni)",
  "trigger_kind": "time_offset", "source_type": "Crm::Client",
  "anchor_field": "created_at", "offset_value": "3", "offset_unit": "days",
  "actions": [ { "kind": "predefined", "action": "send_template", "template_id": 7, "mailbox_id": 2 } ]
} }
```

Akcje: `notification`, `update_record` (field + value, whitelista pól per model), `send_template` (template_id + mailbox_id), `send_sms` / `send_chat` (connector_id + message), `create_task` (title, user, project_id), `start_escalation` (escalation_policy_id, resolve_on_change), `send_webhook` (url, token), `{"kind":"flow","flow_code":"..."}`.

Warunki: równość, tablica wartości, `{"any": [...]}`, operatory `not`, `gt`, `lt`, `contains`, `present`, oraz `{"changed": {"pole": {"from": ..., "to": ...}}}`. Treści akcji obsługują `{{pole}}` z payloadu rekordu.

---

## Powiązane

- [Eskalacje (SLA) - tickety, zadania, e-maile i formularze](https://intum.pl/pomoc/automatyzacja/eskalacja-ticketow.md)
