Workflow: Gratitude Jar Reminder
Integrations: httpRequest, noOp, scheduleTrigger, set, stickyNote

{"id": "Sebvr1R2t4zkAg1V", "meta": {"instanceId": "workflow-7bc2a3a7", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:46.480262", "updatedAt": "2025-09-29T07:07:46.480344", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production"}, "name": "Gratitude Jar Reminder", "tags": ["automation", "n8n", "production-ready", "excellent", "optimized"], "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, "notes": "This scheduleTrigger node performs automated tasks as part of the workflow."}, {"id": "37f46ac1-5c0b-4cdf-aa33-67fad80dafdd", "name": "WriteReminder", "type": "n8n-nodes-base.noOp", "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, "notes": "This chainLlm node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"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, "notes": "This set node performs automated tasks as part of the workflow."}, {"id": "d2ab000a-6f3a-494f-807f-829cbb124685", "name": "Azure OpenAI Chat Model", "type": "n8n-nodes-base.noOp", "position": [280, -20], "parameters": {"model": "4o", "options": {"temperature": 0.9}}, "credentials": {"azureOpenAiApi": {"id": "5AjoWhww5SQi2VXd", "name": "Azure Open AI account"}}, "typeVersion": 1, "notes": "This lmChatAzureOpenAi node performs automated tasks as part of the workflow."}, {"id": "c548df75-dc6c-472f-8992-77f0f57d4732", "name": "Line Push Message", "type": "n8n-nodes-base.httpRequest", "position": [940, -100], "parameters": {"url": "{{ $env.API_BASE_URL }}", "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": "{{ $credentials.genericCredentialType }}", "genericAuthType": "httpHeaderAuth"}, "credentials": {"httpHeaderAuth": {"id": "yiPG7xPwvDzsY0Qd", "name": "Line @511dizji"}}, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow."}], "active": true, "pinData": {}, "settings": {"timezone": "UTC", "callerPolicy": "workflowsFromSameOwner", "executionOrder": "v1", "saveManualExecutions": true, "errorWorkflow": null, "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000}, "versionId": "19321d28-e96d-4f97-94a9-604b59b5b651", "connections": {"c548df75-dc6c-472f-8992-77f0f57d4732": {"main": [[{"node": "error-handler-c548df75-dc6c-472f-8992-77f0f57d4732", "type": "main", "index": 0}], [{"node": "error-handler-c548df75-dc6c-472f-8992-77f0f57d4732-6183960f", "type": "main", "index": 0}], [{"node": "error-handler-c548df75-dc6c-472f-8992-77f0f57d4732-00974f49", "type": "main", "index": 0}], [{"node": "error-handler-c548df75-dc6c-472f-8992-77f0f57d4732-99ce2f7d", "type": "main", "index": 0}], [{"node": "error-handler-c548df75-dc6c-472f-8992-77f0f57d4732-702bd0b0", "type": "main", "index": 0}], [{"node": "error-handler-c548df75-dc6c-472f-8992-77f0f57d4732-ffe87b7c", "type": "main", "index": 0}], [{"node": "error-handler-c548df75-dc6c-472f-8992-77f0f57d4732-41e23d1b", "type": "main", "index": 0}], [{"node": "error-handler-c548df75-dc6c-472f-8992-77f0f57d4732-f7cc97e0", "type": "main", "index": 0}], [{"node": "error-handler-c548df75-dc6c-472f-8992-77f0f57d4732-975ab638", "type": "main", "index": 0}]]}, "d2ab000a-6f3a-494f-807f-829cbb124685": {"main": [[{"node": "error-handler-d2ab000a-6f3a-494f-807f-829cbb124685-11221f38", "type": "main", "index": 0}]]}}, "description": "Automated workflow: Gratitude Jar Reminder. This workflow integrates 7 different services: stickyNote, httpRequest, scheduleTrigger, chainLlm, set. It contains 12 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Gratitude Jar Reminder. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}