Back to Blog Home

Timesheet Reminders for a Small Team: Who Is Missing, When to Nudge, and What Runs in Slack

A table of tracked items with view counts and on/off toggles, like a list of who has and has not submitted

Every Friday the same thing happens. Someone posts a timesheet reminder to the whole team, the people who already logged their hours scroll past it, the two people who are actually behind miss it too, and on Monday the owner opens the time tool, works out who is short and messages them one by one before the invoices can go out. Late hours mean late or wrong invoices, unbilled work and payroll fixes, and in the US the employer also has to keep records of hours worked each day and each workweek. This guide is for the owner or operations generalist at a small agency or services firm. It gives you a staged reminder rule, three short Slack messages you can copy, and a Friday check that names only the people and projects still missing hours.

The short answer

  1. Fix one deadline and work backwards from it. For a firm that bills by the hour, that deadline is the invoice run, not "end of week".
  2. Send one friendly reminder to everyone before the deadline. That is the only message the whole team should see.
  3. Before the second message, find out who is missing. Then nudge only those people, by name, with the projects affected.
  4. After the deadline, the list goes to the owner, who decides what happens next. Nobody else needs to hear about it.
  5. Run the "who is missing" check on a schedule, so nobody has to open the time tool by hand.

The rest of this article explains why the usual reminder fails, gives you the stages and messages, and shows how to run the check in Slack.

Why the usual timesheet reminder gets ignored

Most of the top results for timesheet reminders come from time-tracking vendors, and they are useful on timing. Homebase's guide suggests three stages: a friendly reminder one to two days before the deadline, a firm follow-up on the deadline day a few hours before cutoff, and a final notice after the deadline passes. TimeTac's guide suggests a Monday nudge to start tracking and a Friday reminder before the submission deadline, and gives the example of a Slack reminder to "submit their timesheets at 9 am every Monday".

In both guides, every reminder goes to everyone. Slack's own channel reminders work the same way: /remind #channel posts the same message in the channel at the set time, and Slack's help page says channel reminders "work best for simple team reminders". A message that reaches everyone, every week, whatever they did, teaches people to skip it. One Hacker News commenter listed "semi automated reminders (you haven't filled your timesheets!), usually sent by humans but that do not expect answers" among the mail nobody reads at work. That is one person's report.

The reminder also answers a question the owner never asked. What the owner needs on Monday is who is missing, how many hours, and on which client projects, before the invoice run. TimeTac's guide does not cover approvers, escalation or how to identify who has not submitted, and Homebase leaves approvals out. Those gaps are where the owner's Monday morning goes.

The third problem is the deadline itself. Payroll guides talk about the payroll cutoff, and that matters if you pay hourly staff. An agency that bills clients by the hour has an earlier and harder deadline: the moment the invoices go out. Hours logged after that moment either wait for the next invoice or go out on a late one. One agency developer on Hacker News described the problem plainly: "I'd often forget my timesheets, and managing project budgets and hours was a hassle", and built a Slack tool for it. That is also a single author report.

Build the timesheet reminder schedule from the invoice run

The real deadline for an agency is the invoice run, not Friday, so the reminder schedule should be built backwards from the moment you bill. Write that moment down first. "Invoices go out Monday at noon" is a deadline. "Timesheets due end of week" is not, because nobody agrees when the week ends.

Then place the stages in front of it. Here is a schedule for a firm that invoices weekly on Monday at noon. Shift it if you bill monthly or run payroll on a different day.

StageWhenWho sees itWhat it saysWho sends it
1. FriendlyFriday 2 pmThe whole team channelHours for this week are due Monday 10 amA scheduled post
2. NamedFriday 4:30 pmOnly the people still missingYour name, the projects with no hours this weekThe owner or ops lead, from a list
3. FirmMonday 9 amOnly the people still missingInvoices go at noon, these projects are blankThe owner or ops lead
4. OwnerMonday 10:30 amThe owner onlyWho is still missing, which invoices are affectedThe check posts it

The table follows one rule. A timesheet reminder works best when each stage goes to a smaller audience: everyone first, then only the named people who are still missing, then the owner. The first message is cheap and impersonal, so it can go to everyone. Each later message costs a little more attention, so it should only reach the people it is for. By stage four nobody on the team is being reminded at all. The owner is getting a short list to act on.

This is a recommendation built on the three-stage pattern in the Homebase guide and the Monday and Friday timing in the TimeTac guide. What changes is the audience at each step, not the number of messages.

Two rules keep the schedule honest:

  • Never send a named reminder from memory. If you are not sure who is missing, check first. A named nudge to someone who already logged their hours is worse than no nudge.
  • Keep the deadline in every message. Put it in the first line, so it shows in the notification.

Three timesheet reminder messages you can copy

Short messages get read. Each of these fits on one screen on a phone.

Stage 1, friendly, to the team channel:

> Hours for this week are due Monday at 10 am, so invoices can go out at noon. If you've already logged them, thank you, nothing to do.

Stage 2, named, as a reply in the thread or a direct message:

> Hi Sam, I don't see hours this week for the Northwind retainer or the Acme site rebuild. Could you add them before Monday 10 am? If you didn't work on those, just tell me and I'll take them off your list.

Stage 3, firm, Monday morning:

