AutomationFlowsGeneral › Automated Gratitude Jar Reminders with AI

Automated Gratitude Jar Reminders with AI

Original n8n title: Gratitude Jar Reminder

Gratitude Jar Reminder. Uses scheduleTrigger, chainLlm, stickyNote, lmChatAzureOpenAi. Scheduled trigger; 9 nodes.

Cron / scheduled trigger★★★☆☆ complexityAI-powered9 nodesChain LlmLm Chat Azure Open AiHTTP Request
General Trigger: Cron / scheduled Nodes: 9 Complexity: ★★★☆☆ AI nodes: yes Added:

This workflow follows the Chainllm → 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 →

Download .json
{
  "id": "Sebvr1R2t4zkAg1V",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Gratitude Jar Reminder",
  "tags": [],
  "nodes": [
    {
      "id": "ac48becc-e207-489b-a8e4-a8f69780c626",
      "name": "Trigger 2100 Bear Gratitude Jar Notice",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -80,
        -100
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 21
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "37f46ac1-5c0b-4cdf-aa33-67fad80dafdd",
      "name": "WriteReminder",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        180,
        -100
      ],
      "parameters": {
        "text": "=Today is a wonderful day! \ud83c\udf1f What or who brought a smile to your face today? \ud83d\ude0a\n",
        "messages": {
          "messageValues": [
            {
              "message": "You'll rewrite this message to send reminder to user to record good thing today."
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.5
    },
    {
      "id": "816f8089-a54f-4860-a658-448ab53a08fd",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -180,
        -240
      ],
      "parameters": {
        "width": 300,
        "height": 360,
        "content": "## Trigger \nWe schedule the trigger at 9.00 pm before going to bed. This flow is to reflect what is the great thing that happened today."
      },
      "typeVersion": 1
    },
    {
      "id": "c7a620fe-2a50-4cfb-af91-8a4b4ca58adb",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        -240
      ],
      "parameters": {
        "color": 5,
        "width": 300,
        "height": 360,
        "content": "## Write Reminder\nAfter getting the same reminder, we tend to ignore it. This is to generate variations of reminder by setting the temperature of the model at 0.9"
      },
      "typeVersion": 1
    },
    {
      "id": "66b865a1-0a6c-4a3c-abb3-024ec7ff8b40",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        500,
        -240
      ],
      "parameters": {
        "color": 6,
        "width": 300,
        "height": 360,
        "content": "## Reformatted \nThis is to reformat text to be able to send in Line Push API properly."
      },
      "typeVersion": 1
    },
    {
      "id": "adb8cf4e-de77-4490-a8da-b32122c3a730",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        840,
        -240
      ],
      "parameters": {
        "color": 4,
        "width": 300,
        "height": 360,
        "content": "## Push Message\nSend push message via LINE"
      },
      "typeVersion": 1
    },
    {
      "id": "6562967a-fae7-400a-913a-4cf68e70b40a",
      "name": "Reformat Output from Chat Model",
      "type": "n8n-nodes-base.set",
      "position": [
        600,
        -100
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "90abc5a6-c9b9-4b0d-b433-c6f90816dba3",
              "name": "posestoday",
              "type": "string",
              "value": "={{ $json.text.replaceAll(\"\\n\",\"\\\\n\").replaceAll(\"\\n\",\"\").removeMarkdown().removeTags().replaceAll('\"',\"\") }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d2ab000a-6f3a-494f-807f-829cbb124685",
      "name": "Azure OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
      "position": [
        280,
        -20
      ],
      "parameters": {
        "model": "4o",
        "options": {
          "temperature": 0.9
        }
      },
      "credentials": {
        "azureOpenAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c548df75-dc6c-472f-8992-77f0f57d4732",
      "name": "Line Push Message",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        940,
        -100
      ],
      "parameters": {
        "url": "https://api.line.me/v2/bot/message/push",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n    \"to\": \"YOUR ID HERE\",\n    \"messages\":[\n        {\n            \"type\":\"text\",\n            \"text\":\"{{ $json.posestoday }}\"\n        }\n    ]\n} ",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    }
  ],
  "active": true,
  "settings": {
    "timezone": "Asia/Bangkok",
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1"
  },
  "versionId": "19321d28-e96d-4f97-94a9-604b59b5b651",
  "connections": {
    "WriteReminder": {
      "main": [
        [
          {
            "node": "Reformat Output from Chat Model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Azure OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "WriteReminder",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Reformat Output from Chat Model": {
      "main": [
        [
          {
            "node": "Line Push Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger 2100 Bear Gratitude Jar Notice": {
      "main": [
        [
          {
            "node": "WriteReminder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Gratitude Jar Reminder. Uses scheduleTrigger, chainLlm, stickyNote, lmChatAzureOpenAi. Scheduled trigger; 9 nodes.

Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

Blog Automation TEMPLATE. Uses scheduleTrigger, manualTrigger, googleSheets, lmChatOpenAi. Scheduled trigger; 35 nodes.

Google Sheets, OpenAI Chat, Chain Llm +1
General

Blog Automation TEMPLATE. Uses scheduleTrigger, manualTrigger, googleSheets, lmChatOpenAi. Scheduled trigger; 35 nodes.

Google Sheets, OpenAI Chat, Chain Llm +1
General

Wait Schedule. Uses googleDrive, lmChatGoogleGemini, outputParserStructured, stickyNote. Scheduled trigger; 34 nodes.

Google Drive, Google Gemini Chat, Output Parser Structured +4
General

Wait Code. Uses microsoftOutlook, splitInBatches, noOp, textClassifier. Scheduled trigger; 24 nodes.

Microsoft Outlook, Text Classifier, Google Gemini Chat +2
General

Brand Content Extract, Summarize & Sentiment Analysis with Bright Data. Uses manualTrigger, stickyNote, chainLlm, informationExtractor. Event-driven trigger; 23 nodes.

Chain Llm, Information Extractor, HTTP Request +3