Web开发人员通常使用webhook来调用另一个系统中的行为。例如,你可以使用webhooks:
您必须是公司的管理员或代理人自定义角色允许创建webhook。试用帐户限制为最多10个webhook和每分钟60次调用的速率限制。
对人
在Zendesk支持中有两种方法来连接一个webhook到activity:亚博
- 订阅webhook到一个或多个Zendesk事件。亚博使用此连接方法可以基于组织或用户活动发送请求。有关受支持的事件类型的列表,请参见Webhook事件类型在API参考中。
- 连接网络钩子到一个触发或自动化.使用此连接方法根据票据活动发送请求。
订阅Zendesk事件的webhook不能连接到触发器或自动化。亚博类似地,连接到触发器或自动化的webhook不能订阅Zendesk事件。亚博你不能改变现有webhook的连接方法。
订阅Zendesk活动亚博
订阅了一个或多个Zendesk事件的webhook总是使用POST HTTP方法发送请亚博求。该请求包括一个包含事件数据的JSON有效负载。您不能更改请求的HTTP方法或有效负载。有关事件有效负载模式的详细信息,请参见Webhook事件类型在API参考中。
连接到触发器或自动化
JSON
XML
表单编码的内容
当你将webhook连接到触发器或自动化时,你定义了请求的内容。对于使用POST、PUT或PATCH HTTP方法和JSON或XML请求格式的webhook,其内容是请求有效负载。使用其他HTTP方法或格式的webhook不包括请求有效负载。相反,您可以将自定义URL参数添加为包含两个键值字符串的数组。
在定义请求的有效负载或URL参数时,可以使用可用内容占位符向请求中插入票据数据。
网络钩子订购和重试
当事件、触发器或自动化调用webhook时,它将webhook作业排队等待运行,但实际上并不立即运行该作业。因为webhook作业是独立运行的,所以不能保证webhook以特定的顺序执行。
如果端点返回某些HTTP响应代码,Webhook请求将自动重试最多三次。与目标不同,连续失败的请求不会停用webhook。有关重试场景的详细信息和示例,请参见监控的人在我们的开发者文档中。
创建网页链接
你可以在管理中心创建一个webhook。
创建一个webhook
- 在管理中心,点击应用程序和集成在侧栏中,然后选择Webhooks > Webhooks.
- 点击创建webhook.
- 要订阅一个或多个Zendesk事件的webhook,请选择亚博亚博Zendesk事件并从下拉菜单中选择一个或多个事件类型。
- 要将网络钩子连接到触发器或自动化,请选择触发或自动化.
- 点击下一个.
- 选择webhook的连接方法。
- 配置webhook与第三方服务或系统集成。有关更多信息,请参见Webhook端点而且验证你的webhook.
当设置一个webhook与第三方集成时,你可能需要参考他们的文档。
- (可选)单击测试webhook确保它能正常工作。
- 点击创建webhook创建webhook。
- 对于触发器和自动化网钩,必须将网钩连接到触发器或自动化。看到将webhook连接到Support触发器或自动化.
连接好触发器或自动化后,返回到创建webhook分页并单击完成设置.
在你创建了webhook之后,你可以在管理中心的Webhooks页面中查看它的详细信息、订阅和活动。看到管理的人.
Webhook端点
webhook将请求发送到您在创建它们时指定的端点URL。端点URL格式如下:https://www.yourdomain.com/path
.
虽然不是必需的,但建议使用安全HTTP (HTTPS)。通过提供安全端点URL,您可以启用身份验证并安全地传递数据。
验证你的webhook
如果你的webhook与一个安全端点集成,你有三个选项来验证webhook和它发送的数据。您可能需要参考关于端点身份验证要求的第三方文档,或者与团队中的开发人员合作,以确定您的webhook的正确身份验证方法。
- 没有要求:不配置或不需要认证。
- 基本身份验证:使用用户名和密码认证webhook。
- 不记名的令牌:使用OAuth访问令牌对webhook进行认证。
如果您的开发人员需要关于webhook身份验证的更多信息,请参见Webhook安全性和身份验证.
将网钩连接到触发器或自动装置上
要调用触发器和自动化webhook,必须首先将其连接到触发器或自动化。触发器和自动化指定了应该调用webhook的环境。
将网络钩子连接到支持触发器
测试网络钩子
在管理中心,你可以选择用不同的事件源和请求来测试webhook。除了访问现有的webhook专门用于测试,你也可以在创建或编辑期间测试webhook。
测试网络钩子
- 在管理中心,点击应用程序和集成在侧栏中,然后选择Webhooks > Webhooks.
- 在列表中找到网络链接,点击选项菜单图标(),然后按一下测试webhook.
- 在测试webhook面板中,选择要测试的事件。这是一个示例请求,您可以使用它来测试端点URL。
- 输入测试请求的详细信息——请求主体、参数或标题。
- 点击发送测试.响应可以在测试请求下面的面板中看到。
56个评论
非常令人兴奋的东西!
测试这个,我期望看到一个事件在票务事件日志,门票的触发器运行一个webhook动作,但它不是。这是有意为之吗?
嗨,雅各。谢谢你的问题。这是意料之中的。webhook运行是为了响应其他发生的事情,比如一个票据事件。触发webhook运行的事件可能被捕获在票据事件日志中,但是所有的webhook日志都被捕获在Webhook活动日志.
谢谢杰奎琳·。我得到的webhook特定的日志被捕获在Webhook活动日志,但是由于触发器在ticket事件上被触发,我希望看到该操作被记录在该ticket上-就像任何其他触发器一样。
我们如何在URL中引用上下文票据ID ?
在target中,我们能够像这样引用一张票:
https://ourdomain.亚博zendesk.com/api/v2/tickets/ {{ticket.id}} . json
这样我们就可以自动更新机票了。我不知道如何做到这一点与webhook模式。
@……
支持……
看起来好像webhook URL是静态的。
这将需要使用第三方服务器将所有这些目标重写为应用程序,或者创建Zendesk应用程序来实现这一目的。亚博
@……
我们也使用同样的模式来更新机票。
我们的用例:每个用户都有一个自定义字段:“CC Email”。当该用户创建了一个票据时,将该CC添加到票据的电子邮件CC中。(即。把你的经理加到你的票上)
现在我们的布局是:使用JSON (PUT to email_ccs)更新票据时激活触发器。
触发器通知HTTPs目标https://ourdomain.亚博zendesk.com/api/v2/tickets/ {{ticket.id}} . json更新票据。
看看我们如何用webhook实现这一点。谢谢!
我和克里斯有同样的问题。我发现我可以使用Update Many API端点,只传递一个票据id。占位符在Trigger JSON中用于设置票据ID。
@……我们使用这个目标,我们怎么用webhook来做呢?
/ api / v2 /票/ {{ticket.id}} . json
/ api / v2 /票/ {{ticket.id}} / {{ticket.latest_comment.id}} / make_private评论
是否有计划在HTTP目标被弃用之前在Endpoint URL中启用占位符?
@……,@……
看看这篇文章,以及我的评论:
https://support.亚博zendesk.com/hc/en-us/articles/1260803041889?page=2#comment_4404887963418
BR, P。
在“测试webhook”部分,第4步是暗示我们应该能够添加请求头webhook?当我创建webhook时,我没有看到创建头部的选项。这是一个选择吗?
是否有预期有效载荷结构的参考?
嗨@……
由于webhook将取代目标(此时,只有http目标),有效负载不是在webhook定义中定义的,而是在webhook执行的触发器或自动化中定义的。
在那里,您可以定义有效负载(作为json)。
我能够让我以前的触发器工作通过使用更新许多端点,如@……提及。
对我来说,我的最终结果是这样的:
创建了新的Webhook名为更新许多门票与端点“https://[域].zendesk.com/api/v2/tickets/update_many”,PU亚博T(不是POST),和JSON。
触发动作->通知活动Webhook ->更新许多票
JSON身体:
在这些改变之后,一切似乎都在运转。
我可以为webhook创建自定义请求头吗?
你好,马特,
目前这是不可能的,但这里有一个积极的讨论,我们的产品管理团队正在监督。我建议遵循并将您的用例添加到这个讨论中,因为这有助于指导未来的平台改进!https://support.亚博zendesk.com/hc/en-us/community/posts/115009370628-Passing-API-Header-in-HTTP-Target
Beau |客户代言人
问我们的亚博Zendesk社区
如果端点返回某些HTTP响应代码,Webhook请求将自动重试最多三次。与目标不同,连续失败的请求不会停用webhook。"
什么是“特定的HTTP响应代码”?这在什么地方有记录吗?
嗨@……,
是的,这是有记录的创建和监控webhook在我们的开发者文档中。
克里斯
我还对自定义请求头特性感兴趣
嗨,布鲁诺,
前往在HTTP目标中传递API头,为其投票,并将您的用例添加到评论线程中。你需要的信息越多越好。谢谢!
你好,
我们正在使用网络钩子在内部系统中为某些类型的支持请求创建票据。在活动日志中,我可以看到来自内部系统的响应,其中包含一个ID,我希望能够将其添加到Zendesk ticket中。亚博是否有方法读取每个响应并将其添加到票据中的表单字段?
嗨卡梅隆Rigatuso,
除非Zende亚博sk添加了一些新功能,否则填充票据字段的唯一方法是让内部系统使用Zendesk API来更新发送响应之外的字段。
KF
你好,
我想把票信息发送到我的概念数据库。所以我试图使webhook,但我不能使它,因为错误说
"{"object":"error","status":400,"code":"missing_version","message":"概念-版本头验证失败:概念-版本头应被定义,而不是' undefined '。“}”
如何添加概念版本到zendesk webhook头??亚博
在这个时候,它不可能在创建webhook时提供自定义头。我们的产品管理团队正在考虑将其他认证方法作为未来可能的功能增强。可以随意分享用例的详细信息产品反馈帖.它可以帮助我们以及其他用户深入了解您要解决的问题。
最好的
你能通过网络链接创建一个对话吗?
我尝试过以下方法,但都没有成功:
https://mydomain.亚博zendesk.com/api/v2/tickets/ {ticket_id} / side_conversations
在触发器中:
{
"信息":{
"我正试着打印一封电子邮件,这时打印机突然开始烧了。"
"从":{
“电子邮件”:“myemail@something.com",
"name": "Johnny Agent"
},
"html_body": "我试图打印一封电子邮件时,打印机突然启动\u003cstrong\u003eburning\u003c/strong\u003e",
"preview_text": "我正试图打印一封电子邮件时,打印机突然停了",
"subject": "救命,我的打印机着火了!"
”到“:(
{
“电子邮件”:“bob@example.com",
“名称”:“bob”
}
]
}
}
我发现我在端点url中使用了错误的占位符。它应该是{{ticket.id}}
你好,
我能够使用目标url和触发器在门票上添加私人评论,但当我尝试使用类似的登录webhook时,只有标签从触发器中添加,但评论没有被添加,所以任何人都可以帮助:
触发:
尝试修改你的webhook URL类似于下面的一个。并使用JSON作为注释体。
嗨,所有
webhooks是否支持基本的认证令牌,即添加/令牌到名称,并指定在管理中心,应用程序和集成,API, Zendesk API,设置中生成的令牌,而不是密码?亚博
彼得Hochstrasser,是的,似乎您可以通过设置基本身份验证并使用下面的格式来使用/token身份验证。
用户:email@site.com/令牌
密码(令牌):
这实际上解决了我的一个问题,所以谢谢你的关心。
请登录留下评论。