Automate Daily Email Summaries Using n8n and OpenAI

Save hours each day by automating the process of fetching, summarizing, and emailing daily email reports with n8n and OpenAI. This workflow fetches your last 24-hour emails, extracts key points, and sends a neat summary to your team.
scheduleTrigger
gmail
openAi
+2
Learn how to Build this Workflow with AI:
Workflow Identifier: 1095
NODES in Use: Schedule Trigger, Gmail, Aggregate, OpenAI, Sticky Note

Press CTRL+F5 if the workflow didn't load.

Visit through Desktop for Best experience

1. Opening Problem Statement

Meet Vishal, a regional finance manager at a busy company who receives hundreds of emails every day on his official Gmail account ([email protected]). Vishal has been spending an average of 2 hours every morning sifting through these emails to find the key updates, issues that need attention, and actionable items from his inbox. This manual process often leads to missed details, duplicated efforts, and delayed responses which impact team productivity and client satisfaction.

Imagine losing valuable work time each morning due to information overload and cluttered inboxes, especially when you need to drive decisions quickly. This is the exact problem Vishal’s new automated workflow using n8n and OpenAI solves — turning his chaotic inbox into an actionable, concise daily email summary sent every day at 7 AM.

2. What This Automation Does

When this n8n workflow runs automatically each day at 7 AM, here’s what happens:

  • Fetches all emails received by Vishal’s Gmail account in the past 24 hours. It uses specific date filters and Gmail OAuth credentials to only pull relevant messages, eliminating noise.
  • Extracts and organizes critical data from these emails including sender, recipient, CC list, and a brief snippet of the email body for context.
  • Summarizes the emails using the power of OpenAI GPT-4O-MINI to generate a clean list of key points and action items.
  • Formats this summary into a beautifully styled HTML email, making the insights easy and pleasant to read.
  • Sends the summary email to Vishal’s team email address with CCs, ensuring everyone is aligned and informed by 7 AM.
  • Saves Vishal at least 90 minutes daily by automating what once was a tedious manual review process.

3. Prerequisites ⚙️

  • n8n account with access to create and run workflows. Self-hosting option available for power users or enterprises.
  • Gmail account with OAuth2 credentials configured in n8n for secure email access.
  • OpenAI account and API key configured in n8n to use GPT-4O-MINI model.

4. Step-by-Step Guide

Step 1: Setup the Daily Scheduler Trigger Node

Go to your n8n editor dashboard.
Click + Add Node → Search and select Schedule Trigger.
Choose the trigger type to fire daily at 7 AM.
Set the rule to {"interval":[{"triggerAtHour":7}]} which ensures workflow runs exactly at 7 AM daily.
Save the node as Daily 7AM Trigger. You should see the trigger ready on the canvas.

Common mistake: Forgetting to confirm the timezone settings might cause the trigger to run at an unexpected time. Verify your n8n workflow timezone is set correctly (e.g. Asia/Kolkata).

Step 2: Add the Gmail Node to Fetch Emails

Click + Add Node → Search for Gmail node (type: n8n-nodes-base.gmail).
Configure the Gmail OAuth2 credentials you have set up.
Enter the filter query to fetch emails from the past 24 hours with this code snippet in the filters “q” field:

=(() => {
  const yesterday = new Date();
  yesterday.setDate(yesterday.getDate() - 1);
  return `[email protected] after:${yesterday.getFullYear()}/${(yesterday.getMonth() + 1).toString().padStart(2, '0')}/${yesterday.getDate().toString().padStart(2, '0')}`;
})()

This fetches all messages sent after yesterday’s date for Vishal’s email.
Set operation to getAll and returnAll true to grab all emails.
Name this node Fetch Emails – Past 24 Hours.

Visual confirmation: You should see multiple emails when running this node manually, returned as JSON objects with all email metadata.

Common mistake: Ensure correct Gmail OAuth2 credentials are linked. Using incorrect credentials or missing permission scopes results in authentication errors.

Step 3: Organize Fetched Email Data

Add an Aggregate node (type: n8n-nodes-base.aggregate) to extract useful fields.
Set it to include: specifiedFields and include fields id, From, To, CC, snippet.
This organizes the raw email JSON into a clean dataset focusing on actionable info.
Name the node Organize Email Data – Morning.

When you run this node, you will see a condensed version of your email data with only relevant attributes.
Common mistake: Forgetting to specify fields results in too much or useless data sent forward, adding complexity.

Step 4: Use OpenAI to Summarize and Extract Actions

Add the OpenAI node (type: @n8n/n8n-nodes-langchain.openAi) to summarize the output.
Select model gpt-4o-mini configured in your OpenAI API credentials.
Use this custom system message prompt for the summarization (copied from the node):

Go through this email summary and identify all key details mentioned, any specific issues to look at, and action items.
Use this format to output
{
 "summary_of_emails": [
 "Point 1",
 "Point 2",
 "Point 3"
 ],
 "actions": [
 {
 "name": "Name 1",
 "action": "Action 1"
 },
 {
 "name": "Name 1",
 "action": "Action 2"
 },
 {
 "name": "Name 2",
 "action": "Action 3"
 }
 ]
}

Input Data:

 {{ $json.data.toJsonString() }}

This outputs a JSON with two arrays: summary_of_emails and actions containing actionable points and tasks.
Name the node Summarize Emails with OpenAI – Morning.

Common mistake: Missing or incorrect JSON output configuration can cause parsing errors downstream.

Step 5: Send the Summary Email

Add another Gmail node (n8n-nodes-base.gmail) to send the email summary.
Set sender email and enter recipients (e.g., [email protected]) and CC recipients.
Use the provided HTML message body from the node to style the email nicely.
Use dynamic expressions to pull dates and summary content:
Subject example: ESAgent - 01 Jan 2025-00:00 to 02 Jan 2025-07:00AM
Make sure to bind the previous node output (summaries and actions) to this email’s content.

