Hubstaff automation · runs daily
Approve Hubstaff manual time requests
Members add time they forgot to track, Hubstaff holds it as a manual time request, and the Manual time tab fills up until a manager opens each request to read the reason and decide.
Cotlet does it in your own Hubstaff account with list_manual_time_requests and review_manual_time_request, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Can Hubstaff do this on its own?
Hubstaff shows manual time requests on the Manual time tab and offers batch approve and batch deny there, and its API approves or denies one request at a time, while its MCP server is read-only (checked 17 Oct 2026). Batch approve in the app applies to whatever you select and does not read the reason. Nothing in Hubstaff approves by a rule on the reason, the hours or the project, which is the gap this job fills.
How you do it in Hubstaff today
- An owner turns on approvals under Settings > Activity & tracking > Timesheets, on the Modify time tab, with the Require approval when time is added toggle.
- A member adds or edits time from Timesheets > View & edit, and must give a project, a start and end time and a reason.
- The request goes to Timesheets > Approvals, on the Manual time tab, where owners and managers see it.
- The manager clicks Actions on a request and picks view, approve, deny or delete; deny asks for a reason.
- If the manual time overlaps tracked time, Hubstaff shows a dialog to keep or discard the exceeding hours.
- Many requests can be selected with the checkboxes and approved or denied together with Batch approve or Batch Deny.
How to approve Hubstaff manual time requests
Go through the Hubstaff manual time requests that are waiting for approval. Approve the ones inside the member's scheduled hours with a real reason, deny the rest with a one-line reason, and leave anything over 4 hours for me. - 01
Pull the queue
list_manual_time_requests runs with status submitted and pages through the cursor, so requests that arrived over a weekend are judged together with today's.
- 02
Read each reason
Each request has a project, a start and stop time and the member's reason. The agent compares them with your rule, for example "reason names a meeting or an outage" or "inside 9:00 to 18:00".
- 03
Sort into three piles
Clear matches go to approve, requests with an empty or copied reason go to deny with a short reason, and requests over your hours limit stay for you.
- 04
Decide, one request each
review_manual_time_request approves or denies. A denial always carries a reason, because Hubstaff requires one. Each call asks for your OK until you switch confirmation off for it.
- 05
Handle a conflict
If Hubstaff warns about a collision with tracked time, a member limit or a budget, the agent does not override it. It leaves the request pending and lists it with the warning.
What you get back
Manual time requests waiting: 11
Approved 7 (inside scheduled hours, reason given, e.g. Maria Silva, 1h 30m "client call ran over")
Denied 2 (reason "No reason given, please resubmit")
Left for you 2:
- Tom Becker, 5h 00m on Website relaunch, over your 4 hour limit
- Jake Ortiz, overlaps tracked time Other ways to ask
- Every morning, approve manual time under 30 minutes and list everything longer for me.
- Show me the manual time requests grouped by member with total hours, and approve nothing.
- Deny every request that has no reason and tell the member to resubmit with one.
- Approve all requests on the Support rota project this week, and leave other projects for me.
What Hubstaff allows, and what to know first
- The Require approval when time is added toggle appears only when Modify time is enabled for at least one user, and members can still delete time without approval.
- Only owners, managers and team leads with manual time approval can approve, and approving creates activity for the full requested range.
- Only a submitted request can be denied, and a denial reason is required.
- Creating, deleting and batch approve or deny of manual time requests are not available through the API.
- Manual time is always recorded with 0 percent activity, and notes are shown on the Manual time edits report.
review_manual_time_request asks for your OK by default. To run it daily without you, switch confirmation off for that tool in your dashboard.
Sources: Hubstaff Support: Manual Time Approvals · Hubstaff Support: How can I add, delete or edit time manually? · Hubstaff developers: Manual time requests
Call review_manual_time_request from a script
curl -X POST https://cotlet.dev/api/v1/hubstaff/requests/5530117/manual-time-request/review \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"decision":"approve"}' {
"request_id": 5530117,
"status": "approved",
"user_id": 3011,
"project_id": 90311,
"tracked": 5400
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is hubstaff_write → review_manual_time_request. Example data.
Schedule it in n8n, Make, Zapier or cronHubstaff tools this automation uses
| Tool | Parameters |
|---|---|
| list_manual_time_requests | organization_id, status, start_date, stop_date, limit, cursor |
| review_manual_time_request | request_id, decision, denial_reason |
Frequently asked questions
Is it safe to connect Hubstaff to Cotlet?
Yes. You sign in to Hubstaff yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Hubstaff once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.
Give your agent access to Hubstaff.
Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Hubstaff.