You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Mailchimp Campaign Sending类型Webhook获取触发的目标邮箱?

解决Webhook触发时无法获取对应目标邮箱的问题

首先得明确:你当前使用的**"campaign sending"类型Webhook是针对整个活动的发送事件触发的**,它返回的是活动级别的数据(比如活动ID、状态),本身并不包含单个收件人的邮箱信息。这也是为什么你调用批量报告接口后,拿到的是所有收件人的数据,没法直接对应单次Webhook触发的特定用户。

下面给你几个可行的解决思路:

1. 切换到收件人级别的Webhook类型

绝大多数邮件营销平台都会提供更细分的Webhook类型,比如"campaign_recipient_sent"、"email_delivered"这类针对单个收件人的触发事件。这类Webhook会在每一封邮件成功发送给某个用户时触发,返回的数据里会直接包含目标邮箱(比如data[recipient][email]或类似字段),完全不需要额外调用接口去查询。

建议先检查平台的Webhook设置页面,看看是否有这类细分选项——这是最直接高效的解决方案。

2. 通过时间戳缩小查询范围

如果暂时无法切换Webhook类型,可以利用Webhook返回的fired_at时间戳来过滤批量报告接口的结果:

  • 调用/3.0/reports/{campaign_id}/email-activity时,添加时间范围参数(比如start_time和end_time),把查询范围限定在fired_at前后1~2分钟内(要注意时区一致性,避免和平台服务器时间偏差)。
  • 示例请求(假设平台支持时间参数):
    /3.0/reports/{campaign_id}/email-activity?start_time=2009-03-26+21:30:00&end_time=2009-03-26+21:32:00
    
    这样返回的结果会大幅减少,你可以从这些结果里找到对应时间点发送的收件人邮箱。

3. 利用活动批次信息过滤

如果你的活动是分批次发送的,你可以:

  1. 先调用/3.0/campaigns/{campaign_id}接口,查看活动的批次ID(比如data[batch_id]或类似字段);
  2. 再用这个批次ID作为过滤参数,调用email-activity或sent-to接口,就能精准获取该批次的所有收件人,进而匹配Webhook触发的对应批次用户。

最后提醒:不同平台的API参数规则可能有差异,务必确认平台官方文档里的报告接口是否支持时间、批次这类过滤条件,避免做无用功。

内容的提问来源于stack exchange,提问作者Mickle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:50:10