在 ServiceNow
创建用户
需创建一个用户以连接 ServiceNow 实例,用于 Incident 的同步与更新。如果已有可用用户,请直接跳过本步骤。- 登录 ServiceNow 实例控制台,通过选择
ALL,输入USERS选择Organization-Users。 - 点击
New新建用户。 - 在编辑页面中,
User ID输入:flashduty 。 Password needs reset和Web service access only以及Internal Integration User保持取消勾选状态。- 提交保存。
配置用户
用户角色说明 itil: 该角色在 Flashduty 中的主要使用范围仅限于在同步 ServiceNow Incident 时,进行获取、创建、更新 ServiceNow Incident,不涉及其他任何操作。 personalize_dictionary: 该角色在 Flashduty 中的主要使用范围仅限于 ServiceNow Incident Table 的字段获取,不涉及其他任何操作。 关于以上两个角色更多权限范围,可以参考 ServiceNow 官方文档
- 在用户列表页面,找到新创建的
flashduty用户并进到配置页面。 - 在编辑页面中,点击
Set Password设置一个密码。 - 点击
Roles添加 personalize_dictionary 和 itil 角色(如果不需要配置自定义字段映射关系,可以不授予 personalize_dictionary 权限)。 - 点击
Update更新配置。
在 Flashduty On-call
配置集成
将以上配置的用户名/密码以及实例名称输入到左侧集成信息中并点击下一步进行配置。- 集成名称: 为当前集成定义一个名称。
- 管理团队: 当选择管理团队后,只有该团队成员以及租户管理员可以编辑此集成。
- 协作空间:选择该集成生效的协作空间,。
-
同步方向:
- To_ServiceNow:将 Flashduty 的故障同步至 ServiceNow。
- From_ServiceNow:将 ServiceNow 的 Incident 同步至 Flashduty。
- Two-way:Flashduty 和 ServiceNow 互相同步。
-
触发模式:
- 自动触发:需要配置相应的条件,Flashduty On-call 会自动将符合条件的故障同步到 ServiceNow 中。
- 手动触发:需要在故障详情页的更多操作中手动触发 ServiceNow 同步(该集成配置的名称为触发器名称)。
-
严重程度映射:
- ServiceNow 的 Priority 是由 Impact 和 Urgency 的值共同决定的,所以可以参考 ServiceNow 的
Priority Lookup Rules进行配置。 - 当 ServiceNow Incident 的 Urgency 发生变化时,才会触发 Flashduty 故障严重程度的更新。
- 由于 Flashduty 在遵循最小权限的情况下,无法获取 ServiceNow 的 Impact 和 Urgency 列表,所以只提供了默认值,如果您需要自定义映射关系时,可以联系技术支持。
- ServiceNow 的 Priority 是由 Impact 和 Urgency 的值共同决定的,所以可以参考 ServiceNow 的
-
自定义字段映射:可以将故障中的标签或自定义字段,映射到 ServiceNow 工单中的对应文本字段,实现信息自动填充。该功能支持将常见上下文信息(如服务名、实例地址、指标名称等)同步至 ServiceNow,便于后续排查与跟踪。
- 仅支持目标为单行文本或多行文本类型的字段。
- 支持从故障标签(如 service、instance)或自定义属性中提取值。
- 若源字段为空,目标字段也将保持为空,不会覆盖原有内容。
- 映射配置在集成设置中统一管理,无需每次手动填写。
在 ServiceNow
当同步方向选择 From_ServiceNow 或 Two-way 时,还需要在 ServiceNow 中做相应的配置,以便将 ServiceNow Incident 同步至 Flashduty, 在同步至 Flashduty 时,有以下两种方式,可根据实际需求选择即可。手动同步
该方式依赖 ServiceNow 提供的 UI Action 和 Script Include 的配置,根据以下步骤配置完成的效果:当新建 Incident 或更新 Incident 时,可以在功能区看到发送同步请求的按钮,触发该按钮,可以将当前 Incident 的内容同步至 Flashduty。需要注意的是,如果触发请求时遇到失败的情况,请重试(重试时间间隔需大于 10 秒)。配置 UI Action
-
登录 ServiceNow 实例控制台,通过选择
ALL,输入UI Actions选择System Definition-UI Actions。 -
点击
New新建 Action。 -
Name输入: Send To Flashduty,Table选择 Incident 。 -
Form button,Active,Show insert,Show update,Client,List v2/3 Compatible保持勾选状态。 -
Onclick输入:onClick();。 -
Script输入: - 提交保存。
配置 Script Include
- 登录 ServiceNow 实例控制台,通过选择
ALL,输入Script Includes选择System Definition-Script Includes。 - 点击
New新建 Script Include。 Name输入:IncidentWebhookHelper ,Accessible from选择 All application scopes。Client callable和Active保持勾选状态。Script输入以下内容,其中 request.setEndpoint 中需要补充集成的推送地址:
注意: body 中配置的是默认接收字段,如果有自定义字段需要同步至 Flashduty ,需要额外手动补充内容到 body 中,比如希望添加一个字段名为:test_001 的字段(该字段名可以在配置集成中添加自定义字段的时候获取,不要使用 ServiceNow Inident 表单中显示的字段名),那么需要在 body 中补充:test_001: current.getDisplayValue(“test_001”)。
- 提交保存。
- 回到 Script Includes 列表,继续创建。
-
点击
New新建 Script Include。 -
Name输入:IncidentWebhookHelperAjax ,Accessible from选择 All application scopes。 -
Client callable和Active保持勾选状态。 -
Script输入以下内容: - 提交保存。
自动同步
该方式依赖 ServiceNow 提供的 Business Rules 的配置,使用该方式可以实现当有新建或更新事件时,自动将 Incident 同步至 Flashduty。配置 Business Rules
- 登录 ServiceNow 实例控制台,通过选择
ALL,输入Business Rules选择System Definition-Business Rules。 - 点击
New新建 Business Rule。 Name输入:Send To Flashduty ,Table选择 Incident。Advanced和Active保持勾选状态。- 在
When to run区域中,When选择 async,Insert和Upsert保持勾选状态,其他按需配置。 - 在
Advanced区域中,Script填写以下内容,其中 endpoint 中需要补充集成的推送地址
注意: body 中配置的是默认接收字段,如果有自定义字段需要同步至 Flashduty ,需要额外手动补充内容到 body 中,比如希望添加一个字段名为:test_001 的字段(该字段名可以在配置集成中添加自定义字段的时候获取,不要使用 ServiceNow Inident 表单中显示的字段名),那么需要在 body 中补充:test_001: current.getDisplayValue(“test_001”)。
- 提交保存。