Job B6D328FF-19D8-4BD5-AE8E-2FAB51A16717
Dispatched
Back to batch
Attachments — what the end user receives in the email
| # | Filename | Size | Status | Action |
|---|---|---|---|---|
| 1 |
AA46200E-750B-4253-A386-13E8010B3CCB-Minimum Working Hours Report - 2026-07-25.csv
runs/4867d9a4-fc97-4267-878f-26f32a084ac0-attachments/AA46200E-750B-4253-A386-13E8010B3CCB-Minimum Working Hours Report - 2026-07-25.csv
|
- | missing | file missing |
Stage 4 — QA gate
Pass
15 checks run · 12 pass · 0 warn · 0 fail/error · 108 ms · evaluated 2026-07-26 02:50:17.110176
15 checks run · 12 pass · 0 warn · 0 fail/error · 108 ms · evaluated 2026-07-26 02:50:17.110176
| Verdict | Rule | Expected | Got | Time | ||||
|---|---|---|---|---|---|---|---|---|
| Pass |
R1_RECIPIENT_EMAILRecipient's email address looks valid severity: Block |
A real email address (with @, no commas/semicolons/angle-brackets, max 320 characters) |
valid: Manotosh.Roy@kwglobal.com
|
0 ms | ||||
| Pass |
R2_RECIPIENT_ACTIVERecipient is an active employee in this company severity: Block |
Recipient is a current, active employee of this company |
OK
|
0 ms | ||||
| Pass |
R3_ACCESSIBLE_USERSRecipient is a manager (has at least one team member) severity: Block |
Recipient is a manager who has at least one team member to report on (skipped for UrgentAttention -- those recipients are HR-scoped, not line-manager-scoped) |
71 active reportee(s)
|
31 ms | ||||
| Pass |
R4_SUBJECT_NONEMPTYEmail has a clean, non-empty subject line severity: Block |
Email has a subject line that's filled in (no leftover {{name}} markers, max 500 characters) |
len=51
|
0 ms | ||||
| Pass |
R5_PAYLOAD_PRESENTStage 2 saved data for this recipient severity: Block |
Stage 2 saved data for this recipient |
size=10898 bytes
|
0 ms | ||||
| Pass |
R6_PAYLOAD_NONEMPTYThe email actually has content (not empty) severity: Block |
The data has at least some rows in it (not empty) |
total rows=71
|
0 ms | ||||
| Pass |
R7_BODY_NO_PLACEHOLDERSEmail body has no unfilled placeholders like {{ManagerName}} severity: Block |
Email body has no unfilled placeholders like {{ManagerName}} or ${date} |
body OK (22842 bytes)
|
0 ms | ||||
| Pass |
R8_BODY_COMPLETEEmail body is complete (not cut off) severity: Warn |
Email body is complete (at least 200 characters and ends with a closing tag, not cut off) |
body looks complete (22842 bytes)
|
0 ms | ||||
| Pass |
R9_ATTACHMENTS_EXISTAll attachment files are saved correctly severity: Block |
Every attachment file the email references actually exists on disk |
1 attachment(s) present
|
0 ms | ||||
| Pass |
R10_ATTACHMENT_SIZEAttachments are not too large to be emailed severity: Warn |
Each attachment is 25 MB or less (so the email can actually be sent) |
OK
|
0 ms | ||||
| Skipped |
R11_PAYLOAD_USERS_ACCESSIBLEEmail shows exactly this manager's team members severity: Warn |
Every person shown in the email is accessible to this recipient (no leakage). For AssociateSummary / TeamSummary the accessible set is the recipient's line-manager reportee tree. For UrgentAttention the accessible set is the recipient's HR scope (the users returned by USP_*_GetUrgentNotificationUserDetails for their HrUserId), which is broader than the reportee tree. For InsufficientHours the reportee tree is used but the 'missing reportees' half is skipped (the report only lists users who triggered the threshold). |
no UID-shaped fields recognised in payload
|
0 ms | ||||
| Pass |
R12_ROW_COUNTS_CONSISTENTThe counts shown match the actual number of rows severity: Warn |
The 'count' numbers shown at the top of the data match how many rows are actually there |
all 1 row_counts consistent
|
0 ms | ||||
| Skipped |
R13_ATTACHMENT_SHEETSExcel attachment has all the expected sheets severity: Block |
The Excel attachment contains exactly the sheets it should - no missing, no extras |
no expected-sheets defined for template 'InsufficientHours'
|
0 ms | ||||
| Pass |
R14_METRICS_RANGETime and percentage values look reasonable severity: Warn |
Time values (productive/unproductive/neutral/no-impact/idle/total) are within realistic bounds and percentages are 0-100 |
all metrics in 71 row(s) within bounds (1 field(s) checked)
|
0 ms | ||||
| Skipped |
R15_ATTACHMENT_MATCHES_DASHBOARDAttachment sheets match the proc data the email was built from severity: Warn |
Every sheet in the .xlsx attachment has the same number of rows as the proc result the email was built from (no rows dropped or duplicated during rendering). |
rule applies only to AssociateSummary (this is InsufficientHours); other templates' attachments aren't built from a per-recipient payload
|
0 ms |
Stage 2 — Data
Fetched 2026-07-26 02:50:16.965167 · 10898 bytes
Users
71
Users · 71 row(s) × 6 column(s)
| ManagerName | UserName | EmployeeId | SpentTime | MinimumHours | RoleName |
|---|---|---|---|---|---|
| Manotosh Roy | Adnan Shaikh | 47378 | 00:00 | 08:00 | User |
| Manotosh Roy | Akshata Deshpande | 48046 | 03:48 | 08:00 | Manager |
| Manotosh Roy | Akshata More | 49336 | 00:00 | 08:00 | User |
| Manotosh Roy | Akshay Pandhare | 48014 | 00:00 | 08:00 | User |
| Manotosh Roy | Alok Smishra | 46821 | 00:00 | 08:00 | User |
| Manotosh Roy | Ameya Shinde | 46850 | 00:00 | 08:00 | Manager |
| Manotosh Roy | Amita Dhamapurkar | 47398 | 00:00 | 08:00 | User |
| Manotosh Roy | Ankita Pal | 48642 | 03:01 | 08:00 | User |
| Manotosh Roy | Ashutosh Gupta | 48275 | 00:00 | 08:00 | User |
| Manotosh Roy | Ashutosh Tiwari | 47320 | 00:12 | 08:00 | User |
| Manotosh Roy | Chandan Dube | 48405 | 00:00 | 08:00 | User |
| Manotosh Roy | Dayanand Matkar | 46877 | 00:00 | 08:00 | Manager |
| Manotosh Roy | Deepak Terse | 47793 | 00:00 | 08:00 | User |
| Manotosh Roy | Dereck Chakola | 48826 | 00:00 | 08:00 | User |
| Manotosh Roy | Gaurav Lohia | 47233 | 00:00 | 07:30 | User |
| Manotosh Roy | Gauravsingh Rana | 47412 | 00:00 | 08:00 | User |
| Manotosh Roy | Gauri Parkhi | 48947 | 00:00 | 08:00 | Manager |
| Manotosh Roy | Gopal Karthisan | 46866 | 00:00 | 08:00 | User |
| Manotosh Roy | Ketan Joshi | 46689 | 00:00 | 08:00 | User |
| Manotosh Roy | Kunal Shinde | 47016 | 00:00 | 08:00 | User |
| Manotosh Roy | Mahamad Rameej | 47104 | 00:00 | 08:00 | User |
| Manotosh Roy | Manisha Nair | 49264 | 00:00 | 07:30 | User |
| Manotosh Roy | Manoj Pal | 48434 | 00:00 | 08:00 | User |
| Manotosh Roy | Meet Jhaveri | 46849 | 00:00 | 08:00 | User |
| Manotosh Roy | Meetha Kuckian | 49119 | 00:00 | 08:00 | Manager |
| Manotosh Roy | Nandita Chowdhary | 48726 | 00:00 | 07:30 | User |
| Manotosh Roy | Navin Parmar | 47639 | 00:00 | 08:00 | User |
| Manotosh Roy | Nawyn Dsouza | 46627 | 00:00 | 08:00 | User |
| Manotosh Roy | Nikita Monteiro | 49118 | 00:00 | 08:00 | User |
| Manotosh Roy | Nitin Mishra | 46239 | 00:00 | 08:00 | User |
| Manotosh Roy | Palak Bhagat | 47680 | 00:00 | 08:00 | User |
| Manotosh Roy | Pankaj Bhaware | 48426 | 00:00 | 08:00 | User |
| Manotosh Roy | Pooja Naik | 48338 | 00:00 | 08:00 | User |
| Manotosh Roy | Pooja Rani1 | 48627 | 00:00 | 07:30 | User |
| Manotosh Roy | Poonam Pawar | 46995 | 00:00 | 08:00 | User |
| Manotosh Roy | Pranay Dhumal | 49018 | 00:00 | 08:00 | User |
| Manotosh Roy | Pratiksha Raut | 48251 | 00:00 | 08:00 | User |
| Manotosh Roy | Rahul Shastri | 49063 | 00:00 | 08:00 | User |
| Manotosh Roy | Rahul Vijayvergiya | 47789 | 00:00 | 08:00 | User |
| Manotosh Roy | Rajnarrayan Bose | 46210 | 00:00 | 08:00 | Manager |
| Manotosh Roy | Rakesh Shevale | 47231 | 00:00 | 08:00 | User |
| Manotosh Roy | Ramkrishna Maurya | 47411 | 00:00 | 08:00 | User |
| Manotosh Roy | Rekha Mane | 47638 | 00:00 | 08:00 | User |
| Manotosh Roy | Riya Singh | 47082 | 00:00 | 08:00 | User |
| Manotosh Roy | Roshni Nandawani | 47090 | 00:00 | 08:00 | User |
| Manotosh Roy | Rupali Natewad | 49047 | 00:00 | 08:00 | User |
| Manotosh Roy | Sachin Chaudhary | 49131 | 00:00 | 08:00 | User |
| Manotosh Roy | Sagar Khandekar | 46400 | 00:00 | 08:00 | Manager |
| Manotosh Roy | Sagar Sgaikwad | 46442 | 04:15 | 08:00 | Manager |
| Manotosh Roy | Sahil Asif | 47709 | 00:00 | 08:00 | User |
| Manotosh Roy | Sanket Vyapari | 47474 | 00:00 | 08:00 | User |
| Manotosh Roy | Santosh Kammar | 47423 | 00:00 | 08:00 | User |
| Manotosh Roy | Saranya Nair | 49049 | 04:09 | 08:00 | Manager |
| Manotosh Roy | Satyam Jaiswal | 47481 | 00:00 | 08:00 | User |
| Manotosh Roy | Saurav Seth | 48139 | 00:00 | 08:00 | User |
| Manotosh Roy | Shaeem Selia | 46267 | 04:26 | 08:00 | Manager |
| Manotosh Roy | Shubham Waghmare | 46810 | 00:00 | 08:00 | User |
| Manotosh Roy | Soham Lanke | 48566 | 00:00 | 08:00 | User |
| Manotosh Roy | Sujata Pawar | 47215 | 00:00 | 08:00 | User |
| Manotosh Roy | Sumeet Rajput | 47587 | 00:00 | 08:00 | User |
| Manotosh Roy | Tanaya Chimnani | 48765 | 00:00 | 08:00 | Manager |
| Manotosh Roy | Tanya Chouhan | 47672 | 02:28 | 08:00 | Manager |
| Manotosh Roy | Unmesh Tibe | 47229 | 00:00 | 08:00 | User |
| Manotosh Roy | Vaibhav Khadtare | 47062 | 00:00 | 08:00 | User |
| Manotosh Roy | Vandit Nagvekar | 46718 | 04:11 | 08:00 | Manager |
| Manotosh Roy | Veena Mathew | 47354 | 00:00 | 08:00 | Manager |
| Manotosh Roy | Vinay Patil | 47552 | 00:00 | 08:00 | User |
| Manotosh Roy | Vincent Gomes | 44158 | 00:00 | 08:00 | User |
| Manotosh Roy | Vipin Suthar | 46334 | 00:00 | 07:30 | Manager |
| Manotosh Roy | Vishal Bhandare | 47547 | 00:00 | 08:00 | Manager |
| Manotosh Roy | Vrunda Vibhute | 48485 | 00:00 | 08:00 | User |
Meta · non-tabular fields
{
"row_counts": {
"users": 71
}
}
Raw JSON
{"users": [{"ManagerName": "Manotosh Roy", "UserName": "Adnan Shaikh", "EmployeeId": "47378", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Akshata Deshpande", "EmployeeId": "48046", "SpentTime": "03:48", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Akshata More", "EmployeeId": "49336", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Akshay Pandhare", "EmployeeId": "48014", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Alok Smishra", "EmployeeId": "46821", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Ameya Shinde", "EmployeeId": "46850", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Amita Dhamapurkar", "EmployeeId": "47398", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Ankita Pal", "EmployeeId": "48642", "SpentTime": "03:01", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Ashutosh Gupta", "EmployeeId": "48275", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Ashutosh Tiwari", "EmployeeId": "47320", "SpentTime": "00:12", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Chandan Dube", "EmployeeId": "48405", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Dayanand Matkar", "EmployeeId": "46877", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Deepak Terse", "EmployeeId": "47793", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Dereck Chakola", "EmployeeId": "48826", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Gaurav Lohia", "EmployeeId": "47233", "SpentTime": "00:00", "MinimumHours": "07:30", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Gauravsingh Rana", "EmployeeId": "47412", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Gauri Parkhi", "EmployeeId": "48947", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Gopal Karthisan", "EmployeeId": "46866", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Ketan Joshi", "EmployeeId": "46689", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Kunal Shinde", "EmployeeId": "47016", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Mahamad Rameej", "EmployeeId": "47104", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Manisha Nair", "EmployeeId": "49264", "SpentTime": "00:00", "MinimumHours": "07:30", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Manoj Pal", "EmployeeId": "48434", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Meet Jhaveri", "EmployeeId": "46849", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Meetha Kuckian", "EmployeeId": "49119", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Nandita Chowdhary", "EmployeeId": "48726", "SpentTime": "00:00", "MinimumHours": "07:30", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Navin Parmar", "EmployeeId": "47639", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Nawyn Dsouza", "EmployeeId": "46627", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Nikita Monteiro", "EmployeeId": "49118", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Nitin Mishra", "EmployeeId": "46239", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Palak Bhagat", "EmployeeId": "47680", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Pankaj Bhaware", "EmployeeId": "48426", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Pooja Naik", "EmployeeId": "48338", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Pooja Rani1", "EmployeeId": "48627", "SpentTime": "00:00", "MinimumHours": "07:30", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Poonam Pawar", "EmployeeId": "46995", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Pranay Dhumal", "EmployeeId": "49018", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Pratiksha Raut", "EmployeeId": "48251", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Rahul Shastri", "EmployeeId": "49063", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Rahul Vijayvergiya", "EmployeeId": "47789", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Rajnarrayan Bose", "EmployeeId": "46210", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Rakesh Shevale", "EmployeeId": "47231", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Ramkrishna Maurya", "EmployeeId": "47411", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Rekha Mane", "EmployeeId": "47638", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Riya Singh", "EmployeeId": "47082", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Roshni Nandawani", "EmployeeId": "47090", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Rupali Natewad", "EmployeeId": "49047", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Sachin Chaudhary", "EmployeeId": "49131", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Sagar Khandekar", "EmployeeId": "46400", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Sagar Sgaikwad", "EmployeeId": "46442", "SpentTime": "04:15", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Sahil Asif", "EmployeeId": "47709", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Sanket Vyapari", "EmployeeId": "47474", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Santosh Kammar", "EmployeeId": "47423", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Saranya Nair", "EmployeeId": "49049", "SpentTime": "04:09", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Satyam Jaiswal", "EmployeeId": "47481", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Saurav Seth", "EmployeeId": "48139", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Shaeem Selia", "EmployeeId": "46267", "SpentTime": "04:26", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Shubham Waghmare", "EmployeeId": "46810", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Soham Lanke", "EmployeeId": "48566", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Sujata Pawar", "EmployeeId": "47215", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Sumeet Rajput", "EmployeeId": "47587", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Tanaya Chimnani", "EmployeeId": "48765", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Tanya Chouhan", "EmployeeId": "47672", "SpentTime": "02:28", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Unmesh Tibe", "EmployeeId": "47229", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Vaibhav Khadtare", "EmployeeId": "47062", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Vandit Nagvekar", "EmployeeId": "46718", "SpentTime": "04:11", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Veena Mathew", "EmployeeId": "47354", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Vinay Patil", "EmployeeId": "47552", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Vincent Gomes", "EmployeeId": "44158", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}, {"ManagerName": "Manotosh Roy", "UserName": "Vipin Suthar", "EmployeeId": "46334", "SpentTime": "00:00", "MinimumHours": "07:30", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Vishal Bhandare", "EmployeeId": "47547", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "Manager"}, {"ManagerName": "Manotosh Roy", "UserName": "Vrunda Vibhute", "EmployeeId": "48485", "SpentTime": "00:00", "MinimumHours": "08:00", "RoleName": "User"}], "row_counts": {"users": 71}}
Stage 3 — Rendered
Rendered 2026-07-26 02:50:17.001174 · 22842 bytes
Subject: Minimum Required Working Hours Not Met Jul 25, 2026
Attachments
[{"name": "Minimum Working Hours Report - 2026-07-25.csv", "path": "runs/4867d9a4-fc97-4267-878f-26f32a084ac0-attachments/AA46200E-750B-4253-A386-13E8010B3CCB-Minimum Working Hours Report - 2026-07-25.csv", "sizeBytes": 2820, "contentType": "text/csv", "kind": "csv"}]Body HTML (source)
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="x-apple-disable-message-reformatting">
<meta name="viewport" content="width=device-width" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css">
<script type="text/javascript" src="css3-mediaqueries.js"></script>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>First Team Added Milestone</title>
<style type="text/css">
a {
text-decoration: none;
outline: none;
}
p {
font-size: 14px;
font-family: roboto;
}
b {
font-size: 14px;
font-family: roboto;
}
.text-overflow {
width: 200px;
text-overflow: ellipsis;
overflow: hidden;
display: inline-block;
white-space: nowrap;
}
@media (max-width: 649px) {
.o_col-full {
max-width: 100% !important;
}
.o_col-half {
max-width: 50% !important;
}
.o_hide-lg {
display: inline-block !important;
font-size: inherit !important;
max-height: none !important;
line-height: inherit !important;
overflow: visible !important;
width: auto !important;
visibility: visible !important;
}
.o_hide-xs,
.o_hide-xs.o_col_i {
display: none !important;
font-size: 0 !important;
max-height: 0 !important;
width: 0 !important;
line-height: 0 !important;
overflow: hidden !important;
visibility: hidden !important;
height: 0 !important;
}
.o_xs-center {
text-align: center !important;
}
.o_xs-left {
text-align: left !important;
}
.o_xs-right {
text-align: left !important;
}
table.o_xs-left {
margin-left: 0 !important;
margin-right: auto !important;
float: none !important;
}
table.o_xs-right {
margin-left: auto !important;
margin-right: 0 !important;
float: none !important;
}
table.o_xs-center {
margin-left: auto !important;
margin-right: auto !important;
float: none !important;
}
h1.o_heading {
font-size: 32px !important;
line-height: 41px !important;
}
h2.o_heading {
font-size: 26px !important;
line-height: 37px !important;
}
h3.o_heading {
font-size: 20px !important;
line-height: 30px !important;
}
.o_xs-py-md {
padding-top: 24px !important;
padding-bottom: 24px !important;
}
.o_xs-pt-xs {
padding-top: 8px !important;
}
.o_xs-pb-xs {
padding-bottom: 8px !important;
}
}
@media screen {
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 400;
src: local("Roboto"), local("Roboto-Regular"), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 400;
src: local("Roboto"), local("Roboto-Regular"), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxK.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 700;
src: local("Roboto Bold"), local("Roboto-Bold"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format("woff2");
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 700;
src: local("Roboto Bold"), local("Roboto-Bold"), url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
.o_sans,
.o_heading {
font-family: "Roboto", sans-serif !important;
}
.o_heading,
strong,
b {
font-weight: 700 !important;
}
a[x-apple-data-detectors] {
color: inherit !important;
text-decoration: none !important;
}
}
@media (max-width: 600px) {
.small_font {
font-size: 10px;
}
}
@media (max-width: 400px) {
.small_font {
font-size: 7px;
}
}
@media (max-width: 425px) {
.small_font {
font-size: 10px;
}
}
@media screen and (max-width: 375px) {
.small_font {
font-size: 7px;
}
}
@media (min-width: 321px) and (max-width: 374px) {
.small_font {
font-size: 9px;
}
}
@media (min-width: 301px) and (max-width: 374px) {
.ccc {
padding-top: 4px;
}
}
@media (min-width: 321px) and (max-width: 374px) {
.youtube {
height: 10px !important;
width: 10px !important;
}
}
@media screen and (max-width: 375px) {
.youtube {
height: 8px !important;
width: 8px !important;
}
}
@media screen and (max-width: 300px) {
.small_font {
font-size: 7px;
margin-top: 2px !important;
}
}
@media screen and (max-width: 300px) {
.youtube {
width: 5px !important;
height: 5px !important;
}
}
@media screen and (max-width: 450px) {
.bbb {
align-items: center;
flex-direction: column-reverse;
}
}
@media screen and (max-width: 320px) {
.youtube {
width: 8px !important;
height: 8px !important;
}
}
@media (max-width: 320px) {
.image {
font-size: 7px;
}
}
@media only screen and (max-width: 320px) {
table.youtube {
width: 7px !important;
height: 7px !important;
}
}
</style>
</head>
<body class="o_body o_bg-light"
style="width: 100%;margin: 0px;padding: 0px;-webkit-text-size-adjust: 100%;-ms-text-size-adjust: 100%;background-color: #f9f8fa;">
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation">
<tbody>
<tr>
<td class="o_bg-light o_px-xs" align="center"
style="background-color: #f9f8fa; padding-left: 8px; padding-right: 8px;">
<table class="o_block" width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation"
style="max-width: 632px; margin: 0 auto;">
<tbody>
<tr>
<td style="padding: 10px 0; text-align: left;">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation"
style="background-color:#f9f8fa; margin:0; padding:0;">
<tbody>
<tr>
<td align="center">
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation" style=" max-width:632px;">
<tbody>
<tr>
<td align="center" style=" max-width:632px;">
<div style="text-align:center; max-width:632px;">
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation">
<tbody>
<tr>
<td class="o_bg-light o_px-xs o_pt-lg o_xs-pt-xs" align="center"
style="background-color: #f9f8fa;">
<!--[if mso]><table width="632" cellspacing="0" cellpadding="0" border="0" role="presentation"><tbody><tr><td><![endif]-->
<table class="o_block" width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation"
style="margin: 0 auto;">
<tbody>
<tr>
<td class="o_re o_bg-white o_px o_pb-md o_br-t" align="center"
style="font-size: 0;vertical-align: top;background-color: #ecf9fb;border-radius: 4px 4px 0px 0px;padding-left: 16px;padding-right: 16px;padding-top: 7px;padding-bottom: 7px;">
<!--[if mso]><table cellspacing="0" cellpadding="0" border="0" role="presentation"><tbody><tr><td width="200" align="left" valign="top" style="padding:0px 8px;"><![endif]-->
<div class="o_col o_col-2"
style="display: inline-block;vertical-align: top;width: 100%;max-width: 200px;">
<div class="o_px-xs o_sans o_text o_left o_xs-center"
style="font-family: Helvetica, Arial, sans-serif;margin-top: 0px;margin-bottom: 0px;font-size: 16px;line-height: 24px;text-align: center;padding-left: 8px;padding-right: 8px;">
<p style="margin-top: 0px;margin-bottom: 0px;"><a class="o_text-primary"
style="text-decoration: none;outline: none;color: #126de5;"><img
src="https://timechampimages.blob.core.windows.net/icons/timechamp_logo.png" width="150" height="36"
style="max-width: 150px;-ms-interpolation-mode: bicubic;vertical-align: middle;border: 0;line-height: 100%;height: auto;outline: none;text-decoration: none;"></a>
</p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation">
<tbody>
<tr>
<td class="o_bg-light o_px-xs" align="center" style="background:#f9f8fa">
<table class="o_block" width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation"
style="max-width: 632px;margin: 0 auto;">
<tbody>
<tr>
<table class="o_block" width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation"
style="max-width: 632px;">
<tbody>
<tr style="margin-bottom: 0px;display: flex;background-color:white" class="bbb">
<td width="340" class="es-m-p20b esd-container-frame" align="left">
<table cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr>
<td align="left" class="esd-block-text es-p10t"
style="background-color:white;padding-left: 10px;"> <br>
<p
style="color: #363636;line-height:23px; margin-left: 29px; font-family: Arial, Helvetica, sans-serif; font-weight:SemiBold; font-size:15px;margin-top: 20px;">
<b> Dear Manotosh Roy,</b> </p>
<p
style="color: #363636; margin-left: 29px; font-size: 15px;line-height:23px;margin-bottom: 0px;">
For the day <b> Jul 25, 2026 </b>, Review the attached Excel sheet to identify
employees who did not meet the minimum Expected hours for the day. </p>
</td>
</tr>
</tbody>
</table>
</td>
<td width="250" align="left" class="esd-container-frame">
<table cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr>
<td align="center" class="esd-block-image es-p30t es-m-p0t" style="font-size: 0px;"><img
class="sideimage" style="margin-top:10%;padding-left: 10px;"
src="https://img.freepik.com/free-vector/lateness-concept-illustration_114360-5950.jpg?w=740&t=st=1690988515~exp=1690989115~hmac=d20dec6ad868daff38a88dc676bfa7e5dffb495ff2048675453e493cd4c34a82"
alt width="175" height="150"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table class="o_block" width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation"
style="max-width: 632px;margin-top:0px">
<tbody>
<tr style="margin-bottom: 0px;background-color:white">
<td align="left"
style="background-color:white;align-items: center; flex-direction: row;padding-left: 10px;">
<br>
<p
style="color: #363636; margin-left: 29px;margin-right: 95px; font-size: 15px;line-height: 25px;margin-top: -8px;">
This may have been due to unforeseen circumstances or any other reasons beyond their control.
</p><br>
<p
style="color: #363636; margin-left: 29px; margin-right: 92px; font-size: 14px;line-height: 25px;margin-top: -3px;">
As the manager overseeing the team, we kindly request you to have a discussion with each
employee to understand their respective situations better and offer any necessary support or
guidance </p>
</p><br>
<p
style="color: #363636; margin-left: 29px; margin-right: 90px; font-size: 14px;line-height: 25px;margin-top: -3px;">
Please ensure that appropriate steps are taken to address this issue and help each employee
maintain their productivity and adherence to working hours moving forward. </p> <br>
<p
style="color: #363636; margin-left: 29px; margin-right: 93px; font-size: 14px;line-height: 25px;margin-top: -3px;">
If you have any questions or require further information, please do not hesitate to reach out
to <a href="https://support.timechamp.io/" target="_blank"
style="color: #1E9999;font-size:15px;text-decoration: none;">support@timechamp.io.</a> </p>
<br>
<p
style="color: #363636; margin-left: 29px; font-size: 14px;line-height: 25px;margin-top: -3px;">
Thank you for your attention to this matter. <br><br> <b>Best Regards,</b><br><img
src="https://i.stack.imgur.com/SRhpR.png" alt="signature"
style="margin-left: -1px;width:100px"> </p> <br>
</td>
</tr>
</tbody>
</table>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation"
style="background-color:#f9f8fa; margin:0; padding:0;">
<tbody>
<tr>
<td align="center">
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation" style="width:632px; max-width:632px;">
<tbody>
<tr>
<td align="center" style="max-width:632px;">
<div style="text-align:center; max-width:632px;">
<table width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation">
<tbody>
<tr>
<td class="o_bg-light o_px-xs o_pb-lg o_xs-pb-xs" align="center"
style="background-color: #f9f8fa;padding-bottom:32px;white-space: nowrap;">
<table class="o_block" width="100%" cellspacing="0" cellpadding="0" border="0" role="presentation"
style="margin:0 auto;">
<tbody>
<tr style="background-color: #ecf9fb;">
<td class="o_re o_px o_pb-lg" style="font-size:0;padding-left:10px;">
<div class="small_font ccc"
style="display:inline-block;vertical-align:top;width:100%;max-width:200px">
<div class="o_px-xs o_sans o_text-xs o_text-dark_light o_left o_xs-center"
style="font-family:Helvetica,Arial,sans-serif;margin-bottom:0;font-size:14px;text-align:left;padding-left:8px;padding-right:8px;white-space: nowrap;">
<p style="margin-top:0;margin-bottom:0" class="small_font">For support <a class="small_font"
class="o_text-dark_light o_underline"
href="https://timechamp.freshdesk.com/support/solutions/articles/101000451716" target="_blank"
style="outline:0;color:#1e9999;text-decoration: none;">Contact us</a> </p>
</div>
</div>
</td>
<td style="height: 35px;white-space: nowrap;">
<div class="small_font ccc"
style="display:inline-block;vertical-align:top;width:100%;max-width:135px">
<div class="o_px-xs o_sans o_text-xs o_text-dark_light o_left o_xs-center"
style="font-family:Helvetica,Arial,sans-serif;margin-bottom:0;font-size:14px;text-align:Center;padding-left:8px;padding-right:8px;white-space: nowrap;">
<span><a class="small_font" href="https://timechamp.io/documents/TimeChampTermsAndConditions.pdf"
target="_blank" style="color: #1e9999;text-decoration: none;padding-left: 8px;">Terms &
Conditions</a> </span> </div>
</div>
<td>
<div class="small_font"
style="display:inline-block;vertical-align:top;width:100%;max-width:200px;white-space: nowrap;">
<div class="o_px-xs o_sans o_text-xs o_text-dark_light o_right"
style="font-family:Helvetica,Arial,sans-serif;margin-top:0;margin-bottom:0;font-size:15px;line-height:21px;text-align:right;padding-left:8px;padding-right:8px;white-space: nowrap;">
<p style="margin-top:0;margin-bottom:0"> <a class="o_text-dark_light"
href="https://www.youtube.com/@timechamp_io" target="_blank"
style="text-decoration:none;outline:0;"> <img class="youtube"
src="https://timechampimages.blob.core.windows.net/icons/youtube_logo.png" width="19" height="19" alt="fb"
style="max-width:36px;-ms-interpolation-mode:bicubic;vertical-align:middle;border:0;line-height:100%;height:auto;outline:0;text-decoration:none">
</a><span> </span> <a class="o_text-dark_light" href="https://www.facebook.com/TimeChamp1/"
target="_blank" style="text-decoration:none;outline:0;"> <img class="youtube"
src="https://timechampimages.blob.core.windows.net/icons/facebook_logo.png" width="14" height="14" alt="fb"
style="max-width:36px;-ms-interpolation-mode:bicubic;vertical-align:middle;border:0;line-height:100%;height:auto;outline:0;text-decoration:none">
</a> <span> </span> <a class="o_text-dark_light" href="https://twitter.com/timechamp_io"
target="_blank" style="text-decoration:none;outline:0;"> <img class="youtube"
src="https://timechampimages.blob.core.windows.net/icons/twitter_logo.png" width="14" height="14" alt="tw"
style="max-width:36px;-ms-interpolation-mode:bicubic;vertical-align:middle;border:0;line-height:100%;height:auto;outline:0;text-decoration:none">
</a> <span> </span> <a class="o_text-dark_light"
href="https://www.linkedin.com/showcase/timechamp/" target="_blank"
style="text-decoration:none;outline:0;"> <img class="youtube"
src="https://timechampimages.blob.core.windows.net/icons/linkdin_logo.png" width="14" height="14" alt="ig"
style="max-width:36px;-ms-interpolation-mode:bicubic;vertical-align:middle;border:0;line-height:100%;height:auto;outline:0;text-decoration:none">
</a> <span> </span> <a class="o_text-dark_light"
href="https://www.instagram.com/timechamp.io/" target="_blank"
style="text-decoration:none;outline:0;"> <img class="youtube"
src="https://timechampimages.blob.core.windows.net/icons/instagram_logo.png" width="14" height="14" alt="ig"
style="max-width:36px;-ms-interpolation-mode:bicubic;vertical-align:middle;border:0;line-height:100%;height:auto;outline:0;text-decoration:none">
</a><span> </span> </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div class="o_hide-xs" style="font-size:64px;line-height:64px;height:64px"> </div>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</body>
</html>
Rendered preview (sandboxed)
Stage 5 — Dispatched
Events
| At | Stage | Level | Message | ms | Worker |
|---|---|---|---|---|---|
| 2026-07-26 02:50:16.030476 | DataFetch | Info | --- Stage 2 begin --- template=InsufficientHours recipient=Manotosh.Roy@kwglobal.com userId=AA46200E-750B-4253-A386-13E8010B3CCB | thr-8128 | |
| 2026-07-26 02:50:16.035478 | DataFetch | Info | >>> EXEC USP_EmailComp_InsufficientHoursUsers(@LineManagerId='AA46200E-750B-4253-A386-13E8010B3CCB', @Date='2026-07-25') | thr-8128 | |
| 2026-07-26 02:50:16.958168 | DataFetch | Info | <<< USP_EmailComp_InsufficientHoursUsers returned 71 row(s) in 919ms; cols=[ManagerName,UserName,EmployeeId,SpentTime,MinimumHours,RoleName]; first_row={ManagerName=Manotosh Roy, UserName=Adnan Shaikh, EmployeeId=47378, SpentTime=00:00, MinimumHours=08:00, RoleName=User} | 919 | thr-8128 |
| 2026-07-26 02:50:16.971169 | DataFetch | Info | Wrote EmailComp_Job_Data (10898 bytes); shape=dict, top-level=['users', 'row_counts'] | 928 | thr-8128 |
| 2026-07-26 02:50:16.984175 | Render | Info | --- Stage 3 begin --- template=InsufficientHours recipient=Manotosh.Roy@kwglobal.com | thr-8128 | |
| 2026-07-26 02:50:16.988172 | Render | Info | dbo.HtmlTemplates lookup 'InsufficientHours': OK (14803 chars, batch-cache hit) | thr-8128 | |
| 2026-07-26 02:50:17.004172 | Render | Info | Rendered (22842 bytes, subject='Minimum Required Working Hours Not Met Jul 25, 2026', attachments=1) | 25 | thr-8128 |
| 2026-07-26 02:50:17.116172 | QA | Info | QA passed (15 check(s)) | 108 | thr-8128 |
| 2026-07-26 02:50:17.137174 | Dispatch | Info | >>> EXEC USP_EmailComp_InsertMail(@From='anuradha.bhardwaj@kwglobal.com', @To='Manotosh.Roy@kwglobal.com', @Subject='Minimum Required Working Hours Not Met Jul 25, 2026...', @AttachmentCount=1, @SiteAddress='kwglobal', @TrackingId='33cc31b0-6c7c-412e-9b09-9f75d48d98c1') | thr-8128 | |
| 2026-07-26 02:50:17.153173 | Dispatch | Info | <<< USP_EmailComp_InsertMail returned MailId=a2b47b95-f08f-425f-b0bd-6a2598c85200 in 11ms (inserted) | 11 | thr-8128 |
| 2026-07-26 02:50:17.235175 | Dispatch | Info | >>> EXEC USP_EmailComp_InsertMailAttchment(@MailId=a2b47b95-f08f-425f-b0bd-6a2598c85200, @AttacchmentPath='https://timechampv2storage.blob.core.windows.net/6e919cfe-74dd-4ebc-8665-3c0d44866649/MailAttachments/f46a1519436e45c0b2c22b48519532f1_AA46200E-750B-4253-A386-13E8010B3CCB-Minimum%20Working%20Hours%20Report%20-%202026-07-25.csv') | thr-8128 | |
| 2026-07-26 02:50:17.244184 | Dispatch | Info | <<< USP_EmailComp_InsertMailAttchment OK in 1ms | 1 | thr-8128 |
| 2026-07-26 02:50:17.250173 | Dispatch | Info | Inserted into SentMail. MailId=a2b47b95-f08f-425f-b0bd-6a2598c85200 | thr-8128 |