This workflow corresponds to n8n.io template #7986 — we link there as the canonical source.
This workflow follows the Airtable → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "Daily Hydration Hug \ud83d\udca7",
"nodes": [
{
"id": "trigger-schedule",
"name": "Every Day at 10 AM & 3 PM",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "\ud83d\udd52 Schedule: Daily Wellness Nudges\n\nTriggers the workflow twice daily:\n- 10:00 AM\n- 3:00 PM\n\n\ud83d\udd39 Set timezone in Make settings to match your community.\n\nThis is the heartbeat of the hydration reminder system.",
"position": [
250,
300
],
"parameters": {},
"typeVersion": 1,
"notesAlignment": "top"
},
{
"id": "random-gif-picker",
"name": "Pick Random GIF",
"type": "n8n-nodes-base.set",
"notes": "\ud83d\uddbc\ufe0f Random GIF Selector\n\nRotates through a curated list of calming hydration-themed GIFs.\n\n\ud83d\udca1 Hosted on Giphy, Imgur, or CDN.\n\nExample URLs:\n- https://media.giphy.com/.../water.gif\n- https://example.com/hug.gif\n\nYou can expand the list for seasonal variety.",
"position": [
500,
300
],
"inputNames": [
"GIFs"
],
"parameters": {},
"outputNames": [
"With GIF"
],
"notesAlignment": "top"
},
{
"id": "send-slack-message",
"name": "Send to Slack",
"type": "n8n-nodes-base.httpRequest",
"notes": "\ud83d\udce4 Send Message to Slack\n\nPosts a friendly hydration reminder with:\n- Soothing text\n- Random GIF (accessory)\n\n\u2705 Uses Slack's Block Kit for rich formatting.\n\n\ud83d\udd27 Replace URL with Discord webhook if needed.",
"position": [
750,
250
],
"parameters": {},
"notesAlignment": "top"
},
{
"id": "send-discord-message",
"name": "Send to Discord",
"type": "n8n-nodes-base.httpRequest",
"notes": "\ud83d\udce4 Send Message to Discord\n\nSends a clean, embed-based message with hydration GIF.\n\n\ud83c\udfa8 Color: Soft blue (#2C7873 \u2192 2899551)\n\n\ud83d\udca1 Use only one send node (Slack OR Discord) unless routing dynamically.",
"position": [
750,
350
],
"parameters": {},
"notesAlignment": "top"
},
{
"id": "wait-24-hours",
"name": "Wait 24 Hours",
"type": "n8n-nodes-base.wait",
"notes": "\u23f8\ufe0f Wait for Reactions\n\nPauses 24 hours to allow members to react with \u2705.\n\n\ud83d\udd39 You can reduce to 12h for faster cycles.\n\n\u26a0\ufe0f Do not skip: needed to capture engagement.",
"position": [
1000,
300
],
"parameters": {},
"notesAlignment": "top"
},
{
"id": "fetch-reactions-slack",
"name": "Get Slack Reactions",
"type": "n8n-nodes-base.httpRequest",
"notes": "\ud83d\udd0d Fetch Slack Reactions\n\nUses Slack API to check if \u2705 was added.\n\n\ud83d\udd10 Requires Bot Token with:\n- reactions:read\n- channels:read\n\n\ud83d\udca1 Store message timestamp from initial post.",
"position": [
1250,
250
],
"parameters": {},
"notesAlignment": "top"
},
{
"id": "filter-yes-reactions",
"name": "Filter \u2705 Reactions",
"type": "n8n-nodes-base.switch",
"notes": "\u2705 Filter for Checkmark Reactions\n\nOnly continues if at least one \u2705 (white_check_mark) was added.\n\n\ud83d\udd27 You can add more emoji filters (e.g., \ud83d\udca7, \ud83e\udef6) for expanded tracking.",
"position": [
1500,
300
],
"parameters": {},
"notesAlignment": "top"
},
{
"id": "airtable-log-reaction",
"name": "Log in Airtable",
"type": "n8n-nodes-base.airtable",
"notes": "\ud83d\udcca Log Reaction in Airtable\n\nSaves each \u2705 reaction as a new record.\n\n\ud83d\udd01 Used later to generate monthly 'Hydration Heroes' leaderboard.\n\n\ud83d\udca1 Link to user profiles or add tags for segmentation.",
"position": [
1750,
300
],
"parameters": {},
"notesAlignment": "top"
}
],
"active": false,
"settings": {
"callerPolicy": "none",
"saveDataError": "all",
"executionOrder": "parallel",
"saveDataSuccess": "all"
},
"connections": {
"Send to Slack": {
"main": [
[
{
"node": "Wait 24 Hours",
"type": "main",
"index": 0
}
]
]
},
"Wait 24 Hours": {
"main": [
[
{
"node": "Get Slack Reactions",
"type": "main",
"index": 0
}
]
]
},
"Pick Random GIF": {
"main": [
[
{
"node": "Send to Slack",
"type": "main",
"index": 0
},
{
"node": "Send to Discord",
"type": "main",
"index": 0
}
]
]
},
"Send to Discord": {
"main": [
[
{
"node": "Wait 24 Hours",
"type": "main",
"index": 0
}
]
]
},
"Get Slack Reactions": {
"main": [
[
{
"node": "Filter \u2705 Reactions",
"type": "main",
"index": 0
}
]
]
},
"Filter \u2705 Reactions": {
"main": [
[
{
"node": "Log in Airtable",
"type": "main",
"index": 0
}
]
]
},
"Every Day at 10 AM & 3 PM": {
"main": [
[
{
"node": "Pick Random GIF",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Automate wellness engagement in your community with a twice-daily hydration reminder sent to Slack or Discord, and automatically track member reactions in Airtable. This no-code workflow nurtures self-care culture while capturing engagement data—zero manual effort required.
Source: https://n8n.io/workflows/7986/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This template provides a fully automated system for monitoring news on any topic you choose. It leverages Linkup's AI-powered web search to find recent, relevant articles, extracts key information lik
This n8n workflow monitors WooCommerce refund activity to detect unusual spikes in product returns at the SKU level. It compares return volumes across rolling 24-hour windows, alerts teams in Slack wh
Send A Random Recipe Once A Day To Telegram. Uses airtable, telegram, httpRequest, telegramTrigger. Scheduled trigger; 15 nodes.
This telegram bot is designed to send one random recipe a day.
🚀 Remote Job Automation Workflow Automatically fetch, clean, and broadcast the latest remote job listings — powered by RemoteOK, Airtable, and Telegram.