Newsletter Automation

基于 n8n 和 Google Sheets 的自托管邮件订阅管理系统。

已扫描
适合谁
内容创作者、小型团队运营者
不适合谁
无技术基础的用户、希望使用现成 SaaS 平台的用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @mhmalvi/newsletter-automation

Skill 说明

命令、参数、文件名以原文为准

新闻稿自动化

一个基于 n8n 和 Google Sheets 构建的完整新闻稿管理系统。支持双因素确认订阅、自动欢迎邮件推送序列、广播发送以及每日分析报告。

问题

手动运营新闻稿需要在多个工具之间切换处理订阅表单、确认邮件、欢迎系列邮件和广播发送。大多数新闻稿平台按订阅者数量收费,且你无法掌控自己的数据。

本系统提供一个免费、自托管的新闻稿流程,使用 n8n 和 Google Sheets 实现。

功能说明

  1. 双因素确认订阅 — 通过 Webhook 接收订阅请求,验证邮箱,发送确认链接,并将数据存入 Google Sheets
  2. 欢迎推送序列 — 自动发送第 0 天(欢迎)、第 3 天(技巧)、第 7 天(资源)的邮件
  3. 广播发送功能 — 通过 API 触发,向所有已确认订阅者发送广播邮件,并包含退订链接
  4. 每日数据分析 — 统计订阅人数、增长指标、确认率、主要来源等

包含的工作流

#文件名用途
0101-subscriber-signup.json带验证的 Webhook 订阅,双因素确认,数据存储至 Sheets
0202-welcome-sequence.json定时推送第 0、3、7 天的欢迎邮件
0303-broadcast-sender.jsonWebhook 触发的广播邮件发送至所有已确认订阅者
0404-subscriber-analytics.json每日指标报告邮件

系统架构

订阅表单(网站)
    |
    v
工作流 01:订阅处理
    |
    +-> 验证邮箱
    +-> 存储至 Google Sheets(状态:待确认)
    +-> 发送确认邮件(双因素确认)
    +-> 返回成功响应

用户点击确认链接
    |
    v
更新 Sheets(状态:已确认)

每 6 小时定时执行:
    |
    v
工作流 02:欢迎推送序列
    +-> 读取已确认订阅者
    +-> 检查推送时间点(第 0/3/7 天)
    +-> 发送对应邮件
    +-> 更新 Sheets 中的 last_drip_day 字段

API 触发:
    |
    v
工作流 03:广播发送
    +-> 验证请求与身份认证
    +-> 获取已确认订阅者列表
    +-> 向每位订阅者发送广播邮件
    +-> 包含退订链接

每日定时执行:
    |
    v
工作流 04:订阅数据分析
    +-> 读取所有订阅者数据
    +-> 计算各项指标(总数、增长率、确认率等)
    +-> 将报告邮件发送给管理员

所需的 n8n 凭据

凭据类型使用场景JSON 中占位符
Google Sheets OAuth2订阅数据存储YOUR_GOOGLE_SHEETS_CREDENTIAL_ID
SMTP(Gmail 或自定义)所有邮件发送(确认、推送、广播、报告)YOUR_SMTP_CREDENTIAL_ID

环境变量

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

配置占位符

占位符描述
YOUR_SUBSCRIBERS_SHEET_ID存放订阅者数据的 Google Sheet ID
YOUR_GOOGLE_SHEETS_CREDENTIAL_IDn8n 中 Google Sheets 凭据的 ID
YOUR_SMTP_CREDENTIAL_IDn8n 中 SMTP 凭据的 ID
YOUR_NOTIFICATION_EMAIL备用管理员邮箱(也可通过 NEWSLETTER_ADMIN_EMAIL 环境变量设置)
YOUR_DOMAIN备用域名(也可通过 NEWSLETTER_BASE_URL 环境变量设置)

Google Sheets 表格结构(订阅者)

列名类型描述
email文本主键,订阅者邮箱
name文本订阅者姓名
status文本pending / confirmed / unsubscribed
source文本来源(如 website、landing-page 等)
subscribed_at日期时间订阅时间戳
confirmed布尔值邮箱是否已确认
token文本确认令牌
last_drip_day数字上次推送天数(0、3 或 7)
last_drip_at日期时间上次推送时间

快速开始

1. 前置条件

  • n8n v2.4+(建议自托管)
  • Google Sheets OAuth2 凭据
  • SMTP 邮件凭据

2. 创建订阅者表格

创建一个 Google Sheet,包含上述列名。将工作表标签命名为 "Subscribers"。

3. 导入工作流

将全部 4 个 JSON 文件导入 n8n。替换所有 YOUR_* 占位符。

4. 测试订阅

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. 测试广播

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>"
  }'

使用场景

  1. 个人新闻稿 — 替代 Substack 或 ConvertKit 的自托管方案
  2. 企业新闻稿 — 以零订阅者成本向客户发送每周更新
  3. 产品更新通知 — 向用户推送新功能和版本发布信息
  4. 社区新闻稿 — 为社群或组织管理订阅名单
  5. 内容创作者 — 通过自动化推送序列建立受众群体

要求

  • n8n v2.4+(建议自托管)
  • Google Sheets OAuth2 凭据
  • SMTP 邮件凭据(Gmail、SES 或自定义)
M
@mhmalvi

已收录 1 个 Skill

相关推荐