webhook发送一个HTTP请求到一个指定的URL,以响应Zendesk支持中的活动。亚博例如,你可以配置webhook在删除用户或创建新票据时发送请求。你可以使用管理中心或者是人的API

的连接方法

在Zendesk支持中有两种方法来连接一个webhook到activity:亚博

  • 订阅webhook到一个或多个Zendesk事件。亚博使用此连接方法可以基于组织或用户活动发送请求。有关受支持的事件类型的列表,请参见Webhook事件类型在API参考中。

  • 连接网络钩子到一个触发自动化.使用此连接方法根据票据活动发送请求。

重要的是:订阅Zendesk事件的webhook不能连接到触发器或自动化。亚博类似地,连接到触发器或自动化的webhook不能订阅Zendesk事件。亚博你不能改变现有webhook的连接方法。

创建网页链接

要使用API创建webhook,请向创建或克隆Webhook端点。在请求体中,指定以下参数:

  • 一个的名字对于webhook。名称不需要是唯一的
  • 一个状态指示webhook是“活动”还是“非活动”
  • 事件数组订阅对于webhook。要订阅Zendesk事件的webhook,请指定一个或多亚博个事件类型。有关支持的事件类型值,请参见Webhook事件类型.要将webhook连接到触发器或自动化,在数组中只指定"conditional_ticket_events"。
  • 一个端点URL。webhook向这个URL发送请求
  • 一个http_method用于网络钩子的请求。订阅Zendesk事件的webhook必须是“POST”亚博
  • 一个request_format用于网络钩子的请求。要订阅Zendesk事件的webhook,必须是“jso亚博n”

您还可以指定一个可选的身份验证参数。参数为webhook的请求添加基本或承载身份验证。有关更多信息,请参见Webhook安全性和身份验证

下面的请求创建了一个订阅了两个Zendesk事件的webhook:亚博用户创建而且组织创建的.请求的订阅参数将高亮显示。

             
curl -X POST https://{subdomain}.亚博zendesk.com/api/v2/webhooks \-u {email_address}:{password} \-H "Content-Type:application/json" \- d”{“webhook ": {“名称”:“WEBHOOK_NAME”,“状态”:“活跃”,“端点”:“DESTINATION_URL”,“http_method”:“文章”,:“request_format json”,“订阅”:(“禅:事件类型的:user.created”,“战:事件类型的:organization.created”),"验证":{“类型”:“bearer_token”,"数据":{“令牌”:“令牌”},“add_position”:“头”}'

下面的请求创建一个可以连接到触发器或自动化的webhook。

             
curl -X POST https://{subdomain}.亚博zendesk.com/api/v2/webhooks \-u {email_address}:{password} \-H "Content-Type:application/json" \- d”{“webhook ": {“名称”:“WEBHOOK_NAME”,“状态”:“活跃”,“端点”:“DESTINATION_URL”,“http_method”:“文章”,:“request_format json”,“订阅”:(“conditional_ticket_events”),"验证":{“类型”:“bearer_token”,"数据":{“令牌”:“令牌”},“add_position”:“头”}'

如果成功,请求的响应包含webhook的唯一id。

             
“webhook”“id”“01 gd0nsm4fv0yvj535xba3x0xv”“名称”“WEBHOOK_NAME”...

将网络钩子连接到触发器或自动化

要将网络钩子连接到触发器或自动化,请使用相应的触发自动化行动属性的“notification_webhook”字段。这个字段的值是两个字符串的数组,指定webhook的id和请求的内容。

对于使用POST、PUT或PATCH HTTP方法和JSON或XML请求格式的webhook,其内容是请求有效负载。以下行动属性添加JSON请求有效负载。

             
“行动”“字段”“notification_webhook”“价值”“123”美国广播公司“{\“foo \”,\“酒吧\”}\ n”

使用其他HTTP方法或格式的webhook不包括请求有效负载。相反,您可以将自定义URL参数添加为包含两个键值字符串的数组。例如行动属性将? foo = bar baz = quxURL参数。

             
“行动”“字段”“notification_webhook”“价值”“123”美国广播公司“foo”“酒吧”“记者”“qux”

有关的更多信息行动属性,请参见操作参考

克隆网络钩子

要使用API克隆一个现有的webhook,请创建一个创建或克隆Webhook请求。在请求中,使用clone_webhook_idURL参数指定要克隆的webhook。不要包含请求体。

             
curl -X POST 'https://{subdomain}.亚博zendesk.com/api/v2/webhooks?clone_webhook_id={webhook_id}' \密码- u {email_address}: {}

克隆的webhook有唯一的id,但使用相同的id的名字作为最初的webhook。您可以指定一个新的的名字使用一个更新Webhook请求。克隆的webhook在创建时不连接到任何触发器或自动化。

监控的人

请注意: webhooks的活动日志处于公开测试中。如果你的帐户移动到不同的pod由于任何原因,最近7天的所有webhook活动日志都将被删除。

活动日志记录了过去七天内每个webhook的所有活动和每次调用的状态:

GET / api / v2 /人/ / {webhook_id} /调用

您可以用多种方式筛选列表。例如,要查看过去7天内所有失败调用的记录,可以添加参数过滤器(状态)根据您的要求:

GET / api / v2 /人/ {webhook_id}} /调用吗?过滤器[状态]=失败了

Webhook重试逻辑

如果第一次尝试不成功,如果接收请求的服务器返回一个HTTP错误码响应409,webhook调用将被重试最多三次。此外,如果HTTP错误代码响应429和503包含retry-after头,其值距离接收到响应的时间小于60秒。超时的Webhook请求最多重试五次。连续失败的请求不会停用webhook,但会触发网钩断路器

webhook的每次调用都有一个唯一的id,可以用来获取关于该调用的详细信息:

GET / api / v2 /人/ / {invocation_id} / {webhook_id} /调用尝试

网钩断路器

webhook断路器的设计目的是避免请求对断开的端点进行轰炸,在以下情况下触发:

  • 在5分钟的时间内,70%的webhook请求会导致错误。
  • 一个webhook在5分钟内收到超过1000个错误响应。

注意:不管错误率如何,如果网络钩子在5分钟内发送的请求少于100个,断路器就不会触发。

当断路器触发webhook时,webhook在5秒内不能发送请求,即使有事件或业务规则触发它。5秒钟后,webhook可以被触发,将其请求发送到目标端点。如果该请求收到错误响应,断路器将再次触发,持续5秒。这个循环一直持续到成功发送请求,此时断路器复位。

在5秒断路器暂停期间的每次调用尝试都记录为状态电路坏了