✓ Your data from a previous version has been migrated automatically — nothing was lost.
WorkLog
// loading employee portal…
WorkLog
// employee portal — time, expenses & PTO
Invalid username or password.
📱 View Mode
Detected: —
WorkLog
// password reset
Enter your registered email. A one-time reset code will be generated — use it below to set a new password.
No account found with that email address.
Your reset code: Copy it and paste below to set a new password. ⚠️ Expires in 15:00 — do not share it.
——————
Click to copy
Invalid code or passwords don't match.
Password updated! Redirecting…
WorkLog
—
—
⚠️
OneDrive is not connected.
All file uploads (receipts, tax documents, contracts, invoices) are blocked until OneDrive is connected. Files require enterprise-grade cloud storage — they will not be saved to browser storage.
📊 Dashboard
⏱ Log Hours
🕐 Time Clock
📋 My Hours
🧾 Expenses
🚗 Mileage
📆 My Calendar
📅 Company
🏖 Time Off
👤 Profile
📁 My Documents
📚 Resources
👔 Team PTO
👥 Employees
💳 Expense Admin
🚗 Mileage Admin
✅ PTO Approvals
🕐 Time Clock Log
📂 Document Vault
🧾 Invoices
💵 Check Payments
📄 Reports
📝 Contracts
☁ Files
⚙ Users
Live Dashboard
—
⚠️
Reimbursements Awaiting Your Approval
—
📅 Today is your payroll cutoff — clear the queue before processing payroll.
📊 Employee Status — Next 48 Hours
—
Working Now
0
No one clocked in
At Lunch
0
No one at lunch
Time Off / Away
0
No one out
48-Hour Schedule View
Today & Tomorrow
WorkingPartial PTOFull Day OffHoliday
Log Today's Hours
New Time Entry
⚡ Overtime Details
🥗 Lunch Break (optional)
Lunch break will appear on the company calendar so teammates can see who is away.
This Week
—
This Month
—
OT This Week
—
PTO Balance
—
Time Clock
OUT
--:--:--
—
Not clocked in
⏳ LUNCH BREAK REMAINING
60:00
🥗 Lunch Break
1 hour break · You'll get a 10-min reminder before time is up
Today's Activity
No activity logged yet today.
My Clock History
Date
Clock In
Lunch Out
Lunch In
Clock Out
Total Time
Break
Mileage Reimbursement
🚗 Log Mileage
📍IRS Rate: $0.67 / mile
My Mileage Submissions
Date
Distance
Amount
From → To
Purpose
Status
Mileage Reimbursements
Pending $
—
Approved (Month)
—
Total Miles
—
Employee
Date
Distance
Rate
Amount
Location
From → To
Purpose
Status
Actions
Time Clock Log
Clocked In Now
—
On Lunch Now
—
Total Hours Today
—
Employee
Date
Clock In
Lunch Out
Lunch In
Clock Out
Total
Break
Status
My Time History
—
Date
Start
End
Reg Hrs
OT Hrs
Total
Description
OT Description
Submit Expense
Upload Receipt & AI OCR Scan
📸 Upload a receipt photo or PDF — AI will OCR the receipt, extract all line items, vendor, tax, and suggest the accounting category. Receipts auto-save to OneDrive if connected.
🧾
Drop receipt here or click to browse JPG, PNG, PDF — max 10 MB
AI scanning & extracting receipt data…
Under IRC §274(o), employer-convenience meals became non-deductible starting 2026. Tag correctly so your CPA can split at year-end.
My Submitted Expenses
Date
Vendor
Amount
Category
Payment
OneDrive
Status
Description
Receipt
My Calendar
Connect Office 365
Link your Outlook calendar to view, create and edit meetings — all alongside your WorkLog schedule.
Uses secure OAuth 2.0 + PKCE authentication. No password is stored.
A Microsoft sign-in popup will appear. Grant calendar access when prompted.
⚙ Admin Setup Required
Before employees can connect, an admin must register this app in Azure Active Directory
and enter the clientId and
tenantId in the source code.
See the setup instructions in the MSAL_CONFIG section at the top of the JS.
📁 Your personal documents — employment contract, offer letter, tax forms (1099/W-2), pay stubs — are stored securely here. Only you and the admin can see them.
📤 Upload Document to Employee (Admin)
Upload a document to an employee's secure folder on OneDrive. Only that employee (and admins) can see it under My Documents.
📄
Click to choose a PDF or image
📁 My Personal Documents
Type
Year
Description
Uploaded
Employee
Action
Company Resources
📚 Company-wide resources — the employee handbook, policies, and forms — available to everyone on the team.
📤 Publish Company Resource (Admin)
Upload a document that all employees can view — the employee handbook, a policy, a form, etc. Stored on OneDrive in the shared company folder.
📘
Click to choose a PDF, Word doc, or image
📚 Available Resources
Type
Title
Version
Description
Updated
Action
Employment Contracts
📝 Create reusable contract templates with merge fields, generate a contract for an employee, edit it here, and finalize to PDF saved in their document folder.
📋 Contract Templates
Paste your first-draft contract here as a template. Use merge fields and they'll auto-fill per employee: {{employee_name}} {{job_title}} {{department}} {{start_date}} {{hourly_rate}} {{annual_pto}} {{work_location}} {{company_name}} {{today}}
✍️ Employee Contract Editor
📑 Saved Contracts
Employee
Status
Versions
Last Updated
Finalized
Action
Document Vault
📂 Every file in the portal in one place — receipts, employment contracts, tax documents (1099/W-2/W-8BEN), pay stubs, and company resources. Search by employee, vendor, description, or file name.
Receipts
—
Personal Documents
—
Company Resources
—
Total Files
—
Category
Employee
Date
Description
File / Vendor
Action
Vendor Invoices
🧾 Automatically pull vendor invoices from a Microsoft 365 mailbox, auto-categorize by vendor rules or AI, and approve them into QuickBooks as Bills. Both admin and accountant can approve invoices here.
📥 Invoice Inbox Configuration
Sign in with the Microsoft account that has access to your invoice mailbox (e.g. [email protected]). The portal will pull emails matching your subject keyword from the chosen folder, extract PDF attachments, and queue them for review.
Connected to —
Last scanned: never
🏷 Vendor Categorization Rules
When an email's sender or subject matches a pattern, the invoice is auto-categorized. Unmatched invoices fall back to AI categorization (using Claude vision on the PDF). You can always edit the category at review.
Match Pattern
Auto-assigned Category
Action
⏳ Pending Review
Invoices scraped from email awaiting approval. Approve to push to QuickBooks as a Vendor Bill (with the PDF attached). Reject to dismiss.
Pending
—
Approved (Month)
—
Rejected
—
Pushed to QBO
—
Date
Vendor
Subject
Amount
Category
Attachment
Status
Action
📜 Processed History
Date
Vendor
Amount
Category
Reviewed By
Status
QBO Bill
Attachment
Customer Check Payments
💵 Record customer check payments — upload the check image, log the details, and track from received → deposited. Both admin and accountant can upload and update.
📥 Record a New Check Payment
Photograph or scan the check, then upload it here with the payment details. The image will be saved to OneDrive and indexed in the Document Vault for the accountant.
💵
Click to choose a check image (front, or front+back)
Pending Deposit
—
Deposited (Month)
—
Total Received
—
Sum Pending ($)
—
📜 Check Payment Records
Date Received
Customer
Check #
Amount
Status
Deposit Date
Image
Action
Accounting & CPA Reports
QuickBooks Online Integration
Connect your QuickBooks Online company to push approved expenses, mileage, and
employee time directly into QBO — receipts attached, coded to the right accounts. Your CPA then works
entirely inside QuickBooks. Admin only.
Create a free Intuit Developer app to get your Client ID & Secret:
Go to developer.intuit.com and click Sign Up (use your existing QuickBooks/Intuit login if you have one).
Once signed in, click your name (top-right) → My Hub → App dashboard (or go to developer.intuit.com/app/developer/dashboard).
Click + Create an app → choose QuickBooks Online and Payments.
Give it a name like WorkLog Portal. Select the scope com.intuit.quickbooks.accounting.
In the app, open Keys & credentials. You'll see Production and Development keys. Use Development first to test, then Production when ready.
Copy the Client ID and Client Secret.
Under Redirect URIs, add exactly: https://yoursite.com/timesheets/
Paste the Client ID & Secret into the fields below and click Save Credentials, then Connect to QuickBooks.
Note on security: Because this portal is a single HTML page (no server), the OAuth token exchange uses the
authorization-code flow with PKCE. Your Client Secret is stored in this browser's local storage and used only to talk
directly to Intuit's servers. For maximum security in production, Intuit recommends a server-side token exchange — ask
your developer if you want to add a small serverless function for this. The in-browser flow works for getting started.
Connected to QuickBooks Online
Company: — · Realm
Account Mapping
Map each expense category to a QuickBooks expense account so transactions post correctly. Pick the account for mileage too.
Push to QuickBooks
🗂 Contractor Tax Center
W-9 / W-8BEN collection status, year-to-date payment totals, and 1099 threshold tracking. Foreign contractors (W-8BEN) are excluded from 1099 issuance but tracked for your records.
Contractor
Type
Tax Status
Location
Form Status
W-8BEN Expiry
YTD Paid
1099 Threshold
Action Needed
Threshold: $2,000 for 2026+ payments, $600 for 2025 and earlier (OBBBA). YTD totals reflect portal-tracked reimbursements/mileage; actual contractor compensation is typically paid via QBO Bills — confirm totals with your CPA.
📊 CPA Close-Pack Reports
One-click month-end and year-end exports for your accountant. Each downloads as a CSV ready for Excel.
🔎 Audit Trail
Immutable record of approvals, QuickBooks pushes, document uploads/downloads, and report exports. Most recent first.
Timestamp
User
Action
Detail
⏰ Reimbursement Alert Settings
Configure how the portal alerts you about pending employee reimbursements (expenses + mileage). Settings apply to all admins.
A payroll banner appears on this day if reimbursements are pending.
Items pending longer than this are flagged "urgent."
✉ Email Alerts via Microsoft 365
Send emails through your Microsoft 365 account using the existing connection. Real-time emails are sent the moment an employee submits (from their browser, if they're signed into M365). Login digests catch up admin with anything still pending. Weekly summary fires on payroll cutoff day.
Leave blank to use the M365 account you signed in with.
⏰ Clock-In Reminder Emails
Email employees who haven't clocked in by their expected start time, as long as they don't have approved PTO/sick days for today. Uses each employee's work schedule (set in their Edit Employee panel). Sends via your Microsoft 365 connection — one reminder per employee per day, max.
Wait this long past expected start time before sending.
How often to re-check while admin's portal is open.
0 = off. Otherwise sends a second, urgent reminder N hours later if still no clock-in.
Looks up the manager from the employee's "Reports To" field.
Prepended to "Reminder: Please clock in today".
v26: Receives a single end-of-day summary listing every employee reminded and whether they got a first or escalation reminder. Sent automatically around 6pm when reminders are enabled.
🚫 Company Shutdown Windows
Reminders will be automatically suppressed for all employees during these date ranges (office closures, holiday weeks, etc.).
Preview — who'd be reminded right now
OneDrive Storage Configuration
Connect a Microsoft 365 OneDrive account to automatically store every employee's uploaded receipts in your chosen folder.
Only admins can configure this — employees never see OneDrive credentials. All receipts company-wide
are saved to the folder you select below.
A Microsoft sign-in popup will appear. Grant OneDrive access when prompted.