Experimentální funkce. Integrace n8n ještě není plně otestována. Administrátor ji vědomě zapíná v Nastavení → Pokročilé → Jiné; dokud je vypnutá, záložka n8n a tato kapitola návodu jsou skryté a endpointy /api/n8n/* neaktivní. Integrace n8n patří do plánu Pro. V plánu Standard karta „Jiné“ s jejím přepínačem chybí, takže integraci nelze zapnout.

Co je n8n?

n8n je platforma pro automatizaci procesů. Integrace s Task Managerem funguje oběma směry:

  1. Odchozí webhooky (Task Manager → n8n) - aplikace sama odesílá oznámení do vašeho workflow v n8n, když se něco stane (vytvořen úkol, změněn stav, přidána zpráva, blíží se termín atd.).
  2. Příchozí API (n8n → Task Manager) - n8n může volat aplikaci, aby vytvářel úkoly, přidával zprávy nebo získával data.

Zapnutí integrace

Klikněte na ikonu ozubeného kola (⚙) → záložka n8n. Záložka se dělí na dvě části: „Osobní automatizace" - nastavení týkající se pouze vás, a „Globální automatizace" - systémová nastavení společná pro všechny uživatele, viditelná pouze pro administrátora. Aby byly události odesílány, musí administrátor zapnout přepínač „Zapnout integraci n8n" v globální části.

A. Odchozí webhooky - oznámení z aplikace do n8n

Nastavení

  1. Na kartě n8n klikněte na „Nový webhook“.
  2. Zadejte název webhooku a URL adresu webhooku zkopírovanou z n8n (node Webhook jako trigger, metoda POST).
  3. Zaškrtněte události, které se mají odesílat.
  4. (Volitelně) nastavte tajný klíč - aplikace jím podepíše požadavky (HMAC), aby n8n mohl ověřit autenticitu.
  5. Uložte. Můžete odeslat testovací ping, abyste ověřili připojení.

Dostupné události (výběr)

  • Úkoly: task.created, task.updated, task.status_changed, task.completed, task.deleted, task.deadline_approaching, task.overdue
  • Chaty / zprávy: chat.message_sent, chat.mention, chat.file_uploaded
  • Uživatelé / pracovní prostor: user.created, user.login, user.logout, workspace.created
  • Systémové: system.daily_summary, system.weekly_summary

Každý požadavek do n8n obsahuje název události a data (data) s kontextem (např. id úkolu, pracovní prostor, autor).

B. Příchozí API - n8n řídí aplikaci

Nastavení

  1. Na kartě n8n klikněte na „Nový klíč API“.
  2. Zkopírujte vygenerovaný token (zobrazí se pouze jednou).
  3. V n8n použijte node HTTP Request s autorizační hlavičkou:
    Authorization: Bearer TWÓJ_TOKEN
    Akce se provádějí v kontextu uživatele, který klíč vytvořil (jeho oprávnění a přístup k pracovním prostorům).

Dostupné endpointy

  • GET /api/n8n/ping.php - test tokenu a healthcheck (vrací informace o klíči a uživateli).
  • GET /api/n8n/workspaces.php - seznam dostupných pracovních prostorů.
  • GET /api/n8n/users.php - seznam uživatelů (pouze klíče vytvořené globálním administrátorem).
  • GET /api/n8n/tasks.php?workspace_id=&status=&limit= - seznam úkolů.
  • POST /api/n8n/tasks.php - vytvoření úkolu. Tělo JSON:
    {
    "workspace_id": 1,
    "subject": "Nowe zadanie z n8n",
    "description": "Opcjonalny opis",
    "priority": "high",
    "deadline_date": "2025-12-31",
    "status": "none",
    "assignees": [2, 5]
    }
    Popis se čistí od nebezpečného HTML stejně jako v aplikaci a má stejný limit velikosti.
  • PATCH /api/n8n/tasks.php - aktualizace existujícího úkolu, mj. změna stavu. Tělo JSON (task_id povinné, zbytek polí volitelný - uvádíte pouze to, co chcete změnit):
    {
    "task_id": 42,
    "status": "in_progress",
    "priority": "high",
    "deadline_date": "2026-08-01",
    "subject": "Nowy temat",
    "description": "Nowy opis"
    }
    • status: none | in_progress | done | cancelled. Změna stavu funguje přesně stejně jako v aplikaci: ve vlákně úkolu se objeví záznam „změnil(a) stav na…“, přiřazené osoby dostanou e-mailové oznámení a do n8n se odešle webhook task.status_changed (a také task.completed při stavu done).
    • deadline_date: null vymaže termín. Změna termínu posune připomenutí k němu připnutá.
    • Ostatní pole odesílají webhook task.updated.
    • description se ukládá stejně jako při editaci z okna úkolu: nebezpečný HTML se odstraňuje, při zapnutém šifrování se popis ukládá do databáze zašifrovaný a zaškrtnutí v seznamu úkolů zůstávají na svých pozicích, i když v novém popisu položky změnily pořadí. Úkol dostane označení „(upraveno)” pouze tehdy, když se téma nebo obsah popisu skutečně změnily.
    • Když nový popis odstraňuje seznam úkolů, do kterého někdo přidal vlastní položky, nic se neuloží (ani stav ze stejného požadavku) a dostanete 409 s kódem DOPISKI_BEZ_LISTY a polem indeksy. Chcete-li přesto seznam smazat i s doplněnými položkami, odešlete stejnou změnu znovu s polem "usun_dopiski" rovným seznamu z pole indeksy.
    • Nejprve se ukládají téma, termín, priorita a popis, teprve potom stav - odmítnutí uložení popisu nenechá uložený změněný stav.
    • Nastavení stejného stavu znovu nic neodešle (bezpečné při opakování v n8n).
    • Pokud váš HTTP node nepodporuje metodu PATCH - odešlete stejné tělo přes POST: přítomnost task_id přepne endpoint do režimu aktualizace.
    • Kódy chyb: 400 chybí task_id, chybí pole ke změně nebo příliš mnoho položek seznamu úkolů (TOO_MANY), 413 příliš velký popis (PAYLOAD_TOO_LARGE, obvykle vložený obrázek), 422 neplatná hodnota (stav/priorita/formát data), 404 úkol neexistuje nebo je mimo dosah klíče, 403 chybí oprávnění ke změně stavu/editaci, 409 popis odstraňuje seznam s cizími doplňky.
  • POST /api/n8n/messages.php - přidání zprávy k úkolu nebo chatu. Tělo JSON:
    {
    "entity_type": "task",
    "entity_id": 42,
    "content": "Treść wiadomości"
    }

Příklady automatizačních scénářů

  • Formulář Google → n8n → POST /api/n8n/tasks.php (nový úkol v Task Manageru)
  • E-mail z Gmailu s určeným předmětem → n8n → úkol s popisem z obsahu e-mailu
  • Změna stavu v Jira → n8n → zpráva/aktualizace souvisejícího úkolu
  • Odchozí webhook task.created → n8n → záznam v tabulce Google / oznámení na Slack
  • task.deadline_approaching → n8n → e-mailové/SMS připomenutí blížícího se termínu

Řešení problémů

  • Chybí oznámení v n8n - zkontrolujte, zda je integrace zapnutá, webhook aktivní a URL správná. Použijte „testovací ping“ a diagnostiku na kartě n8n: ukazuje, zda adresa webhooku odpovídá (kontroluje se stejně jako při odesílání - bez přesměrování a s ověřením certifikátu, takže n8n se self-signed certifikátem vyjde jako nedostupné), kolik událostí čeká ve frontě opakování a kdy se naposledy odeslání podařilo.
  • Tajemství webhooku je uloženo v databázi zašifrované. Po změně klíče ENCRYPTION_KEY v config.php se uložená tajemství stanou nečitelná - aplikace pak odesílá události bez podpisu, proto vygenerujte nové tajemství u webhooku a zadejte ho v n8n.
  • Chybí autorizace (401) v příchozím API - token je neplatný nebo byl odstraněn. Vytvořte nový API klíč a aktualizujte hlavičku Authorization v n8n.
  • Úkol se nevytvoří - ujistěte se, že workspace_id existuje a že uživatel klíče k němu má přístup a oprávnění přidávat úkoly.