📈 最近7天趋势(订阅 / 打开率 / 点击率)
📋 欢迎序列概览
🔽 欢迎序列转化漏斗
📋 最近邮件事件
欢迎序列邮件
感谢邮件
手动触发发送
请从左侧选择一封邮件进行编辑
选择后将显示富文本编辑器
编辑邮件
步骤 1📧 新建群发活动
加载中...
加载中...
📋 发送历史
👥 订阅者管理
📊 数据分析
📈 趋势分析(打开率 / 点击率 / 退订率)
🔥 活跃时段热力图(7×24)
🧪 A/B 测试
📈 24 小时打开率趋势对比
📋 测试历史
| 测试名称 | 变量 | 样本量 | 胜出版本 | 提升 | 状态 | 操作 |
|---|---|---|---|---|---|---|
| 欢迎邮件主题行 | 主题行 | 500 | 版本 A | +8.7% | 已完成 | |
| CTA 按钮颜色测试 | CTA 按钮 | 350 | 版本 B | +5.2% | 已完成 | |
| 发件人名称测试 | 发件人名称 | 420 | 版本 A | +3.1% | 已完成 |
🟢 系统状态检查
订阅者总数
活跃序列
邮件事件
群发活动
📧 邮件订阅全流程
Shopify 落地页
访客填写邮箱 + 点击订阅
确认邮件
自动发送含验证链接的邮件
确认成功页面
显示品牌化确认页 + 启动序列
流程说明:访客在 Shopify 落地页输入邮箱并点击"Subscribe"按钮后,系统会向该邮箱发送一封确认邮件(包含唯一验证 Token)。 用户打开邮箱点击确认链接后,浏览器会跳转到 Supabase 的 confirm 函数,该函数验证 Token 并将订阅者状态改为"已确认", 同时重定向到 Shopify 托管的确认页面(plantsrobot.com/pages/confirm),显示品牌化确认页面(绿色背景 + 白色卡片 + Plantsrobot 品牌标识)。 确认后系统自动启动 Welcome 序列(7 封邮件,从 0h 到 360h / 15 天),每 30 分钟由 pg_cron 自动检查并发送到期邮件。
📋 Shopify 嵌入代码
复制以下 JS 钩子代码,粘贴到 Shopify 页面的 Custom Liquid 区块中。页面样式(HTML/CSS)由你自主设计,代码只提供订阅提交逻辑(感谢邮件模式)。
<!-- Plantsrobot 订阅 JS 钩子 — 粘贴到 Shopify Custom Liquid 区块 -->
<!-- email_mode: 'thank_you' = 用户订阅后直接确认,发送感谢邮件 -->
<!-- HTML/CSS 样式由你自主设计,以下只提供订阅提交逻辑 -->
<script>
(function() {
var SUPABASE_URL = 'https://evhoszenrrqbhgltvyqv.supabase.co';
// ========== 核心订阅函数 ==========
// 调用示例: pmSubscribe(email, firstName, tagsArray, onSuccess, onError)
window.pmSubscribe = function(email, firstName, tags, onSuccess, onError) {
firstName = firstName || '';
tags = tags || [];
return fetch(SUPABASE_URL + '/functions/v1/subscribe', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
email: email,
first_name: firstName,
tags: tags,
email_mode: 'thank_you'
}),
signal: AbortSignal.timeout(60000)
})
.then(function(resp) { return resp.json(); })
.then(function(data) {
if (data.success) {
if (onSuccess) onSuccess(data);
} else {
if (onError) onError(data.error || 'Subscription failed');
}
return data;
})
.catch(function(err) {
if (onError) onError('Network error. Please try again.');
});
};
// ========== 快速绑定:表单提交自动调用 pmSubscribe ==========
// 用法: 给你的 <form> 添加 data-pm-subscribe 属性即可
// <form data-pm-subscribe data-pm-success="#msg">...</form>
document.addEventListener('DOMContentLoaded', function() {
var forms = document.querySelectorAll('form[data-pm-subscribe]');
forms.forEach(function(form) {
form.addEventListener('submit', function(e) {
e.preventDefault();
var btn = form.querySelector('button[type="submit"], input[type="submit"]');
if (btn) { btn.disabled = true; btn.textContent = 'Subscribing...'; }
var email = (form.querySelector('input[type="email"]') || {}).value || '';
var name = (form.querySelector('input[name="first_name"]') || {}).value || '';
window.pmSubscribe(email, name, ['waitlist'],
function() {
form.style.display = 'none';
var sel = form.getAttribute('data-pm-success');
if (sel) {
var el = document.querySelector(sel);
if (el) el.style.display = 'block';
}
},
function(errMsg) {
if (btn) { btn.disabled = false; btn.textContent = 'Subscribe'; }
alert(errMsg);
}
);
});
});
});
})();
</script>
📝 嵌入步骤
进入 Shopify 页面编辑器
Online Store → Pages → 编辑你的落地页
添加 Custom Liquid 区块,粘贴 JS 钩子
点击 "Add block" → 选择 "Custom Liquid",将上方 JS 代码粘贴进去
自主设计表单样式并绑定
在你的 HTML 表单添加 data-pm-subscribe 属性即可自动绑定;或直接调用 pmSubscribe() 全局函数
✅ 确认页面说明
确认成功 (status: confirmed)
用户点击确认邮件中的链接后,会看到绿色品牌化页面:白色卡片居中显示,绿色圆形勾选图标,标题 "You're Confirmed!",正文显示用户姓名和邮箱,底部有"Back to Plantsrobot"按钮返回落地页。
已确认过 (already confirmed)
如果用户重复点击确认链接,会看到橙色信息图标页面,提示"Your email is already confirmed",不会报错也不会重复创建序列。
链接过期 (expired)
如果 Token 无效或已过期,显示红色错误页面,提示用户重新订阅以获取新的确认邮件。
确认流程:用户点击邮件中的确认链接 → Supabase Edge Function (confirm v9) 验证 Token 并更新订阅状态 → 302 重定向到 Shopify 托管的确认页面 (plantsrobot.com/pages/confirm),显示品牌化页面。你需要在 Shopify 创建一个名为"confirm"的页面,粘贴 confirm-page.html 的内容。品牌标识:Plantsrobot 绿色主题 + Smart Plant Care 标语。
🔗 关键链接
https://evhoszenrrqbhgltvyqv.supabase.co/functions/v1/subscribe
https://evhoszenrrqbhgltvyqv.supabase.co/functions/v1/confirm?token=xxx
https://evhoszenrrqbhgltvyqv.supabase.co/functions/v1/unsubscribe?id=xxx
https://supabase.com/dashboard/project/evhoszenrrqbhgltvyqv
🧪 API 测试工具
快速测试订阅 API 是否正常工作
