Monthly Time Tracking Report Generator using Toggl and Resend - n8n Workflow

Automate monthly Toggl time reports. This n8n workflow fetches client and project hours, generates a clean HTML report, and sends it via the Resend email n8n node. Download this n8n template.

Workflow Preview

Ready to automate?

Download this n8n workflow template and start using it instantly.

Who is this best for?

Freelancers and contractors needing automated monthly billing summaries.
Agencies requiring a consolidated view of client and project hours.
System administrators looking for robust n8n templates for recurring business process automation.
Users familiar with n8n who need a reliable, scheduled time reporting n8n workflow.

Overview

Managing monthly time tracking reporting can be tedious and prone to human error. This comprehensive n8n workflow solves this by fully automating the process using the power of n8n. It leverages the Toggl Track API to retrieve granular time entry data, processes this data using custom logic to calculate total hours per client and project, and then generates a well-formatted, professional HTML summary. This report is then reliably delivered using the Resend email service. This robust n8n workflow is a perfect example of how n8n templates can streamline critical business operations, ensuring reports are always accurate and delivered on schedule by the designated n8n trigger.

How it Works

This n8n workflow is initiated monthly via a specialized n8n trigger:


  1. Scheduled Activation: The process begins with the Schedule Trigger n8n node, set to run automatically on the first day of every month at 4 AM.

  2. Parallel Data Fetching: Two parallel HTTP Requests are executed against the Toggl API:

Get Toggle Summary fetches summarized time entries for the previous calendar month, grouping the data by client and sub-grouping by project.
Get Toggle Projects fetches a list of all current project metadata, essential for associating names later.

  1. Data Restructuring: The Prepare projects list Code n8n node transforms the complex summary JSON into simplified items containing client ID, project ID, and total seconds, making it ready for merging.

  2. Merging Data: The Merge data n8n node combines the restructured summary data with the metadata from Get Toggle Projects, using project_id and id as the key fields to ensure every time entry is correctly associated with its official project name.

  3. Report Generation: The Prepare html raport Code n8n node executes custom JavaScript logic. It aggregates the seconds into hours, groups the results by client, sorts the data by total time, and constructs the final HTML body and email subject line. This is a crucial step in the n8n workflow.

  4. Email Delivery: Finally, the Send email via Resend HTTP Request n8n node takes the generated HTML report and subject line and sends the final, polished report using the Resend API, completing the scheduled n8n automation.

Installation Guide

To deploy this n8n template, follow these steps:


  1. Import Workflow: Copy the provided JSON data and import it directly into your self-hosted or cloud n8n instance.

  2. Toggl Credentials: Configure the togglApi credential used in the HTTP Request n8n nodes (Get Toggle Summary and Get Toggle Projects). You will need your Toggl API Key.

  3. Workspace ID: Update the placeholder TOGGLWORKSPACEID in both Toggl HTTP Request n8n nodes with your actual Toggl workspace ID.

  4. Resend API Setup: Configure the Send email via Resend n8n node. You must set up the Authorization header with your Bearer YOURTOKENHERE (Resend API Key).

  5. Email Configuration: In the Send email via Resend n8n node's JSON body, update the from and to fields to your desired sender and recipient addresses.

  6. Activation: Ensure the n8n workflow is active (toggle the switch) to enable the monthly n8n trigger.

Node Details

Schedule Trigger (n8n trigger): This initial n8n node defines the execution timing, setting the entire n8n workflow to run monthly.
Function: Initiates the n8n automation.
Key Configuration: Runs monthly, targeting the start of the month (defaulting to 4 AM).
Get Toggle Summary (HTTP Request n8n node): Fetches summarized time entry data from the Toggl Reports API.
Function: Retrieves raw time tracking data.
Key Configuration: Method POST. Body parameters use expressions to calculate the previous month's date range ({{ $now.minus({ months: 1 }).startOf('month') }}).
Get Toggle Projects (HTTP Request n8n node): Gathers metadata about existing projects.
Function: Provides project names for reporting.
Key Configuration: URL contains the placeholder TOGGLWORKSPACEID.
Prepare projects list (Code n8n node): Restructures the summary output.
Function: Parses the nested Toggl report structure into flattened items suitable for merging.
Merge data (Merge n8n node): Connects time data with project details.
Function: Joins the project summary (Input 1) with the project list (Input 2), matching project_id to id.
Prepare html raport (Code n8n node): The core processing n8n node.
Function: Executes complex aggregation, conversion (seconds to hours), sorting, and HTML generation.
Send email via Resend (HTTP Request n8n node): Sends the final report.
Function: Uses the Resend API to deliver the generated HTML report.
Key Configuration: Uses dynamic data ({{$json.subject}}, {{$json.html}}) and requires a custom Authorization header with the Resend API Key.

Related n8n Workflows

Free

Nodes: 5 Nodes
Updated: December 26 2025
View all
Created by
Krystian Syryca
Krystian Syryca

Featured*