Automated Water Consumption Tracker - Stored in Sheet and Notify in Slack
# Water Reminder Workflow This workflow demonstrates how to use **n8n** and **Slack** to build an intelligent water drinking reminder system, combined with **Google Sheets** for data recording and **OpenAI** for generating personalized reminder messages. --- [Google Sheet Template](https://docs.google.com/spreadsheets/d/1cMf03l3Ae3vo-4w8yeaUvSh9dB7CLM7CFUb2y4BmqwY/edit?usp=sharing) The iOS shortcut template:  **The result in iOS health:**  [The template demo on YouTube](https://www.youtube.com/watch?v=h2_QO5gxdts) --- ## Key Features 1. **Scheduled Reminders**: Automatically sends water reminders at random times every hour. 2. **Intelligent Scheduling**: Delays the next reminder if you've recently had water. 3. **AI-Generated Messages**: Uses OpenAI to generate friendly and non-repetitive reminder messages. 4. **Data Tracking**: Records daily water intake and calculates the percentage of goal achievement. 5. **Quick Response**: Easily record water intake through Slack buttons. 6. **iOS Integration**: Provides iOS shortcut links to sync data with the Health app. --- ## Pre-Configuration Requirements To use this workflow, you need to set up the following: 1. **Google Sheets**: - Create a Google spreadsheet with `log` and `setting` sheets - The `log` sheet should include `date`, `time`, and `value` columns - The `setting` sheet is used to store daily water intake goals 2. **Slack**: - Create a Slack app and obtain an API token - Configure permissions for interactive buttons 3. **OpenAI**: - Obtain an OpenAI API key 4. **iOS Shortcut** (optional): - Create an iOS shortcut named `darrell_water` for recording health data --- ## Node Configurations ### 1. Scheduled Triggers and Data Collection #### 1.1. Schedule Trigger - **Purpose**: Triggers water reminders on schedule - **Configuration**: - **Cron Expression**: `0 {{ Math.floor(Math.random() * 11) }} 8-23 * * *` - Triggers at a random minute every hour, only between 8 AM and 11 PM #### 1.2. Google Sheets - Get Target - **Purpose**: Retrieves daily water intake goal - **Configuration**: - **Document ID**: Your Google spreadsheet ID - **Sheet Name**: `setting` #### 1.3. Google Sheets - Get Log - **Purpose**: Retrieves today's water intake records - **Configuration**: - **Document ID**: Your Google spreadsheet ID - **Sheet Name**: `log` - **Filter Condition**: `date` equals today's date `{{ $now.format(yyyy-MM-dd) }}` #### 1.4. Summarize - **Purpose**: Calculates total water intake for today - **Configuration**: - **Fields to Summarize**: `value` (sum) #### 1.5. Limit - **Purpose**: Gets the most recent water intake record - **Configuration**: - **Keep**: Last items --- ### 2. Intelligent Reminder Logic #### 2.1. Combine Data - **Purpose**: Merges target and actual water intake data - **Configuration**: - **Combine By**: Combine by position - **Number of Inputs**: 3 #### 2.2. If - **Purpose**: Checks if water was consumed recently - **Configuration**: - **Condition**: - `{{ DateTime.fromISO($json.date++$json.time).format(yyyy-MM-dd HH:mm:ss) }}` is after `{{ $now.minus(30, minutes) }}` #### 2.3. Wait - **Purpose**: Randomly delays the reminder if water was consumed recently - **Configuration**: - **Wait Time**: `{{ Math.floor(Math.random() * 1) + 1 }}` minutes --- ### 3. AI Message Generation and Sending #### 3.1. OpenAI - **Purpose**: Generates personalized water reminder messages - **Configuration**: - **Model**: `gpt-3.5-turbo` - **Messages**: - System prompt: Requests responses in Traditional Chinese and in JSON format - User prompt: Includes information about last water time, current time, goal, and progress - **Temperature**: 1 #### 3.2. Slack Send Drink Notification - **Purpose**: Sends water reminders to Slack channel - **Configuration**: - **Channel**: Your Slack channel ID - **Message Type**: Block - **Block UI**: Contains AI-generated reminder message and water amount buttons (100ml, 150ml, 200ml, 250ml, 300ml) --- ### 4. User Interaction and Data Recording #### 4.1. Slack Drink Webhook - **Purpose**: Receives user interactions when water buttons are clicked - **Configuration**: - **HTTP Method**: `POST` - **Path**: `slack-water-webhook` #### 4.2. Slack Action Payload - **Purpose**: Parses Slack interaction data - **Configuration**: - **Mode**: Raw - **JSON Output**: `{{ $json.body.payload }}` #### 4.3. Slack Action Drink Data - **Purpose**: Extracts water amount and message information - **Configuration**: - **Assignments**: - `value`: `{{ $json.actions[0].value }}` - `message_text`: `{{ $json.message.text }}` - `shortcut_url`: `shortcuts://run-shortcut?name=darrell_water&input=` - `shortcut_url_data`: JSON containing water amount and time - `message_ts`: `{{ $json.container.message_ts }}` #### 4.4. Google Sheets - **Purpose**:
Water Reminder Workflow
This workflow demonstrates how to use n8n and Slack to build an intelligent water drinking reminder system, combined with Google Sheets for data recording and OpenAI for generating personalized reminder messages.
The iOS shortcut template:
The result in iOS health:
The template demo on YouTube
Key Features
- Scheduled Reminders: Automatically sends water reminders at random times every hour.
- Intelligent Scheduling: Delays the next reminder if you've recently had water.
- AI-Generated Messages: Uses OpenAI to generate friendly and non-repetitive reminder messages.
- Data Tracking: Records daily water intake and calculates the percentage of goal achievement.
- Quick Response: Easily record water intake through Slack buttons.
- iOS Integration: Provides iOS shortcut links to sync data with the Health app.
Pre-Configuration Requirements
To use this workflow, you need to set up the following:
-
Google Sheets:
- Create a Google spreadsheet with
logandsettingsheets - The
logsheet should includedate,time, andvaluecolumns - The
settingsheet is used to store daily water intake goals
- Create a Google spreadsheet with
-
Slack:
- Create a Slack app and obtain an API token
- Configure permissions for interactive buttons
-
OpenAI:
- Obtain an OpenAI API key
-
iOS Shortcut (optional):
- Create an iOS shortcut named
darrell_waterfor recording health data
- Create an iOS shortcut named
Node Configurations
1. Scheduled Triggers and Data Collection
1.1. Schedule Trigger
- Purpose: Triggers water reminders on schedule
- Configuration:
- Cron Expression:
0 {{ Math.floor(Math.random() * 11) }} 8-23 * * * - Triggers at a random minute every hour, only between 8 AM and 11 PM
- Cron Expression:
1.2. Google Sheets - Get Target
- Purpose: Retrieves daily water intake goal
- Configuration:
- Document ID: Your Google spreadsheet ID
- Sheet Name:
setting
1.3. Google Sheets - Get Log
- Purpose: Retrieves today's water intake records
- Configuration:
- Document ID: Your Google spreadsheet ID
- Sheet Name:
log - Filter Condition:
dateequals today's date{{ $now.format(yyyy-MM-dd) }}
1.4. Summarize
- Purpose: Calculates total water intake for today
- Configuration:
- Fields to Summarize:
value(sum)
- Fields to Summarize:
1.5. Limit
- Purpose: Gets the most recent water intake record
- Configuration:
- Keep: Last items
2. Intelligent Reminder Logic
2.1. Combine Data
- Purpose: Merges target and actual water intake data
- Configuration:
- Combine By: Combine by position
- Number of Inputs: 3
2.2. If
- Purpose: Checks if water was consumed recently
- Configuration:
- Condition:
{{ DateTime.fromISO($json.date++$json.time).format(yyyy-MM-dd HH:mm:ss) }}is after{{ $now.minus(30, minutes) }}
2.3. Wait
- Purpose: Randomly delays the reminder if water was consumed recently
- Configuration:
- Wait Time:
{{ Math.floor(Math.random() * 1) + 1 }}minutes
- Wait Time:
3. AI Message Generation and Sending
3.1. OpenAI
- Purpose: Generates personalized water reminder messages
- Configuration:
- Model:
gpt-3.5-turbo - Messages:
- System prompt: Requests responses in Traditional Chinese and in JSON format
- User prompt: Includes information about last water time, current time, goal, and progress
- Temperature: 1
- Model:
3.2. Slack Send Drink Notification
- Purpose: Sends water reminders to Slack channel
- Configuration:
- Channel: Your Slack channel ID
- Message Type: Block
- Block UI: Contains AI-generated reminder message and water amount buttons (100ml, 150ml, 200ml, 250ml, 300ml)
4. User Interaction and Data Recording
4.1. Slack Drink Webhook
- Purpose: Receives user interactions when water buttons are clicked
- Configuration:
- HTTP Method:
POST - Path:
slack-water-webhook
- HTTP Method:
4.2. Slack Action Payload
- Purpose: Parses Slack interaction data
- Configuration:
- Mode: Raw
- JSON Output:
{{ $json.body.payload }}
4.3. Slack Action Drink Data
- Purpose: Extracts water amount and message information
- Configuration:
- Assignments:
value:{{ $json.actions[0].value }}message_text:{{ $json.message.text }}shortcut_url:shortcuts://run-shortcut?name=darrell_water&input=shortcut_url_data: JSON containing water amount and timemessage_ts:{{ $json.container.message_ts }}
4.4. Google Sheets
- Purpose:
New buyers can create an account from the cart to unlock a controlled $10 first-purchase credit on eligible orders of $25+.
Related bundle
E-commerce Store Automation Suite
8 hand-picked workflows for $39.00.
That is $4.88 each, vs $14.99 for this one alone.
View bundleSecure checkout powered by Stripe
Support
How to import this workflow into n8n
- 1Purchase or download the workflow to get the n8n workflow JSON file.
- 2In your n8n instance, open Workflows and choose "Import from File" (or paste the JSON with Ctrl+V on the canvas).
- 3Open each node marked with a credential warning and connect your own accounts and API keys.
- 4Run the workflow once manually to verify the data flow, then toggle it to Active.
Related Health & Fitness workflows
- Nutrition Tracker & Meal Logger with Telegram, Gemini AI, and Google Sheets$24.99
- Automated Telegram Command Filtering and Workflow Management$15.04
- Automate Food Calorie Tracking via Telegram with GPT-4 Vision and Google Sheets$4.99
- Automate Personalized Diet Plan Creation from Health Reports via Email$4.99
- Reinforced Learning Chatbot for Enhanced User Support$24.99
- AI-Powered Triathlon Coaching with Strava Data Analysis$9.99
More from darrell_tw
Need this deployed? We'll set it up for you.
Our automation experts deploy this workflow in your stack, connect your accounts, and verify it works — or build a custom solution from scratch.