> Sam, the Northwind and Acme invoices go out at noon and both still show no hours from you this week. Can you add them in the next hour? If something is stopping you, reply here and we'll sort it.

The names and projects above are made up for the example. Stage two names the projects, so the person knows exactly what is missing, and it gives them an easy way out if the list is wrong, so nobody gets chased for hours they already logged.

Leave the stage four message out of the team's sight entirely. It is a list for the owner, and the owner decides whether it is a pay question, an invoice question or a conversation.

Find out who is missing before you remind anyone

Before you send any reminder, someone has to know who is missing, and that check is the part of the job most guides skip. The check is simple to describe and tedious to do by hand:

  1. Open the place where hours live: the time tool's weekly report, or the shared Google Sheet the team fills.
  2. For each person, compare the hours logged this week with the hours you expect from them.
  3. For each person who is short, note which active client projects have no hours.
  4. Produce one short list: name, hours logged, hours expected, projects with nothing logged.

Most small teams keep "expected hours" in their head. Write it down once, as a column in the sheet: 40 for full-time, 24 for the three-day contractor, 0 for whoever is on leave this week. Without that column the check cannot tell the difference between someone who is late and someone who is on holiday, and the named reminders start going to the wrong people.

The list is also the only thing the owner really needs on Monday. If it shows two names and one project, the job is a two-minute message. If it shows half the team, the problem is the process, not the people, and TimeTac's advice applies: ask the team what is causing the delays.

Running the check in Slack with an AI agent

You can hand the check to a virtual assistant or an office manager, and many firms do. Before you hire for it, it is worth seeing how much of it a scheduled check in Slack covers. Here is how the Kipwise Agent handles it, using only what the product does today.

The owner mentions the agent once, in a thread in the ops channel, and asks in plain words:

> Every Friday at 2 pm, read the Hours sheet in our Ops folder. List everyone whose hours this week are below the Expected column, with the client projects where they have nothing logged. Post the list here. Do the same on Monday at 9 am.

The agent can read Google Sheets with the asking person's own Drive access, and it can run a request later or on a schedule in plain language. It uses your Slack timezone when available and posts the result in the channel, with the same tools and permissions as a live request from you. You can list or cancel the jobs and ask what happened on earlier runs, including failures. If your time tool exports a CSV to Drive instead of using a sheet, the agent can process that file in a sandbox and give you the same list.

Here is what the Friday post might look like (made up for the example):

> Hours check, week of 26 Oct. 3 people are short: > Sam: 22 of 40, nothing on Northwind retainer, Acme site rebuild > Priya: 31 of 40, nothing on Acme site rebuild > Leo: 0 of 24 (Expected column says 24, check if he is on leave)

From there, plain replies in the same thread continue the work. The owner can ask "draft the stage two message for Sam and Priya" and get wording to send. The owner sends the named reminders, partly because the owner knows whether Leo is on leave. This is a recommendation: a named nudge is a conversation with one colleague, and it reads better coming from the person who runs the team.

What stays with a person:

  • Editing anyone's hours. The check reads the sheet. Changing someone's time record is a conversation, not an automation.
  • Pay decisions. Late timesheets and pay are a legal and people question, and the US recordkeeping rules are about keeping accurate records of hours actually worked.
  • Anything sent to a client. If the hours delay an invoice, the owner decides what to tell the client.

If the sheet ever needs changing, for example adding a row, the agent shows an Approve or Deny card for each change first. For more on what to check when a scheduled job runs unattended, see how to schedule recurring AI agent jobs in Slack. If you are deciding between Slack's own reminders and an agent, what /remind cannot do covers the difference.

When this goes wrong, and how to tell it worked

The sheet is out of date. If the expected hours column is wrong, the list is wrong. Update it when someone joins, leaves, goes part-time or takes leave. Make that one person's job.

The project list is too long. If every person has twelve active projects, a named reminder that lists all the blank ones reads like an accusation. List only billable client projects, or only the ones invoiced this week.

The check runs but nobody acts on it. A list in a channel helps nobody if the owner is in meetings all Friday afternoon. Pick one person who sends the named reminders, and write their name into the request.

Reminders get worse, not better. If the same three people are on the list every week, more reminders will not fix it. Talk to them. Homebase suggests treating chronic lateness as part of performance reviews; for a small team, a direct conversation usually comes first.

To tell whether it worked, track two numbers for a month: how many people are on the Monday 9 am list, and how many invoices go out late because of missing hours. If both fall, the system works. If the Monday list stays long, move stage one earlier, or add an earlier reminder in the week, which Homebase suggests for teams with a history of late submissions.

What to do next

Write down your real deadline, the moment invoices or payroll go out, and add an Expected hours column to the sheet or report your team already uses. Then run the "who is missing" check by hand this Friday at 2 pm and send stage two only to the names on the list. If the check is worth keeping, ask an agent in your ops channel to run it every Friday and Monday, before you hire someone to do the chasing. If you are weighing that hire, what a virtual assistant costs is a useful comparison, and the hours you collect feed straight into chasing overdue invoices from Slack.

Topics

Related posts

Put an AI teammate in your Slack

Free trial on install: $2 of AI credit for 7 days on the fast model, or $10 for 14 days with all models on a paid Slack plan or for existing Kipwise customers.