[Intum](https://intum.pl/pomoc.md) / [Noe AI](https://intum.pl/pomoc/noe-ai.md)

# [Flows - przepływy automatyzacji](https://intum.pl/pomoc/noe-ai/flows.md) | [API](#api)

Flow to programy automatyzacji: pobierz dane, przetwórz je, zapisz albo wyślij dalej - bez pisania kodu aplikacji. Listę znajdziesz w **Noe AI → Flows** (albo w module Integracje). Przycisk **AI** obok listy zbuduje lub zmieni flow poleceniem tekstowym.

## Z czego składa się flow

Program flow to lista kroków wykonywanych po kolei:

- **konektor** - wywołanie zewnętrznego API (np. pobranie pogody, wysłanie powiadomienia)
- **przekształcenie (mutation)** - wyliczenie i przepisanie pól
- **warunek (if / case)** - różne ścieżki zależnie od danych, np. "jeśli temperatura powyżej 30 stopni, wyślij alert"
- **pętla (each)** - powtórzenie kroków dla każdego elementu listy

## Konfiguracja bez zmiany programu

W polu `fields`, w sekcji **env**, możesz trzymać ustawienia flow (np. współrzędne, progi, kody). Program czyta je jako zmienne przy każdym uruchomieniu - zmieniasz wartość w jednym miejscu, bez dotykania kroków programu. Tak działa np. lokalizacja w przykładowej aplikacji Pogoda.

## Jak flow się uruchamia

- **ręcznie** - przycisk "Start" na stronie flow
- **z aplikacji Noe** - akcja aplikacji wskazuje flow; przycisk w apce uruchamia program
- **cyklicznie** - cykliczna akcja konta (cron) budzi flow według harmonogramu
- **po zdarzeniu** - webhook kieruje zdarzenie (np. nowe zgłoszenie) do flow

## Przebiegi i diagnostyka

Każde uruchomienie zostawia przebieg w **Procesach przepływu** - widać tam dane wejściowe, wynik każdego kroku i ewentualny błąd. Na stronie flow sekcja **Powiązania** pokazuje konektory używane w programie oraz crony, aplikacje i webhooki, które ten flow uruchamiają.


---

## 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 | `/connect/flows.json` | Lista flow |
| GET | `/connect/flows/:id.json` | Pojedynczy flow (`:id` = id lub code) |
| POST | `/connect/flows.json` | Utworzenie flow |
| PATCH | `/connect/flows/:id.json` | Aktualizacja |
| DELETE | `/connect/flows/:id.json` | Usunięcie |
| POST | `/connect/flows/:id/start.json` | Uruchomienie (dev: `?perform_now=1` synchronicznie) |

## Custom flow (kind: noe/custom_flow)

Program w `fields.program` - kroki `connector` / `mutation` / `if` / `case` / `each`.
Konfiguracja w `fields.env` - dostępna w programie jako `{env.<klucz>}` przy każdym uruchomieniu.
Krok `connector` z `"result_key": "nazwa"` zapisuje odpowiedź pod kluczem zamiast zastępować cały obiekt.

```json
{
  "flow": {
    "name": "Get Weather",
    "code": "get-weather",
    "kind": "noe/custom_flow",
    "fields": {
      "env": { "latitude": "52.23", "longitude": "21.01" },
      "program": [
        { "action": "mutation", "in": "json_object",
          "mutation": { "json_object.latitude": "{env.latitude}" }, "out": "json_object" },
        { "action": "connector", "in": "json_object", "kind": "noe/custom_connector",
          "code": "open-meteo", "method": "get_weather", "result_key": "weather", "out": "json_object" }
      ]
    }
  }
}
```

Pełne instrukcje dla agentów: `/noe/prompt/connector_flow_api.md`.
