---
name: baserow-sterowanie
description: Podłącza Twój własny Baserow (baza danych na serwerze VPS) do agenta i steruje nim przez REST API po polsku. Prowadzi krok po kroku przez konfigurację (adres instalacji + token bazy), a potem zakłada wiersze, czyta i filtruje dane, podsumowuje tabele. Wywołaj, gdy mówisz: „podłącz mój Baserow", „dopisz leada do bazy", „wypisz rekordy z tabeli", „skonfiguruj Baserow", „steruj moją bazą Baserow".
---

# Sterowanie własnym Baserow przez agenta

Twoja rola: podłączyć **własną instalację Baserow** (na serwerze VPS użytkownika, nie chmurę baserow.io) do agenta i obsługiwać bazę poleceniami po polsku — bez klikania w interfejsie. Baserow to baza danych w tabelach, jak Airtable, tyle że postawiona na własnym serwerze.

## Zasada nadrzędna (bezpieczeństwo)
Token bazy Baserow to **hasło do Twoich danych**. Nie wysyłaj go nikomu, nie wklejaj do zrzutów ekranu, nie zapisuj w plikach współdzielonych. Jeśli wyciekł — skasuj go w ustawieniach Baserow i wygeneruj nowy.

## Krok 1 — Konfiguracja (zrób to raz)

Zanim agent cokolwiek zrobi z bazą, potrzebuje dwóch rzeczy od Ciebie. Podpowiedz użytkownikowi, gdzie je znaleźć:

1. **Adres instalacji** — pod jakim adresem działa jego Baserow, np. `https://baserow.mojadomena.pl`. To ten sam adres, pod którym się loguje. API siedzi pod `<adres>/api`.
2. **Token bazy (Database Token)** — w Baserow: awatar/ustawienia konta → **Database tokens** (Tokeny bazy danych) → **Create token** → nazwa (np. „agent") → wybierz bazę i uprawnienia (odczyt/zapis) → skopiuj token. To NIE jest hasło do logowania — to osobny klucz tylko do API.

Zapisz oba w skillu lub w zmiennych, żeby nie pytać za każdym razem. W wywołaniach API token idzie w nagłówku:
```
Authorization: Token <TWÓJ_TOKEN_BAZY>
```

Sprawdź, że token działa:
```
GET  <adres>/api/database/tokens/check/
```
Odpowiedź 200 = token ważny. 401 = zły token albo zły adres.

## Krok 2 — Znajdź identyfikatory tabeli

Do operacji na danych potrzebny jest **numer tabeli** (`table_id`). Najprościej: otwórz tabelę w Baserow — numer jest w adresie przeglądarki (`.../table/609/...` → `table_id = 609`). Listę tabel bazy zwraca też:
```
GET  <adres>/api/database/tables/all-tables/
```
Nazwy kolumn (pól) tabeli:
```
GET  <adres>/api/database/fields/table/<table_id>/
```

## Krok 3 — Operacje na danych (to, po co jest ten skill)

Wszystkie pod bazą `<adres>/api/database/rows/table/<table_id>/`, nagłówek `Authorization: Token ...`, `Content-Type: application/json`.

**Dopisz wiersz (np. nowego leada)**
```
POST <adres>/api/database/rows/table/<table_id>/?user_field_names=true
{
  "Imię": "Anna",
  "Firma": "Kawa Pod Klonem",
  "Status": "nowy"
}
```
`user_field_names=true` pozwala używać nazw kolumn po polsku zamiast wewnętrznych `field_123`.

**Wypisz wiersze (z filtrem)**
```
GET <adres>/api/database/rows/table/<table_id>/?user_field_names=true&filter__Status__equal=nowy
```
Filtry: `filter__<Kolumna>__<warunek>=<wartość>` (np. `__equal`, `__contains`, `__higher_than`). Bez filtra zwraca wszystkie (stronicowane: `page`, `size`).

**Zmień wiersz**
```
PATCH <adres>/api/database/rows/table/<table_id>/<row_id>/?user_field_names=true
{ "Status": "skontaktowany" }
```

**Skasuj wiersz**
```
DELETE <adres>/api/database/rows/table/<table_id>/<row_id>/
```

**Podsumowanie (np. ilu leadów w tym tygodniu)** — pobierz wiersze i policz po stronie agenta: przefiltruj po dacie/statusie, zlicz, podaj wynik zdaniem. Baserow nie liczy tego za Ciebie — od tego jest agent.

## Typowe polecenia użytkownika → co robi agent

| Użytkownik mówi | Agent robi |
|---|---|
| „dopisz leada: Anna, Kawa Pod Klonem, status nowy" | POST wiersza do tabeli Leady |
| „wypisz leady o statusie nowy" | GET z `filter__Status__equal=nowy` |
| „ilu nowych leadów w tym tygodniu?" | GET + filtr po dacie + zliczenie |
| „zmień status leada 42 na skontaktowany" | PATCH wiersza `row_id=42` |
| „załóż tabelę Klienci z kolumnami Imię, Telefon, Notatka" | POST tabeli + POST pól |

## Czego NIE robić
- Nie używaj adresu `api.baserow.io` dla instalacji własnej — bierz adres podany przez użytkownika.
- Nie kasuj wierszy ani tabel bez wyraźnego polecenia — to nieodwracalne.
- Nie zgaduj `table_id` ani nazw kolumn — sprawdź je zapytaniem, jeśli nie masz pewności.
- Nie zapisuj tokenu tam, gdzie ktoś inny go zobaczy.

---
*Baserow self-hosted, REST API v1.x. Endpointy pod `<adres>/api/…`, autoryzacja `Authorization: Token <token bazy>`.*
