转换ZIS流中的数据

在本教程中,您将创建一个转换JSON数据的ZIS集成。为此,您将包含一个变换在集成的ZIS流中的操作。Transform操作使用jq表达式来更改JSON输入的值、格式或结构。该输入可以是事件数据、API响应或可以从ZIS流访问的其他JSON。

你需要什么?

要完成本教程,您需要以下内容:

创建集成

通常使用数据转换将数据转换为特定格式。例如,外部应用程序可能只接受格式化为字符串的数字。

您创建的集成将监听票了事件在Zendesk亚博。事件的数据包括一个格式化为整数的票证id。当它检测到事件时,集成将此票据id从整数转换为字符串。然后集成将字符串发布到表示外部应用程序的外部目标。

  1. 创建一个JSON文件my_zis_bundle.json

  2. 将以下包骨架添加到my_zis_bundle.json

                   
    “名称”“ZIS与数据转换集成示例”“描述”"在创建票证时将票证id字符串发送到外部目标"“zis_template_version”“2019-10-14”“亚博电脑端资源”“PostToWebhook”“_placeholder_”"ZIS自定义动作定义在这里"}“TicketCreatedFlow”“_placeholder_”“ZIS流到这里”}“TicketCreatedJobSpec”“_placeholder_”“ZIS的工作说明书在这里”}}}

    在接下来的步骤中,您将定义自定义操作、ZIS流和作业规范。

  3. my_zis_bundle.json,替换PostToWebhook具有以下自定义操作定义的占位符。在定义中,将“EXTERNAL_TARGET_URL”替换为RequestBin端点URL。

                   
    “PostToWebhook”“类型”“子::行动::Http”“属性”“名称”“PostToWebhook”“定义”“方法”“职位”“url”“EXTERNAL_TARGET_URL”“requestBody”“ticket_id美元。”“.ticket_id美元”}}}}

    当调用时,自定义操作向外部目标URL发送POST请求。请求体包含一个Zendesk票证id。亚博

  4. 取代TicketCreatedFlow占位符,具有以下ZIS流定义。在定义中,将“INTEGRATION”替换为您的集成键。

    流包含一个调用Transform操作的Action状态。该状态被高亮显示。

                   
    “TicketCreatedFlow”“类型”“子:流”“属性”“名称”“TicketCreatedFlow”“定义”“StartAt”“ConvertTicketIDToStr”“州”“ConvertTicketIDToStr”“类型”“行动”“ActionName”“子:常见的变换:金桥”“参数”“expr”“.ticket_event.ticket。Id | tostring"“数据。美元”“.input美元”}“ResultPath”“.ticket_id_str美元”“下一个”“PostToWebhook”}“PostToWebhook”“类型”“行动”“ActionName”“子:集成:行动:PostToWebhook”“参数”“ticket_id美元。”“.ticket_id_str美元”}“结束”真正的}}}}}

    Transform操作将事件的票证id从整数转换为字符串。然后,流运行另一个Action状态来调用您在前一步中定义的自定义操作。

  5. 取代TicketCreatedJobSpec具有以下职位说明定义的占位符。在定义中,将“INTEGRATION”替换为您的集成键。

                   
    “TicketCreatedJobSpec”“类型”“子::JobSpec”“属性”“名称”“TicketCreatedJobSpec”“event_source”“支持”“event_type””票。TicketCreated”“flow_name”“子:集成:流:TicketCreatedFlow”}}

    作业规范告诉ZIS在检测到Ticket Created事件时运行ZIS流。

  6. 保存my_zis_bundle.json.文件现在看起来应该是这样的:

                   
    “名称”“ZIS与数据转换集成示例”“描述”"在创建票证时将票证id字符串发送到外部目标"“zis_template_version”“2019-10-14”“亚博电脑端资源”“PostToWebhook”“类型”“子::行动::Http”“属性”“名称”“PostToWebhook”“定义”“方法”“职位”“url”“EXTERNAL_TARGET_URL”“requestBody”“ticket_id美元。”“.ticket_id美元”}}}}“TicketCreatedFlow”“类型”“子:流”“属性”“名称”“TicketCreatedFlow”“定义”“StartAt”“ConvertTicketIDToStr”“州”“ConvertTicketIDToStr”“类型”“行动”“ActionName”“子:常见的变换:金桥”“参数”“expr”“.ticket_event.ticket。Id | tostring"“数据。美元”“.input美元”}“ResultPath”“.ticket_id_str美元”“下一个”“PostToWebhook”}“PostToWebhook”“类型”“行动”“ActionName”“子:集成:行动:PostToWebhook”“参数”“ticket_id美元。”“.ticket_id_str美元”}“结束”真正的}}}}}“TicketCreatedJobSpec”“类型”“子::JobSpec”“属性”“名称”“TicketCreatedJobSpec”“event_source”“支持”“event_type””票。TicketCreated”“flow_name”“子:集成:流:TicketCreatedFlow”}}}}
  7. 将包上传到ZIS。

                   
    curl -X POST https://{subdomain}.亚博zendesk.com/api/services/zis/registry/{integration}/bundles \-u {email}:{password} \-H "Content-Type: application/json" \- d @my_zis_bundle.json
  8. 安装作业规范以启用集成。

                   
    curl -X POST "https://{subdomain}.亚博zendesk.com/api/services/zis/registry/job_specs/install?job_spec_name=zis:{integration}:job_spec:TicketCreatedJobSpec" \密码- u {email}: {}

测试集成

要测试集成,请使用以下请求创建一个票据。

             
curl -X POST https://{subdomain}.亚博zendesk.com/api/v2/tickets.json \-u {email_address}:{password} \-H "Content-Type: application/json" \- d”{“票”:{“主题”:“我的打印机着火了!”"评论":{“身体”:“烟很鲜艳。”}}} '

导航到RequestBin指示板。您应该看到一个JSON有效负载,其中票据id被格式化为字符串。

恭喜你!您已经创建了一个使用jq转换JSON数据的ZIS集成。要查看其他示例jq表达式,请查看Jq小抄