Brings the locked FlowPilot migration design onto the branch that will implement it. Includes the annotated target UI mockups (primary session view + three Script Generator integration states) and the superseded FLOWPILOT-AND-RESOLUTIONASSIST.md for historical reference. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
164 lines
10 KiB
Markdown
164 lines
10 KiB
Markdown
# FlowPilot & ResolutionAssist
|
||
|
||
> ResolutionFlow offers two AI-driven troubleshooting modes that share the same session backend but present very different interaction styles. Both work standalone and become richer when paired with a PSA connection.
|
||
|
||
---
|
||
|
||
## At a glance
|
||
|
||
| | **FlowPilot** | **ResolutionAssist** |
|
||
|---|---|---|
|
||
| **Style** | Guided, structured | Conversational, freeform |
|
||
| **Entry** | `/pilot` | `/assistant` |
|
||
| **Interaction** | Questions → Actions → Resolution, one step at a time | Natural chat with inline questions/actions |
|
||
| **Best for** | Reproducible workflows, low-context engineers, handoffs | Exploratory problems, quick lookups, rubber-ducking |
|
||
| **Lifecycle** | Active → Paused → Resolved / Escalated / Abandoned | Active → Resolved / Abandoned (lightweight) |
|
||
| **Confidence tracking** | Yes — drives tier transitions | No — always responsive to user direction |
|
||
| **Navigation guard** | Yes — prevents accidental loss | No — free to leave and return |
|
||
|
||
Both modes share the `ai_sessions` table (discriminated by `session_type`), the same multimodal AI backend (image uploads, markdown, cached prompts), and the same `[QUESTIONS]` / `[ACTIONS]` / `[FORK]` marker vocabulary that renders inline TaskLane elements.
|
||
|
||
---
|
||
|
||
## FlowPilot — guided troubleshooting
|
||
|
||
FlowPilot is a wizard-style AI engineer that walks you through a problem one diagnostic step at a time. It runs on confidence tiers:
|
||
|
||
- **Discovery** (confidence < 0.4) — asking broad, open-ended questions to characterize the problem
|
||
- **Exploring** (0.4–0.8) — proposing targeted actions and narrowing hypotheses
|
||
- **Guided** (≥ 0.8) — recommending a specific fix with steps to verify
|
||
|
||
### The FlowPilot session flow
|
||
|
||
1. **Intake.** You start from `/pilot` or from the dashboard "New Session" button. The intake screen accepts free-text description, PSA ticket context, screenshots, or log pastes.
|
||
2. **Preference check.** Before suggesting any fix, the AI asks whether you want a **GUI** or **script** approach. This is enforced in the system prompt so you never get steps you can't execute.
|
||
3. **Step-by-step progression.** Each AI response is either a question (with clickable options), an action (with "Done" / "Didn't work" buttons), a `[FORK]` (two distinct paths to try), or a final resolution suggestion. You respond, the AI updates its confidence, and the next step is generated.
|
||
4. **Action bar.** The session header always shows **Pause & Leave**, **Resolve**, **Escalate**, **Share Update**, and **Close**. Pausing freezes the session; resuming restores the full context.
|
||
5. **Resolve / Escalate.** *Resolve* marks the ticket fixed and generates a clean summary of what worked. *Escalate* packages the problem summary and steps tried into an **escalation package** that the next engineer (or the PSA ticket) inherits.
|
||
|
||
### Why FlowPilot exists
|
||
|
||
- **New engineers** get senior-engineer-level diagnostic rigor without needing the experience to know what to ask next.
|
||
- **Documented resolutions** — every step is captured, so the generated note on the ticket is substantive (not just "fixed it").
|
||
- **Handoff-friendly** — escalation packages mean the next person doesn't start from zero.
|
||
|
||
---
|
||
|
||
## ResolutionAssist — conversational AI
|
||
|
||
ResolutionAssist is a chat with an expert IT systems engineer. It's less structured than FlowPilot but still surfaces interactive elements when the AI wants structured input.
|
||
|
||
### The ResolutionAssist flow
|
||
|
||
1. **Open a chat.** From `/assistant` or the dashboard. Sessions show up in the left sidebar just like any messaging app.
|
||
2. **Send a message.** Freeform prose. Attach up to 3 images per message (screenshots, error dialogs, network diagrams). Paste logs, code, or PowerShell output.
|
||
3. **AI responds.** The response is prose, but any `[QUESTIONS]` or `[ACTIONS]` blocks render as a **TaskLane** — a side panel with clickable options and action buttons. You can answer via chat or click the TaskLane elements.
|
||
4. **Branching (`[FORK]`).** If the AI proposes two paths ("check cable or restart switch?"), the fork renders as a choice. Picking one continues the conversation down that path.
|
||
5. **Resume later.** Unlike FlowPilot, there's no navigation guard. Leave mid-conversation; every message is stored.
|
||
|
||
### Why ResolutionAssist exists
|
||
|
||
- **Unstructured problems** — "I have no idea where to start, here's a screenshot" works great.
|
||
- **Reference lookups** — "what's the right PowerShell command to check Exchange health" is faster in chat than through an intake form.
|
||
- **Senior engineers** — when you already know what you're doing and just want a second opinion or a syntax check.
|
||
|
||
---
|
||
|
||
## Without a PSA connection
|
||
|
||
Both modes work standalone. Without ConnectWise connected:
|
||
|
||
- Sessions live entirely in ResolutionFlow. They're listed in your session history, searchable, and shareable via public share links (`/shared/sessions/:token`).
|
||
- Summaries generated on Resolve are saved to the session record but **not** written anywhere else. You can copy/paste into whatever ticketing or documentation system you use.
|
||
- Escalating a FlowPilot session routes the escalation package to another ResolutionFlow engineer on your team — not to an external PSA ticket.
|
||
- No ticket context is injected into the AI prompt, so the AI starts cold with only what you provide in the intake or first message.
|
||
|
||
**Standalone use cases:**
|
||
- Evaluating ResolutionFlow before committing to a PSA integration
|
||
- Troubleshooting internal IT issues that aren't client-facing
|
||
- Teams using a PSA ResolutionFlow doesn't integrate with yet
|
||
- Knowledge-base research ("what are my options for X") that don't map to a ticket
|
||
|
||
---
|
||
|
||
## With a PSA connection (ConnectWise)
|
||
|
||
When ConnectWise is connected, both modes become ticket-aware and write back to the PSA as a first-class client.
|
||
|
||
### FlowPilot + PSA
|
||
|
||
**Starting from a ticket:**
|
||
- Click a ticket row (from `/tickets` or the dashboard queue) and pick "Start FlowPilot." The ticket's problem description, recent notes, configurations, company details, and related tickets are auto-injected into the AI's context. No manual retyping.
|
||
- The session shows the linked ticket badge in the header.
|
||
|
||
**During the session:**
|
||
- **Share Update** — posts an interim note to the CW ticket with the current AI summary, so stakeholders can see progress without interrupting you.
|
||
- **Status changes** — the detail panel and session header let you move the ticket through statuses (New → In Progress → Waiting on Customer → Resolved) directly from ResolutionFlow. Status writes are verified against CW so you're never told "success" when CW silently rejected the change.
|
||
- **Resource assignment** — add yourself or a teammate as a co-assignee without touching the owner. If the ticket has no owner yet, assigning sets owner; if there's already an owner, you're added as an additional resource via a CW schedule entry.
|
||
|
||
**On Resolve:**
|
||
- Final summary is posted as a ticket note.
|
||
- Ticket status can auto-update to Resolved (per your team's settings).
|
||
|
||
**On Escalate:**
|
||
- The escalation package (problem summary + steps tried) is posted as a note.
|
||
- The ticket can be routed via CW's normal escalation rules.
|
||
- The next engineer picking up the ticket can auto-start a new session with the full escalation context pre-filled.
|
||
|
||
**Spin-off tickets (new):**
|
||
- During any session, if you discover a separate issue, the AI can propose `create_spin_off_ticket`. Accepting opens the New Ticket modal pre-filled with the current ticket's company and board, so a second ticket is one click away without leaving your session.
|
||
|
||
### ResolutionAssist + PSA
|
||
|
||
**Starting from a ticket:**
|
||
- Same ticket-context injection as FlowPilot. When opened with a linked ticket, the AI sees company, configs, notes, and related tickets.
|
||
- A "New Ticket" button appears in the header — lets you spawn a separate ticket mid-conversation (same flow as FlowPilot's spin-off).
|
||
|
||
**During the chat:**
|
||
- Ask the AI about the ticket directly: *"Summarize what's been tried," "What configs does this company have?"* — the AI already has that context loaded.
|
||
- `[ACTIONS]` can include `create_spin_off_ticket` when the AI detects a separate issue surfaced in the conversation.
|
||
|
||
**Writing back:**
|
||
- ResolutionAssist is a lighter-weight mode, so it doesn't auto-post on resolve. You can manually copy the conversation summary to a ticket note if useful.
|
||
- Status updates and resource assignment are done via the `/tickets` page rather than the chat UI.
|
||
|
||
---
|
||
|
||
## Choosing between them
|
||
|
||
| I want to… | Use |
|
||
|---|---|
|
||
| Walk through a known issue type with step-by-step rigor | **FlowPilot** |
|
||
| Document every action taken for audit or handoff | **FlowPilot** |
|
||
| Escalate with a full context package | **FlowPilot** |
|
||
| Ask a question, get an answer, move on | **ResolutionAssist** |
|
||
| Paste a screenshot and say "what's wrong here?" | **ResolutionAssist** |
|
||
| Stay on the ticket for 2 minutes, not 20 | **ResolutionAssist** |
|
||
| Troubleshoot without breaking flow to switch pages | Either, with the linked ticket panel open alongside |
|
||
|
||
The two modes aren't competitive. A common workflow is to start in ResolutionAssist to scope the problem, then kick off a FlowPilot session when you realize the issue is going to take real diagnosis. Both show up in the unified session history.
|
||
|
||
---
|
||
|
||
## Tickets page — the PSA hub
|
||
|
||
`/tickets` is the CW ticket manager built into ResolutionFlow. With a PSA connection:
|
||
|
||
- Search and filter tickets by assignment (me / unassigned / specific member via searchable picker), board, status, priority, company, open/closed.
|
||
- Slide-out detail panel shows notes, configurations, related tickets, and assignees — all fetched in parallel for fast hydration.
|
||
- From the detail panel: change status, add/remove assignees, post notes, or "Start FlowPilot" / "Open in ResolutionAssist" with full context.
|
||
- New Ticket modal offers both AI-parse ("Create a high-priority ticket for Acme — Outlook not syncing for jsmith") and a traditional form.
|
||
|
||
Without a PSA connection, `/tickets` is hidden from the sidebar entirely — there's nothing to show.
|
||
|
||
---
|
||
|
||
## Summary
|
||
|
||
- **FlowPilot** = guided, structured, lifecycle-heavy, ideal for resolvable issues and handoffs.
|
||
- **ResolutionAssist** = freeform chat, ideal for scoping and quick answers.
|
||
- **Without PSA** = both work, sessions live in ResolutionFlow, summaries are yours to export.
|
||
- **With PSA** = both become ticket-aware, write back to CW (notes, status, resources), and can spawn spin-off tickets mid-session.
|
||
|
||
The AI is the same under the hood. The difference is how much structure you want around the conversation — and how deeply the result needs to integrate with your ticketing system.
|