AutomationFlowsSlack & Telegram › Daily Quote Bot: Gemini AI to Telegram

Daily Quote Bot: Gemini AI to Telegram

Original n8n title: Dailyquote

DailyQuote. Uses scheduleTrigger, httpRequest, telegram, chainLlm. Scheduled trigger; 17 nodes.

Cron / scheduled trigger★★★★☆ complexityAI-powered17 nodesHTTP RequestTelegramChain LlmGoogle Gemini ChatTelegram TriggerGoogle Sheets
Slack & Telegram Trigger: Cron / scheduled Nodes: 17 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Chainllm → Google Sheets 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": "j0LrUrmFgSDAaexJ",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "DailyQuote",
  "tags": [],
  "nodes": [
    {
      "id": "42f0e354-1c90-4b25-a241-6bb5d59cf370",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -780,
        40
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "59bdac31-7c2a-4a4c-80cd-f3b32115afba",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -420,
        40
      ],
      "parameters": {
        "url": "https://zenquotes.io/api/random",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {}
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "22ecfeb7-64b8-4c5d-96a5-627ff13980b1",
      "name": "Send a text message",
      "type": "n8n-nodes-base.telegram",
      "onError": "continueRegularOutput",
      "position": [
        480,
        60
      ],
      "parameters": {
        "text": "=*{{ $('HTTP Request').item.json.a.replaceAll(\".\",\"\\\\.\") }}* :\n\n{{  $('Basic LLM Chain').item.json.text.replaceAll(\".\",\"\\\\.\") }}",
        "chatId": "={{ $json.registered_users }}",
        "additionalFields": {
          "parse_mode": "MarkdownV2"
        }
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "6c67841d-45b5-4bbd-894d-46b440991b7c",
      "name": "Basic LLM Chain",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -180,
        40
      ],
      "parameters": {
        "text": "=First translate the following quote to {{ $('Set Language').item.json.Translate_lang }} then stickerize it using related stickers.\n\nquote:\n{{ $json.q }}\n\nJust answer in this response format without any label:\nStickerized original quote.\n\nStickerized translated quote.",
        "promptType": "define"
      },
      "typeVersion": 1.6
    },
    {
      "id": "65812674-3794-4698-9783-7da34532faa2",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -40,
        200
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-flash"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ec190b20-4733-49d7-8338-143f52f56d5c",
      "name": "Telegram Trigger",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -100,
        -220
      ],
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "750151d2-dc7d-4d77-85d2-f5cfdf87f207",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        100,
        -220
      ],
      "parameters": {
        "columns": {
          "value": {
            "date": "={{ $now }}",
            "registered_users": "={{ $json.message.from.id }}"
          },
          "schema": [
            {
              "id": "registered_users",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "registered_users",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "registered_users"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1hQdu0dOFQACIes3RzTcIhYF4u8lCV4ybDjsoW3zqW_Y/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1hQdu0dOFQACIes3RzTcIhYF4u8lCV4ybDjsoW3zqW_Y",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1hQdu0dOFQACIes3RzTcIhYF4u8lCV4ybDjsoW3zqW_Y/edit?usp=drivesdk",
          "cachedResultName": "SgsBot"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "b3f19d9d-16db-44dd-ae98-8a53e3719658",
      "name": "Google Sheets1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        200,
        40
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1hQdu0dOFQACIes3RzTcIhYF4u8lCV4ybDjsoW3zqW_Y/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1hQdu0dOFQACIes3RzTcIhYF4u8lCV4ybDjsoW3zqW_Y",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1hQdu0dOFQACIes3RzTcIhYF4u8lCV4ybDjsoW3zqW_Y/edit?usp=drivesdk",
          "cachedResultName": "SgsBot"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "418a2e7d-c599-4cea-a963-7a580d47e9f5",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -840,
        -520
      ],
      "parameters": {
        "width": 540,
        "height": 480,
        "content": "## \ud83d\udcf1 DAILY QUOTE BOT WITH AI TRANSLATION\n\nThis workflow automatically sends daily inspirational quotes with AI translation to Telegram subscribers.\n\nFEATURES:\n- Fetches random quotes from ZenQuotes API\n- Translates quotes using Google Gemini AI  \n- Adds emoji \"stickers\" for visual appeal\n- Manages subscriber registration automatically (Save users Id in Google sheet)\n- Sends to all registered users daily\n\nSETUP REQUIRED:\n- Telegram Bot Token (from @BotFather)\n- Google Gemini API key\n- Google Sheets for subscriber storage\n- Configure target language in Set Fields node\n\nTwo flows: Daily sending (scheduled) + User registration (trigger-based)\n\n*Demo bot in Telegram @sgsbot*"
      },
      "typeVersion": 1
    },
    {
      "id": "d463226c-0660-4ce0-8944-7f8c95d1fb23",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -840,
        -20
      ],
      "parameters": {
        "color": 7,
        "width": 220,
        "height": 220,
        "content": "**DAILY SCHEDULE:**\nTriggers once per day to send quotes"
      },
      "typeVersion": 1
    },
    {
      "id": "10bb45d1-3d94-4bda-8b4a-bdacdc29979d",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -520,
        -20
      ],
      "parameters": {
        "color": 7,
        "width": 300,
        "height": 220,
        "content": "**QUOTE FETCHING**\nGets random quote from ZenQuotes API"
      },
      "typeVersion": 1
    },
    {
      "id": "4d0860f4-c737-4025-9986-56acfbf787a9",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -220,
        -20
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 220,
        "content": "**AI PROCESSING:**\nTranslates + adds emojis with Gemini"
      },
      "typeVersion": 1
    },
    {
      "id": "1a333d70-5d18-4951-bed5-26ed3dad214a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        100,
        -20
      ],
      "parameters": {
        "color": 7,
        "width": 280,
        "height": 220,
        "content": "**SUBSCRIBER MANAGEMENT:**\nReads registered users from Google Sheets"
      },
      "typeVersion": 1
    },
    {
      "id": "faf66c97-1fd5-4314-9f8e-654760ab84d5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        -20
      ],
      "parameters": {
        "color": 7,
        "width": 300,
        "height": 220,
        "content": "**MESSAGE DELIVERY:**\nSends formatted quote to all subscribers"
      },
      "typeVersion": 1
    },
    {
      "id": "15f58c31-6ba9-4e72-93dc-5aec988dd008",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -120,
        -280
      ],
      "parameters": {
        "color": 7,
        "width": 580,
        "height": 220,
        "content": "**USER REGISTRATION:**\nAuto-registers users who message the bot. Add user Id to Google sheet."
      },
      "typeVersion": 1
    },
    {
      "id": "53e86eb7-655b-4767-9b0f-733f7e648f04",
      "name": "Set Language",
      "type": "n8n-nodes-base.set",
      "position": [
        -620,
        40
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c3d7e921-5fd3-43e7-807f-e527dcfd4403",
              "name": "Translate_lang",
              "type": "string",
              "value": "Persian"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "abfab320-2c39-4cfe-a2fb-43e816691d5a",
      "name": "Telegram",
      "type": "n8n-nodes-base.telegram",
      "notes": "Send welcome message",
      "position": [
        260,
        -220
      ],
      "parameters": {
        "text": "=\ud83d\udc4b Welcome,\nI will send you daily quote.",
        "chatId": "={{ $('Telegram Trigger').item.json.message.from.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "96d98ab4-f035-4d0e-8c91-d5fdc43c308b",
  "connections": {
    "Telegram": {
      "main": [
        []
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Language": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets": {
      "main": [
        [
          {
            "node": "Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets1": {
      "main": [
        [
          {
            "node": "Send a text message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Google Sheets1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Set Language",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram Trigger": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "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

How this works

Receive a daily dose of inspiration straight to your Telegram chat, curated by AI to suit your preferences, saving you the effort of seeking out motivational quotes each morning. This workflow suits busy professionals or anyone needing a regular mindset boost, automating the process from sourcing content to personalised delivery. The key step involves the Basic LLM Chain using Google Gemini to refine a fetched quote into something tailored and engaging before sending it via Telegram.

Use this workflow for consistent daily motivation without manual intervention, particularly if you already use Telegram for notifications. Avoid it for irregular schedules or when you prefer quotes from specific sources not covered by the HTTP Request fetch. Common variations include adjusting the cron trigger for different times or integrating Google Sheets to log quotes for later review.

About this workflow

DailyQuote. Uses scheduleTrigger, httpRequest, telegram, chainLlm. Scheduled trigger; 17 nodes.

Source: https://github.com/ScraperNode/awesome-n8n-templates/blob/main/templates/ai-and-llm/7688-send-daily-inspirational-quotes-with-gemini-translation-to-telegram-subscribers/workflow.json — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

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

Slack & Telegram

Bot Gambar. Uses telegramTrigger, lmChatOpenRouter, googleSheets, telegram. Event-driven trigger; 74 nodes.

Telegram Trigger, OpenRouter Chat, Google Sheets +5
Slack & Telegram

Get notified when the International Space Station passes over your location - but only when you can actually see it! This workflow combines real-time ISS tracking with weather condition checks to send

HTTP Request, OpenAI Chat, Chain Llm +5
Slack & Telegram

This advanced n8n workflow is designed for SEO specialists, digital agency owners, webmasters, and marketing managers who need a comprehensive, automated solution to track and improve their website's

Google Sheets Tool, Telegram Trigger, Telegram +9
Slack & Telegram

Ai Price Tracker. Uses scheduleTrigger, httpRequest, markdown, chainLlm. Scheduled trigger; 42 nodes.

HTTP Request, Chain Llm, Output Parser Structured +3
Slack & Telegram

This template is perfect for: AI art enthusiasts who want to stay updated on trending AI-generated artwork Content curators looking to automate art discovery Japanese-speaking users who want translate

@Apify/N8N Nodes Apify, Google Sheets, OpenAI Chat +6