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

如何在Kentico 13 Xperience中创建Webhook对接Zapier?

实现Kentico 13 Xperience BizForm提交数据到Zapier的Webhook方案

1. 监听BizForm提交事件并发送数据

Kentico 13没有内置的BizForm Webhook触发器,需要通过自定义代码监听表单提交事件,将数据推送到Zapier的Webhook地址:

编写全局事件处理类

在CMSApp项目的自定义类库(或App_Code目录)中创建如下类,监听表单提交后的事件:

using CMS;
using CMS.BizForms;
using CMS.Core;
using System.Net.Http;
using System.Threading.Tasks;

[assembly: RegisterModule(typeof(BizFormZapierHookModule))]
public class BizFormZapierHookModule : Module
{
    public BizFormZapierHookModule() : base(nameof(BizFormZapierHookModule)) { }

    protected override void OnInit()
    {
        base.OnInit();
        // 绑定表单提交完成事件
        BizFormItemEvents.Insert.After += SendToZapier;
    }

    private async void SendToZapier(object sender, BizFormItemEventArgs e)
    {
        var formItem = e.Item;
        // 仅处理指定表单(可选,根据需求调整)
        if (formItem.BizFormInfo.FormName != "TargetFormName") return;

        // 构造Zapier需要的数据结构
        var payload = new
        {
            FormIdentifier = formItem.BizFormInfo.FormDisplayName,
            SubmittedData = formItem.GetValues(true),
            SubmissionTime = formItem.ItemCreatedWhen
        };

        // 替换为Zapier生成的Webhook地址
        var zapierUrl = "YOUR_ZAPIER_CATCH_HOOK_URL";

        using (var httpClient = new HttpClient())
        {
            try
            {
                await httpClient.PostAsJsonAsync(zapierUrl, payload);
                // 记录成功日志(可选)
                Service.Resolve<IEventLogService>().LogInformation(
                    "BizFormZapier", 
                    "SUBMISSION_SENT", 
                    $"Data from {formItem.BizFormInfo.FormName} sent to Zapier"
                );
            }
            catch (HttpRequestException ex)
            {
                // 记录错误日志,避免影响表单提交流程
                Service.Resolve<IEventLogService>().LogError(
                    "BizFormZapier", 
                    "SEND_FAILED", 
                    $"Failed to send data: {ex.Message}"
                );
            }
        }
    }
}

2. 配置Zapier接收Hook

  1. 登录Zapier,创建新Zap,选择Webhooks by Zapier作为触发应用,选择Catch Hook触发事件。
  2. 复制Zapier生成的专属Webhook地址,替换到上述代码中的YOUR_ZAPIER_CATCH_HOOK_URL。
  3. 在Kentico中提交一次目标BizForm,Zapier会自动捕获请求数据,之后即可配置后续的分发动作(如同步到CRM、发送营销邮件等)。

3. 优化与调试建议

  • 字段映射:如果Zapier下游工具需要特定字段名,可在构造payload时手动映射字段,比如将SubmittedData["FirstName"]重命名为ContactFirstName。
  • 异步处理:若表单提交量较大,可将发送请求的逻辑放到后台任务中执行,避免阻塞用户提交流程。
  • 数据验证:在发送前可添加表单字段验证逻辑,确保推送的数据符合Zapier下游工具的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:43:12