[Intum](https://intum.fr/aide.md) / [Baza Wiedzy](https://intum.fr/aide/baza-wiedzy.md)

# [Wpisy do Bazy Wiedzy](https://intum.fr/aide/baza-wiedzy/wpisy-do-bazy-wiedzy.md) | [API](#api)

## Wpisy (Entries)

Wpis to artykuł w [bazie wiedzy](baza-wiedzy) — może to być instrukcja, poradnik, FAQ lub dokumentacja techniczna.

## Treść wpisu

Wpis ma dwa pola treści:

- **Treść** (`content`) — opis z perspektywy użytkownika, pisany domyślnie w Markdown
- **Dokumentacja API** (`content_api`) — opcjonalna dokumentacja techniczna (endpointy, pola, przykłady)

## Właściwości wpisu

- **Tytuł** — nagłówek artykułu
- **Kategoria** — przypisanie do [kategorii](kategorie-kb)
- **Tagi** — słowa kluczowe ułatwiające wyszukiwanie
- **Priorytet** — kolejność wyświetlania
- **URL** — slug generowany automatycznie z tytułu (z prefixem kategorii)
- **Status** — etap publikacji

## SEO

Każdy wpis może mieć własne metadane SEO:

- **Tytuł HTML** — tytuł strony w przeglądarce
- **Opis HTML** — meta description

## Prywatność i publikacja

- **Prywatny** — widoczny tylko dla zalogowanych użytkowników z uprawnieniami
- **Data publikacji** — wpis pojawi się publicznie dopiero od wskazanej daty
- **Wersja robocza** — automatyczny zapis roboczy podczas edycji

## Powiązane wpisy

Wpisy można łączyć ze sobą — tworzy to dwukierunkowe powiązanie widoczne w sekcji "Powiązane" na stronie wpisu.

## Wielojęzyczność

Wpisy z różnych baz wiedzy można łączyć jako tłumaczenia tego samego artykułu.

## Ocenianie

Odwiedzający mogą oceniać wpisy (pomocne/niepomocne). Ocena wpływa na ranking artykułu.

## Załączniki

Do wpisu można dodawać pliki — zdjęcia (wyświetlane inline), dokumenty PDF, itp.

## Nawigacja

System automatycznie generuje spis treści z nagłówków (H2-H5) w artykule — widoczny jako menu nawigacyjne na stronie wpisu.

---

## 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 | `/kb/entries.json?knowledge_base_id=X` | Lista wpisów w bazie |
| GET | `/kb/entries/:id.json` | Pojedynczy wpis |
| POST | `/kb/entries.json` | Utworzenie wpisu |
| PATCH | `/kb/entries/:id.json` | Aktualizacja wpisu |
| DELETE | `/kb/entries/:id.json` | Usunięcie wpisu |
| POST | `/kb/entries/:id/change_priority` | Zmiana priorytetu |
| POST | `/kb/entries/:id/change_category` | Zmiana kategorii |
| POST | `/kb/entries/:id/make_private` | Przełączenie prywatności |
| POST | `/kb/entries/:id/add_connection` | Dodanie powiązania |
| POST | `/kb/entries/:id/remove_connection` | Usunięcie powiązania |

**Autoryzacja:** `Authorization: Bearer TOKEN` (uprawnienie: **kb**)

## Pola entry

| Pole | Typ | Wymagane | Opis |
|------|-----|----------|------|
| `title` | string | tak | Tytuł wpisu |
| `content` | string | tak | Treść (Markdown) |
| `knowledge_base_id` | integer | tak | ID bazy wiedzy |
| `category_id` | integer | nie | ID kategorii |
| `status_id` | integer | nie | ID statusu |
| `private` | boolean | nie | Czy prywatny |
| `tags` | array | nie | Tagi `["tag1", "tag2"]` |
| `priority` | number | nie | Priorytet (domyślnie `1.0`) |
| `url` | string | nie | Slug URL (auto-generowany) |
| `html_title` | string | nie | Meta tytuł SEO |
| `html_description` | string | nie | Meta opis SEO |
| `publish_from` | string | nie | Data publikacji `YYYY-MM-DD` |
| `content_api` | string | nie | Dokumentacja API (Markdown) |
| `connected_entry_ids` | array | nie | ID powiązanych wpisów |
| `multilang_code` | string | nie | Kod grupy tłumaczeń |
| `fields` | object | nie | Własne pola (JSONB) |

## Filtrowanie

| Parametr | Opis |
|----------|------|
| `q` | Wyszukiwanie pełnotekstowe |
| `knowledge_base_id` | Filtruj po bazie wiedzy |
| `category_id` | Filtruj po kategorii |
| `status_id` | Filtruj po statusie |
| `private` | Filtruj po prywatności |
| `tag` | Filtruj po tagu |

## Przykład utworzenia

```json
{
  "api_token": "TOKEN",
  "entry": {
    "title": "Jak dodać zadanie",
    "content": "## Tworzenie zadania\n\n1. Przejdź do modułu **Zadania**\n2. Kliknij **+**\n3. Wypełnij formularz",
    "knowledge_base_id": 1,
    "category_id": 3,
    "tags": ["zadania", "poradnik"]
  }
}
```

## Powiązanie wpisów

```json
{
  "api_token": "TOKEN",
  "entry": {
    "connected_entry_ids": [123, 456]
  }
}
```

**Uwaga:** `connected_entry_ids` zastępuje całą listę — podaj wszystkie ID.