Skip to main content

h.work User Stories & Jobs-To-Be-Done

Last reviewed: 2026-05-01 โ€” cross-referenced against api/src/ controllers, entities, and frontend/src/ components. Updated 2026-06-01: Slack flipped from "Coming Soon" to "Available" (Slack Connect shipped via #816; per-org signing_secret via #1219). Isolation classification cross-ref added โ€” see ADR-020 for which resources isolate by Org vs (Org ร— Specialist) vs Specialist-only.

Overviewโ€‹

h.work is an internal Humanity Protocol (HP) platform for delivering managed AI+Expert services to client companies. Each client org has one or more named Specialists (AI personas โ€” e.g. "Kai" for e-commerce ops, "Mei" for finance ops) assigned to them; a Specialist is served by a sandboxed agent runtime (the AI that drafts replies) and reviewed by HP Experts before responses go out. Expert visibility is grant-based via the expert_access table (see ADR-007): one Expert typically covers many client orgs / specialist slices through scoped grants (scope='org' or scope='specialist'), rather than being permanently bound to a single Specialist. Clients communicate with their Specialists through the channels they already use โ€” Slack, email, WhatsApp, Telegram, and the web portal โ€” and never see the Expert or the agent runtime. The platform serves three distinct roles: the client (the company hiring the Specialist), the Expert (the HP human reviewer who supervises the AI), and the Account Manager / SuperAdmin (internal HP staff who operate the platform).


Role: Clientโ€‹

A company or individual hiring AI Specialists to get work done

Jobs To Be Doneโ€‹

  • Get reliable work done without managing the Specialist directly โ€” delegate e-commerce ops, finance tasks, or IR filings and trust they'll be handled correctly.
  • Communicate naturally through the channels they already use (Slack, email, WhatsApp) rather than learning a new tool.
  • Maintain visibility into what's been done, what's pending, and how well the Specialist is performing.
  • Control access and configuration โ€” manage which team members have access, how the Specialist is named, and which channels it's active on.
  • Trust the quality โ€” know that work is expert-supervised and that errors won't slip through unreviewed.
  • Manage costs predictably โ€” understand usage against quota and plan for expansion to additional Specialists.

User Storiesโ€‹

Onboardingโ€‹

IDStoryPriority
C-O1As a client admin, I want to accept an email invite, set my password, and log into the portal so that I can start configuring my account. [Implemented โ€” OTP email flow + /auth/accept-invite/:token + Phase 2 onboarding wizard]P0
C-O2As a client admin, I want to connect my Slack workspace to my Specialist so that my team can interact with the Specialist directly in Slack without switching tools. [Available โ€” Slack Connect OAuth via #816 (2026-05-26); per-org signing_secret via #1219 (2026-06-01)]P0
C-O3As a client admin, I want to connect an inbound email address to my Specialist so that emails sent to that address are handled by the Specialist automatically.P0
C-O4As a client admin, I want to set my Specialist's name and configure the escalation risk threshold so that the Specialist's behavior matches my expectations from day one.P1
C-O5As a client admin, I want to invite additional team members to my team so that colleagues can also message and manage the Specialist.P1
C-O6(Gap โ€” no implementation or spec) As a client admin, I want to upload my product catalog, policy documents, and key business context during onboarding so that the Specialist starts with accurate knowledge of my business rather than learning from scratch.P1
C-O7As an invited user whose link expired, I want to request a fresh invite link myself so that I don't have to wait on an admin to re-send it. [โœ… Complete โ€” public POST /auth/invites/resend (enumeration-safe, 3/min); the expired accept page surfaces a "request new link" form. ADR-023 D4/D6]P1

Getting Work Doneโ€‹

IDStoryPriority
C-W1As a client, I want to send a message to my Specialist in the portal chat so that I can request work or ask questions even when I'm not in Slack or email. [Implemented โ€” POST /conversations/:id/messages, PortalChat.tsx]P0
C-W2As a client, I want to receive my Specialist's response in real time (or near real time via polling) so that the experience feels like messaging a colleague rather than submitting a support ticket. [Partial โ€” SSE streaming endpoint exists (/messages/stream); Socket.io gateway wired; client-side polling implemented in PortalChat]P0
C-W3As a client, I want to create a ticket for a specific, trackable work request (e.g. "update all Amazon listings for SKU X") so that I can follow progress and close the task when done.P0
C-W4As a client, I want to view the full thread of an individual ticket โ€” including all messages, Expert actions, and resolution โ€” so that I have a clear record of what was done. [Implemented โ€” GET /conversations/:id with paginated messages; ConversationHistory.tsx]P1
C-W5As a client, I want to see whether a response was handled autonomously by the AI Agent or reviewed/edited by an Expert so that I understand the level of human oversight applied to each piece of work. [Partial โ€” message role field distinguishes agent vs expert; no explicit AI/Expert label in client UI yet]P1
C-W6As a client, I want to search my conversation history by keyword so that I can quickly find past requests and decisions without scrolling through all messages. [Implemented โ€” GET /conversations/search?q=; full-text search via pg_trgm]P1
C-W7As a client, I want to see the status of an active multi-step agentic task (e.g. a reconciliation run with five sequential steps) so that I know where it is and whether any step is blocked.P1
C-W8(Deferred to post-launch โ€” MVP handles approval manually via the conversation channel; demoted from P0 โ†’ P2 on 2026-05-23.) As a client, I want to receive a notification and approve or reject a high-stakes action (e.g. a payment above a threshold) before my Specialist executes it so that I remain in control of consequential decisions.P2

Channel Source Visibilityโ€‹

IDStoryPriority
C-CH1As a client, I want to see which channel (web, email, WhatsApp, Slack) a conversation originated from so that I have context when switching between the portal and other channels. [Implemented โ€” ChannelBadge component; channel field on Conversation; badge visible in conversation list and chat header]P1

Communication & Channelsโ€‹

IDStoryPriority
C-C1As a client admin, I want to view all configured communication channels and their health status so that I know which channels are active and if any connection has broken.P1
C-C2As a client admin, I want to connect a WhatsApp Business account so that my Specialist can receive and respond to WhatsApp messages from customers or suppliers.P1
C-C3As a client admin, I want to configure a webhook URL for outbound notifications so that my internal systems can receive structured events when the Specialist completes tasks or encounters issues.P2
C-C4(Gap โ€” no implementation) As a client admin, I want to connect Microsoft Teams so that my Specialist is available to enterprise colleagues who use Teams as their primary communication channel.P2

Visibility & Reportingโ€‹

IDStoryPriority
C-V1As a client, I want to see a dashboard summary of recent conversations, open tickets, and pending items so that I can get a quick pulse on what my Specialist has been doing.P1
C-V2As a client admin, I want to see my message volume usage against my plan quota so that I can anticipate when I'll need to upgrade before hitting limits.P1
C-V3As a client admin, I want to see a chart of conversation volume over time so that I can identify trends in how heavily my team is using the Specialist.P2
C-V4(Gap โ€” no implementation) As a client, I want to see the AI's autonomous handling rate over time (what percentage of work was resolved without Expert intervention) so that I can track how the Specialist is improving as it learns my business.P2
C-V5(Gap โ€” no implementation) As a client, I want to see my Specialist's SLA performance (response times against committed targets) so that I can hold the platform accountable to the service level I'm paying for.P1

Team & Settingsโ€‹

IDStoryPriority
C-T1As a client admin, I want to invite a colleague by email so that they can access the portal and interact with the Specialist. [โœ… Complete โ€” self-service invites via POST /admin/members/invite; accessible to org_admin role; /client/settings/team]P0
C-T2As a client admin, I want to remove a team member from my organization so that former employees or contractors no longer have access. [โœ… Complete โ€” Admin/Owner can remove via DELETE /orgs/:orgId/members/:userId; /client/settings/team]P1
C-T3As a client admin, I want to set the risk threshold at which the Specialist auto-escalates to an Expert (low / medium / high / critical) so that I can tune how conservative or autonomous the AI is.P1
C-T4As a client admin, I want to view my Specialist's accumulated business context (key facts it has learned about my organization) so that I can verify accuracy and correct wrong assumptions before they affect live work. [โœ… Complete โ€” humanwork#297 delivered /client/admin/knowledge-base with document list, upload, search, delete, detail modal, chunks, and parse-status live updates]P2
C-T5As a workspace owner, I want to transfer ownership to another admin so that I can hand off primary responsibility when I leave or change roles. [โœ… Complete โ€” POST /orgs/:orgId/transfer-ownership; Owner-only; available in /client/settings/team]P1
C-T6As a non-owner, I want to leave the client portal so that I can remove my own access without involving an admin. [โš ๏ธ Partial โ€” UI stub exists in /client/settings/team; self-removal API pending โ€” issue #148]P1
C-T7As a client admin, I want to resend a pending team invite so that a colleague who lost the email gets a fresh link without me re-entering their details. [โœ… Complete โ€” re-inviting via POST /orgs/:orgId/invites is idempotent: rotates the token + resets the 7-day expiry, no duplicate row. ADR-023 D2/D3]P1
C-T8As a client admin, I want to revoke a pending invite so that someone I invited by mistake can't still join. [โš ๏ธ Partial โ€” pending invites auto-expire after 7 days and every resend rotates the token (cutting old links); pre-expiry removal is via DELETE /orgs/:orgId/members/:userId. No dedicated "revoke invite" action yet. ADR-023 D1]P1

Billingโ€‹

IDStoryPriority
C-B1As a client admin, I want to view my current plan, included quota, and usage to date so that I understand what I'm paying for and whether I'm on track.P1
C-B2As a client admin, I want to upgrade my plan when I'm approaching my usage limit so that I don't experience service degradation mid-month.P1
C-B3(Gap โ€” no implementation) As a client admin, I want to view my billing history and download invoices so that I can reconcile charges with my finance team.P2
C-B4As a client admin, I want to add a credit card via secure Checkout so that my Lago invoices are auto-paid. [โœ… Complete โ€” GET /client/billing/checkout-url returns a one-shot Stripe Checkout (setup-mode) URL the OrgAdmin redirects to; on success the saved card is vaulted to the org's Lago customer (Stripe is Lago's PSP). #1275, closes P0 #1268]P1

Role: Expertโ€‹

A human domain Expert who supervises Specialist AI Agents and handles escalations

Jobs To Be Doneโ€‹

  • Clear the queue efficiently โ€” review, edit, and send AI-drafted responses without context-switching away from a unified workspace.
  • Provide high-quality corrections โ€” when the Specialist AI gets something wrong, capture the correction in a structured way that feeds the learning loop.
  • Collaborate with colleagues โ€” discuss ambiguous tickets with peers in-line or in team rooms without resorting to separate tools.
  • Manage workload across customers โ€” see the queue across all assigned orgs and prioritize by urgency and risk.
  • Pre-approve high-stakes actions โ€” review multi-step agentic task plans and approve or reject individual steps before execution.
  • Track personal performance โ€” understand your own resolution metrics as your assignment grows.

User Storiesโ€‹

Onboardingโ€‹

IDStoryPriority
E-O1As a new expert, I want to accept an email invite and create my account so that I can access the expert workspace.P0
E-O2(Gap โ€” no UI built for expert profile) As a new expert, I want to set up my profile with my domain expertise and certifications so that the system can route me to the queues I'm qualified for.P1
E-O3(Gap โ€” no UI built) As a new expert, I want to see which client orgs I've been assigned to so that I know which clients and domains are my responsibility.P1

Reviewing & Respondingโ€‹

IDStoryPriority
E-R1As an expert, I want to see all pending escalations in my queue, sorted by risk level (critical โ†’ high โ†’ medium โ†’ low), so that I always work on the most urgent item first.P0
E-R2As an expert, I want to filter the queue by status (pending / in review / resolved) so that I can focus on items that still need my attention.P0
E-R3As an expert, I want to view the full customer conversation thread for a queued item so that I have all the context I need before responding.P0
E-R4As an expert, I want to see the AI's suggested response alongside its confidence score so that I can quickly accept, edit, or discard the draft rather than writing from scratch.P0
E-R5As an expert, I want to edit the AI's suggested response before sending it so that I can correct factual errors, adjust tone, or add information the AI missed.P0
E-R6As an Expert, I want to send my response to the customer as the Specialist (e.g., "Amy") so that the customer's experience is consistent regardless of which Expert handled the item.P0
E-R7As an expert, I want to resolve a ticket when work is complete so that it's removed from the active queue and logged as closed.P0
E-R8As an expert, I want to filter the queue by client so that I can focus on a specific client during a dedicated review session.P1
E-R9As an expert, I want to add an internal note to a ticket (not visible to the customer) so that I can leave context for colleagues who may pick up this item later. [Implemented โ€” is_internal/sender_id on messages; note toggle in PortalChat; addInternalNote() in TicketDetail; filtered from client message list]P1
E-R10As an expert, I want to defer a ticket (default 24 hours) so that I can handle time-sensitive items first and return to lower-urgency items later. [Backend implemented โ€” defer() in expert-queue.service sets deferred_until; frontend UI not yet confirmed]P1
E-R11As an Expert, I want to reassign a ticket to another Expert so that Experts better suited to the topic can handle it. [Backend reassign() implemented; reassign UI available in Expert workspace]P1
E-R12As an expert, I want to see queue items refresh automatically (every 10โ€“15 seconds) so that I don't miss new escalations without manually refreshing the page.P1
E-R13As an expert, I want to change a conversation's status (pending / awaiting_client / resolved / snoozed) directly from the workspace so that I can manage my queue state without leaving the ticket view. [Implemented โ€” PATCH /conversations/:id/status; status dropdown in PortalChat for expert role; snooze_until column for snoozed state. resolved is the terminal state; there is no separate archived (collapsed into resolved, #2002).]P1
E-R14As an expert, I want to assign a conversation to myself so that colleagues know who is handling it and it doesn't get worked on twice. [Implemented โ€” PATCH /conversations/:id/assign; "Assign to me" button in PortalChat for expert role; assigned_expert_id on Conversation]P1

Escalations & Agentic Tasksโ€‹

IDStoryPriority
E-A1As an expert, I want to review a multi-step agentic task plan before it executes so that I can catch risky or incorrect steps before they affect the customer's data or systems.P0
E-A2As an Expert, I want to approve an individual task step so that the Agent proceeds with that action knowing it has Expert sign-off.P0
E-A3As an Expert, I want to reject a task step with written feedback so that the Agent knows why the step was rejected and can revise its approach.P0
E-A4As an expert, I want to filter my task list by "pending approval" so that I can quickly find steps that are blocked waiting for my decision.P1

Corrections & Learningโ€‹

IDStoryPriority
E-L1As an expert, I want to submit a correction when the AI's response was factually wrong, tonally inappropriate, or missed something important so that the learning pipeline captures my feedback for model improvement.P0
E-L2(Gap โ€” correction UI exists but no categorization UI) As an expert, I want to tag a correction with an error type (factual error / tone / missed context / wrong tool) so that the learning team can prioritize the most common error categories.P1

Collaborationโ€‹

โš ๏ธ REMOVED. Collab (internal team chat) was removed from the product; the team uses Slack for internal communication. See docs/features/collab.md. User stories E-C1, E-C2, E-C3 are retained below as historical context only โ€” they are no longer in scope.

IDStoryPriority
E-C1As an expert, I want to send a message in a team room (e.g. "general") so that I can collaborate with colleagues, ask questions, and share context without switching to Slack or email. (REMOVED)P1
E-C2As an expert, I want to see unread message counts on each room so that I don't miss important team communications. (REMOVED)P1
E-C3(Gap โ€” no inline ticket discussion built) As an expert, I want to start a discussion thread attached to a specific ticket so that a colleague can weigh in on an ambiguous case without me having to copy-paste context into a separate channel. (REMOVED)P2

Performanceโ€‹

IDStoryPriority
E-P1As an Expert, I want to see my assigned clients and their current queue depth so that I understand my workload distribution across domains and customers. [Implemented โ€” GET /am/experts shows assignments, queue depth visible in workspace]P1
E-P2As an expert, I want to see my personal performance metrics (conversations handled, average resolution time, queue depth trend) so that I can identify where I'm performing well and where I need improvement.P2
E-P3(Gap โ€” no implementation) As an expert, I want to receive a push notification when a critical-risk item is escalated so that I can respond immediately from my phone rather than discovering it during my next queue check.P0
E-P4(Gap โ€” no mobile app built) As an expert, I want a native mobile app so that I can review and respond to escalations from anywhere, not just from a desktop browser.P1

Role: Account Manager (Superadmin)โ€‹

Internal Humanity Protocol staff managing client orgs, Expert assignments, and platform health

Jobs To Be Doneโ€‹

  • Provision and onboard new clients โ€” create orgs, configure Specialists, assign Experts, and ensure the first interaction succeeds.
  • Manage Expert assignments โ€” assign Experts to client orgs via direct assignment, ensuring capacity matches demand.
  • Monitor platform health โ€” catch incidents early across API, database, channel adapters, and Specialist sessions.
  • Track platform performance โ€” understand ticket volume, auto-resolve rates, and Expert leverage ratios across all orgs.
  • Manage billing โ€” maintain Lago subscriptions across all orgs (self-hosted Lago โ€” Railway for dev; AWS for staging + prod, see #1287) and track per-Specialist monthly rates.
  • Maintain security and access control โ€” change roles, reset passwords, and audit activity.

User Storiesโ€‹

Client Managementโ€‹

IDStoryPriority
SA-C1As a superadmin, I want to create a new client with an initial admin user so that the client can log in and begin configuring their account immediately after signing.P0
SA-C2As a superadmin, I want to view a list of all clients so that I can monitor onboarding status and overall platform adoption at a glance.P0
SA-C3As a superadmin, I want to drill into an individual client to see their members, ticket activity, assigned experts, and plan so that I can answer questions and manage their account.P0
SA-C4As a superadmin, I want to assign Experts directly to a specific client org so that escalations from that client route to the right people. [Implemented โ€” expert_access grants via ExpertAccessService (ADR-007). Legacy org_experts table DROPPED 2026-06-05 via PR #1711 PR 4 (commit 1a904fa5); expert_access is the sole grant table. Pool model removed 2026-05-03.]P0
SA-C5As a superadmin, I want to remove an expert from a client org so that when an expert's assignment changes, routing is updated immediately.P1
SA-C6As a superadmin, I want to reset a user's password so that I can unblock a client admin who is locked out without requiring a support ticket.P1
SA-C7As a superadmin, I want to change a user's platform role (e.g. promote a user to expert, or change an expert to org_admin) so that I can manage permissions without touching the database directly.P1
SA-C8(Gap โ€” no implementation) As a superadmin, I want to view the complete conversation history for a specific client org so that I can audit quality, investigate a complaint, or prepare a client business review.P2
SA-C9(Gap โ€” no implementation) As a superadmin, I want to configure the named account lead for a client org so that customers always have a consistent relationship owner even as pool members rotate.P1
SA-C10As a superadmin, I want to resend (and, via member removal, revoke) invites for any client org from /ops/team so that I can unblock onboarding without the client admin in the loop. [โœ… Complete (resend) โ€” POST /orgs/:orgId/invites rotates the token + resets the 7-day expiry; revoke via DELETE /orgs/:orgId/members/:userId. ADR-023 D2/D3]P1

Expert Managementโ€‹

IDStoryPriority
SA-E1As a superadmin, I want to create a new expert pool [REMOVED 2026-05-03 โ€” expert pool model deleted; Expert โ†” data access now via expert_access (ADR-007).]P0
SA-E2As a superadmin, I want to add an expert to an existing pool so that new hires can begin receiving escalations in their domain immediately.P0
SA-E3As a superadmin, I want to see each pool's current queue depth so that I can identify when a pool is overloaded and needs additional members.P1
SA-E4[Implemented โ€” /ops/analytics Expert leverage section; GET /ops/analytics/expert-leverage (SuperAdmin); leverage derived from expert_access (ADR-007), not pools. PR #3199 / #3197.] As a superadmin, I want to see expert leverage ratios (clients & Specialist instances per Expert) so that I can monitor whether unit economics are on track and flag Experts where leverage is too low.P1
SA-E5(Gap โ€” HP credential verification is a stub) As a superadmin, I want to trigger Humanity Protocol credential verification for an expert so that their credentials are cryptographically confirmed and their actions carry a verified attribution trail.P1

Global Queue & Opsโ€‹

IDStoryPriority
SA-Q1As a superadmin, I want to view the global escalation queue across all orgs so that I can spot systemic issues (e.g. a surge in critical items from one domain) without having to check each org individually.P1
SA-Q2As a superadmin, I want to filter the global queue by risk level and status so that I can focus on the highest-severity open items across the entire platform.P1
SA-Q3As a superadmin, I want to view correction statistics by org and by error type so that I can identify which customer's agent is degrading in quality and escalate to the learning team.P2

Billing & Analyticsโ€‹

IDStoryPriority
SA-B1As a superadmin, I want to view a table of all org subscriptions with their plan tier and ticket counts so that I can report on platform revenue distribution.P1
SA-B2As a superadmin, I want to create or cancel a Lago subscription for an org so that billing is kept in sync when clients sign, expand, or churn.P1
SA-B3As a superadmin, I want to see platform-wide metrics (total ticket volume, auto-resolve rate, number of active experts, tickets by category) so that I can track operational health and prepare investor/board updates.P1
SA-B4(Gap โ€” analytics are mock data) As a superadmin, I want analytics backed by live data rather than hardcoded mock values so that the metrics I report are accurate and current.P0
SA-B5[Partial โ€” per-org LLM cost (total + per-Specialist) and per-Specialist Expert workload (items handled + handle time) ship on /ops/billing?org=<id> via PRs #3195 (LLM cost) + #3200 (workload, #3196). Remaining: dollarized Expert-labour cost + infrastructure cost โ†’ true gross-margin view (tracked in #3196).] As a superadmin, I want to see per-org LLM and infrastructure cost breakdowns so that I can confirm each client's gross margin and flag any customers where costs are outpacing revenue.P2

Platform Opsโ€‹

IDStoryPriority
SA-P1As a superadmin, I want to view the health status of all platform services (API, database, Redis, channel adapters) in one place so that I can detect and respond to incidents before they impact customers.P0
SA-P2As a superadmin, I want to view Prometheus metrics so that the on-call engineer can integrate platform health into the team's existing monitoring and alerting stack (Datadog/CloudWatch).P1
SA-P3As a superadmin, I want to view the audit log so that I can investigate suspicious activity, prepare compliance evidence, or trace the sequence of events leading to an error.P2
SA-P4(Gap โ€” no implementation) As a superadmin, I want to see each org's channel adapter status (which channels are connected and healthy) so that I can proactively flag clients whose Slack or WhatsApp connection has broken.P1
SA-P5โŒ Not implemented โ€” API only As a superadmin, I want to enable or disable tool permissions for a specific org (e.g. allow Shopify queries, block Amazon write access) so that I can tailor the agent's capabilities to what each client has authorized. API exists (PUT /orgs/:orgId/tool-permissions/:toolName); frontend UI not built.P1

Identified Gapsโ€‹

The following stories represent clear product needs that have no current implementation or spec and should be scoped for upcoming cycles:

GapAffected RolePriorityNotes
Client-facing high-stakes approval flowClientP0PRD Section 6.5 describes pre-approval for high-risk actions; no client UI exists.
Business context import / onboarding wizardClientP1PRD Section 6.3 describes context-building in first 30 days; no upload or config UI.
Specialist knowledge visibility for clientsClientP2Delivered by humanwork#297 for uploaded business documents; correction workflow remains future.
SLA performance dashboardClientP1PRD defines SLA tiers; no client-facing SLA tracking UI.
Billing history / invoice downloadClientP2Billing page shows plan but no invoice history.
Push notifications for critical escalationsExpertP0PRD Section 2 principle 9 says mobile-first; no push notifications built.
Native mobile app (expert)ExpertP1PRD explicitly requires native mobile; only web workspace built.
Expert profile + expertise taggingExpertP1Routing and pool assignment should respect declared expertise; no profile UI.
Inline ticket discussion (expert โ†” expert)ExpertP2REMOVED. Collab module was removed; team uses Slack. See features/collab.md.
Correction categorization UIExpertP1Correction endpoint exists but no error-type tagging in the UI.
Humanity Protocol credential verificationExpert + SuperadminP1/users/:id/hp-verify is a stub; integration not functional.
Named account lead assignmentSuperadminP1PRD requires one named lead per client; no UI to set or display this.
Per-org channel adapter healthSuperadminP1Channel health API exists but not surfaced in superadmin UI.
Live analytics dataSuperadminP0Superadmin analytics page uses hardcoded mock data.
Per-org gross-margin (dollarized cost)SuperadminP2Partial: per-org LLM cost + Expert workload surfaced (PRs #3195/#3200). Remaining: dollarized Expert-labour + infra cost โ†’ margin (#3196).
Tool permission management UISuperadminP1API endpoint exists (PUT /orgs/:orgId/tool-permissions/:toolName); no frontend.
AWS Secrets Manager integrationPlatformP1Required for production credential management; credentials currently in env vars.

Priority Indexโ€‹

Story IDStory (short)RolePriorityTheme
C-O1Accept invite + set passwordClientP0Onboarding
C-O2Connect Slack workspaceClientP0Onboarding
C-O3Connect inbound emailClientP0Onboarding
C-W1Send message in portal chatClientP0Getting Work Done
C-W2Receive real-time agent responseClientP0Getting Work Done
C-W3Create a trackable ticketClientP0Getting Work Done
C-W8Approve high-stakes action before execution (deferred โ€” manual approval via chat for MVP; demoted to P2 on 2026-05-23)ClientP2Getting Work Done
C-T1Invite team memberClientP0Team & Settings
E-O1Accept invite, create expert accountExpertP0Onboarding
E-R1View queue sorted by riskExpertP0Reviewing & Responding
E-R2Filter queue by statusExpertP0Reviewing & Responding
E-R3View full customer threadExpertP0Reviewing & Responding
E-R4See AI suggestion + confidence scoreExpertP0Reviewing & Responding
E-R5Edit AI suggestion before sendingExpertP0Reviewing & Responding
E-R6Send response as named agentExpertP0Reviewing & Responding
E-R7Resolve a ticketExpertP0Reviewing & Responding
E-A1Review multi-step agentic task planExpertP0Escalations & Agentic Tasks
E-A2Approve a task stepExpertP0Escalations & Agentic Tasks
E-A3Reject a task step with feedbackExpertP0Escalations & Agentic Tasks
E-L1Submit a correctionExpertP0Corrections & Learning
E-P3Push notification for critical escalation (gap)ExpertP0Performance
SA-C1Create new clientSuperadminP0Client Management
SA-C2List all clientsSuperadminP0Client Management
SA-C3Drill into client detailSuperadminP0Client Management
SA-C4Assign experts to clientSuperadminP0Client Management
SA-E1Create expert pool (removed โ€” pool model deleted)SuperadminP0Expert Management
SA-E2Add expert to poolSuperadminP0Expert Management
SA-P1View platform health dashboardSuperadminP0Platform Ops
SA-B4Analytics backed by live data (gap)SuperadminP0Billing & Analytics
C-O4Configure agent name + risk thresholdClientP1Onboarding
C-O5Invite team membersClientP1Onboarding
C-O6Upload business context during onboarding (gap)ClientP1Onboarding
C-O7Self-service new invite link on expiryClientP1Onboarding
C-W4View full ticket threadClientP1Getting Work Done
C-W5See AI vs expert handling labelClientP1Getting Work Done
C-W6Search conversation historyClientP1Getting Work Done
C-W7Track multi-step agentic task statusClientP1Getting Work Done
C-C1View channel health statusClientP1Communication & Channels
C-C2Connect WhatsApp BusinessClientP1Communication & Channels
C-V1Dashboard summary of recent activityClientP1Visibility & Reporting
C-V2Usage vs plan quotaClientP1Visibility & Reporting
C-V5SLA performance dashboard (gap)ClientP1Visibility & Reporting
C-T2Remove team memberClientP1Team & Settings
C-T3Set escalation risk thresholdClientP1Team & Settings
C-T5Transfer team ownershipClientP1Team & Settings
C-T6Leave client portal (self-service)ClientP1Team & Settings
C-T7Resend pending team inviteClientP1Team & Settings
C-T8Revoke pending invite (partial)ClientP1Team & Settings
C-B1View plan + usageClientP1Billing
C-B2Upgrade planClientP1Billing
C-B4Add payment method (Stripe Checkout)ClientP1Billing
E-O2Set up expert profile + domain tags (gap)ExpertP1Onboarding
E-O3See assigned client orgs (gap)ExpertP1Onboarding
E-R8Filter queue by orgExpertP1Reviewing & Responding
E-R9Add internal note to ticketExpertP1Reviewing & Responding
E-R10Defer a ticketExpertP1Reviewing & Responding
E-R11Reassign ticket to another expert (pool model removed)ExpertP1Reviewing & Responding
E-R12Queue auto-refreshesExpertP1Reviewing & Responding
E-A4Filter tasks by pending approvalExpertP1Escalations & Agentic Tasks
E-L2Tag correction by error type (gap)ExpertP1Corrections & Learning
E-C1Send messages in team room (REMOVED)ExpertP1Collaboration
E-C2See unread counts per room (REMOVED)ExpertP1Collaboration
E-P1View pool membership + queue depthExpertP1Performance
E-P4Native mobile app (gap)ExpertP1Performance
SA-C5Remove expert from clientSuperadminP1Client Management
SA-C6Reset user passwordSuperadminP1Client Management
SA-C7Change user platform roleSuperadminP1Client Management
SA-C9Configure named account lead per client (gap)SuperadminP1Client Management
SA-C10Resend / revoke invites across orgsSuperadminP1Client Management
SA-E3See pool queue depthSuperadminP1Expert Management
SA-E4See expert leverage ratios (shipped โ€” #3199)SuperadminP1Expert Management
SA-E5Trigger HP credential verification (gap)SuperadminP1Expert Management
SA-Q1View global queue (all orgs)SuperadminP1Global Queue & Ops
SA-Q2Filter global queue by risk + statusSuperadminP1Global Queue & Ops
SA-B1View all client subscriptions + plan tiersSuperadminP1Billing & Analytics
SA-B2Create / cancel Lago subscriptionSuperadminP1Billing & Analytics
SA-B3Platform-wide metrics dashboardSuperadminP1Billing & Analytics
SA-P2View Prometheus metricsSuperadminP1Platform Ops
SA-P4Per-client channel adapter health (gap)SuperadminP1Platform Ops
SA-P5Enable/disable tool permissions per clientSuperadminP1Platform Ops
C-C3Configure notification webhookClientP2Communication & Channels
C-C4Connect Microsoft Teams (gap)ClientP2Communication & Channels
C-V3Conversation volume chartClientP2Visibility & Reporting
C-V4AI autonomous handling rate over time (gap)ClientP2Visibility & Reporting
C-T4View Specialist accumulated contextClientP2Team & Settings
C-B3Billing history + invoice download (gap)ClientP2Billing
E-C3Inline ticket discussion between experts (gap) (REMOVED)ExpertP2Collaboration
E-P2Personal performance metricsExpertP2Performance
SA-C8View client's full conversation historySuperadminP2Client Management
SA-Q3Correction stats by client + error typeSuperadminP2Global Queue & Ops
SA-B5Per-client cost tracking (partial โ€” #3195/#3200)SuperadminP2Billing & Analytics
SA-P3View audit logSuperadminP2Platform Ops