Harvest Bulk Time Entry Approver
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Harvest Bulk Time Entry Approver lets you approve or reject multiple time entries in a single operation. Instead of opening each time entry individually, clicking approve or reject, adding a note if needed, and confirming — repeating this for every single entry — this tool provides a unified checklist of all time entries on the current page. You can filter entries by client or project to quickly find your target group. Select any number of time entries using checkboxes, choose whether to Approve or Reject from the dropdown, optionally add a note that will be applied to all selected entries, and click Apply. The tool then automatically processes each selected entry — triggering the approval or rejection action, applying the note if provided, and confirming the change. This turns what could be dozens of manual operations into a single batch action, making time entry review and approval workflows significantly faster and more consistent.
WHERE IT RUNS
This script runs exclusively on the Harvest web application in your browser. It activates on the time entry list page, timesheet view, and approval dashboard where time entry data is displayed. It requires the BotGentz extension to inject and execute the script. The tool does not work on Harvest's mobile app, desktop client, or any third-party wrappers — only the web version accessed through a Chromium-based or Firefox browser. It specifically targets pages under *.harvestapp.com, including the main Harvest dashboard and organization-specific subdomains.
HOW TO USE
After installing the script via BotGentz, log in to your Harvest dashboard and navigate to the time entries or timesheet page. The tool automatically detects the time entry list and displays a floating panel on the right side. The panel shows all time entries visible on the current page, with checkboxes next to each entry. Each entry displays its client, project, task, hours logged, date, notes, and current approval status. Use the search box to filter by client or project to narrow down your selection. Check the boxes for every time entry you want to approve or reject. Below the entry list, select the action from the dropdown — Approve or Reject. Optionally, add a note in the note input field; this note will be applied to all selected entries. Click "Apply" and the tool will process each selected entry one by one — triggering the approval or rejection action, applying the note if provided, and confirming the change. A status message appears when the operation completes, showing how many entries were successfully processed.
THE ACTUAL MECHANISM — WHY IT WORKS
Harvest's web interface is built with a combination of server-rendered HTML and JavaScript-driven interactions. The time entry list is rendered as table rows or list items, each containing entry metadata and action buttons. This tool scans the DOM for time entry items using multiple selector patterns that Harvest consistently uses across versions. For each entry, it extracts the client, project, task, hours, date, notes, and status from the visible text content, and assigns a unique identifier from data attributes. When approving or rejecting entries, the tool locates the appropriate action button within each entry item — either a direct Approve/Reject button or an action menu containing these options — and triggers a click event. If a note is provided, the tool checks for a confirmation modal with a note field and fills it using React-friendly event dispatching — setting the value via the native setter and dispatching both "input" and "change" events to ensure React registers the update. The tool then clicks the modal's confirm button, waits for the modal to close, and proceeds to the next entry. This approach works without making direct API calls, which would require authentication tokens and knowledge of Harvest's internal API structure. By using the existing UI, the tool works within Harvest's own permission and validation system, and continues to function even if the underlying API changes.
THE PANEL
The floating panel is fully draggable — click and drag the header to reposition it anywhere on the page. The panel's position is saved per site in localStorage, so it reappears exactly where you left it when you return to the time entries page. Double-click the header to snap the panel to the nearest edge (left or right). A collapse button minimizes the panel to a small tab showing a checkmark emoji badge, keeping it out of the way while still accessible. The time entry list inside the panel is scrollable and resizes vertically based on the number of entries. Pressing Escape while the panel is focused closes it completely; reopening is done via a small button injected near the page header (visible only on time entries pages). All panel interactions are non-blocking — Harvest's main UI remains fully responsive while the panel is open, and the panel updates automatically when you navigate between pages or change date ranges.
PLEASE NOTE
This script requires the BotGentz extension (free) to run user scripts on Harvest. Harvest frequently updates its web interface and approval workflows; if the tool stops working, check for an updated version within BotGentz's script repository. This tool does not store, transmit, or log any time entry data, notes, or approval decisions — all operations occur locally in your browser with no external network requests except those made by Harvest itself. Approval or rejection actions are applied through Harvest's own UI event system, so all changes respect your account's permission settings and approval workflows. The tool does not bypass Harvest's permission system or approval rules; it simply automates the clicks you would otherwise perform manually. For very large time entry lists with dozens or hundreds of entries, the tool may take several minutes to complete the operation, as each entry is processed sequentially with delays to avoid overwhelming the UI. A progress indicator shows which entry is currently being processed. Always double-check your selections and action before applying changes, as bulk approvals or rejections are irreversible through this tool (though Harvest's UI allows manual reverts depending on your settings). The tool only affects time entries visible on the current page; to process all entries, use Harvest's built-in pagination controls or adjust your date range filters to show all relevant entries. The optional note field applies the same note text to all selected entries; use it for consistent feedback or leave it blank for batch actions without commentary.