Generate Weekly Energy Consumption Reports with EnergiDataService, Email and Google Drive

Last edited 58 days ago

📊 Generate Weekly Energy Consumption Reports with API, Email and Google Drive

This workflow automates the process of retrieving energy consumption data, formatting it into a CSV report, and distributing it every week via email and Google Drive.

⚡ Quick Implementation Steps:

  • Import the workflow into your n8n instance.
  • Configure your API, email details and Google Drive folder.
  • (Optional) Adjust the CRON schedule if you need a different time or frequency.
  • Activate workflow—automated weekly reports begin immediately.

🎯 Who’s It For

Energy providers, sustainability departments, facility managers, renewable energy operators.

🛠 Requirements

  • n8n instance
  • Energy Consumption API access
  • Google Drive account
  • Email SMTP access

⚙️ How It Works

Workflow triggers every Monday at 8 AM, fetches consumption data, emails CSV report and saves a copy to Google Drive.

🔄 Workflow Steps

1. Schedule Weekly (Mon 8:00 AM)

  • Type: Cron Node
  • Runs every Monday at 8:00 AM.
  • Triggers the workflow execution automatically.

2. Fetch Energy Data

  • Type: HTTP Request Node
  • Makes a GET request to:
https://api.energidataservice.dk/dataset/ConsumptionDE35Hour
(sample API)
  • The API returns JSON data with hourly electricity consumption in Denmark.

Sample Response Structure:

{
"records": [
{
"HourDK": "2025-08-25T01:00:00",
"MunicipalityNo": ___,
"MunicipalityName": "Copenhagen",
"ConsumptionkWh": 12345.67
}
]
}

3. Normalize Records

  • Type: Code Node
  • Extracts the records array from the API response and maps each entry into separate JSON items for easier handling downstream.
  • Code used:
const itemlist = $input.first().json.records;
return itemlist.map(r => ({ json: r }));

4. Convert to File

  • Type: Convert to File Node
  • Converts the array of JSON records into a CSV file.
  • The CSV is stored in a binary field called data.

5. Send Email Weekly Report

  • Type: Email Send Node
  • Sends the generated CSV file as an attachment.
  • Parameters:
  • fromEmail: Sender email address (configure in node).
  • toEmail: Recipient email address.
  • subject: "Weekly Energy Consumption Report".
  • attachments: =data (binary data from the previous node).

6. Report File Upload to Google Drive

  • Type: Google Drive Node
  • Uploads the CSV file to your Google Drive root folder.
  • Filename pattern:
energy_report_{{ $now.format('yyyy_MM_dd_HH_ii_ss') }}
  • Requires valid Google Drive OAuth2 credentials.

✨ How To Customize

Change report frequency, email template, data format (CSV/Excel) or add-ons.

➕ Add-ons

  • Integration with analytics tools (Power BI, Tableau)
  • Additional reporting formats (Excel, PDF)
  • Slack notifications

🚦 Use Case Examples

  • Automated weekly/monthly reporting for compliance
  • Historical consumption tracking
  • Operational analytics and forecasting

🔍 Troubleshooting Guide

Issue

Cause

Solution

Data not fetched

API endpoint incorrect

Verify URL

Email delivery issues

SMTP configuration incorrect

Verify SMTP

Drive save fails

Permissions/Drive ID incorrect

Check Drive permissions

📞 Need Assistance?

Contact WeblineIndia for additional customization and support, we're happy to help.

New to n8n?

Need help building new n8n workflows? Process automation for you or your company will save you time and money, and it's completely free!