Send LemonSqueezy subscription alerts to Slack, Discord, Telegram and log them in Google Sheets

Go to Workflow
0 views
Built by Mark Kato Mark Kato
Created on July 10, 2026

Description

Quick overview
Get an alert in Slack, Discord or Telegram within seconds every time a LemonSqueezy subscription is created, cancelled, expires or a payment fails, plus a running log of every event in Google Sheets.

How it works
Receives a POST webhook from LemonSqueezy with the raw request body.
Computes an HMAC signature for the raw body and compares it to LemonSqueezy’s x-signature header, stopping if they don’t match.
Parses the webhook JSON and extracts the event name from the headers or payload metadata.
Normalizes subscription and payment payloads into flat fields like customer email, product, plan, status, amount, and currency.
Appends the normalized event to Google Sheets as an event log.
If the event is not subscription_updated, sends an alert message to Slack, Discord, and/or Telegram with the key event details.

Setup
In LemonSqueezy, create a webhook pointing to this workflow’s Production webhook URL and set a signing secret.
Configure the Crypto credential/secret used for the HMAC calculation so it matches your LemonSqueezy webhook signing secret exactly.
Set up at least one alert destination: connect Slack OAuth and choose a channel, or provide a Discord webhook URL, or add a Telegram bot token and chat ID.
(Optional) Connect Google Sheets OAuth, set the document ID and sheet name, and create a header row that matches the logged fields (timestamp, event, customer_email, product, plan, amount, currency, status).

Requirements
A LemonSqueezy store (any plan)
n8n (cloud or self-hosted)
At least one of: Slack, Discord or Telegram
A Google account for the log sheet (optional — alerts work without it)

Customization
Delete the alert nodes you don't use. The template ships with all three channels
Change which events alert by editing the "Should this event alert?" IF node

Additional info
Setup takes about 20 minutes including credentials and a test event. subscription_updated events are logged to the sheet but never alert, so you don't get double pings.

Nodes Used (6)

Code
n8n-nodes-base.code
Crypto
n8n-nodes-base.crypto
Discord
n8n-nodes-base.discord
Google Sheets
n8n-nodes-base.googleSheets
Slack
n8n-nodes-base.slack
Telegram
n8n-nodes-base.telegram