Agent API a externí služby

Ověřování pomocí Bearer tokenů a bezpečná práce s tikety a časovými záznamy přes HTTP API FoxDesku.

Ověření

V části Nastavení → Tým a přístupy → AI agenti vytvořte spravovaného AI agenta. Pro už existujícího uživatele vytvoříte klíč s omezeným rozsahem v části Nastavení → API a agenti. Token lze zkopírovat jen jednou; uložte jej mimo zdrojový repozitář a požadavky posílejte výhradně přes HTTPS.

API kontroluje rozsah tokenu i oprávnění uživatele, kterému token patří. Token nemůže číst ani měnit tikety, ke kterým jeho vlastník nemá přístup.

Začátek každého integračního běhu

  1. GET index.php?page=api&action=agent-docs — načte aktuální pokyny a kontrakty požadavků odpovídající nasazené verzi.
  2. GET index.php?page=api&action=agent-me — ověří identitu tokenu, oprávnění a rozsahy.

Token nepoužívejte na přihlašovací stránce v prohlížeči. Požadavky agenta používají kanonickou cestu index.php?page=api&action=agent-*.

Běžné endpointy

  • GET agent-list-tickets — vypíše a prohledá dostupné tikety.
  • GET agent-get-ticket — načte jeden dostupný tiket a jeho časovou osu.
  • POST agent-create-ticket — vytvoří tiket.
  • POST agent-add-update — přidá veřejný komentář nebo interní poznámku bez časového záznamu.
  • POST agent-add-work-entry — v jednom kroku přidá navázaný komentář a časový záznam.
  • POST agent-plan-work-log a agent-apply-work-log-plan — zobrazí náhled a potvrdí strukturovaný pracovní výkaz s více záznamy.
  • POST agent-update-status — změní stav tiketu.
  • POST agent-log-time — přidá samostatný časový záznam.

Úplný seznam endpointů, polí a aktuálních omezení vždy načtěte z agent-docs. Do integrace nekopírujte starší schéma požadavků.

Příklad požadavku

FOXDESK_BASE_URL=https://helpdesk.example.com
FOXDESK_API_TOKEN=fdx_replace_with_token_from_settings

curl -fsS -X POST \
  "$FOXDESK_BASE_URL/index.php?page=api&action=agent-add-update" \
  -H "Authorization: Bearer $FOXDESK_API_TOKEN" \
  -H "Idempotency-Key: comment-ticket-542-20260729-01" \
  -H "Content-Type: application/json" \
  --data '{
    "ticket_id": 542,
    "content": "The nightly backup completed successfully.",
    "is_internal": true
  }'

Každý zapisující požadavek musí mít jedinečný Idempotency-Key. Začněte s rozsahem pouze pro čtení a oprávnění k zápisu přidávejte jen pro konkrétní zamýšlený postup. Pokud uživatel požádá o strukturovaný pracovní výkaz, použijte dvoukrokový postup náhled/potvrzení.