---
title: "Daily email summary with action items, mailed by Gmail"
kind: "Kit"
category: "Productivity"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/e611475c-aae9-42a3-aade-41c4bac76197"
updated: "2026-11-12"
---

# Daily email summary with action items, mailed by Gmail

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that runs at 7:00 every day, fetches the Gmail received since yesterday and asks OpenAI for summary points and action items. A styled HTML email with the result goes to the recipients you set.

Daily email summary with action items, mailed by Gmail is an n8n workflow in the Productivity category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-12. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow mails you a daily summary of your inbox with a list of action items. At 7:00 it searches Gmail for the mail received since the start of yesterday and gathers the sender, the recipients and a short preview of each message. An OpenAI model turns that data into a list of summary points and a list of actions, each with a name. A last step puts both lists into a styled HTML email and sends it through Gmail to the recipients you set. Five nodes run the flow, and four sticky notes explain the steps.

### Who it suits

Team leads and small teams who want one morning mail that says what came in and who has to act on it. Skip it for a mailbox with confidential mail, since the previews go to OpenAI.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Business | Team leads | Send the team one note on what came in overnight | A lead mails the team a summary with three actions by name. |
| Support | Support teams | See which customer threads need an owner | A shared inbox gets a list of who follows up on which thread. |
| Agencies | Agency owners | Keep up with client mail without opening every thread | An owner reads six points over coffee. |
| Operations | Office managers | Catch deadlines in a shared mailbox | A manager sees an invoice question assigned to finance. |

You need a little n8n: import a file, add two credentials, replace three address placeholders and set a timezone. The workflow’s own sticky notes give no setup time.

### Where to use it

