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>
10 KiB
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
- Intake. You start from
/pilotor from the dashboard "New Session" button. The intake screen accepts free-text description, PSA ticket context, screenshots, or log pastes. - 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.
- 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. - Action bar. The session header always shows Pause & Leave, Resolve, Escalate, Share Update, and Close. Pausing freezes the session; resuming restores the full context.
- 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
- Open a chat. From
/assistantor the dashboard. Sessions show up in the left sidebar just like any messaging app. - Send a message. Freeform prose. Attach up to 3 images per message (screenshots, error dialogs, network diagrams). Paste logs, code, or PowerShell output.
- 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. - 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. - 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
/ticketsor 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 includecreate_spin_off_ticketwhen 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
/ticketspage 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.