Name this node Send Summary – Morning.

Visual confirmation: Successful email dispatch with styled format and embedded summary content.
Common mistake: Incorrect email addresses or missing CC can result in delivery failures.

5. Customizations ✏️

  • Change Summary Timing: In the Daily 7AM Trigger node, modify the triggerAtHour to your preferred hour, e.g., 8 or 9 AM.
  • Add More Email Fields: In the Organize Email Data – Morning aggregate node, include additional fields such as “Subject” or “Date” to enrich the summary.
  • Modify OpenAI Prompt: Tweak the prompt in the Summarize Emails with OpenAI – Morning node to extract different insights, e.g., sentiment, urgency, or categorize email topics.
  • Change Recipients: Edit the “sendTo” and “ccList” fields in the Send Summary – Morning Gmail node to update who receives the summary emails.
  • Switch Email Provider: Replace the Gmail nodes with Outlook or another supported email service node if preferred.

6. Troubleshooting 🔧

Problem: Authentication Errors with Gmail Node

Cause: Incorrect or expired OAuth2 credentials.
Solution: In n8n, go to Credentials → Update Gmail OAuth2 credentials. Re-authenticate with correct permissions ensuring “https://www.googleapis.com/auth/gmail.readonly” and “https://www.googleapis.com/auth/gmail.send” scopes.

Problem: OpenAI Node Returns Unexpected Output

Cause: Prompt syntax errors or misconfigured JSON output.
Solution: Check your system message prompt carefully, ensure the JSON output setting is enabled in the OpenAI node, and validate the custom prompt’s format.

Problem: No Emails Fetched

Cause: Incorrect date filter syntax or Gmail permissions.
Solution: Verify the date query in the Gmail node, run the node manually to see fetched emails, and check Gmail account activity for new emails during the 24 hours.

7. Pre-Production Checklist ✅

  • Confirm Gmail OAuth2 credentials have required permissions for reading and sending emails.
  • Test the trigger node timing matches your timezone and desired execution hour.
  • Run each node manually to verify outputs: emails fetched correctly, summarized, and formatted.
  • Check the final email for styling correctness and recipient accuracy.
  • Backup your workflow and configuration before production use for rollback.

8. Deployment Guide

Activate your workflow by toggling the active switch in your n8n dashboard.
Monitor daily runs during the first week in n8n execution logs to catch any runtime errors.
If using self-hosted n8n, ensure the server time and cron service are properly configured.
Adjust recipient lists or trigger times anytime to evolve the process as your needs change.

9. FAQs

Can I use an Outlook account instead of Gmail?

Yes, n8n supports Outlook nodes. You can replace the Gmail nodes with Outlook equivalents and configure OAuth2 accordingly.

Does using OpenAI consume API credits?

Yes, every API call to OpenAI counts towards your quota or billing plan depending on your subscription.

Is my email data safe with n8n and OpenAI?

n8n handles your credentials securely, and data sent to OpenAI is encrypted in transit. However, review your organization’s compliance policies for sensitive data before use.

How many emails can this workflow handle daily?

This workflow can handle hundreds of emails fetched from Gmail, but OpenAI summarization costs and token limits may require batching or throttling if volume spikes extremely.

10. Conclusion

By following this guide, you’ve automated Vishal’s daily routine of summarizing emails, transforming a 2-hour manual task into a few automated minutes with n8n and OpenAI’s GPT-4O-MINI model.

This workflow not only saves time but reduces missed information and improves team coordination with clear, concise daily email summaries.

Next steps to elevate your automation could include integrating calendar event extraction from emails or setting alerts for specific keywords or urgent messages.

Start building your automated email summary today and reclaim your mornings!

Related Workflows

Automate Viral UGC Video Creation Using n8n + Degaus (Beginner-Friendly Guide)

Learn how to automate viral UGC video creation using n8n, AI prompts, and Degaus. This beginner-friendly guide shows how to import, configure, and run the workflow without technical complexity.
Form Trigger
Google Sheets
Gmail
+37
Free

AI SEO Blog Writer Automation in n8n (Beginner Guide)

A complete beginner guide to building an AI-powered SEO blog writer automation using n8n.
AI Agent
Google Sheets
httpRequest
+5
Free

Automate CrowdStrike Alerts with VirusTotal, Jira & Slack

This workflow automates processing of CrowdStrike detections by enriching threat data via VirusTotal, creating Jira tickets for incident tracking, and notifying teams on Slack for quick response. Save hours daily by transforming complex threat data into actionable alerts effortlessly.
scheduleTrigger
httpRequest
jira
+5
Free

Automate Telegram Invoices to Notion with AI Summaries & Reports

Save hours on financial tracking by automating invoice extraction from Telegram photos to Notion using Google Gemini AI. This workflow extracts data, records transactions, and generates detailed spending reports with charts sent on schedule via Telegram.
lmChatGoogleGemini
telegramTrigger
notion
+9
Free

Automate Email Replies with n8n and AI-Powered Summarization

Save hours managing your inbox with this n8n workflow that uses IMAP email triggers, AI summarization, and vector search to draft concise replies requiring minimal review. Automate business email processing efficiently with AI guidance and Gmail integration.
emailReadImap
vectorStoreQdrant
emailSend
+12
Free

Automate Email Campaigns Using n8n with Gmail & Google Sheets

This n8n workflow automates personalized email outreach campaigns by integrating Gmail and Google Sheets, saving hours of manual follow-up work and reducing errors in email sequences. It ensures timely follow-ups based on previous email interactions, optimizing communication efficiency.
googleSheets
gmail
code
+5
Free