2026-10-14 · 原文发布日
n8n用Claude审核AI广告文案并分流到HubSpot和Slack
给AI广告文案加一道审核闸:webhook收文案变体后先校验去重,Claude以严格JSON给出通过、待人工、拦截的判定,AI响应不可用时退回规则兜底;live模式下按结论在HubSpot建任务、向对应Slack频道发提醒,结果记入n8n Data Table。另有每日定时任务用Claude汇总近24小时数据,产出HTML报告、Slack摘要并追加到Google Sheets。
原文要点
该免费模板来自n8n模板库,作者Mayank Bhadrasen。流程:带Header Auth的webhook接收AI广告文案变体;校验必填字段与上游质量,不合法返回HTTP 422;查n8n Data Table防止同一brief与variant组合重复处理,命中则返回duplicate;交Anthropic Claude输出严格JSON路由判定(approve/review/block),AI响应不可用时退回确定性规则兜底;live模式按判定在HubSpot建任务并向对应Slack频道发消息;结果含AI/兜底状态、成本、延迟、投递结果记入ad_copy_review_log Data Table并回响应。另有每日定时(可手动跑)读近24小时数据,用Claude生成洞察,经Gmail发HTML报告、Slack发摘要、Google Sheets追加判定行。
这次做成什么
搭一条“广告文案变体→校验去重→Claude三分支判定→live模式建HubSpot任务并发Slack→Data Table留痕→每日报告”的审核闸流程。练习方案为本站设计:全程先以dry_run模式POST合成文案变体验证校验、去重与判定,再切live接通HubSpot和Slack。
准备什么
- n8n实例并已导入该免费模板,含可用n8n Data Table功能
- Anthropic API凭据,Claude模型可用
- Header Auth凭据用于保护webhook入口
- HubSpot私有应用token与Slack凭据(chat.postMessage权限)
- Gmail与Google Sheets凭据,用于每日报告与追加记录
具体怎么做
先跑报告流建表
按模板说明先用手动触发器运行一次报告流程,自动创建ad_copy_review_log这张n8n Data Table;随后检查表结构是否含判定、成本、延迟等列,这一步缺失会导致主流程写日志失败。
配置凭据与路由参数
依次接入Header Auth、Anthropic、HubSpot、Slack、Gmail、Google Sheets凭据;把Claude模型名、各判定对应的Slack频道名、报告收件邮箱、摘要频道改成你环境的值,并在Google Sheets追加节点选择目标表格与工作表。
设定Claude严格JSON判定提示词
把下方artifacts中的审核提示词填入Claude节点,要求只输出含decision、priority、reasons三个键的JSON;保留模板的兜底逻辑,即AI返回无法解析时走确定性规则,确保webhook调用方总能拿到结果。
dry_run验证后再切live
复制生产webhook URL,用下方合成数据以dry_run模式POST两次:第一次应返回approve/review/block之一,第二次同brief同variant应返回duplicate;再发一条缺必填字段的请求应得到HTTP 422。全部符合后切live,确认HubSpot出现任务、对应Slack频道收到格式化消息。
可直接复制的材料
Claude广告文案审核提示词
本站独立编写示例;判定规则为练习设定,实际应替换为你方广告合规口径;{{ }}表达式需与上游归一化节点字段名核对。
你是广告合规审核员。请审核下面这条AI生成的广告文案变体,结合活动背景判断是否可以投放,只输出一个JSON对象,不要输出代码块标记或任何解释性文字。JSON包含三个键:
decision:只能取"approve"、"review"、"block"之一。含绝对化用语(如“最”“第一”“百分百”)、未经证实的功效承诺、贬低竞品、诱导性虚假紧迫感的判"block";表述存疑但可修改的判"review";其余判"approve"。
priority:"high"、"medium"、"low"之一,block为high,review为medium,approve为low。
reasons:字符串数组,逐条用中文说明判定依据,最多三条。
活动背景:{{ $json.campaignContext }}
文案变体:{{ $json.adCopy }}webhook合成测试数据
本站虚构练习数据;刻意写入“全网第一”“100%彻底祛除”等绝对化用语以触发block判定;字段名需在模板实际校验节点核对。
{
"mode": "dry_run",
"briefId": "BRIEF-2026-041",
"variantId": "V2",
"campaignContext": "国产保湿面霜新品上市,面向25-35岁女性,投放微信朋友圈广告",
"adCopy": "全网第一保湿面霜!100%彻底祛除干纹,今天下单立减50元,错过再等一年!"
}输入与输出示例
本站虚构演示输出,用于说明字段与行为,非作者或本站实际运行结果。
输入
以上方合成数据POST:mode为dry_run,文案含“全网第一保湿面霜”“100%彻底祛除干纹”“错过再等一年”三处违规表述,briefId为BRIEF-2026-041、variantId为V2。对应输出
Claude返回示意:{"decision":"block","priority":"high","reasons":["“全网第一”属无法证实的绝对化用语","“100%彻底祛除干纹”为未经证实的功效承诺","“错过再等一年”构成诱导性虚假紧迫感"]}。dry_run模式下不建HubSpot任务、不发Slack,仅在ad_copy_review_log写入一条含decision=block、AI状态、成本与延迟的记录并回响应;同briefId+variantId再次POST返回duplicate。做完检查这些
- 首次POST合成变体返回含decision的JSON且同brief同variant重复POST返回duplicate
- 缺少必填字段或格式错误的请求收到HTTP 422响应而非进入审核流程
- 切live后block样例在HubSpot生成任务并向high优先级对应Slack频道发出消息
- 手动运行报告流后收到Gmail HTML报告、Slack摘要且Google Sheets追加了近24小时判定行
容易卡住的地方
- 未先手动跑报告流建ad_copy_review_log表,主流程去重与写日志都会失败
- Claude返回非严格JSON时虽有规则兜底,但日志中AI/兜底状态会标记为fallback,需据此排查提示词
- mode字段未传或传错可能直接进入live产生真实HubSpot任务和Slack消息,练习务必显式传dry_run
- Header Auth凭据未配置或被调用方漏带请求头时webhook直接拒绝,排查时先看认证再查字段校验
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Review AI ad copy with Claude and route outcomes to HubSpot and Slack
- 原作者
- Mayank Bhadrasen
- 原始发布日期
- 2026-10-14T09:07:38.855Z
- 来源
- https://n8n.io/workflows/20946