GDPR Compliance

We use cookies to ensure you get the best experience on our website. By continuing to use our site, you accept our use of cookies, privacy policy and terms of service.

Case study

Business Central timesheet app for a professional services firm

Approvals by project and by manager, overtime rules, time-off requests and expenses in one app, with only approved entries reaching Business Central. Billing close went from 7–10 days to 3–4.

Craftware Technologies · Published October 28, 2026 · 6-minute read

The timesheet app's My Time screen, with a day of time entries against Business Central projects and tasks
An employee's day in the app. The screens on this page are illustrations made with demo data.
ClientProfessional services firm80–100 employees, Texas
Built withReact, .NET and AzureAzure SQL, Azure Functions, custom Business Central API
Timeline12–14 weeksFixed price, live since mid-2022

What the firm needed

The client is a project-based professional services firm in Texas with 80 to 100 employees across three offices. It runs its projects, billing and financials in Business Central.

Before this project, nothing about time or expenses reached Business Central until someone typed it in. Employees filled in Excel timesheets and emailed them to their project managers. Time off was requested by email or on a shared calendar. Expenses arrived by email with the receipts attached, or were scanned into a shared folder, and finance keyed the approved amounts into Business Central by hand.

By the firm's own estimate, that cost 8 to 10 hours a week of chasing missing timesheets, re-keying time and reconciling expenses. About 15 to 20 percent of timesheets needed a follow-up email, and closing a billing period took 7 to 10 days because submissions arrived late or incomplete.

The firm wanted one place where an employee records project time, requests time off, logs overtime and submits expenses. Each of those needed its own approval rules, and only approved entries could reach Business Central.

Where Business Central time sheets fell short

Business Central has time sheets, and for many firms they are enough. They cover one week at a time, hold project time and absence lines, work on a phone, and post approved lines to the project or resource journal. Four things did not fit this firm.

Each time sheet goes to one approver

Business Central sends a time sheet either to the approver named on the employee's resource card or to the person responsible for the project, and that choice is made once for the whole company in Resources Setup. The firm needed both, in order: the project manager approves the hours charged to the project, then the employee's direct or department manager gives final approval.

Time off is recorded, not requested

An absence line records time off on the week it is taken. The firm wanted employees to request time off ahead of the date, with the remaining balance checked before the request could be sent, and the manager approving it first.

Overtime has no rules

A time sheet records hours. It does not check them against an overtime policy or send them to a different approver. At this firm, anything over 40 hours in a week is overtime and needs its own approval from the employee's manager, and from the project manager as well when the hours are charged to a specific project.

Expenses had no home in Business Central

When the app went live in 2022, Business Central had no expense reports, which is why expenses lived in email and shared folders. Microsoft has since added an expense management module, which entered public preview in May 2026. For a firm starting today we would look at it first for expenses. The approval and overtime requirements above would still have needed the separate app.

Why we built it beside Business Central, not inside it

All of this could have been written as an extension inside Business Central. We kept the screens and the approval rules in a separate app instead, for two reasons.

  • Fewer things to retest after updates. Business Central online gets two major updates a year. The only code inside Business Central is a small extension that exposes a custom API, so an update has very little of ours to break. It has come through every major update since it went live in mid-2022 without a change to the app or the API.
  • Business Central only sees approved entries. Nothing reaches the project ledger until it has been approved, so project costing, billing and the financials never carry draft or rejected time.

It also means employees who only record time and expenses work in one small app and never have to learn Business Central.

What we built

The app

A React web app hosted on Azure that works the same on a phone and a desktop. Employees sign in with their Microsoft work account, then enter project time, request time off, log overtime and submit expenses, and can see where each one is in its approval.

The timesheet app on two phones: a week of time entries, and an expense blocked for going over the meals limit without a receipt
The same app on a phone. The expense on the right cannot be submitted until it is under the meals limit and has a receipt.

The app checks policy before anything is submitted, so problems are fixed by the person who made them rather than found by the approver. Two examples:

  • A week over 40 hours cannot be submitted until the extra hours are classified as overtime, which also sends them down the overtime approval path.
  • An expense over its category limit, or missing a required receipt, is blocked until it is corrected.
Submit-week dialog asking the employee to classify 3.5 hours over 40 as overtime, with the project manager and manager approval route
A week over 40 hours cannot be submitted until the extra hours are classified as overtime, which also sets who approves them.

Approvals

A .NET Web API holds the business rules. Project time goes to the project manager, then to the employee's manager. Time off and overtime go to the employee's manager, and expenses follow their own route. Managers approve in bulk, and entries that break a rule are held out of the batch for a separate look. A rejected entry goes back to the employee with the approver's comment.

Two details that matter in practice: a manager who is out of the office can hand their approvals to a delegate, and approvals left waiting for a few days trigger a reminder email.

A project manager's weekly approval queue with six timesheets selected for bulk approval and two held for overtime review
The project manager approves six timesheets in one step. The two with overtime are held out of the batch for a separate look.

The Business Central connection

Everything the app records, including each approval step, is stored in an Azure SQL database. An Azure Functions app reads the approved records from that database and sends them to Business Central, so the app employees use never writes to Business Central directly.

On the Business Central side, a small extension written in AL exposes a custom API for projects, tasks, employees and resources, dimensions, work types, cost centers and basic resource capacity, and for creating and posting journal lines. The app uses that API to load Business Central's projects, tasks and work types, so employees can only pick ones that exist.

Approved entries go to Business Central shortly after final approval, not in a weekly batch. Time arrives as project journal lines of type Resource (job journal lines, before Microsoft renamed jobs to projects), and finance has a short review window before the batch posts as project ledger entries.

What took longer than planned

Turning the multi-level approval rules, overtime and expenses especially, into an integration that still produced clean project ledger entries took longer than we planned. Our answer was to move every check into the app, so it runs before anything reaches Business Central, and to extend the custom API and the function app that sends entries to Business Central to match. Entries now arrive in Business Central already valid, which cut the rework.

What changed

Billing period close3–4 daysWas 7–10 days
ApprovalsSame or next dayWas several days, for most submissions
In use by70–80 employeesAnd 12–15 approvers

These are the firm's own figures. Billing close is faster mainly because timesheets now arrive complete and on time: the app will not accept a week that breaks a rule, and reminders chase the approvals instead of finance.

"We needed a timesheet application that integrated into our Microsoft Business Central environment. Craftware has built us a solution on time and on budget. We are very happy with the outcome."

Hina P., Controller

When this approach makes sense

A separate app is worth it when approvals need more than one approver per time sheet, when overtime has to follow a policy, or when time, time off and expenses belong in one place. If one approver per time sheet fits your process, use the time sheets already in Business Central. For other Business Central work, see our Dynamics 365 and Business Central services and integration services.

Sources

Business Central behavior described on this page, from Microsoft's documentation:

Craftware Technologies builds and modernizes custom .NET and Azure software from Sugar Land, Texas, with senior engineers in US Central time. If you have a Business Central process that has outgrown its built-in screens, sales@craftwaretech.com reaches us.