Newsletter Automation

v1.0.1

Complete newsletter management system with subscriber signup (double opt-in), automated welcome drip sequence, broadcast sender, and subscriber analytics. 4...

0· 366·2 current·2 all-time
byMuhammad H.M. Alvi@mhmalvi
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (newsletter automation) match the delivered artifacts: four n8n workflows for signup, drip, broadcast, and analytics. Declared n8n credentials (Google Sheets OAuth2 and SMTP) and the three env vars map to the documented functionality.
Instruction Scope
SKILL.md and the included workflows limit actions to webhook handling, Sheets I/O, and SMTP sending — all within the newsletter use case. Minor implementation notes: confirmation tokens are generated with Math.random (not cryptographically strong), and the broadcast webhook authenticates via a shared secret passed in the request body (ENV fallback to a default string is present). These are operational security considerations but do not contradict the stated purpose.
Install Mechanism
Instruction-only skill with no install spec or downloaded artifacts; no code is written to disk by the skill itself. This is the lowest-risk install model and consistent with the workflow-import approach.
Credentials
Requires three env vars (admin email, base URL, broadcast secret) which are appropriate and documented. n8n credentials (Google Sheets OAuth2 and SMTP) are required by the workflows; while these are not env vars, they are expected and justified for the integration. No unrelated credentials or system paths are requested.
Persistence & Privilege
Skill is not always-enabled, does not request system privilege, and contains no install-time hooks. Workflows run inside n8n and rely on n8n-stored credentials; there is no attempt to modify other skills or global agent settings.
Assessment
This skill appears to be what it says: a set of n8n workflows using Google Sheets and SMTP. Before installing, ensure you: 1) self-host n8n (or run it in a trusted environment) and secure its instance with HTTPS and access controls; 2) provision and store Google OAuth and SMTP credentials in n8n (these are required but managed by n8n, not the skill); 3) set a strong NEWSLETTER_SECRET (avoid defaults) and protect the broadcast webhook endpoint (use HTTPS, IP restrictions or additional auth if possible); 4) consider replacing Math.random token generation with a cryptographically secure token generator if you need stronger guarantees; 5) verify SMTP provider sending limits and unsubscribe handling to avoid deliverability or compliance issues (CAN-SPAM/GDPR); and 6) test workflows thoroughly with a small list before sending broadcasts to real subscribers.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

📬 Clawdis
OSLinux · macOS · Windows
EnvNEWSLETTER_ADMIN_EMAIL, NEWSLETTER_BASE_URL, NEWSLETTER_SECRET
latestvk97crxgjr1kfcx600wvbadm685827vn6
366downloads
0stars
2versions
Updated 1mo ago
v1.0.1
MIT-0
Linux, macOS, Windows

Newsletter Automation

A complete newsletter management system built on n8n and Google Sheets. Handles subscriber signups with double opt-in, automated welcome drip emails, broadcast sending, and daily analytics reports.

Problem

Running a newsletter manually means juggling signup forms, confirmation emails, welcome sequences, and broadcast sends across multiple tools. Most newsletter platforms charge per subscriber, and you lose control of your data.

This system gives you a free, self-hosted newsletter pipeline using n8n and Google Sheets.

What It Does

  1. Double Opt-In Signup — Webhook receives signups, validates email, sends confirmation link, stores in Sheets
  2. Welcome Drip Sequence — Automatically sends Day 0 (welcome), Day 3 (tips), Day 7 (resources) emails
  3. Broadcast Sender — API-triggered broadcast to all confirmed subscribers with unsubscribe links
  4. Daily Analytics — Subscriber counts, growth metrics, confirmation rates, top sources

Included Workflows

#FilePurpose
0101-subscriber-signup.jsonWebhook signup with validation, double opt-in, and Sheets storage
0202-welcome-sequence.jsonScheduled drip emails at Day 0, 3, and 7
0303-broadcast-sender.jsonWebhook-triggered broadcast to all confirmed subscribers
0404-subscriber-analytics.jsonDaily metrics report email

Architecture

