Back to Templates

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

Created by

Created by: WeblineIndia || weblineindia

WeblineIndia

Last update

Last update 2 days ago

Share


📊 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.