|
145 | 145 |
|
146 | 146 | // Format activity analysis if available |
147 | 147 | let activitySection = ''; |
| 148 | + let engagementLevel = 'Not tracked'; |
148 | 149 | if (activitySummary) { |
| 150 | + // Calculate engagement level |
| 151 | + if (activitySummary.activityScore > 80) { |
| 152 | + engagementLevel = 'High'; |
| 153 | + } else if (activitySummary.activityScore > 60) { |
| 154 | + engagementLevel = 'Medium'; |
| 155 | + } else { |
| 156 | + engagementLevel = 'Low'; |
| 157 | + } |
| 158 | + |
149 | 159 | const scoreEmoji = activitySummary.activityScore > 80 ? '✅' : |
150 | 160 | activitySummary.activityScore > 60 ? '⚠️' : '🚨'; |
| 161 | + |
| 162 | + // Calculate idle percentage |
| 163 | + const idlePercentage = Math.round((activitySummary.totalIdleSeconds / (activitySummary.sessionDurationMinutes * 60)) * 100); |
| 164 | + |
151 | 165 | activitySection = ` |
152 | 166 | <div style="margin-top: 10px; padding: 8px; background: rgba(66,165,245,0.1); border-radius: 4px;"> |
153 | | - <strong>📊 Activity Analysis:</strong> |
154 | | - <div>Activity Score: ${scoreEmoji} ${activitySummary.activityScore}%</div> |
155 | | - ${activitySummary.tabSwitches > 0 ? `<div>• Tab Switches: ${activitySummary.tabSwitches}</div>` : ''} |
156 | | - ${activitySummary.idlePeriods > 0 ? `<div>• Idle Periods: ${activitySummary.idlePeriods}</div>` : ''} |
157 | | - ${activitySummary.suspiciousPatterns.length > 0 ? `<div>• ⚠️ Suspicious Patterns: ${activitySummary.suspiciousPatterns.length}</div>` : ''} |
| 167 | + <strong>📊 Candidate Behavior Analysis:</strong> |
| 168 | + <div>Engagement Level: ${scoreEmoji} ${engagementLevel} (Score: ${activitySummary.activityScore}/100)</div> |
| 169 | + <div>• Tab Switches: ${activitySummary.tabSwitches} ${activitySummary.tabSwitches > 10 ? '⚠️ (High)' : ''}</div> |
| 170 | + <div>• Idle Periods: ${activitySummary.idlePeriods} times</div> |
| 171 | + <div>• Total Idle Time: ${Math.round(activitySummary.totalIdleSeconds / 60)} min (${idlePercentage}% of session)</div> |
| 172 | + ${activitySummary.suspiciousPatterns && activitySummary.suspiciousPatterns.length > 0 ? |
| 173 | + `<div>• Notable Behaviors: ${activitySummary.suspiciousPatterns.length} detected</div>` : ''} |
158 | 174 | <div>• Session Duration: ${activitySummary.sessionDurationMinutes} minutes</div> |
159 | 175 | </div> |
160 | 176 | `; |
|
220 | 236 | const activityColor = activitySummary.activityScore > 80 ? '#4caf50' : |
221 | 237 | activitySummary.activityScore > 60 ? '#ff9800' : '#ff0000'; |
222 | 238 |
|
| 239 | + // Calculate idle percentage |
| 240 | + const idlePercentage = Math.round((activitySummary.totalIdleSeconds / (activitySummary.sessionDurationMinutes * 60)) * 100); |
| 241 | + |
| 242 | + // Determine engagement emoji and text |
| 243 | + let engagementEmoji = '✅'; |
| 244 | + let engagementText = 'High Engagement'; |
| 245 | + if (activitySummary.activityScore < 60) { |
| 246 | + engagementEmoji = '🚨'; |
| 247 | + engagementText = 'Low Engagement'; |
| 248 | + } else if (activitySummary.activityScore < 80) { |
| 249 | + engagementEmoji = '⚠️'; |
| 250 | + engagementText = 'Medium Engagement'; |
| 251 | + } |
| 252 | + |
223 | 253 | slackPayload.attachments.push({ |
224 | 254 | color: activityColor, |
225 | | - title: "📊 Candidate Activity Analysis", |
| 255 | + title: "📊 Candidate Behavior Metrics", |
226 | 256 | fields: [ |
| 257 | + { |
| 258 | + title: "Engagement Level", |
| 259 | + value: `${engagementEmoji} ${engagementText}`, |
| 260 | + short: true |
| 261 | + }, |
227 | 262 | { |
228 | 263 | title: "Activity Score", |
229 | | - value: `${activitySummary.activityScore}%`, |
| 264 | + value: `${activitySummary.activityScore}/100`, |
230 | 265 | short: true |
231 | 266 | }, |
232 | 267 | { |
233 | 268 | title: "Tab Switches", |
234 | | - value: activitySummary.tabSwitches.toString(), |
| 269 | + value: `${activitySummary.tabSwitches}${activitySummary.tabSwitches > 10 ? ' ⚠️' : ''}`, |
| 270 | + short: true |
| 271 | + }, |
| 272 | + { |
| 273 | + title: "Idle Time", |
| 274 | + value: `${Math.round(activitySummary.totalIdleSeconds / 60)}min (${idlePercentage}%)`, |
235 | 275 | short: true |
236 | 276 | }, |
237 | 277 | { |
|
245 | 285 | short: true |
246 | 286 | } |
247 | 287 | ], |
248 | | - footer: activitySummary.suspiciousPatterns.length > 0 ? |
249 | | - `⚠️ ${activitySummary.suspiciousPatterns.length} suspicious patterns detected` : |
250 | | - "Normal activity patterns" |
| 288 | + footer: activitySummary.suspiciousPatterns && activitySummary.suspiciousPatterns.length > 0 ? |
| 289 | + `⚠️ ${activitySummary.suspiciousPatterns.length} notable behaviors detected` : |
| 290 | + "✅ Normal activity patterns" |
251 | 291 | }); |
252 | 292 | } |
253 | 293 |
|
|
0 commit comments