{"product_id":"n8n-telegram-broadcast-workflow-w-google-sheets-jitterflow","title":"n8n Telegram Broadcast Workflow w\/ Google Sheets \u0026 Jitterflow","description":"\u003ch3\u003eBroadcast to Telegram subscribers from Google Sheets—with rate limiting, retries, and daily cleanup\u003c\/h3\u003e\n\u003cp\u003eThis n8n Telegram Broadcast workflow keeps your subscriber list in \u003cstrong\u003eGoogle Sheets\u003c\/strong\u003e, sends scheduled broadcasts from a \u003cstrong\u003eBroadcasts\u003c\/strong\u003e tab, and delivers messages through \u003cstrong\u003eJitterflow\u003c\/strong\u003e for \u003cstrong\u003erate-limited delivery with deduplication\u003c\/strong\u003e and a \u003cstrong\u003edaily dead-letter queue (DLQ) cleanup\u003c\/strong\u003e.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eSubscriber capture (Telegram trigger):\u003c\/strong\u003e When someone messages your Telegram bot, the workflow extracts chat details and the command.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eUpdate Google Sheets: \u003c\/strong\u003e It writes\/updates the row in the \u003cstrong\u003eSubscribers\u003c\/strong\u003e tab—marking \u003cstrong\u003eSubscribed\u003c\/strong\u003e for \u003ccode\u003e\/start\u003c\/code\u003e and \u003cstrong\u003eUnsubscribed\u003c\/strong\u003e for \u003ccode\u003e\/stop\u003c\/code\u003e—and replies back in Telegram.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eBroadcast processing (every 15 minutes):\u003c\/strong\u003e It reads the \u003cstrong\u003eBroadcasts\u003c\/strong\u003e tab and selects the next row with \u003cstrong\u003eStatus\u003c\/strong\u003e set to \u003cstrong\u003eReady\u003c\/strong\u003e (or \u003cstrong\u003eSending\u003c\/strong\u003e).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eMessage validation:\u003c\/strong\u003e It checks the broadcast text against Telegram’s \u003cstrong\u003e1–4,096 character\u003c\/strong\u003e limit. If invalid, the row is marked \u003cstrong\u003eNeeds edit\u003c\/strong\u003e; otherwise it updates the row to \u003cstrong\u003eSending\u003c\/strong\u003e with a broadcast ID.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRate-limited delivery via Jitterflow:\u003c\/strong\u003e For each \u003cstrong\u003eSubscribed\u003c\/strong\u003e entry, it queues a \u003ccode\u003esendMessage\u003c\/code\u003e payload in \u003cstrong\u003eJitterflow\u003c\/strong\u003e using an \u003cstrong\u003eidempotency key\u003c\/strong\u003e to prevent duplicate deliveries.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eStatus updates in Google Sheets:\u003c\/strong\u003e After queueing, it marks the broadcast row as \u003cstrong\u003eSent\u003c\/strong\u003e and records how many subscribers were queued (including already-queued subscribers from earlier runs).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eDaily DLQ cleanup (8:00):\u003c\/strong\u003e It lists unresolved \u003cstrong\u003eJitterflow DLQ\u003c\/strong\u003e entries, marks subscribers as \u003cstrong\u003eBlocked\u003c\/strong\u003e or \u003cstrong\u003eChat not found\u003c\/strong\u003e (based on entries and whether they exist in Google Sheets), and resolves the DLQ items.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eSend recurring Telegram announcements managed entirely through a \u003cstrong\u003eGoogle Sheets\u003c\/strong\u003e UI.\u003c\/li\u003e\n  \u003cli\u003eMaintain accurate subscriber states (\u003ccode\u003e\/start\u003c\/code\u003e\/\u003ccode\u003e\/stop\u003c\/code\u003e) without manual spreadsheet editing.\u003c\/li\u003e\n  \u003cli\u003eSafely broadcast at scale with \u003cstrong\u003ededuplication\u003c\/strong\u003e, \u003cstrong\u003erate limiting\u003c\/strong\u003e, and automatic handling of blocked or missing chats.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003en8n nodes\/logic:\u003c\/strong\u003e if, set, limit, filter, switch, Telegram.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eIntegrations:\u003c\/strong\u003e Telegram bot (including @BotFather token credential in n8n), \u003cstrong\u003eGoogle Sheets\u003c\/strong\u003e tabs (“Subscribers”, “Broadcasts”), and \u003cstrong\u003eJitterflow\u003c\/strong\u003e for delivery control, retries, and DLQ resolution.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":46190229225651,"sku":"N8N-20639","price":4.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/MP-cik-kJ31Evpm9AaYqJ_EPqjRzc9.png?v=1791450590","url":"https:\/\/buyflowscripts.com\/products\/n8n-telegram-broadcast-workflow-w-google-sheets-jitterflow","provider":"N8N Commerce","version":"1.0","type":"link"}