dify可通过配置webhook实现自动响应github提交等外部事件:创建空白应用→生成api密钥→启用并复制webhook url→外部系统以签名post发送含event和payload的json→在设置中绑定事件与工作流→通过日志、调试节点或响应体验证成功。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让Dify自动响应GitHub代码提交、CRM新建客户或表单提交这类外部事件,而不是手动触发AI流程。这要求Dify作为接收方,暴露一个安全、可验证的HTTP端点,实时捕获并解析第三方系统发来的结构化数据。
创建入站Webhook应用
进入Dify控制台 → 应用列表 → 点击“+新建应用” → 选择“空白应用” → 命名后点击“创建”。
创建完成后,在左侧导航栏点击“设置” → “API密钥” → 点击“生成新密钥”,复制保存该密钥——【此密钥用于后续签名验证,丢失后无法还原】。
返回应用首页 → 点击右上角“发布” → 在弹出面板中切换到“Webhook”标签页 → 开启“启用Webhook”开关 → 点击“复制URL”获取唯一入站地址(形如https://api.dify.ai/v1/webhooks/abc123)。
配置外部系统发送请求
外部系统必须向你刚复制的Webhook URL发起POST请求,且请求体为UTF-8编码的JSON对象。字段必须包含event(事件类型标识)和payload(业务数据),例如:
{ "event": "github.push", "payload": { "repository": "my-app", "branch": "main", "commits": 3 } }
所有请求必须携带X-Dify-Signature请求头,值为HMAC-SHA256签名:以API密钥为secret,对原始JSON字符串做哈希计算,再用base64编码。不带签名或签名错误的请求会被Dify直接拒绝并返回401。
如果你使用curl测试,命令如下:
curl -X POST https://api.dify.ai/v1/webhooks/abc123 \<br>-H "Content-Type: application/json" \<br>-H "X-Dify-Signature: sha256=xxxxxx" \<br>-d '{"event":"test","payload":{"id":123}}'
绑定事件与工作流
第一步:在Dify应用内构建一个工作流,确保至少有一个“开始节点”和一个“大模型节点”。
第二步:回到“设置” → “Webhook”页面 → 在“事件类型”下拉框中选择你外部系统发送的event值(如github.push)→ 点击右侧“绑定工作流” → 从列表中选择刚才创建的工作流 → 点击“保存”。
第三步:Dify收到匹配event的请求后,会自动将整个JSON载荷注入工作流上下文,你可以在提示词中用{{payload.repository}}或{{event}}引用对应字段。若外部请求中event值未在下拉列表中出现,该请求不会触发任何流程。
注意:绑定操作不可逆,修改事件类型需先解绑再重选。
验证请求是否成功到达
方法一:在Dify应用日志页(“监控” → “日志”)中筛选“webhook”关键词,查看是否有状态码200的记录及解析后的payload内容。
方法二:在工作流节点中插入一个“调试输出”节点,输入{{payload}},运行后检查输出是否与你发送的JSON一致。
方法三:用Postman发送带正确签名的请求,观察响应体是否返回{"status":"success","run_id":"xxx"}——这是Dify已接受并启动工作流的明确信号。











