自行程序类似于触发器,因为两者都可定义修改工单属性的条件和操作,并可选择发送电邮通知给客户和专员。两者不同之处在于,自行程序是在设置或更新工单属性后活动日志发生时执行,而不是在创建或更新工单后立即执行。
所有的自行程序针对所有非已关闭工单,每小时运行一次。他们对所有满足条件的工单执行或触发。
有关创建和管理自行程序的信息,请参阅为基于时间的活动日志创建和管理自行程序。有关标准自行程序的列表,请参阅关于标准 Support 自行程序。
自行程序的基本知识
我们已为您总结了一些关于自行程序的基本知识。这篇文章中更详细地解释了这些知识。
- 自行程序是基于时间的;它们在时间事件发生时采取操作,而不是在工单创建或更新后立即采取操作。
- 自行程序每小时运行一次,但不一定是整点;它们将在一个小时内的某个时间点开始。
- 自行程序每小时最多可触发 1,000 张工单。
- 自行程序不会对已关闭的工单运行或触发。
- 每张工单最多可被自行程序更新 100 次。
- 自行程序必须包含一个只能为 true 一次的条件,或一个使其中至少一个条件无效的操作。
- 所有活跃的自行程序都必须是唯一的。它们可以有一些重叠的条件,但不能完全相同。
- 与有业务规则一样,自行程序必须小于 65kb。
- 您一次最多可有 500 个活跃的自行程序。
- 在非 Enterprise 服务模式中,自行程序对专员(包括低权限专员和参与者)可见,但只能由管理员编辑。在 Enterprise 服务模式中,自行程序仅对自定义用户角色中有权管理自行程序的专员可见。
使用自行程序的范例
通过向您提醒仍未解决和需要升级的工单(举例),自行程序帮助您管理工作流程,并潜在地提高绩效和客户满意度。
以下是自行程序的一些用途:
- 当已分配工单超过 x 小时未解决时通知专员
- 当新工单超过 x 小时未分配时通知专员组
- 当请求者更新待处理工单时,过 x 小时通知已分配的专员
- 工单设置为解决后的 x 天后关闭工单
- 查找在特定天数内未更新的“已放弃”工单
- 当紧急工单无人参与超过 48 小时时发送短信(使用带有自行程序的目标;请参阅在自行程序和触发器中使用目标)
Zendesk 提供了一个演示这些常见用途的自行程序:
此自行程序将在工单解决后的 96 小时后关闭工单(96 小时是支持最佳实践,表示工单在关闭前应保持已解决状态的最少时间)。当自行程序运行时,所有满足这些条件的工单都将被关闭。关闭操作如下所示:
工单一旦关闭,就无法再修改,自行程序也不再对其产生影响。
这个例子还说明了一条重要的自行程序规则:自行程序必须包含一个取消条件的操作。“Status equals Solved”条件被“Status equals Closed”操作取消。如果没有取消操作,自行程序将继续无限循环,因为状态将保持已解决(未关闭)并继续满足条件标准。
确保您的自行程序仅运行一次
自行程序每小时检查一次其条件是否得到了满足。因此,自行程序必须包括以下内容之一:
- 使至少一个条件无效的操作,或
- 一个只能为 true 一次的条件
如果没有失效操作或只能为 true 一次的条件,则未修改的条件将继续得到满足,自行程序就会继续无限循环触发。
常见的失效条件的一个例子是“ticket priority”(工单优先级)条件。工单优先级条件通常与“hours since created”(自创建后的小时数)条件配对。例如,如果工单优先级为 Normal (Ticket: Priority > Is > Normal),则通过包含一个将优先级更改为 High (Ticket: Priority > High) 或其它优先级的操作可使该条件失效。
只能为 true 一次的条件例如“hours since open is”条件。此条件不需要失效操作。例如,如果自工单开启后的小时数为 4 小时 (Ticket: Hours since created > Is > 4),则该条件只会在一次检查时为 true。在下一次检查时,自开启后的小时数将为 5,此条件将为 false。
然而,在使用“hours since...is”条件时一定要考虑周到。由于自行程序在任意一个小时内的运行时间都会略有不同,因此“is”条件的评估结果不太可能从不为 true,但也不是完全没有可能。对于较大的帐户或具有许多自行程序的帐户,更有可能出现这种情况。有关详细信息,请参阅在自行程序中使用“Hours since”条件。
取消条件的一个简单方法是添加标签。自行程序将检查标签,如果不存在,则会将该标签添加到工单,并执行任何操作(例如发送通知)。如果工单上有此标签存在,则自行程序将不会再次执行该操作。
了解自行程序何时运行
自行程序每小时运行一次,但并不一定是整点。自行程序将一个小时中的某个时间点开始运行,例如整点后的五分钟或整点后的 38 分钟。
自行程序运行和执行所需的全部时间取决于要处理的自行程序和工单的数量。自行程序在随后的一个小时内的某个时间点再次运行。
每个自行程序每小时可处理最多 1,000 张工单。如果有超过 1,000 张工单符合自行程序的条件,则将在该小时内处理 1,000 张工单,剩余的工单将在下一个小时(如果仍然满足条件)进行处理,若果仍未完成,则再在下一个小时内进行处理,直到全部工单完成检查。对于非常大的作业,处理所有满足该自行程序条件的工单可能需要数小时。
自行程序周期延长会增加专员在自行程序运行的同时进行例行工单更新的机会。为避免工单更新冲突,Zendesk 自行程序会重复检查更新时的工单状态,而不是仅根据自行程序周期开始时工单的状态进行操作。
为了避免不必要的活动,对于最近 14 天内没有人登录的帐户,不会运行自行程序。
了解自行程序操作何时触发
自行程序每小时都按顺序运行,并在满足条件的情况下对工单触发。当每个自行程序运行并满足条件时,都会触发,即对工单进行操作。这意味着在周期内每次触发自行程序时,工单都会更新,因此并非所有的自行程序都能看到相同的状态。一个自行程序的操作可能会在同一小时内影响到另一个自行程序。
- 自行程序 #1:如果状态为“待回应”超过 48 小时,通知受托人。
- 自行程序 #2:如果状态为“待回应”大于 48 小时,将优先级更改为“高”。
- 自行程序 #3:如果优先级为“高”,通知升级组。
自行程序会按顺序运行和触发(如果满足条件)。因此,如果您有一张待回应 48 小时的工单,当自行程序在第 49 小时运行时,自行程序 #1 运行并触发,然后 #2 运行并触发。在自行程序 #2 触发后,工单将更新为“高”优先级。这意味着当自行程序 #3 运行时,条件已满足,因此自行程序 #3 将触发。
如上文所述,自行程序不像触发器,不会在工单满足条件后立即执行操作。并且自行程序不会在条件满足一小时后立即执行。 对于自行程序,工单更新取决于您的自行程序每小时中运行的时间点。
- 我们来考虑一个当自行程序运行时发生操作的例子。假设在上午 10:15 的工单更新满足自行程序发送电邮通知的条件。如果您的自行程序在 11:10 运行,则通知在满足条件 55 分钟后才会发送。然而,如果您的自行程序在 10:20 运行,则通知会在条件满足 5 分钟后发送。
-
我们再来看一个基于时间的“Hours since”条件的例子。基于时间的条件必须在一个时间窗口内得到满足,或者在经过最少的时间后得到满足。事件发生后自行程序首次运行计为自该事件发生后的“零”小时(因为不足一小时)。假设您有一个自行程序,在工单解决两小时后执行操作,而工单在上午 9:15 解决。以下是将会发生的情况:
- 如果您的自行程序在上午 10:10 运行,则工单仅解决了 55 分钟,自行程序不会触发。
- 自行程序在上午 11:10 再次运行,工单已解决 1 小时 55 分钟,自行程序计算为一小时(因为不足两小时)。
- 自行程序在下午 12:10 再次运行,工单已解决 2 小时 55 分钟,自行程序计为两小时。这意味着已满足条件,自行程序将触发并更新工单。