From logged hour. To invoice. Inside your M365.
Customers, projects and milestones, logging hours, approvals and billing inputs — the whole flow from a logged hour to an invoice in one app that lives directly in your tenant's SharePoint. Service allowances with hour carry-over, a rate matrix and a client report in one click. No external backend.
Three things every time-billing company knows.
Hours in workbooks and heads
Everyone tracks time their own way — in Excel, in notes, or not at all. At the end of the month hours are chased across the team, rates are dug out of emails and nobody vouches for the time sheet being complete.
Nobody watches the allowances
A service contract includes 16 prepaid hours — but how many were actually used? Overruns surface too late, unused hours expire with no rules, and overage work never gets invoiced.
Billing inputs assembled by hand
The billing team assembles invoice attachments from spreadsheets nobody approved. There's no trail of who signed off what, the client report is formatted by hand and there's no revenue forecast from hours at all.
For teams that sell their time.
Who it's for
- You sell time — consulting, development, support — and want hours logged, approved and invoiced in one flow.
- You run service contracts with a monthly allowance and need to watch usage, carry-over of unused hours and overage work.
- You want rates driven by a price list (customer / project / person), not negotiated at invoicing time.
- You send clients a monthly work report and want it generated in one click — Word from your template, or CSV.
- You use EP365 CRM and want approved hours pushed into the revenue forecast automatically.
Who it's NOT for
- — You're looking for an enterprise PSA / ERP with capacity planning, attendance and payroll integration (SAP, project ERPs).
- — You need stopwatches and automatic background time capture. EP365 Worklog is about deliberate reporting, not activity tracking.
- — You want an integrated invoicing core that issues invoices. Worklog prepares approved inputs and amounts — you issue the invoice in your accounting system.
- — You don't have SharePoint Online. EP365 Worklog runs as an SPFx web part inside Microsoft 365 only.
Eight things that keep hours from getting lost.
Logging without procrastination
My time sheet with quick entry (project, milestone, work type, hours, description) and a weekly grid — hours by day Mon–Sun, clicking a cell pre-fills the form. Empty week? One button copies last week as drafts. An entry can also be started straight from a milestone or a task.
Customers, projects and milestones
A tree of customer → project → milestone → task. Projects on a kanban board by status (drag & drop), milestones as service-contract months or functional units with hour budgets. Tasks with an assignee, status and percent complete. Customers can be taken over from EP365 CRM.
Approvals with an audit trail
Submitted entries wait in a queue — the admin sees everything, leads see their own projects. Approve or reject in bulk or one by one; a rejection carries a reason the author sees on the record. Email notifications for submission, approval and rejection go out via Microsoft Graph.
Service contracts and allowances
A Service contract project has monthly prepaid hours and a carry-over mode for unused hours (none / full / partial with a cap). The month-end close calculates the carry-over and writes it into the next month. Usage shows as a burn-down on the dashboard — including overage work. The allowance and rate can be inherited from a contract in EP365 CRM.
A rate matrix
Hourly rates on three levels: customer × work type (+ a default customer rate), project × work type, and a personal rate on a project. On entry, the most specific rate wins and is stored as a snapshot with the record — later price-list changes never rewrite history. Non-billable hours are tracked without an amount.
Billing and the client report
Approved hours grouped by customer: export a monthly report to Word using your template (logo, header, footer) or CSV, and mark selected hours as invoiced with an invoice number. Totals respect currencies (CZK / EUR per project).
Month-end close → CRM forecast
If you run EP365 CRM, one button computes billable revenue from approved hours — for service contracts only the hours above the allowance, for fixed-price (FTFP) milestones the fixed price after acceptance — and writes it into Expected revenue in the CRM. The customer's payment terms decide which month the revenue lands in.
Import, roles and scoping
CSV import of hours with a preview, matching people to accounts and protection against importing the same file twice. Four roles driven by SharePoint groups. Team members can be scoped to specific customers or projects — with no assignment they see nothing (strict mode).
What people do with it every day.
Hours logged in a minute a day
- Quick entry with the project and milestone pre-filled
- Weekly grid by day + copy last week
- A rejected entry shows the reason — I fix it and resubmit
The approval queue done in five minutes
- A queue of my projects only, bulk approval
- Rejection with a reason + email to the author
- Milestone budgets and usage burn-down on the dashboard
Invoice inputs in one click
- Approved hours grouped by customer
- Word report from a template (logo, header, footer) / CSV
- Mark as invoiced with an invoice reference
Service usage and a revenue outlook
- Service contract burn-down (allowance + carry-over + overage)
- Month-end close → Expected revenue in EP365 CRM
- Usage overview: hours by customer, invoiced by currency
Four layers. All inside your M365.
No extra system. Hours, rates, configuration and calculations stay in your SharePoint and Microsoft Graph. On our side, only the licence check runs.
Where EP365 Worklog has a clear edge.
Arguments your IT and management will appreciate.
Hours and rates inside your tenant, no Power Automate, no external backend. The only external dependency is the licence check. Auto-provisioning with no manual PowerShell.
Data inside your tenant
Hours, rates, customers and reports stay in the customer's SharePoint, under their Entra ID identity and permissions. No export to a third-party cloud.
No Power Automate
Notifications go straight from the browser via Microsoft Graph; calculations (rates, usage, the close) run client-side. No flows, no PA licences.
A single external dependency
The licence check (tenant ID + expiry) — no customer data is transferred. Without a valid licence the app switches to read-only; your data stays.
XSS guards over content
Inputs from lists (notes, links, rich text) pass through allowlist-based XSS guards — even content written by a regular site member is safe.
Roles and scoping
Four roles via SharePoint groups. A team member only sees assigned customers and projects (strict mode), and rates are visible to admins and billing only.
Auto-provisioning
One .sppkg into the App Catalog. SharePoint lists and groups create themselves on first load, idempotently. No manual PowerShell.
A monthly licence by company size + on-site implementation.
The monthly subscription is based on the size of your organisation — the total number of users in your Microsoft 365 environment. The full scope of the app within the given size.
How we price the licence
Support pricing
Consulting, environment adjustments, or user support.
Support is billed per started 15 minutes of work. You are informed of the expected scope in advance.
On-site implementation
Installation, list provisioning, a team workshop (2 h), theming to match your brand, configuration of work types, the rate matrix and the report template; optionally importing customers and hours from CSV and connecting to EP365 CRM.
Full localisation of the interface beyond Czech, customisation beyond theming, migration of extensive historical data, and server-side automation.
What it looks like in real operation.
“No more chasing hours at month end — and overage work finally gets invoiced.”
“Billing inputs that used to take three days now take one morning — approved, with an audit trail. And the data never left our tenant.”
What PMs, finance and IT ask.
Where are our hours and rates stored?
Do we need Power Automate or Azure?
How does the approval workflow work?
How do service contracts and hour carry-over work?
Do we need EP365 CRM?
How fast can we roll it out?
Can we customise work types and the report template?
What exactly do you want to discuss?
Pick what's burning most right now. We'll get back to you, walk through your situation and propose next steps, including an indicative price.