Any n8n that can reach Gmail and OpenAI will run it.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file and steps
- Another summary: change the prompt and keep the JSON shape that the email template reads
- Another schedule: change the hour or the days in \`Daily 7AM Trigger\`

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Two accounts and a few addresses cover every step.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| Gmail | An account and a Gmail OAuth2 credential, used to read mail and to send the summary |
| OpenAI | An API key |
| Addresses | Your mailbox address, the recipient and an optional CC address |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add a Gmail OAuth2 credential and select it in `Fetch Emails Past 24 Hours` and `Send Summary Morning`.
3. Add an OpenAI credential and select it in `Summarize Emails with OpenAI Morning`.
4. In `Fetch Emails Past 24 Hours`, put your mailbox address where the search says `<YOUR_EMAIL_ADDRESS>`.
5. In `Send Summary Morning`, replace `<TEAM_EMAIL_ADDRESS>` with the recipient and `<CC_EMAIL_ADDRESS>` with the CC address, or remove the CC.
6. Open the workflow’s settings and set the timezone you want. The file asks for `Asia/Kolkata`.
7. Click Test workflow. The summary should arrive in the recipient’s inbox.
8. Save and press Publish at the top of the canvas (or Shift+P) to start the daily run.

### How to use it

Publish the workflow and leave it. At 7:00 each day in the workflow’s timezone, the recipients get one HTML email with the summary points and the actions. The workflow only reads mail and sends the summary, and it changes nothing in the inbox.

What to change for a different result

| To change | Where |
| --- | --- |
| What the model reports | The prompt in \`Summarize Emails with OpenAI Morning\`, keeping the JSON shape |
| The model | The same node |
| Which mail is read | The search in \`Fetch Emails Past 24 Hours\` |
| Which fields the model sees | The list in \`Organize Email Data Morning\` |
| The look of the email | The HTML and CSS in \`Send Summary Morning\` |
| The time | \`Daily 7AM Trigger\`, and the timezone in the workflow’s settings |

### Example

Overnight a customer asks about an invoice, a supplier confirms a delivery and a colleague asks for a review by Friday.

`Send Summary Morning` mails a styled email with three summary points. Under Actions it lists a name beside each task, such as who answers the customer and who does the review.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Here a clock box starts the run, a Gmail box fetches mail, a gather box bundles it, an OpenAI box writes the summary and a second Gmail box mails it. Click Test workflow once to see each box’s output.

**For experts.** The model must answer in a fixed JSON shape, and the email template reads that shape directly.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`Fetch Emails Past 24 Hours\` | Gmail node 2.1, Get Many with Return All | The search is your address plus \`after:\` yesterday’s date, built in an expression. Simplify is on by default |
| \`Organize Email Data Morning\` | Aggregate, all item data into one item | Keeps \`id\`, \`From\`, \`To\`, \`CC\` and \`snippet\` in a field named \`data\` |
| \`Summarize Emails with OpenAI Morning\` | The OpenAI node, version 1.7, with Output Content as JSON on | The node adds a system message about JSON and parses the reply into \`message.content\` |
| \`Send Summary Morning\` | Gmail node 2.1, send | HTML is the node’s default email type. The template maps the two lists into \`li\` items with their text escaped |

### Good to know

The model is near its shutdown date, its JSON mode needs a check and the timezone is set to India.

- Model: OpenAI’s deprecations page, read on 12 November 2026, lists \`gpt-4o-mini-2024-07-18\` with a shutdown on 14 January 2027 and names \`gpt-6-luna\` as the replacement. This node has no tools, so Mindket’s copy uses \`gpt-6-luna\`
- JSON answer: the node asks OpenAI for JSON mode. OpenAI’s structured outputs guide lists JSON mode for the GPT-3.5, GPT-4 and GPT-4o families and compatible GPT-5 models, and the \`gpt-6-luna\` page lists structured outputs as supported without naming JSON mode. Check the first run, and if OpenAI refuses it, turn off Output Content as JSON in the node and ask for JSON in the prompt
- Not run: Mindket made no call to Gmail or OpenAI. It ran the search expression and the two HTML expressions that now escape text offline with sample values
- Timezone: the file sets \`Asia/Kolkata\`, so 7:00 means 7:00 in India until you change it
- Window: \`after:\` takes a date, so the search covers everything from the start of yesterday to the 7:00 run, which is more than the 24 hours its name suggests
- Fields: the model never sees the subject lines, only the sender, the recipients and the preview. The \`CC\` name can also differ in case from the \`Cc\` header the Gmail node asks for, so check that the CC list reaches the model if you need it
- Size: Return All has no limit, so a busy mailbox gives the model a long input and the run can cost more
- Safety: a message can carry text meant to steer the model, and the summary is mailed on to others, so read the first summaries before you rely on them
- Your data: the senders, recipients and previews of your mail go to OpenAI, and the summary goes to the recipients you set
- Credentials: the JSON holds none

## README

```markdown
# Daily email summary with action items, mailed by Gmail

An n8n workflow that runs at 7:00 every day and fetches the Gmail messages received since the start of yesterday. It gathers their
senders, recipients and previews into one item and asks OpenAI for a summary and a list of action items, each with a name. A last
step mails the result as a styled HTML email to the recipients you choose.

## What is inside

- `workflow.json`: the workflow as n8n exports it, five nodes that run and four sticky notes. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- The credential links on the Gmail and OpenAI nodes were removed. Select your own.
- The model is now `gpt-6-luna`, in place of `gpt-4o-mini`. See "Good to know" for the dates.
- The search in `Fetch Emails Past 24 Hours` began with a company mailbox address. It now begins with the placeholder
  `<YOUR_EMAIL_ADDRESS>`.
- The recipient and the CC address in `Send Summary Morning` are now the placeholders `<TEAM_EMAIL_ADDRESS>` and
  `<CC_EMAIL_ADDRESS>`.
- The HTML title and the footer carried the original author's company name and mailbox. The title is now "Email Summary" and the
  footer says "Generated by an n8n workflow".
- The model's points and action items are escaped before they go into the HTML, so a `<` or an `&` in them cannot change the
  layout of the email.
- The sticky note over the search now says the search starts at the beginning of yesterday, which is what the search does, and
  where to put your address.
