Skip to content

feat: PrintVis Support Ticket Classifier — AI-powered PromptDialog (objects 50110–50112)#14

Draft
MBPrintVis with Copilot wants to merge 3 commits into
mainfrom
copilot/printvis-support-ticket-classifier
Draft

feat: PrintVis Support Ticket Classifier — AI-powered PromptDialog (objects 50110–50112)#14
MBPrintVis with Copilot wants to merge 3 commits into
mainfrom
copilot/printvis-support-ticket-classifier

Conversation

Copilot AI commented Jun 23, 2026

Copy link
Copy Markdown

Adds a Copilot-assisted support ticket classifier to the Prototyping app. A support agent pastes raw ticket text; Azure OpenAI classifies it into one of nine standard categories with a confidence score, rationale, and suggested next action.

New objects

ID Type Name
50110 Enum PVS Ticket Category — Issue, HowTo, EventRequest, Idea, License, BCRelated, TechnicalQuestion, ResourceRequest, Other
50110 Table PVS Ticket Classification — log (Blob ticket text, category, confidence, rationale, suggested action, timestamp, user)
50110 Codeunit PVS Ticket Classifier AI — Azure OpenAI via BC Copilot toolkit
50110 Page PVS Ticket ClassifierPromptDialog
50111 Page PVS Ticket Classification Log — list view
50110 EnumExt Extends "Copilot Capability" with "PVS Ticket Classifier" (value 50110)
50111 Codeunit PVS Ticket Classifier Install — registers capability on install
50110 PermSet PVS Ticket Classifier — RIMD on Table 50110, Execute on Codeunit/Pages 50110–50111
50112 Page PVS Support Tools — standalone Card entry point

AI codeunit

[TryFunction] on the public Classify method; caller checks the Boolean return and calls GetLastErrorText() on failure. Category parsing is case-insensitive (LowerCase()) to guard against AI response variation. Category → StyleExpr mapping is centralised in GetCategoryStyle and reused by both pages.

[TryFunction]
procedure Classify(TicketText: Text; var Category: Enum "PVS Ticket Category";
    var Confidence: Integer; var Rationale: Text; var SuggestedAction: Text)

No setup table — relies on BC's managed Copilot resource (IsEnabled + SetCopilotCapability); endpoint is expected configured at the BC environment level.

PromptDialog UX

  • Starts in Prompt mode; switches to Content after successful classification.
  • System actions: Classify (Generate) → Reclassify (Regenerate, resets to Prompt) → Save to Log (OK, inserts Table 50110 record) → Discard (Cancel).
  • Category field uses StyleExpr: Issue = Unfavorable, EventRequest/Idea = Favorable, all others = Ambiguous.
  • Emits a Message if AI response text exceeds field storage limits before truncating.

Copilot AI changed the title [WIP] Add PrintVis support ticket classifier prototype feat: PrintVis Support Ticket Classifier — AI-powered PromptDialog (objects 50110–50112) Jun 23, 2026
Copilot AI requested a review from MBPrintVis June 23, 2026 13:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants