跳到内容
All articles
Setup

营销自动化:Mailchimp、HubSpot、ActiveCampaign 与 Brevo

将 CRM 联系人与你的 Mailchimp、HubSpot、ActiveCampaign 或 Brevo 列表/受众同步,并接收回传的订阅与退订事件(自带账号模式,账号归你所有)。

营销自动化集成使用你自己的 Mailchimp、HubSpot、ActiveCampaign 或 Brevo 账号(BYO 模式:自带账号)。CRM 联系人会被添加/更新到你的列表/受众中(按邮箱同步,幂等),而订阅/退订事件会回传到 CRM,更新该联系人的营销状态。我们这边没有任何费用、加价或中间环节:数据直接发往并来自你的账号。

该集成初始状态为未激活:在你填写凭据并激活之前不会发生任何事。所有密钥(API key、令牌、client secret)都会加密存储在 CRM 中,且永远不会再次显示。每个平台在“设置 → 集成”中都有各自的卡片;webhook URL 是唯一的(/api/inbound/marketing/…),CRM 通过该 URL 中的令牌来识别是哪个平台。

前置条件

  • 拥有管理员权限的 Mailchimp、HubSpot 或 ActiveCampaign 账号,以便生成 API key/令牌并创建 webhook。
  • Mailchimp:服务器前缀(例如 us21)、Audience ID 以及一个 API key(账号 → Extras → API keys)。
  • HubSpot:一个私有应用(设置 → 集成 → Private Apps),需要具备 crm.objects.contacts.read/write 权限范围。ActiveCampaign:API URL 和 API key(设置 → Developer)。
  • Brevo(原 Sendinblue):一个 API key(SMTP & API → API Keys),如果你希望将联系人添加到某个列表,还需要该列表的数字 ID(联系人 → 列表)。
  • 在 Sellio 中,需要管理员权限才能保存凭据并在“设置 → 集成”中激活该集成。

同步内容

  • 出站(CRM → 服务商):每个带有邮箱的联系人都会作为你列表/受众的一个成员/联系人被发送出去。该 upsert 操作按邮箱幂等,因此重新发送不会产生重复(Mailchimp 使用邮箱的 MD5 哈希;HubSpot 通过 idProperty=email 进行 upsert;ActiveCampaign 使用 /contact/sync;Brevo 使用带 updateEnabled 的 POST /v3/contacts)。名字、姓氏和电话号码会一并同步。在 Brevo 上,你还可以选择每个 Sellio 字段对应到哪个属性(字段映射)。
  • 在 Brevo 中,你还可以把每个联系人发送到与其客户组对应的列表,而不是把所有人都发到同一个列表:先指明联系人的哪个字段保存客户组,然后每行写一条规则,格式为 组 = 列表。没有对应规则的组会进入默认列表,因此不会有人因为漏配置而收不到邮件。
  • 入站(服务商 → CRM):当有人订阅或退订时,webhook 会通过邮箱匹配,更新 CRM 中对应联系人记录上的字段(marketing_status 和 email_opt_in)。如果该邮箱在 CRM 中不存在,事件会被忽略(不会创建任何内容)。
  • 实时同步:一旦你在 CRM 中创建或编辑一个联系人,它会立即自动同步到所有已激活的营销连接器(Mailchimp、ActiveCampaign、HubSpot 和 Brevo),无需等待批量同步。该同步是尽力而为的,并且仅在至少有一个连接器处于激活状态时运行。
  • 卡片上的“同步联系人”按钮会批量发送 CRM 联系人(尽力而为,单次最多 200 个),便于首次加载或重新处理你的联系人。
💡 该同步在两个方向上都是幂等的:重新发送同一个联系人只会更新已有的成员,重复处理同一个订阅/退订事件也会让联系人保持相同的最终状态。

Mailchimp

  1. 打开“设置 → 集成”,找到“营销(Mailchimp)”卡片。
  2. 填写服务器前缀(例如 us21,即你 API key 中破折号后的部分,以及后台地址中的对应部分)、Audience ID(受众 → 设置 → Audience ID)以及 API key(账号 → Extras → API keys)。点击“保存凭据”。
  3. 复制“Webhook URL”。
  4. 在 Mailchimp → 受众 → 设置 → Webhooks 中,创建一个指向该 URL 的 webhook,并勾选 subscribe 和 unsubscribe 事件。Mailchimp 不会对 webhook 进行签名:安全性依赖于不可预测的 URL 令牌,请将其作为机密信息处理。
  5. 返回 CRM 并点击“激活”。首次批量发送可使用“同步联系人”。