- Four node names carried a spaced hyphen. They now read without it, and the connections follow them.
- Nothing else. The schedule, the prompt, the style and the workflow's settings, including its timezone, are as they were.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- A Gmail account and a Gmail OAuth2 credential in n8n. Both Gmail nodes use it, one to read mail and one to send.
- An OpenAI API key.
- The email address of the mailbox and the addresses that should get the summary.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Add a Gmail OAuth2 credential and select it in `Fetch Emails Past 24 Hours` and in `Send Summary Morning`.
3. Add an OpenAI credential and select it in `Summarize Emails with OpenAI Morning`.
4. In `Fetch Emails Past 24 Hours`, put your mailbox address where the search says `<YOUR_EMAIL_ADDRESS>`.
5. In `Send Summary Morning`, replace `<TEAM_EMAIL_ADDRESS>` with the recipient and `<CC_EMAIL_ADDRESS>` with the CC address, or
   remove the CC.
6. Open the workflow's settings and set the timezone you want. The file asks for `Asia/Kolkata`.
7. Click Test workflow. The summary should arrive in the recipient's inbox.
8. Save and press Publish at the top of the canvas (or Shift+P) to start the daily run.

## How a run goes

1. `Daily 7AM Trigger` starts the run at 7:00 each day in the workflow's timezone.
2. `Fetch Emails Past 24 Hours` runs a Gmail search made of your address and `after:` yesterday's date, with Return All on.
3. `Organize Email Data Morning` folds all messages into one item. It keeps the fields `id`, `From`, `To`, `CC` and `snippet`.
4. `Summarize Emails with OpenAI Morning` sends that data with a prompt that asks for key details, issues to look at and action
   items. It asks for a JSON answer with `summary_of_emails`, a list of points, and `actions`, a list of names with an action each.
5. `Send Summary Morning` fills an HTML template with the points and the actions and mails it. The subject holds yesterday's date
   and today's date.

## Change the look

- What the model reports: the prompt in `Summarize Emails with OpenAI Morning`. Keep the JSON shape, since the email template reads it.
- The model: the same node.
- Which mail is read: the search in `Fetch Emails Past 24 Hours`.
- Which fields the model sees: the list in `Organize Email Data Morning`.
- The look of the email: the HTML and CSS in `Send Summary Morning`.
- The time: `Daily 7AM Trigger`, and the timezone in the workflow's settings.

## Good to know

- Model: OpenAI's deprecations page, read on 12 November 2026, lists `gpt-4o-mini-2024-07-18` with a shutdown on 14 January 2027
  and names `gpt-6-luna` as the replacement. The node has no tools, so the swap is a plain model change.
- JSON answer: the node asks OpenAI for JSON mode. OpenAI's structured outputs guide lists JSON mode for the GPT-3.5, GPT-4 and
  GPT-4o families and compatible GPT-5 models, and the `gpt-6-luna` page lists structured outputs as supported without naming JSON
  mode. Check the first run. If OpenAI refuses it, turn off Output Content as JSON in the node and ask for JSON in the prompt.
- Not run: Mindket made no call to Gmail or OpenAI. The search expression and the two HTML expressions that now escape text were run
  offline with sample values.
- Timezone: the file sets `Asia/Kolkata`, so 7:00 means 7:00 in India until you change it.
- Window: `after:` takes a date, so the search covers everything from the start of yesterday to the 7:00 run, which is more than the
  24 hours its name suggests. The subject line says the same, from 00:00 yesterday to 7:00 today.
- Fields: the model never sees the subject lines, only the sender, the recipients and the preview. The `CC` name in the field list
  can also differ in case from the `Cc` header the Gmail node asks for, so check that the CC list reaches the model if you need it.
- Size: Return All has no limit, so a busy mailbox gives the model a long input and the run can cost more.
- A message can carry text meant to steer the model, and the summary is mailed on to others. Read the first summaries before you
  rely on them.
- The senders, recipients and previews of your mail go to OpenAI, and the summary goes to the recipients you set.
```

## What is in it

3 files, 15 KB, downloaded as a zip.

```text
NOTICE.md  571 B
README.md  6 KB
workflow.json  8 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 5 steps, starting on a schedule
- AI: 1 step calls an AI model: Summarize Emails with OpenAI Morning
- Sign-ins: Signs in to: Gmail
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 4 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/e611475c-aae9-42a3-aade-41c4bac76197)
- [Its page on Mindket](https://mindket.com/p/e611475c-aae9-42a3-aade-41c4bac76197)