Signup Form (website)
    |
    v
Workflow 01: Subscriber Signup
    |
    +-> Validate email
    +-> Save to Google Sheets (status: pending)
    +-> Send confirmation email (double opt-in)
    +-> Return success response

User clicks confirmation link
    |
    v
Update Sheets (status: confirmed)

Scheduled (every 6 hours):
    |
    v
Workflow 02: Welcome Drip Sequence
    +-> Read confirmed subscribers
    +-> Check drip schedule (Day 0/3/7)
    +-> Send appropriate email
    +-> Update last_drip_day in Sheets

API Trigger:
    |
    v
Workflow 03: Broadcast Sender
    +-> Validate request + auth
    +-> Fetch confirmed subscribers
    +-> Send broadcast email to each
    +-> Include unsubscribe link

Daily Schedule:
    |
    v
Workflow 04: Subscriber Analytics
    +-> Read all subscribers
    +-> Calculate metrics (total, growth, rates)
    +-> Email report to admin

Required n8n Credentials

Credential TypeUsed ForPlaceholder in JSON
Google Sheets OAuth2Subscriber storageYOUR_GOOGLE_SHEETS_CREDENTIAL_ID
SMTP (Gmail or custom)All emails (confirmation, drip, broadcast, reports)YOUR_SMTP_CREDENTIAL_ID

Environment Variables

# Required
NEWSLETTER_ADMIN_EMAIL=admin@yourbusiness.com
NEWSLETTER_BASE_URL=https://yourdomain.com
NEWSLETTER_SECRET=your-broadcast-api-secret

Configuration Placeholders

PlaceholderDescription
YOUR_SUBSCRIBERS_SHEET_IDGoogle Sheet ID for subscriber data
YOUR_GOOGLE_SHEETS_CREDENTIAL_IDn8n Google Sheets credential ID
YOUR_SMTP_CREDENTIAL_IDn8n SMTP credential ID
YOUR_NOTIFICATION_EMAILFallback admin email (also set via NEWSLETTER_ADMIN_EMAIL env)
YOUR_DOMAINFallback domain (also set via NEWSLETTER_BASE_URL env)

Google Sheets Schema (Subscribers)

ColumnTypeDescription
emailtextPrimary key, subscriber email
nametextSubscriber name
statustextpending / confirmed / unsubscribed
sourcetextWhere they signed up (website, landing-page, etc.)
subscribed_atdatetimeSignup timestamp
confirmedbooleanWhether email is confirmed
tokentextConfirmation token
last_drip_daynumberLast drip sent (0, 3, or 7)
last_drip_atdatetimeWhen last drip was sent

Quick Start

1. Prerequisites

  • n8n v2.4+ (self-hosted)
  • Google Sheets OAuth2 credentials
  • SMTP email credentials

2. Create Subscriber Sheet

Create a Google Sheet with the columns above. Name the sheet tab "Subscribers".

3. Import Workflows

Import all 4 JSON files into n8n. Replace all YOUR_* placeholders.

4. Test Signup

curl -X POST https://your-n8n.com/webhook/newsletter/signup \
  -H "Content-Type: application/json" \
  -d '{"email": "test@example.com", "name": "Test User", "source": "api-test"}'

5. Test Broadcast

curl -X POST https://your-n8n.com/webhook/newsletter/broadcast \
  -H "Content-Type: application/json" \
  -d '{
    "_secret": "your-newsletter-secret",
    "subject": "Test Broadcast",
    "content": "<p>This is a test broadcast.</p>"
  }'

Use Cases

  1. Personal newsletters — Self-hosted alternative to Substack or ConvertKit
  2. Business newsletters — Weekly updates to customers with zero per-subscriber cost
  3. Product updates — Notify users about new features and releases
  4. Community newsletters — Manage subscriber lists for communities or organizations
  5. Content creators — Build an audience with automated drip sequences

Requirements

  • n8n v2.4+ (self-hosted recommended)
  • Google Sheets OAuth2 credentials
  • SMTP email credentials (Gmail, SES, or custom)

Comments

Loading comments...