用途:在 HubSpot 中搭建基于互动度的双层抑制(sunset)体系,先给沉默联系人一次再互动机会,再对其营销邮件进行抑制,从而保护邮件送达率、尽量挽回可恢复的受众。
主要能力:Tier 1 在超过设定的日落窗口(默认 180 天,常见 120-270 天)未互动、邮箱已知、未全局退订、抑制状态属性未知时,打上“re-engagement sent”标记并进入再互动活动;Tier 2 在再互动窗口(默认 30 天,常见 21-45 天)后仍无打开或点击时,将标记设为“suppressed”并把营销联系人状态设为非营销。脚本 before.py 盘点现有工作流并检查命名冲突;execute.py 创建 engagement_flag 属性(若缺失)并通过 POST /automation/v4/flows 创建两个工作流(始终为禁用状态,供 UI 审核);after.py 验证存在性并报告启用状态。
使用方式:前置条件包括 HubSpot Marketing Professional 或 Enterprise、带 automation 权限的私有应用令牌(.env 中 HUBSPOT_ACCESS_TOKEN)、Python 3.10+ 与 uv、准备好的再互动邮件或序列、用于跟踪抑制状态的自定义下拉属性。先运行 uv run skills/engagement-suppression-workflow/scripts/before.py,再配置 SUNSET_DAYS、REENGAGE_DAYS、FLAG_PROPERTY 后运行 uv run skills/engagement-suppression-workflow/scripts/execute.py。工作流创建后为禁用状态,需在 Automation > Workflows 审核,补充再互动序列动作、必要时手动添加“设置营销联系人状态”动作,再决定是否纳入现有联系人并启用。也可按手动 UI 方案构建单一含 if/then 分支的工作流。
适用场景:需要控制邮件送达率、清理长期不活跃联系人、又想先尝试唤醒的 HubSpot 营销团队。
限制:需付费计划与私有应用令牌;邮件/序列 ID 因门户而异,需手动补充;部分过滤器或字段形状可能被门户拒绝,官方建议先在 UI 构建一次再 GET /automation/v4/flows/{flowId} 适配;hs_marketable_status 属性只读,须通过工作流动作修改;回退时需关闭工作流并手动批量恢复联系人状态。