ZendeskRecordSink

文档中心 › 组件索引 › ZendeskRecordSink

ZendeskRecordSink Controller Service

类型全限定名:cn.org.acal.lynxus.services.zendesk.ZendeskRecordSink

所属 Bundle:cn.org.acal.lynxus:lynxus-zendesk-services-nar:2.11.8

描述

使用 Zendesk API 创建 Zendesk 票证。该服务需要具有已配置访问权限的 Zendesk 帐户。

标签

zendeskrecordsink

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
Web Client Service Provider控制器服务 API:
WebClientServiceProvider
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
用于 HTTP 客户端操作的Controller Service。
Subdomain NameZendesk 子域的名称。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
User Name将用户登录到 Zendesk 子域。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Authentication Type
  • Password — Zendesk 登录用户的密码。
  • Token — 在 Zendesk Admin 菜单中生成的用于 API 访问的身份验证令牌。
Zendesk API 的身份验证类型。
Authentication CredentialZendesk 登录用户的密码或身份验证令牌。
敏感属性:是
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Comment Body传入记录中评论正文的内容或路径。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Subject传入记录中主题的内容或路径。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Priority传入记录中优先级的内容或路径。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Type传入记录中类型的内容或路径。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Cache Size1000指定应缓存多少 Zendesk 票证。
Cache Expiration1 hour指定缓存的 Zendesk 票证应在缓存中保留多长时间。

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

提供的 Service API

  • RecordSinkService (cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8)

详细说明

ZendeskRecordSink

说明

该 Sink 使用 Zendesk API 把工单写入 Zendesk,并使用传入记录构建请求对象。

认证

Zendesk API 使用基本认证。必须提供密码或认证令牌之一。在 Zendesk API Settings 中可以生成认证令牌,这样用户无需暴露 密码。这种方式还提供了需要时快速吊销令牌的优势。

属性值

向请求对象提供属性值有多种方式:

Record Path:

如果值提供在以 '%' 开头的方括号内,属性值会作为 record path 求值。

示例:

传入记录如下。

{
  "record": {
    "description": "This is a sample description.",
    "issue\_type": "Immediate",
    "issue": {
      "name": "General error",
      "type": "Immediate"
    },
    "project": {
      "name": "Maintenance"
    }
  }
}

我们要为 Comment Body、Subject、Priority 和 Type Processor 属性提供 Record Path 值:

Comment Body : %{/record/description}
Subject : %{/record/issue/name}
Priority : %{/record/issue/type}
Type : %{/record/project/name}

将要发送给 Zendesk API 的构建请求对象如下:

{
  "comment": {
    "body": "This is a sample description."
  },
  "subject": "General error",
  "priority": "Immediate",
  "type": "Maintenance"
}

常量:

如果提供的值不符合 Record Path 格式,属性值会被视为常量。

示例:

我们要为 Comment Body、Subject、Priority 和 Type Processor 属性提供常量值:

Comment Body : Sample description
Subject : Sample subject
Priority : High
Type : Sample type

将要发送给 Zendesk API 的构建请求对象如下:

{
  "comment": {
    "body": "Sample description"
  },
  "subject": "Sample subject",
  "priority": "High",
  "type": "Sample type"
}

附加属性

该 Processor 的属性列表中提供了一组常用的 Zendesk 工单属性。不过,用户可以使用动态属性灵活地包含任意数量的 附加属性。这些动态属性的键用作 Json Pointer,表示请求对象内的路径。相应地,这些动态属性的值 与预定义的属性属性对齐。可能的 Zendesk 请求属性参见 Zendesk API 文档。

属性键的值:

动态属性的键必须是有效的 Json Pointer 值,其语法规则如下:

  • 路径以 / 开头。
  • 每个段由 / 分隔。
  • 每个段可以解释为数组索引或对象键。

示例:

我们要给该 Processor 添加新的动态属性:

/request/new_object : This is a new property
/request/new_array/0 : This is a new array element

构建的请求对象如下:

{
  "request": {
    "new_object": "This is a new property",
    "new_array": [
      "This is a new array element"
    ]
  }
}

缓存

该 Sink 会缓存内容相同的 Zendesk 工单,以避免重复工单问题。缓存大小和过期时间可以在 sink 服务上设置。