# Zync.is User Journey Catalog

audience: AI agents first; humans use this index for navigation.

Purpose: canonical, spec-derived end-to-end user journeys for Zync.is. Use journey IDs when referring to a workflow. Treat `docs/specs/*.md` as the behavioral source of truth; this catalog explains actor intent and observable sequence.

## Retrieval rules

1. Identify actor surface from `01-actors.md`.
2. Search this index for the desired outcome or `UJ-*` ID.
3. Read exactly that journey file.
4. Follow `Source specs` for contract details, permissions, routes, validation, and state transitions.
5. Do not infer a missing behavior from a neighboring journey; mark it as a spec gap.

## Organization

| Order | Directory | Actor surface |
|---|---|---|
| 00–09 | `shared/` | Authentication, membership, personal settings, audit/search |
| 10–29 | `tenant-staff/` | Tenant business workflows; OWNER/ADMIN/MEMBER/VIEWER |
| 30–39 | `contractor/` | External contractor portal |
| 40–49 | `customer-portal/` | External customer portal users |
| 50–59 | `accountant/` | Scoped accountant access and statutory exports |
| 60–69 | `system-admin/` | Zync system control plane |

## Journey registry

| ID | Journey | Primary actor | File |
|---|---|---|---|
| UJ-001 | Create account, verify email, and sign in | New user | `shared/001-authentication.md` |
| UJ-002 | Recover account and harden sign-in with 2FA | User | `shared/001-authentication.md` |
| UJ-003 | Accept membership invite and choose tenant | Invited staff | `shared/002-membership-invite-switch.md` |
| UJ-004 | Switch tenant and manage personal session settings | Multi-tenant user | `shared/002-membership-invite-switch.md` |
| UJ-005 | Manage profile, preferences, notifications, and sessions | Any staff user | `shared/003-personal-settings-notifications.md` |
| UJ-006 | Inspect entity history and tenant audit trail | Authorized staff | `shared/004-audit-search-activity.md` |
| UJ-010 | Create and configure a tenant | OWNER | `tenant-staff/010-onboarding-and-tenant-setup.md` |
| UJ-011 | Manage team members, roles, and approvals | OWNER/ADMIN | `tenant-staff/011-team-and-roles.md` |
| UJ-012 | Create a project, plan work, and complete it | OWNER/ADMIN/MEMBER | `tenant-staff/012-projects-and-tasks.md` |
| UJ-013 | Collaborate on tasks and attachments | Staff user | `tenant-staff/012-projects-and-tasks.md` |
| UJ-014 | Track, review, approve, lock, and report time | Staff manager | `tenant-staff/013-time-and-approvals.md` |
| UJ-015 | Schedule an event and turn it into task work | Staff user | `tenant-staff/014-calendar-and-scheduling.md` |
| UJ-016 | Manage customers and grant portal access | Staff user | `tenant-staff/015-customers-and-portal-access.md` |
| UJ-017 | Capture a lead, qualify it, and convert it | Sales user | `tenant-staff/016-leads-campaigns-proposals.md` |
| UJ-018 | Run a catalog/form/campaign acquisition flow | Marketing user | `tenant-staff/016-leads-campaigns-proposals.md` |
| UJ-019 | Create, send, and track a proposal | Sales user | `tenant-staff/016-leads-campaigns-proposals.md` |
| UJ-020 | Convert an accepted proposal into a contract | Sales user | `tenant-staff/017-contracts-and-signing.md` |
| UJ-021 | Sign, renew, or amend a contract | Signatory | `tenant-staff/017-contracts-and-signing.md` |
| UJ-022 | Capture, correct, approve, and report an expense | Staff user/approver | `tenant-staff/018-expenses-and-vendors.md` |
| UJ-023 | Create, approve, issue, send, and receipt an invoice | Billing staff | `tenant-staff/019-invoicing-and-receipts.md` |
| UJ-024 | Collect, record, reconcile, and recover payment | Billing staff | `tenant-staff/020-payments-and-reconciliation.md` |
| UJ-025 | Run recurring billing and bulk operations | Billing staff | `tenant-staff/021-recurring-and-bulk-operations.md` |
| UJ-026 | Produce financial, tax, and management reports | OWNER/ADMIN/ACCOUNTANT | `tenant-staff/022-reports-tax-accounting.md` |
| UJ-027 | Receive stock, issue stock, count inventory, and inspect history | Inventory user | `tenant-staff/023-inventory.md` |
| UJ-028 | Publish knowledge and resolve customer support | Support user | `tenant-staff/024-kb-and-support.md` |
| UJ-029 | Connect integrations, API keys, webhooks, and automation | OWNER/ADMIN | `tenant-staff/025-integrations-api-automation.md` |
| UJ-030 | Import business data and export tenant data | OWNER/ADMIN | `tenant-staff/026-data-import-export.md` |
| UJ-031 | Configure white-label domain, email, locale, and modules | OWNER/ADMIN | `tenant-staff/027-white-label-settings.md` |
| UJ-032 | Use AI assistance in tenant work | Authorized staff | `tenant-staff/028-ai-assistant.md` |
| UJ-033 | Manage tenant subscription and cancellation | OWNER | `tenant-staff/029-subscription.md` |
| UJ-040 | Invite contractor and manage access | OWNER/ADMIN | `contractor/030-contractor-lifecycle.md` |
| UJ-041 | Submit contractor time and view payout history | CONTRACTOR | `contractor/030-contractor-lifecycle.md` |
| UJ-050 | Enter customer portal and manage profile | Customer portal user | `customer-portal/040-portal-access.md` |
| UJ-051 | View and pay an invoice in the customer portal | Customer portal user | `customer-portal/041-portal-invoices-payments.md` |
| UJ-052 | Submit support ticket, read KB, and exchange files | Customer portal user | `customer-portal/042-portal-support-kb-files.md` |
| UJ-060 | Invite accountant and generate statutory exports | OWNER/ADMIN/ACCOUNTANT | `accountant/050-accountant-access-export.md` |
| UJ-070 | Operate the system-admin control plane | SUPER_ADMIN/BILLING/SUPPORT | `system-admin/060-system-admin-control-plane.md` |
| UJ-071 | Impersonate tenant, manage incidents, and publish status | SUPER_ADMIN | `system-admin/061-impersonation-incidents-status.md` |

## Coverage boundary

Included: workflows that cross screens, actors, or durable business state. Small presentation-only behaviors—theme toggle, keyboard shortcuts, empty states, print CSS, accessibility mechanics—remain in their source specs and are not separate journeys. They are referenced where they change a journey outcome.
