---
id: UJ-032
title: Use AI assistance in tenant work
actors: [authorized tenant staff]
surface: app.zync.is AI assistant
goal: Ask for assistance or classify work while preserving tenant scope, quotas, and auditability.
trigger: User opens assistant or invokes AI categorization.
preconditions:
  - AI module/provider configured; user has AI permission and available tier/quota.
success_state: Assistant response or categorization is shown with usage/accounting state; no unauthorized data is exposed.
source_specs:
  - docs/specs/2026-05-30-ai-assistant.md
  - docs/specs/2026-05-31-system-ai.md
  - docs/specs/2026-05-30-system-communications-notifications.md
---

## Happy path

1. User starts/opens an AI session → Zync loads only tenant/user context permitted by module permissions.
2. User submits a prompt or expense categorization request → Zync validates input, quota, provider configuration, and safety boundaries.
3. Provider returns response → Zync displays it, stores session/usage metadata, and lets user apply an explicit suggested action.
4. User accepts an actionable suggestion → normal domain mutation/validation/audit path runs; AI output alone never mutates business state.

## Alternate and failure paths

- Quota exceeded, provider unavailable, unsafe/invalid response, or timeout → show bounded error and preserve session; no partial mutation.
- User lacks permission for source entity → AI cannot reveal or act on it.

## Permissions and boundaries

- AI is assistive, not an authorization bypass or source of truth.
- Provider/API credentials are tenant configuration and remain secret.

## Source specs

- `docs/specs/2026-05-30-ai-assistant.md`
- `docs/specs/2026-05-31-system-ai.md`
- `docs/specs/2026-05-30-system-communications-notifications.md`
