Skip to main content

Generate weekly habit and mood insights with Google Sheets and OpenAI

Workflow preview

Workflow preview
100%
Generate weekly habit and mood insights with Google Sheets and OpenAI preview
Open on n8n.io

1. Workflow Overview

Quick overview Track daily mood, energy, sleep, stress, focus, and habits with a simple form, then receive a weekly AI generated personal analytics report with patterns, best/hardest day comparison...

Best for

  • Personal Productivity automation workflows
  • AI Summarization automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.set, n8n-nodes-base.code, n8n-nodes-base.googlesheets, n8n-nodes-base.formtrigger, n8n-nodes-base.gmail, n8n-nodes-base.scheduletrigger, n8n-nodes-base.if, @n8n/n8n-nodes-langchain.chainllm

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Pratistha Thapa.

Original n8n.io source

1.1 Workflow description

Title
Generate weekly habit and mood insights with Google Sheets and OpenAI
Workflow name
Generate weekly habit and mood insights with Google Sheets and OpenAI

Quick overview

Track daily mood, energy, sleep, stress, focus, and habits with a simple form, then receive a weekly AI-generated personal analytics report with patterns, best/hardest day comparison, and one small experiment for the next week. The result helps users understand what conditions seem linked with better wellbeing.

How it works

  1. Receives a daily check-in submission from an n8n Form.
  2. Normalizes the submitted fields and calculates daily wellbeing and habit scores, tags, a risk flag, and a small suggestion.
  3. Appends the daily entry to a Google Sheets daily_entries tab.
  4. Sends a Gmail confirmation email, using a more supportive message when the risk flag indicates needs_support.
  5. Runs every week on a schedule trigger and reads all daily entries from Google Sheets.
  6. Calculates weekly analytics for the previous Monday–Sunday week (including averages, best/hardest day, and detected patterns) and stops with a “not enough data” Gmail message if fewer than 3 entries exist.
  7. Generates a weekly coaching insight with an OpenAI Chat Model (via Groq), parses the returned JSON into email fields, appends the weekly report to a Google Sheets weekly_reports tab, and emails the formatted weekly insights via Gmail.

Setup

  1. Connect Google Sheets OAuth2 credentials and update the spreadsheet ID and sheet tabs (daily_entries and weekly_reports) used by the Google Sheets nodes.
  2. Create the daily_entries and weekly_reports sheets with column names matching the fields the workflow appends (for example wellbeing_score, habit_score, risk_flag, and ai_summary).
  3. Connect Gmail OAuth2 credentials and replace YOUR_EMAIL_ADDRESS_PLACEHOLDER with your recipient email address in all Gmail nodes.
  4. Add an OpenAI-compatible API credential (configured here as Groq) and ensure the selected chat model is available to the OpenAI Chat Model node.
  5. Adjust the weekly schedule trigger (day/time) if you want the report to run at a different time zone or cadence.
  6. Test the daily branch and submit the daily form once. Confirm that a row appears in the daily_entries sheet. Confirm that the confirmation email is sent.
  7. Test the weekly branch. Add at least 3 daily entries. For a full test, add 7 entries covering Monday through Sunday. Run the weekly branch manually. Confirm that the weekly analytics node returns one weekly summary item. Confirm that the LLM returns valid JSON. Confirm that the final weekly email is rendered correctly.

Requirements

  • You need credentials for: Google Sheets, Gmail or Email Send, OpenAI

Customization

  • Change the daily questions: Edit the form fields if you want to track different habits.
  • Change the scoring logic: Open the Calculate Daily Scores node to adjust wellbeing score weights, habit score rules, tags, risk flag thresholds and tiny suggestions
  • Change the weekly reporting day: Open the Weekly Report Trigger node
  • Change the LLM prompt: Open the Basic LLM Chain node and redesign the prompt to suit your need. If you change the prompt, keep the JSON structure the same unless you also update the parser and email template.
  • Change the email design: Open the Email Weekly Insights node and update the body HTML format.

Additional info

This workflow is for personal reflection only. It does not provide medical advice, mental health diagnosis, or crisis support. The wellbeing score and habit score are simple personal analytics scores. They are not clinical scores. The AI-generated insight should be treated as a reflection aid, not as expert advice. If a user feels unsafe or at risk of harm, they should contact local emergency or crisis support.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Normalize Answers

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 2 - Calculate Daily Scores

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 3 - Append Daily Entry

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 4 - On form submission

Type / Role
n8n-nodes-base.formTrigger - formTrigger
Config choices
Version 2.5

Block 5 - Send Supportive Confirmation

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.2

Block 6 - Send Normal Confirmation

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.2

Block 7 - Weekly Report Trigger

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.3

Block 8 - Get Daily Entries

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 9 - Calculate Weekly Analytics

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 10 - Enough Entries?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.3

Block 11 - Basic LLM Chain

Type / Role
@n8n/n8n-nodes-langchain.chainLlm - chainLlm
Config choices
Version 1.9

Block 12 - OpenAI Chat Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatOpenAi - lmChatOpenAi
Config choices
Version 1.3

Block 13 - Send Not Enough Data Message

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.2

Block 14 - Append Weekly Report

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 15 - Email Weekly Insights

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.2

Block 16 - Parse AI Reflection JSON

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 17 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 18 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 19 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 20 - Sticky Note4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 21 - Sticky Note5

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 22 - Sticky Note6

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 23 - Sticky Note7

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 24 - Sticky Note8

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Showing the first 24 of 35 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Generate weekly habit and mood insights with Google Sheets and OpenAI
Complexity advanced
Nodes 35
Categories Personal Productivity, AI Summarization
Author Pratistha Thapa
Published 25 May 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/15948/15948.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Generate weekly habit and mood insights with Google Sheets and OpenAI do?

Quick overview Track daily mood, energy, sleep, stress, focus, and habits with a simple form, then receive a weekly AI generated personal analytics report with patterns, best/hardest day comparison...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Personal Productivity, AI Summarization use case.