AutomationFlowsAI & RAG › Auto N8n Updater (docker)

Auto N8n Updater (docker)

Original n8n title: 🛠️ Auto N8n Updater (docker)

ByLucas Peyrin @lucaspeyrin on n8n.io

This workflow automates the process of checking for and applying updates to a self-hosted n8n instance running on Docker. It runs on a schedule, checks for new versions, summarizes the release notes with AI, and asks for your approval via Telegram before updating. Scheduled…

Cron / scheduled trigger★★★★☆ complexityAI-powered26 nodesSshHTTP RequestGoogle Gemini ChatChain LlmTelegram
AI & RAG Trigger: Cron / scheduled Nodes: 26 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #5198 — we link there as the canonical source.

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
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "d4839dc7-7814-45ed-8afe-9605f212c451",
      "name": "Docker Path",
      "type": "n8n-nodes-base.set",
      "position": [
        -1560,
        820
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "9027cc7c-e73f-4e9b-9cfc-537e038f735c",
              "name": "docker_path",
              "type": "string",
              "value": "./n8n-docker-caddy"
            },
            {
              "id": "8ddad746-f3c9-40fa-86f9-b62c5616317b",
              "name": "worker_command",
              "type": "string",
              "value": ""
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "2d99535e-e0be-42ba-a0cf-f4bb94ea2532",
      "name": "Update Docker",
      "type": "n8n-nodes-base.ssh",
      "position": [
        1520,
        680
      ],
      "parameters": {
        "cwd": "={{ $('Docker Path').last().json.docker_path }}",
        "command": "=nohup sh -c \"docker compose pull && docker compose down && docker compose up -d {{ $('Docker Path').last().json.worker_command }}\" > update.log 2>&1 &"
      },
      "typeVersion": 1
    },
    {
      "id": "8d113bfe-843d-4109-b6d0-c26c104e6ed9",
      "name": "Get n8n Current Version",
      "type": "n8n-nodes-base.ssh",
      "position": [
        -1260,
        820
      ],
      "parameters": {
        "cwd": "={{ $('Docker Path').last().json.docker_path }}",
        "command": "=docker inspect $(docker ps -q --filter \"name=n8n\")"
      },
      "typeVersion": 1
    },
    {
      "id": "dc0f16e4-5623-4dd5-84f3-8d778f75dbb4",
      "name": "Get Instance's Settings",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2060,
        820
      ],
      "parameters": {
        "url": "={{ $env.WEBHOOK_URL }}rest/settings",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "22aedea8-ba64-430b-8eb0-77f52e43eabb",
      "name": "Is Docker",
      "type": "n8n-nodes-base.if",
      "position": [
        -1840,
        820
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "4021cef9-daa5-448e-9df3-d38e2cafe2ed",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.data.isDocker }}",
              "rightValue": ""
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "fff24986-c8bc-4766-bd42-2f565790d5db",
      "name": "Get Version's Last Update",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -820,
        820
      ],
      "parameters": {
        "url": "=https://registry.hub.docker.com/v2/repositories/n8nio/n8n/tags/{{ $json.n8n_target_version }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "e8f5842c-7f1e-4780-8063-36152c393a0e",
      "name": "Target Version",
      "type": "n8n-nodes-base.set",
      "position": [
        -1040,
        820
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "3eb04423-6d04-4371-8dfe-a092996a9235",
              "name": "n8n_target_version",
              "type": "string",
              "value": "={{ $json.stdout.parseJson()[0].Config.Image.replaceAll(\"docker.n8n.io/n8nio/n8n:\", \"\").trim() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c8134924-96ee-4cfc-ad82-2549ddd7ee63",
      "name": "Get Current Version",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -600,
        820
      ],
      "parameters": {
        "url": "=https://registry.hub.docker.com/v2/repositories/n8nio/n8n/tags/{{ $('Get Instance\\'s Settings').last().json.data.versionCli }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "8da1ce03-6931-4c83-b58f-676705543f92",
      "name": "Needs Update ?",
      "type": "n8n-nodes-base.if",
      "position": [
        -380,
        820
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "79ba3ace-f894-438f-a8da-0616419ffff7",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.digest }}",
              "rightValue": "={{ $('Get Version\\'s Last Update').item.json.digest }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "faebf9a0-5ee2-44b4-9bd1-ab789a434cde",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        580,
        800
      ],
      "parameters": {
        "options": {
          "temperature": 0
        },
        "modelName": "models/gemma-3n-e4b-it"
      },
      "typeVersion": 1
    },
    {
      "id": "a186f1fa-ac56-49fb-a302-c2895deefd3b",
      "name": "Approved ?",
      "type": "n8n-nodes-base.if",
      "position": [
        1100,
        700
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "7590024e-2f4d-491f-a6c1-aa906e7aa755",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.data.approved }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "1d03dffa-7127-4d43-9114-a1cc4cf6fa3b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        160
      ],
      "parameters": {
        "color": 6,
        "width": 1460,
        "height": 820,
        "content": "## \u26a0\ufe0f MANUAL APPROVAL SECTION\n\nThis entire block handles fetching release notes and waiting for your approval on Telegram.\n\n**To enable fully automatic updates**, delete all nodes in this section and connect the `Needs Update ?` node's \"true\" output directly to the `Update Docker` node."
      },
      "typeVersion": 1
    },
    {
      "id": "a8fcb64e-bfd2-4ce7-ad05-55b0750660ed",
      "name": "Every Hour",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -2280,
        820
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5b886eb4-39b9-49f2-9f46-32a09638e490",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        500
      ],
      "parameters": {
        "color": 3,
        "width": 260,
        "height": 360,
        "content": "### \ud83d\udcac APPROVAL NOTIFICATION\n\n1.  Select your **Telegram Bot** credential.\n2.  Set the **Chat ID** to your personal Telegram chat ID to receive the update notifications."
      },
      "typeVersion": 1
    },
    {
      "id": "038321ee-1b56-4130-9cde-b2ed699a8470",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        440,
        340
      ],
      "parameters": {
        "color": 7,
        "width": 340,
        "height": 620,
        "content": "### \ud83e\udd16 AI Release Summary\n\nThese nodes fetch the official release notes and use an AI model to create a simple, easy-to-read summary.\n\nYou can replace the Google Gemini node with any other LLM node (OpenAI, Anthropic, etc.). The prompt is designed to be robust so feel free to use a small and cheap LLM."
      },
      "typeVersion": 1
    },
    {
      "id": "ddf276d3-fb7c-4cc9-9b38-6e054ead91ab",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        120,
        360
      ],
      "parameters": {
        "color": 7,
        "width": 300,
        "height": 380,
        "content": "### \ud83d\udd52 Version Check\n\nThis node checks if the new version was published after the last published version checked. This prevents sending duplicate notifications for the same update, as is will only proceed if there is a later publication date."
      },
      "typeVersion": 1
    },
    {
      "id": "bf4e80ad-ada2-4733-a6e7-7719d26c9dd0",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        380
      ],
      "parameters": {
        "color": 7,
        "height": 480,
        "content": "### \ud83d\udcdd Fetch Release Notes\n\nThis node retrieves the official release notes for the new version directly from the n8n GitHub repository API.\n\nThis provides the raw content for the AI to summarize. If this node fails (e.g., due to a GitHub API issue), the workflow will still send an update notification but without the detailed summary."
      },
      "typeVersion": 1
    },
    {
      "id": "548f86b7-b358-4bbf-b7b9-c172638be963",
      "name": "Release Overview",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        480,
        580
      ],
      "parameters": {
        "text": "=<role>\nYou are an expert technical writer and software release analyst specializing in the n8n automation platform. You have a deep understanding of the n8n user base, which ranges from non-technical business users to experienced developers. Your expertise lies in quickly parsing technical changelogs and identifying the changes that have the most significant impact on users.\n</rol>\n\n<instructions>\n<goal>\nYour goal is to analyze raw n8n release notes and extract a concise, human-readable summary of the most important changes. The summary should be easily digestible for n8n users and developers, highlighting only the key new features, critical fixes, and major enhancements.\n</goal>\n\n<context>\nThe n8n release notes are provided in a markdown-like format, typically generated from GitHub. They are structured with headings like `### Features`, `### Bug Fixes`, and `### Enhancements`.\n\nYour task is to prioritize the information based on its impact:\n1.  **Highest Priority:** New Features (especially new nodes or major core functionalities) and Breaking Changes.\n2.  **High Priority:** Significant Enhancements to existing popular nodes or core platform capabilities.\n3.  **Medium Priority:** Critical Bug Fixes, especially those related to security (XSS, authorization), data integrity, or core execution failures.\n4.  **Low Priority (to be ignored):** Minor bug fixes, documentation updates, internal refactoring, dependency updates, or changes to very niche nodes.\n\nYou must filter out the noise and focus only on what a user *needs* to know about the new version.\n</context>\n\n<examples>\n<example_1>\n<inputs>\n<release_notes>\n### [1.99.1](https://github.com/n8n-io/n8n/compare/n8n@1.99.0...n8n@1.99.1) (2025-06-19)\n\n\n### Bug Fixes\n\n* **core:** Fix pdf extract not working ([#16463](https://github.com/n8n-io/n8n/issues/16463)) ([0d69ea4](https://github.com/n8n-io/n8n/commit/0d69ea4f5bdd1216bd06ad5ae4e60eec6cc948b3))\n* **core:** Prevent unauthorised workflow termination ([#16405](https://github.com/n8n-io/n8n/issues/16405)) ([e5edc60](https://github.com/n8n-io/n8n/commit/e5edc60e344924230baafb11fa1f0af788e9ca9a))\n* **n8n Form Node:** Prevent XSS with video and source tags ([#16329](https://github.com/n8n-io/n8n/issues/16329)) ([7940384](https://github.com/n8n-io/n8n/commit/7940384a85041a1890b1203d69c092c887312500))\n</release_notes>\n</inputs>\n<output>\nThis release focuses on important security and stability fixes:\n- A critical security vulnerability (XSS) in the n8n Form Node has been patched.\n- An issue that could allow unauthorized workflow termination has been resolved.\n- The PDF extraction functionality in the core has been fixed.\n</output>\n</example_1>\n\n<example_2>\n<inputs>\n<release_notes>\n## [1.98.0](https://github.com/n8n-io/n8n/compare/n8n@1.97.2...n8n@1.98.0) (2025-06-12)\n\n\n### Features\n\n* **Airtable Trigger Node:** Add new trigger node ([#16201](https://github.com/n8n-io/n8n/issues/16201)) ([a1b2c3d](https://github.com/n8n-io/n8n/commit/a1b2c3d...))\n\n### Enhancements\n\n* **Google Sheets Node:** Add 'overwrite' option for writing data ([#16115](https://github.com/n8n-io/n8n/issues/16115)) ([e4f5g6h](https://github.com/n8n-io/n8n/commit/e4f5g6h...))\n\n### Bug Fixes\n\n* **UI:** Corrected typo in settings panel ([#16300](https://github.com/n8n-io/n8n/issues/16300)) ([i7j8k9l](https://github.com/n8n-io/n8n/commit/i7j8k9l...))\n</release_notes>\n</inputs>\n<output>\nKey highlights for this version:\n- **New Node:** A new Airtable Trigger node has been introduced, allowing workflows to start based on Airtable record changes.\n- **Google Sheets Node:** The node has been enhanced with a new 'overwrite' option when writing data to a sheet.\n</output>\n</example_2>\n\n<example_3>\n<inputs>\n<release_notes>\n## [1.97.3](https://github.com/n8n-io/n8n/compare/n8n@1.97.2...n8n@1.97.3) (2025-06-10)\n\n\n### Chores\n\n* **deps:** update dependency `some-package` to v2.5.1\n* **docs:** clarify wording in credentials page\n</release_notes>\n</inputs>\n<output>\nThis release contains minor maintenance and documentation updates.\n</output>\n</example_3>\n</examples>\n\n<output_format>\n- A short, unordered bulleted list (using `-`) or a brief paragraph.\n- Use clear, benefit-oriented language. (e.g., \"You can now...\" or \"Resolved an issue that caused...\").\n- Rephrase the technical commit messages into plain English.\n- Do not include the version number, date, GitHub issue numbers, or commit hashes in your output.\n- If there are no significant changes (e.g., only chores, docs, or minor dependency updates), you MUST output the exact phrase: `This release contains minor maintenance and documentation updates.`\n</output_format>\n</instructions>\n\n<inputs>\n<release_notes>\n{{ $json.body }}\n</release_notes>\n</inputs",
        "batching": {},
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "98b2c58c-7b57-43c2-87fb-c568bcfb3dfa",
      "name": "Approve Update",
      "type": "n8n-nodes-base.telegram",
      "position": [
        880,
        700
      ],
      "parameters": {
        "message": "=New n8n Version {{ $('Get n8n Github Release').item.json.name || \"\"}}\n\n{{ $('Release Overview').last().json.text }}",
        "options": {
          "limitWaitTime": {
            "values": {
              "resumeUnit": "days"
            }
          },
          "appendAttribution": true
        },
        "operation": "sendAndWait",
        "approvalOptions": {
          "values": {
            "approvalType": "double",
            "approveLabel": "\u2705 Update",
            "disapproveLabel": "\u274c Ignore"
          }
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "66e039dc-4338-462a-82df-07d1b1f41c1c",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1660,
        540
      ],
      "parameters": {
        "color": 5,
        "width": 300,
        "height": 440,
        "content": "### \u2699\ufe0f CONFIGURE YOUR SERVER PATHS HERE\n\n*   **`docker_path`**: Set this to the **absolute path** on your server where your `docker-compose.yml` file is located.\n    *   Example: `/home/user/n8n-docker`\n*   **`worker_command`**: If you use n8n workers, set the scale command here (e.g., `--scale n8n-worker=4`). Leave blank if you don't use workers."
      },
      "typeVersion": 1
    },
    {
      "id": "41c811b8-0b76-4937-a4e7-5c7e3f47c849",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1340,
        660
      ],
      "parameters": {
        "color": 3,
        "width": 260,
        "height": 320,
        "content": "### \ud83d\udd12 SSH Connection\n\nSelect your SSH credential for the server hosting your n8n instance in **both** of these nodes."
      },
      "typeVersion": 1
    },
    {
      "id": "d9c70db1-39dc-4b62-b55e-8228a0cec23b",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        640
      ],
      "parameters": {
        "color": 7,
        "width": 660,
        "height": 340,
        "content": "### \ud83d\udca1 How Update Detection Works\n\nThis workflow compares the unique `digest` of your running Docker image with the latest `digest` on Docker Hub for your tag (e.g., `latest`).\n\nIf they are different, an update is available."
      },
      "typeVersion": 1
    },
    {
      "id": "5f33f467-1daa-4eef-9db1-f5dbd2d9b121",
      "name": "Get n8n Github Release",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        -80,
        700
      ],
      "parameters": {
        "url": "=https://api.github.com/repos/n8n-io/n8n/releases/{{ $('Target Version').last().json.n8n_target_version }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "7b066460-0897-47ea-9c45-2d7a0d3e910d",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2140,
        580
      ],
      "parameters": {
        "color": 7,
        "width": 260,
        "height": 400,
        "content": "### \ud83d\udd0e Get Instance Info\n\nThis node fetches local instance settings, like the current version and whether it's running on Docker.\n\nThis step ensures the workflow only proceeds if it's on a compatible (Docker) setup. No configuration is needed here."
      },
      "typeVersion": 1
    },
    {
      "id": "03e102d7-6c8c-4c97-86ae-4240d2b1bd3b",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1320,
        240
      ],
      "parameters": {
        "color": 4,
        "width": 520,
        "height": 600,
        "content": "### \ud83d\ude80 Final Step: Execute Update\n\nThis is the final action node. It connects to your server via SSH and runs the command to update your n8n Docker instance.\n\n**How it works:**\nThe command performs three key actions:\n1.  `docker compose pull`: Downloads the newest n8n image.\n2.  `docker compose down`: Safely stops your current n8n containers.\n3.  `docker compose up -d`: Starts the new containers in the background.\n\n**Important Details:**\n*   **Background Process:** It uses `nohup ... &` to run the update in the background. This is critical because it allows this workflow to finish immediately without waiting for the Docker update to complete, preventing a crash when the docker instance is stopped.\n*   **Log File:** Any output or errors from the update process are saved to a file named `update.log` in your n8n Docker directory on the server. **Check this file if you encounter issues after an update.**"
      },
      "typeVersion": 1
    },
    {
      "id": "407c5a62-26dc-4f3c-ab4d-8ac42b89fd97",
      "name": "New Version ?",
      "type": "n8n-nodes-base.removeDuplicates",
      "position": [
        220,
        580
      ],
      "parameters": {
        "logic": "removeItemsUpToStoredDate",
        "options": {},
        "operation": "removeItemsSeenInPreviousExecutions",
        "dateDedupeValue": "={{ $json.published_at }}"
      },
      "typeVersion": 2
    }
  ],
  "connections": {
    "Is Docker": {
      "main": [
        [
          {
            "node": "Docker Path",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Approved ?": {
      "main": [
        [
          {
            "node": "Update Docker",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Every Hour": {
      "main": [
        [
          {
            "node": "Get Instance's Settings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Docker Path": {
      "main": [
        [
          {
            "node": "Get n8n Current Version",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "New Version ?": {
      "main": [
        [
          {
            "node": "Release Overview",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Approve Update": {
      "main": [
        [
          {
            "node": "Approved ?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Needs Update ?": {
      "main": [
        [
          {
            "node": "Get n8n Github Release",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Target Version": {
      "main": [
        [
          {
            "node": "Get Version's Last Update",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Release Overview": {
      "main": [
        [
          {
            "node": "Approve Update",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Current Version": {
      "main": [
        [
          {
            "node": "Needs Update ?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get n8n Github Release": {
      "main": [
        [
          {
            "node": "New Version ?",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Approve Update",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Instance's Settings": {
      "main": [
        [
          {
            "node": "Is Docker",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get n8n Current Version": {
      "main": [
        [
          {
            "node": "Target Version",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Release Overview",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get Version's Last Update": {
      "main": [
        [
          {
            "node": "Get Current Version",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

This workflow automates the process of checking for and applying updates to a self-hosted n8n instance running on Docker. It runs on a schedule, checks for new versions, summarizes the release notes with AI, and asks for your approval via Telegram before updating. Scheduled…

Source: https://n8n.io/workflows/5198/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

Effortlessly generate, review, and publish SEO-optimized blog posts to WordPress using AI and automation.

WordPress, Google Gemini Chat, Output Parser Structured +6
AI & RAG

Automates stock market analysis using multiple AI models to predict trends, analyze sentiment, and generate consensus-based investment insights. For traders and analysts seeking data-driven forecasts

HTTP Request, Telegram, OpenAI Chat +3
AI & RAG

Automate Blog Creation and Publishing with Ultra-Low Cost AI

Chain Llm, WordPress, HTTP Request +6
AI & RAG

This workflow generates a daily AI-powered GitHub Trending digest and sends it to Telegram using GitHub Trending, GitHub README data, and Google Gemini.

Output Parser Structured, Google Gemini Chat, Telegram +2
AI & RAG

This workflow generates a daily AI-powered crypto market insight and sends it to Telegram using Binance public market data, the Crypto Fear & Greed Index, and Google Gemini.

Google Gemini Chat, Output Parser Structured, Telegram +2