-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTECHNICAL_ARCHITECTURE.html
More file actions
243 lines (223 loc) · 10 KB
/
TECHNICAL_ARCHITECTURE.html
File metadata and controls
243 lines (223 loc) · 10 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TicketZero AI - Technical Architecture</title>
<style>
body { font-family: 'Segoe UI', Arial, sans-serif; margin: 40px; line-height: 1.6; }
h1 { color: #007BFF; border-bottom: 3px solid #007BFF; padding-bottom: 10px; }
h2 { color: #0056b3; margin-top: 30px; }
h3 { color: #444; margin-top: 20px; }
.architecture { background: #f8f9fa; padding: 20px; border-radius: 8px; margin: 20px 0; }
.api-block { background: #e3f2fd; padding: 15px; margin: 15px 0; border-left: 4px solid #2196f3; }
.integration { background: #fff3e0; padding: 15px; margin: 15px 0; border-left: 4px solid #ff9800; }
code { background: #f4f4f4; padding: 2px 6px; border-radius: 3px; font-family: 'Courier New', monospace; }
pre { background: #263238; color: #aed581; padding: 15px; border-radius: 5px; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; margin: 20px 0; }
th, td { border: 1px solid #ddd; padding: 12px; text-align: left; }
th { background: #007BFF; color: white; }
.flow { background: #f0f7ff; padding: 20px; border: 2px solid #007BFF; border-radius: 8px; margin: 20px 0; }
</style>
</head>
<body>
<h1>TicketZero AI - Technical Architecture</h1>
<div class="architecture">
<h2>Core Integration Components</h2>
<p>TicketZero AI leverages enterprise-grade APIs to provide automated IT support resolution through Zoho Desk.</p>
</div>
<h2>1. Microsoft Graph API Integration</h2>
<div class="api-block">
<h3>Purpose: Azure AD / Microsoft 365 Management</h3>
<p>We use Microsoft Graph API for all Active Directory and Office 365 operations:</p>
<ul>
<li><strong>Password Resets:</strong> <code>POST /users/{id}/authentication/passwordMethods/reset</code></li>
<li><strong>Account Unlocks:</strong> <code>PATCH /users/{id}</code> (accountEnabled property)</li>
<li><strong>User Management:</strong> <code>GET/PATCH /users</code></li>
<li><strong>Group Management:</strong> <code>GET/POST /groups</code></li>
<li><strong>License Assignment:</strong> <code>POST /users/{id}/assignLicense</code></li>
</ul>
<h4>Authentication Flow:</h4>
<pre>
// OAuth 2.0 Client Credentials Flow
POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
{
"client_id": "your-app-id",
"client_secret": "your-secret",
"scope": "https://graph.microsoft.com/.default",
"grant_type": "client_credentials"
}
</pre>
<h4>Required Permissions:</h4>
<table>
<tr><th>Permission</th><th>Type</th><th>Purpose</th></tr>
<tr><td>User.ReadWrite.All</td><td>Application</td><td>User management</td></tr>
<tr><td>UserAuthenticationMethod.ReadWrite.All</td><td>Application</td><td>Password resets</td></tr>
<tr><td>Directory.ReadWrite.All</td><td>Application</td><td>Directory operations</td></tr>
</table>
</div>
<h2>2. Zoho Assist API Integration</h2>
<div class="integration">
<h3>Purpose: Remote Machine Access & Local Operations</h3>
<p>We integrate with Zoho Assist for remote desktop operations and local machine management:</p>
<h4>Key Features Used:</h4>
<ul>
<li><strong>Unattended Access:</strong> Pre-configured access to user machines</li>
<li><strong>Remote Command Execution:</strong> Run scripts on remote machines</li>
<li><strong>File Transfer:</strong> Deploy software and updates</li>
<li><strong>System Information:</strong> Gather diagnostics</li>
</ul>
<h4>API Endpoints:</h4>
<pre>
// Initiate Remote Session
POST https://assist.zoho.com/api/v2/sessions
{
"session_type": "unattended",
"computer_id": "user-machine-id",
"technician_id": "bot-technician-id"
}
// Execute Remote Command
POST https://assist.zoho.com/api/v2/sessions/{session_id}/execute
{
"command": "Get-Process | Where-Object {$_.WorkingSet -gt 100MB}",
"type": "powershell"
}
</pre>
<h4>Supported Operations:</h4>
<table>
<tr><th>Operation</th><th>Method</th><th>Example Command</th></tr>
<tr><td>Disk Cleanup</td><td>PowerShell</td><td>Clear-RecycleBin -Force</td></tr>
<tr><td>Service Restart</td><td>CMD</td><td>net stop spooler && net start spooler</td></tr>
<tr><td>Software Install</td><td>MSI</td><td>msiexec /i software.msi /quiet</td></tr>
<tr><td>Registry Fix</td><td>REG</td><td>reg add HKLM\Software\... /v Value /d Data</td></tr>
</table>
</div>
<h2>3. Zoho Desk Integration</h2>
<div class="api-block">
<h3>Widget & API Integration</h3>
<h4>Widget Manifest Configuration:</h4>
<pre>
{
"service": "DESK",
"modules": {
"ticketDetailPage": {
"url": "/app/ticket-detail.html",
"location": "ticket_details_page.rightpanel"
}
},
"connectors": [
{
"name": "Microsoft Graph",
"connectionLinkName": "msgraph",
"serviceName": "msgraph_auth"
},
{
"name": "Zoho Assist",
"connectionLinkName": "zohoassist",
"serviceName": "zohoassist_auth"
}
]
}
</pre>
<h4>Zoho Desk APIs Used:</h4>
<ul>
<li><code>GET /api/v1/tickets/{ticket_id}</code> - Retrieve ticket details</li>
<li><code>PATCH /api/v1/tickets/{ticket_id}</code> - Update ticket status</li>
<li><code>POST /api/v1/tickets/{ticket_id}/comments</code> - Add resolution notes</li>
<li><code>GET /api/v1/contacts/{contact_id}</code> - Get user information</li>
</ul>
</div>
<h2>4. Complete Resolution Flow</h2>
<div class="flow">
<h3>Example: Password Reset Request</h3>
<ol>
<li><strong>Ticket Created in Zoho Desk:</strong> "Cannot login - forgot password"</li>
<li><strong>TicketZero AI Widget Activated:</strong> Analyzes ticket content</li>
<li><strong>AI Classification:</strong> Identifies as password reset (95% confidence)</li>
<li><strong>User Lookup:</strong>
<ul>
<li>Query Zoho Desk Contacts API for user email</li>
<li>Match with Azure AD user via Microsoft Graph</li>
</ul>
</li>
<li><strong>Microsoft Graph API Call:</strong>
<pre>
POST https://graph.microsoft.com/v1.0/users/{user-id}/authentication/methods/password/resetPassword
{
"newPassword": "TemporaryP@ssw0rd123!",
"requireChangeOnNextLogin": true
}
</pre>
</li>
<li><strong>Update Zoho Desk Ticket:</strong>
<ul>
<li>Status: Resolved</li>
<li>Add comment with temporary password</li>
<li>Send email notification to user</li>
</ul>
</li>
<li><strong>Audit Trail:</strong> Log all actions in both systems</li>
</ol>
</div>
<h2>5. Security & Compliance</h2>
<div class="architecture">
<h3>Security Measures</h3>
<ul>
<li><strong>OAuth 2.0:</strong> Secure authentication for all API connections</li>
<li><strong>Encrypted Storage:</strong> Credentials stored in Zoho Vault</li>
<li><strong>Audit Logging:</strong> All actions logged with timestamp and user</li>
<li><strong>Role-Based Access:</strong> Respects Zoho Desk user permissions</li>
<li><strong>MFA Support:</strong> Integrates with organizational MFA policies</li>
</ul>
<h3>Compliance</h3>
<ul>
<li><strong>GDPR:</strong> No data stored outside of existing systems</li>
<li><strong>SOC 2:</strong> Follows security best practices</li>
<li><strong>ISO 27001:</strong> Information security management</li>
</ul>
</div>
<h2>6. Scalability & Performance</h2>
<table>
<tr><th>Metric</th><th>Specification</th></tr>
<tr><td>API Rate Limits</td><td>Respects Microsoft Graph (2000/min) and Zoho limits</td></tr>
<tr><td>Concurrent Operations</td><td>Up to 50 simultaneous resolutions</td></tr>
<tr><td>Response Time</td><td>< 3 seconds for classification</td></tr>
<tr><td>Resolution Time</td><td>30-180 seconds depending on operation</td></tr>
<tr><td>Availability</td><td>99.9% uptime SLA</td></tr>
</table>
<h2>7. Configuration Requirements</h2>
<div class="api-block">
<h3>Microsoft Azure Setup:</h3>
<ol>
<li>Register application in Azure AD</li>
<li>Grant required Graph API permissions</li>
<li>Generate client secret</li>
<li>Configure tenant ID</li>
</ol>
<h3>Zoho Assist Setup:</h3>
<ol>
<li>Enable API access in Zoho Assist</li>
<li>Deploy unattended access agent to user machines</li>
<li>Configure technician account for automation</li>
<li>Set up session recording policies</li>
</ol>
<h3>Zoho Desk Configuration:</h3>
<ol>
<li>Install TicketZero AI widget</li>
<li>Configure OAuth connections</li>
<li>Set automation rules and triggers</li>
<li>Define escalation policies</li>
</ol>
</div>
<div class="architecture">
<h3>Summary</h3>
<p>TicketZero AI provides enterprise-grade IT automation by combining:</p>
<ul>
<li>✓ Microsoft Graph API for Azure AD/M365 operations</li>
<li>✓ Zoho Assist API for remote machine management</li>
<li>✓ Zoho Desk for ticket workflow automation</li>
<li>✓ AI classification for intelligent routing</li>
<li>✓ Secure, compliant, and scalable architecture</li>
</ul>
</div>
</body>
</html>