System Architecture
End-to-end flow from employee message to resolved ticket, across Microsoft 365 and the internal ITSM platform.
Component Breakdown
๐ง Copilot Studio โ Dialog Engine
What it does: Hosts the conversational AI agent. Manages dialog topics, slot filling, and fallback handling.
- Custom topics for IT categories (Hardware, Software, Network, Access)
- Entity extraction for email, urgency, and system name
- Escalation to human agent if confidence < 0.6
- Adaptive card responses for quick-reply buttons (urgency selection)
โก Power Automate โ Cloud Flow
What it does: Backend orchestration layer triggered by Copilot Studio via HTTP action.
- Input validation (email format, required fields)
- Category classifier using a lookup table in SharePoint
- Creates ticket record in Dataverse with all structured fields
- Calls ITSM REST API to register ticket externally
- Sends Outlook confirmation email with ticket details + SLA
- Returns ticket ID and team assignment to Copilot Studio
๐๏ธ Dataverse โ Data Layer
What it does: Stores every ticket record created by the agent in a structured table.
- Custom "IT Support Ticket" table with 12 columns
- Lookup tables for Categories, Teams, SLA tiers
- Audit fields (created by, modified date, resolution timestamp)
- Power BI report connects directly for weekly dashboarding
๐ซ ITSM Integration
What it does: Writes the ticket to the organisation's existing IT service management system.
- HTTP connector in Power Automate posts to ITSM REST endpoint
- Maps Dataverse fields to ITSM schema (INC number returned)
- Bi-directional: status updates from ITSM flow back to Dataverse
๐ฌ Microsoft Teams โ Channel
What it does: Primary user-facing channel where employees interact with the agent.
- Agent published as a Teams app via Copilot Studio publish flow
- Available in personal chat and IT Support team channel
- Adaptive cards rendered natively within Teams
- Proactive message sent when ticket is updated
โ๏ธ Outlook / Exchange
What it does: Sends email confirmations and SLA breach alerts.
- Office 365 Outlook connector in Power Automate
- Templated HTML email with ticket summary and tracking link
- Escalation email to IT manager if SLA exceeded
Data Flow โ Field Mapping
How each piece of user input maps through the system from conversation to ITSM record.
| User Says / Selects | Copilot Studio Entity | Dataverse Field | ITSM Field | Validation |
|---|---|---|---|---|
| Free-text issue description | issue_description (string) | Description | short_description | Max 500 chars |
| Work email address | user_email (email entity) | RequestorEmail | caller_id (lookup) | Regex + domain whitelist |
| "High / Medium / Low" | urgency_level (enum) | Priority | priority (1/2/3) | Must be one of 3 values |
| Affected system (optional) | affected_system (string) | AffectedSystem | cmdb_ci | Fuzzy-matched to CI list |
| (derived) | category (classifier) | Category | category | SharePoint lookup table |
| (derived) | assigned_team | AssignedTeam | assignment_group | Mapped from category |
| (system) | ticket_created_at | CreatedOn | opened_at | UTC timestamp |