{"product_id":"n8n-stripe-webhook-telegram-bot-access-daily-reconciliation","title":"n8n Stripe Webhook Telegram Bot Access + Daily Reconciliation","description":"\u003ch3\u003eKeep Telegram access in sync with Stripe—instantly and every morning\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow listens to \u003cstrong\u003eStripe webhook\u003c\/strong\u003e events to grant or revoke Telegram access, then performs a \u003cstrong\u003edaily reconciliation\u003c\/strong\u003e to correct any drift by checking each subscription’s \u003cstrong\u003elive status\u003c\/strong\u003e in Stripe. If something doesn’t match what access was granted, it fixes the entitlement and posts a summary to \u003cstrong\u003eSlack\u003c\/strong\u003e.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eHandles Stripe webhooks\u003c\/strong\u003e for checkout completion, subscription updates, and subscription deletions.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eEnsures idempotency\u003c\/strong\u003e by checking a Data Table ledger to skip Stripe events already processed, and records new event IDs as they’re handled.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eMaps entitlements from Stripe metadata\u003c\/strong\u003e: extracts the Telegram user ID and subscription details from Stripe metadata, then maps the \u003cstrong\u003eStripe Price ID\u003c\/strong\u003e to a tier.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eUpdates your access ledger\u003c\/strong\u003e: upserts each user’s entitlement (tier, active flag, and Stripe IDs) into a Data Table keyed by Telegram user ID.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRuns daily reconciliation\u003c\/strong\u003e: scheduled execution reads all entitlement rows, fetches each subscription’s live status from the Stripe API, and detects mismatches using a configurable grace period for past-due statuses.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCorrects drift automatically\u003c\/strong\u003e: updates entitlement rows to match Stripe and posts a corrections summary to a \u003cstrong\u003eSlack\u003c\/strong\u003e channel.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eProtects Telegram content\u003c\/strong\u003e: when Telegram messages arrive, it checks the sender’s entitlement in the Data Table—either sends the protected message or replies with a \u003cstrong\u003eStripe Payment Link prompt\u003c\/strong\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003ePreventing “access drift” when subscriptions change but webhooks are delayed or missed.\u003c\/li\u003e\n  \u003cli\u003eAutomating subscription-based access to Telegram content for SaaS and digital products.\u003c\/li\u003e\n  \u003cli\u003eProviding operational visibility by reporting reconciliation corrections in Slack.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eIntegrations\/Nodes used\u003c\/strong\u003e: Stripe Trigger, if, set, code, Slack, filter, Telegram, plus HTTP calls for subscription lookup.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCredentials required\u003c\/strong\u003e: add \u003cstrong\u003eStripe credentials\u003c\/strong\u003e for the Stripe Trigger and an \u003cstrong\u003eHTTP Bearer Auth credential\u003c\/strong\u003e using your Stripe secret key for the subscription status lookup request.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":45978923270323,"sku":"N8N-19347","price":43.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/dmBkwIsfIuPx-LhXHE9_6_CBEVwFdm.png?v=1788858956","url":"https:\/\/buyflowscripts.com\/products\/n8n-stripe-webhook-telegram-bot-access-daily-reconciliation","provider":"N8N Commerce","version":"1.0","type":"link"}