HubSpot

  1. 在 CRM 中,找到“营销(HubSpot)”卡片。
  2. 在“设置 → 集成 → Private Apps”中创建一个私有应用,并赋予 crm.objects.contacts.read 和 .write 权限范围;将 Access token 粘贴到“Private app token”字段。你也可以选填一个 HubSpot 应用的 Client secret 以校验 webhook 签名。点击“保存凭据”。
  3. 复制“Webhook URL”。
  4. 在 HubSpot 中配置一个工作流 webhook(或应用 webhook),向该 URL 发送 POST 请求(JSON),内容包含联系人邮箱和营销状态。如果你填写了 Client secret,HubSpot 会对每次调用进行签名(X-HubSpot-Signature);否则,安全性由 URL 令牌保障。
  5. 返回 CRM 并点击“激活”。

ActiveCampaign

  1. 在 CRM 中,找到“营销(ActiveCampaign)”卡片。
  2. 填写 API URL 和 API key(均在“设置 → Developer → API Access”中)。点击“保存凭据”。
  3. 复制“Webhook URL”。
  4. 在 ActiveCampaign → 设置 → Manage Webhooks 中,创建一个指向该 URL 的 webhook,并勾选 subscribe 和 unsubscribe 事件。ActiveCampaign 不会对 webhook 进行签名:安全性依赖于不可预测的 URL 令牌,请将其作为机密信息处理。
  5. 返回 CRM 并点击“激活”。

Brevo(原 Sendinblue)

  1. 在 CRM 中,找到“营销(Brevo)”卡片。
  2. 在 Brevo 中,前往“SMTP & API → API Keys”(或通过账号的齿轮图标 → SMTP & API)生成一个 API key。复制该密钥。
  3. 回到 Sellio,将密钥粘贴到“API key”字段。如果你希望将联系人添加到某个列表,请填写该列表的数字 ID(该数字显示在“联系人 → 列表”下方的列表 URL 中);留空则仅创建/更新联系人。
  4. 在“字段映射”下,将每个 Sellio 联系人字段关联到对应的 Brevo 属性(大写)。默认值为 FIRSTNAME、LASTNAME、SMS(电话)和 COMPANY(公司)。留空则使用默认值。请先在“联系人 → 设置 → Contact attributes”中创建自定义属性,否则 Brevo 会忽略不存在的属性。点击“保存凭据”。
  5. 复制“Webhook URL”。
  6. 在 Brevo → 设置 → Webhooks 中,创建一个指向该 URL 的 Marketing webhook,并勾选 unsubscribe 事件。Brevo 不会对 webhook 进行签名:安全性依赖于不可预测的 URL 令牌,请将其作为机密信息处理。
  7. 返回 CRM 并点击“激活”。首次批量发送可使用“同步联系人”。

请将 webhook URL 和凭据视为机密信息。在 Mailchimp/ActiveCampaign 不对调用进行签名的情况下,安全性依赖于不可预测的 URL 令牌(与网站表单采用相同的模式);在 HubSpot 上,填写 Client secret 即可要求签名校验。如果你在未填写必要凭据的情况下尝试激活,该集成会保持未激活状态,在一切配置就绪之前不会同步任何内容。

如何测试

  1. 出站:点击卡片上的“同步联系人”,然后在你服务商的列表/受众中检查带有邮箱的联系人是否已出现(且没有重复)。
  2. 入站:对一个已经是 CRM 联系人的测试邮箱执行订阅/退订操作,确认该联系人的 marketing_status 和 email_opt_in 字段已被更新。
  3. 重新发送同一个联系人和同一个事件,确认最终状态一致(幂等性)。

故障排查

  • Mailchimp 401/服务器错误:服务器前缀(例如 us21)必须与你账号的一致;同时检查 Audience ID 和 API key。
  • HubSpot 401:Private app token 有误或缺少 crm.objects.contacts.read/write 权限范围。请重新创建具有该权限范围的私有应用,并重新粘贴令牌。
  • ActiveCampaign 401:检查 API URL 和 API key(设置 → Developer → API Access),两者须来自同一账号。
  • Brevo 401/403:API key 有误或已被撤销。请在“SMTP & API → API Keys”中生成新的密钥并重新粘贴。如果某个属性未出现在 Brevo 联系人上,请先在“联系人 → 设置 → Contact attributes”中创建该属性(Brevo 会忽略不存在的属性)。如果联系人未加入列表,请检查数字列表 ID。
  • 入站未更新联系人:如果事件邮箱在 CRM 中不存在,不会创建任何内容(设计如此)。请先注册该联系人。确认 webhook 指向的是“Webhook URL”,并且勾选了 subscribe/unsubscribe。
  • HubSpot:签名无效:如果你填写了 Client secret,X-HubSpot-Signature 请求头必须与之匹配。否则,请移除该密钥,转而依赖 URL 令牌。

Open this article inside the system

Read it and want to see it working?

The account is free and the whole manual is available inside the system, with an assistant that answers from this very content.

免费创建账户
营销自动化:Mailchimp、HubSpot、ActiveCampaign 与 Brevo · Sellio