队列与Webhooks同步
MixPanel支持通过我们的Integrations UI提供的自定义Webhook URL同步。建立同步后,我们将同步组的完整内容与URL并随后同步差异(即:自上次同步以来输入或退出的用户)。
先决条件
- 付费Mixpanel计划
- Mixpanel项目
- Webhook服务器。您可以创建一个虚拟网络钩,用于测试目的webhook.site。
- Webhook服务器应将事件发送回Mixpanel,以跟踪诸如已发送的消息等操作。(这是可选的,但是需要此操作的客户必须自己实施)
客户可以遵循此处提到的命名大会文档为了避免某些事件被考虑用于MTU级别。
笔记
这是一个至少一次的同步系统,这意味着可以多次同步相同的用户,以使队列在失败期间保持一致性。
通过我们的UI设置Webhook
要创建一个新的自定义Webhook目标,请导航到我们的Integrations UI并添加新的Webhook连接。您需要提供的只是Webhook服务器的连接和URL的名称。
可选:调用提供的Webhook URL时的基本身份验证
从这一点开始,您可以将任何队列同步到我们的同类页面。
Webhook格式
我们的Webhook格式具有以下结构邮政
要求:
- 行动:操作定义了我们发送的消息类型。这将是:
成员
:所有队列的所有成员在同步时首次发送或在有任何中间错误时刷新队列。收到此消息时,请用我们提供的副本替换在队列中拥有的用户。add_members
:自上次同步以来已进入队列的用户组成的差异。remove_members
:一个差异,由自上次同步以来已退出队列的用户组成。
- 参数
- mixpanel_project_id:Mixpanel项目的ID产生了该队列。
- mixpanel_cohort_id:唯一的同类标识符。
- mixpanel_cohort_name:同类名称,通过Mixpanel UI编辑。
- mixpanel_cohort_description:队列描述,通过Mixpanel UI进行编辑。
- mixpanel_session_id:此导出的标识符。Mixpanel在多条消息上发送了大型队列;mixpanel_session_id唯一地标识一组与同一导出相对应的请求。
- page_info:一个包含“ total_pages”的对象,即给定会话ID的总消息数和“ page_count”,该页面的索引是此消息的索引(例如,消息6 of 10,在下面的示例中)。您可以使用此值来知道是否/何时收集了出口的完整消息。
- 成员:从队列中添加或删除的用户列表。我们包括
电子邮件
,,,,mixpanel_distinct_id
,,,,名
, 和姓
帮助识别用户。
您可以下载Swagger Spec这里。
{“操作”:“成员”,“参数”:{“ mixpanel_project_id”:“ {mixpanel_project_id}”,“ mixpanel_cohort_name”:“ {mixpanel_cohort_name}“,” mixpanel_session_id”:“ mixpanel_session_id”,“ page_info”:{“ total_pages”:10,“ page_count”:6},“成员”:[emager'':{“ email”:“ string”,“ mixpanel_distinct_id”,““ first_name”:“ string”,“ last_name”:“ string”,“ phone_number”:“ xxx-xxx-xxxxx”},{“ email”:“ string”,“ mixpanel_distinct_id”:“字符串”,“ last_name”:“ string”,“ phone_number”:“ xxx-xxx-xxxx”}}}}}}}}}}}}}
预期响应格式
我们期望以下形状有JSON响应。
- 行动:必须匹配我们发送的动作。
- 地位:必须是
成功
或者失败
- 错误:仅预期失败。
- 信息:有关错误的详细信息
- 代码:HTTP状态代码
{“ action”:“ add_members”,“ status”:“成功”,//或失败“错误”:{“消息”:“一些错误消息;这将显示在我们的UI中,“代码”:400 / // http状态代码}}
简单的同步方案
将A,B,C,D,E,F视为用户。同步间隔为30分钟。T是在我们的UI中创建同步的时候。
add_members(...)
指示呼叫Webhook添加成员的电话。remove_members(...)
表示呼叫删除成员的电话。
- t:
add_members(a,b,c,d)
|remove_members()
- t+0.1h:b,D离开队列
- t+0.2h:e,F加入队列
- t+0.5h:
add_members(e,f)
|remove_members(b,d)
- <...没有队列更改...>
- T+1H:
add_members()
|remove_members()
致电客户webhook
常问问题
同步的频率是多少?
我们每30分钟同步一次。
每批有多少用户?
批处理大小设置为每次呼叫1000个用户add_members
或者remove_members
。
扩散如何工作?
每当我们成功地与您的网络曲目执行成功同步时,我们都会存储同时的快照。该快照有效期为3天。随后的同步使用该队列的最后一个成功快照来计算添加和删除的用户数(差异)。我们通过add_members
和remove_members
呼叫。
何时执行所有队列中所有成员的完整同步?
仅在以下方式时执行完整同步。
- 我们第一次同步该队列。
- 我们存储了队列状态的快照,以进行最后一个成功的同步3天。如果您的Webhook服务器停止(返回429或5xx错误)超过3天,则快照到期,我们进行完整的同步。
同步失败时如何计算差异?
当同步失败时,我们不会更新队列快照。执行的下一个同步将根据最后一个成功的快照(直到3天过去,这一点,我们将尝试同步完整的队列)重新计算差异。这确保了队列的状态将融合到Mixpanel的所含状态。
同步什么时候停止?
我们暂停您的服务器何时返回非传输错误(400、401、403、404)的同步。请使用适当的HTTP状态代码表示非传输错误;这有助于避免增加负载。
我们在UI中记录了失败的同步,并显示在您的Webhook服务器的响应中返回的错误消息(请参阅错误信息
上面的样本响应中的字段)。
当同步暂停时,我们会收到通知吗?
是的,由于错误,当同步暂停时,将发送电子邮件给所有已设置队列同步的用户。
请求中的page_count从0或1开始?
page_count从1开始。
您是否在Webhook呼叫失败上重试?
是的,我们在60秒内重试5次,响应5xx和429个状态代码,并进行了指数退缩。此后,我们将等到下一个预定的同步重试到重试。
当Webhook呼叫失败或内部故障时,队列中的用户是否会重新同步?
即使我们只是同步每个队列的一个用户,也可能会出现在同步中间的失败。在这样的情况下,我们没有一种机制来跟踪在同步过程之间发生故障时已经同步的用户。因此,我们再次从顶部开始同步。这可能会导致诸如用户再次同步之类的问题。
当用户在失败方案后再次同步时,自定义的网络漫画会出问题吗?
例如,如果在到达时设置了这些用户以进行某些操作,则此故障和恢复可能会触发同一用户的重复操作。
如何避免对同一用户重复操作?
通过跟踪已经针对该操作的用户,可以在自定义的Webhook服务器端上修复这一点。这样可以避免在失败和恢复方案中同步相同用户的重复操作。
Mixpanel中如何跟踪动作?
这些操作不会在Mixpanel中自动跟踪,因为它们在客户端Webhook服务器上发生。客户必须明确跟踪事件回Mixpanel,以便在Mixpanel平台上使用它们。
更新 4个月前