工作流介绍
从自动退订邮件中取消 Mautic 联系人订阅 – 工作流分析
此 N8n 工作流模板旨在通过与流行的开源营销自动化平台 Mautic 集成,自动管理通过 Gmail 收到的电子邮件退订请求。当有人发送主题或正文中(或相关字段中)包含“unsubscribe”的电子邮件时,此工作流会识别发件人,验证其在 Mautic 中的联系人状态,并通过更新相关细分、可选地将其添加到“请勿联系”列表中,并发送确认回复来自动处理其选择退出请求。
整个过程在 n8n 的事件触发自动化中运行,消除了手动干预,并确保遵守电子邮件营销最佳实践,例如及时处理选择退出。
工作流功能
此工作流会监听通过 Gmail 收到的电子邮件,过滤出看似退订请求的邮件,提取发件人的电子邮件地址,检查其是否存在于您的 Mautic CRM 中,然后执行多项自动化操作:
- 将联系人添加到“已退订”细分
- 将其从营销细分(例如,新闻通讯)中移除
- 可选地将其添加到 Mautic 的“请勿联系”列表中
- 发送自动回复确认退订
它确保了对退订请求的及时、准确和可扩展的管理,而无需在设置后进行用户输入。
主要功能和能力
- ✅ 实时电子邮件监控:使用 Gmail 触发节点每分钟轮询新消息,包括垃圾邮件/垃圾箱文件夹。
- ✅ 智能过滤:使用基于收件人(“To”)字段内容的条件逻辑来识别合法的退订请求。
- ✅ 电子邮件解析逻辑:使用自定义 JavaScript 代码处理复杂的“From”字段格式(例如,
John Doe <[email protected]>)。 - ✅ 重复数据删除:在查询 Mautic 之前聚合唯一的电子邮件地址,提高效率并避免冗余的 API 调用。
- ✅ CRM 集成:与 Mautic 无缝交互,以更新联系人细分和通信偏好。
- ✅ 自动化回复:发送个性化的自动回复,确认成功选择退出。
- ✅ 可配置设置:通过“编辑字段”节点集中配置,可以轻松自定义电子邮件地址和回复消息。
- ✅ 可扩展且可靠:同时处理多个退订请求,同时保持数据完整性。
主要节点及其用途
| 节点名称 | 类型 | 用途 |
|---|---|---|
| Gmail Trigger | Trigger | 实时监听新收到的电子邮件;每分钟轮询一次,包括垃圾邮件/垃圾箱,以捕获所有可能的退订消息。 |
| Edit Fields | Set | 存储可配置的值,例如用户自己的电子邮件地址和退订回复消息。作为中央配置点。 |
| Is automated unsubscribe? | If Condition | 过滤“To”字段包含“unsubscribe”且发件人与配置的电子邮件不同的邮件(以避免自触发)。 |
| Extract Email from 'From' Field | Code (JavaScript) | 使用正则表达式解析原始“From”标头以提取干净的电子邮件地址,支持 [email protected] 和 "Name <[email protected]>" 格式。 |
| Extract Unique Email Addresses | Code (JavaScript) | 使用 Set 对提取的电子邮件进行去重,防止来自同一发件人的多封电子邮件导致冗余操作。 |
| Get Mautic Contact ID from Email Address | Mautic | 使用提取的电子邮件地址查询 Mautic API 以检索联系人详细信息(search=email:...)。仅返回一个结果(limit=1)。 |
| If Contact Exists in Mautic | If Condition | 检查查询的联系人是否存在于 Mautic 中(即,是否具有 id)。据此确定后续步骤。 |
| Add to unsubscribed segment | Mautic | 将已识别的联系人添加到预定义的 Mautic 细分(ID:3),表示他们已退订。 |
| Remove newsletter segment | Mautic | 将联系人从另一个细分(ID:1)中移除,该细分可能用于新闻通讯或营销活动。 |
| Add to Do Not Contact List | Mautic (disabled) | 将联系人标记为 Mautic 中的“请勿联系”;目前已禁用,但可以启用以实现更严格的合规性。 |
| Reply Unsubscribe Message | Gmail | 使用存储在“Edit Fields”中的可自定义成功消息,直接回复原始电子邮件线程。 |
| Sticky Notes | Documentation | 为配置工作流的用户提供分步设置说明和上下文。 |
用例和优势
理想用途:
- 通过 Mautic 管理大型订阅者列表的营销团队
- 需要遵守 GDPR、CAN-SPAM 或其他隐私法规的企业
- 自动化客户沟通并减少手动任务的代理机构
- 任何希望提高电子邮件参与度并降低退回/投诉率的组织
主要优势:
- ⏱️ 节省时间:无需手动处理每封退订请求。
- 🛡️ 提高合规性:确保及时处理选择退出,降低法律风险。
- 🔁 减少人为错误:自动化可防止遗漏或重复条目。
- 💬 改善用户体验:向退订用户发送即时确认。
- 📈 保持列表卫生:自动保持 Mautic 细分的清洁和最新。
分步工作流逻辑
以下是工作流的顺序执行方式:
-
触发:检测到传入电子邮件
- 每当收到新电子邮件时(每分钟检查一次),Gmail Trigger 节点就会激活。
- 它会捕获完整的电子邮件元数据,包括
From、To、Subject和id。
-
配置设置
- Edit Fields 节点定义两个关键变量:
emailAddress:您的业务电子邮件(例如,[email protected])unsubscribeMessage:确认退订的自动回复文本
- Edit Fields 节点定义两个关键变量:
-
过滤有效退订请求
- Is automated unsubscribe? 条件检查:
To字段是否包含“unsubscribe”? → 可能是选择退出请求- 发件人是否不是您配置的电子邮件? → 防止循环/自触发
- 只有通过两个条件的电子邮件才能继续。
- Is automated unsubscribe? 条件检查:
-
解析发件人的电子邮件地址
- Extract Email from 'From' Field 节点使用 JavaScript 从各种格式中提取实际电子邮件地址:
"[email protected]" → [email protected] "Alice Smith <[email protected]>" → [email protected] - 输出:
{ "extractedEmail": "[email protected]" }
- Extract Email from 'From' Field 节点使用 JavaScript 从各种格式中提取实际电子邮件地址:
-
去重电子邮件地址
- Extract Unique Email Addresses 节点收集所有解析的电子邮件并使用 JavaScript
Set进行去重。 - 这可以避免对同一个人进行不必要的重复 API 调用到 Mautic。
- Extract Unique Email Addresses 节点收集所有解析的电子邮件并使用 JavaScript
-
在 Mautic 中查找联系人
- Get Mautic Contact ID from Email Address 节点查询 Mautic:
search=email:[email protected] - 如果找到,则返回联系人信息,包括
id;否则返回空或最小数据。
- Get Mautic Contact ID from Email Address 节点查询 Mautic:
-
检查联系人是否存在
- If Contact Exists in Mautic 条件评估:
$json["id"]是否存在且不为空?
- 如果是 → 继续更新 Mautic 记录
- 如果否 → 仍跳到发送回复(即使不在系统中也要确认)
- If Contact Exists in Mautic 条件评估:
-
更新 Mautic 细分
- 三个并行的 Mautic 操作发生:
- ✅ Add to unsubscribed segment(细分 ID:3)
- ✅ Remove from newsletter segment(细分 ID:1)
- ⚠️ Add to Do Not Contact List — 当前禁用,但可用于激活
- 三个并行的 Mautic 操作发生:
-
发送确认回复
- Reply Unsubscribe Message 节点使用 Gmail API 直接回复原始电子邮件线程。
- 消息正文来自
$node["Edit Fields"].json["unsubscribeMessage"] - 维护对话历史记录并为发件人提供结束。
-
完成
- 无论联系人是否存在于 Mautic 中,工作流都会正常结束。
- 所有有效的退订尝试都会收到回复并得到系统化处理。
摘要
此 n8n 工作流提供了一个强大的、低代码的解决方案,用于管理跨 Gmail 和 Mautic 的退订请求。通过结合触发器、条件、代码逻辑和集成,它使企业能够保持合规、专业且高效的电子邮件营销运营——所有这些只需最少的持续努力。通过 Sticky Notes 的清晰文档和模块化设计,它也非常适合不同的用例和组织需求。
使用方法:下载 JSON 文件,然后在 n8n 中选择“从文件导入”。