本文解释了在创建和更新票据时如何设置票据属性和指定操作。有关参考信息,请参见资源中的票务API参考。

创建后续票据

一旦一张票被关闭(与解决不同),它就不能重新打开。但是,您可以创建一个引用已关闭票据的新票据。要创建后续票据,请包含via_followup_source_id参数,该参数指定封闭票据。例子:

             
旋度https//子域名亚博com/api/v2/json \-d'{"ticket": {"via_followup_source_id": 103, "comment": {"body": "我的打印机还是太热了!"”}}}-v-uemail_address密码-X帖子-H“application / json内容类型:

该参数仅适用于已关闭的票据。对其他票无效。

默认情况下,第一个注释作者是发出API请求的经过身份验证的用户。若要设置不同的作者,请包含author_id属性。

异步创建票据

由于复杂的业务规则,创建票据有时需要一段时间。异步创建允许您快速返回响应,并将后台作业排队以完成实际工作。

要发出异步请求,只需添加参数异步在您的请求中:

发布api / v2 / tickets.json吗?异步= true

一旦收到请求,它就返回一个202年接受.响应包括新票据id与一个job_statusJSON对象.然而,在工作完成之前,你可能无法取到票。

请注意:如果创建票据失败,可能会跳过部分票据id号。

设置的合作者

请注意:如果cc和追随者该功能为帐户启用,使用电子邮件cc和关注者是首选。看到设置邮件cc而且设置的追随者.属性仍然可以设置协作者合作者而且additional_collaborators本节描述的票据属性。他们会自动让终端用户成为CCs,让代理成为追随者。

在创建或更新票据时,您可以使用以下三个属性之一在票据上设置协作者:collaborator_ids合作者additional_collaborators.的合作者属性提供了更大的灵活性,如下所述。

当创建或更新票据时,将向协作者发送电子邮件通知。

设置合作者collaborator_ids更新票据时,将替换现有的协作者。如果您希望在票据上保留现有的合作者,请确保在更新请求中包含他们。如果您只想添加更多的合作者,请使用additional_collaborators代替。

collaborator_ids属性是一个基本选项,它接受用户id数组。

例子

             
“票”“collaborator_ids”562624624562243642

合作者房产是一个更灵活的选择。它接受一个数组,该数组由用户id、电子邮件地址或包含的名字而且电子邮件财产。例如:

使用一个对象在Zendesk Support中使用适当的名称动态地创建用户。亚博

例子

             
“票”“合作者”562(电子邮件保护)“名称”“别人”“电子邮件”(电子邮件保护)

additional_collaborators属性用于添加其他协作者。它保留现有的合作者,并将新的合作者添加到票据中。它接受一个数组,该数组由用户id、电子邮件地址或包含的名字而且电子邮件财产。

例子

             
“票”“additional_collaborators”562(电子邮件保护)“名称”“别人”“电子邮件”(电子邮件保护)

即使你使用合作者属性中的用户id数组,JSON响应将指定新的或更新的合作者collaborator_ids财产。响应没有a合作者财产。

设置的追随者

方法在创建或更新票据时,可以在票据上设置关注者追随者财产。

当创建或更新票据时,将向关注者发送电子邮件通知。

追随者属性接受表示代理的对象数组。每个对象必须有一个标识符,可以是用户ID (user_id)或电邮地址(user_email)。如果一个user_emailuser_id则该用户对象将被忽略。此外,行动Key可以设置为“put”或“delete”,以指示是否应该将用户添加到关注者列表中。如果行动Key没有给出,默认值是“put”。

例子

             
“票”“追随者”“user_id”“562624”“行动”“把”“user_id”“624562”“user_id”“243642”“行动”“删除”“user_id”“562”“user_email”(电子邮件保护)“行动”“删除”“user_email”(电子邮件保护)“行动”“把”

设置邮件cc

方法在创建或更新票据时,可以在票据上设置电子邮件ccemail_ccs财产。

根据触发器设置,当票据被创建或更新时,单个电子邮件通知将被发送给请求者和cc。

email_ccs属性接受表示用户的对象数组。每个对象必须有一个标识符,可以是用户ID (user_id)或电邮地址(user_email)。如果指定了电子邮件地址,而该用户在该帐户中不存在,则创建一个新用户。此外,关键行动可以设置为“放”或“删除”,以指示是否应该将用户添加到或从电子邮件抄送列表中删除。如果行动Key没有给出,默认值是“put”。如果创建了新用户,可以指定user_name命令,设置新用户名。如果用户是隐式创建的,并且user_name如果未给出,则用户名是从电子邮件地址的本地部分派生的。属性的值,如果包含未与用户关联的电子邮件地址(例如,意图隐式创建用户),则行动键为“delete”,该邮件地址不会被创建或添加为邮件抄送。

一张票只能有48个邮件cc。如果请求中包含超过48个电子邮件cc,则会返回“400个坏请求”。如果现有的电子邮件cc和通过请求添加的额外电子邮件cc加起来超过48个,则电子邮件cc将被截断为48个,并且不会报告错误。

如果在同一更新中还将内部说明添加到票据中,则不会更新电子邮件cc。

例子

             
“票”“email_ccs”“user_id”“562624”“行动”“把”“user_id”“243642”“行动”“删除”“user_email”(电子邮件保护)“user_name”“别人”“行动”“把”

设置元数据

当您创建或更新一个票据时,一个审计如果票据属性已更改,则生成。在每次这样的审计中,您可以添加最多1千字节的自定义元数据。您可以使用它来构建自己的集成或应用程序。请注意:如果您的更新没有更改票据,则不会创建Audit,也不会保存元数据。

例子

             
“票”“元数据”“time_spent”“4 m12”“账户”“集成”“评论”“身体”"请立即按播放"“状态”“等待”

请注意,元数据只能设置为与之关联的其他常规票据更新的一部分,而不仅仅是票据。亚博Zendesk Support还在每次票据更新中添加元数据,生成的审计JSON结构如下所示:

             
“审计”“id”35436“ticket_id”47“created_at”“2012 - 04 - 20 - t22:55:29z”“author_id”35436“元数据”“自定义”“time_spent”“4 m12”“账户”“集成”“系统”“ip_address”“184.106.40.75”“位置”“美国”“经”-97“人肉搜索”38“客户端”“Mozilla / 5.0(麦金塔电脑;英特尔Mac OS X 10_7_3)"“通过”“通道”“网络”“事件”“id”1564245“类型”“评论”“身体”"请立即按播放"“公共”真正的“附件”...

附加文件

在创建和更新票据时,您可以通过包含从上载文件中接收到的令牌来将文件附加到注释。

详细信息和示例请参见使用API附加票据附件

例子

             
“票”“评论”“身体”"请立即按播放"“上传”“vz7ll9ud8oofowy”

用一个新的请求者创建一个票据

您可以在创建票据时指定请求者。可以为请求者设置名称、电子邮件和区域id。姓名和电子邮件是必需的。有关区域设置id,请参见地区API。

例子

             
“票”“主题”“你好”“评论”“身体”“有些问题”“请求者”“locale_id”8“名称”“毕加索”“电子邮件”(电子邮件保护)

如果请求者的身份在Zendesk中不存在,则会为用户创建一个新的用户配置文件。亚博用户需要验证他们的身份才能查看他们的请求。

如果Zendesk中存在具有指定电子邮件亚博地址的用户,则Zendesk将使用该用户,并且在票据创建过程中不会对现有用户进行更新。在这种方法中,只需要email属性。

设置自定义字段值

要设置票据中一个或多个自定义字段的值,请指定由以下对象组成的数组id而且价值属性。控件的文本或数字字段,请指定文本或数字价值属性:

             
“custom_fields”“id”25356371“价值”“我在买多多买的。”...

对于日期字段,仅指定日期(格式为ISO 8601字符串)并省略时间:

             
“custom_fields”“id”25356634“价值”“2020-02-24”...

属性的选项的标记名称,用于具有由标记(例如下拉列表)定义值的字段价值属性,而不是列表中显示的选项文本。例如,如果该选项的显示文本是“HD 3000彩色打印机”,其标签是hd_3000,则自定义字段的值设置如下:

             
“custom_fields”“id”21938362“价值”“hd_3000”

多选字段值也由标记定义。然而,value属性是一个逗号分隔的列表。例如,标签的值为hd_3000和hd_5555,则自定义字段的值为:

             
“custom_fields”“id”21938362“价值”“hd_3000”“hd_5555”

有关更多信息,请参见票字段

例子

             
“票”“主题”“你好”“评论”“身体”“有些问题”“custom_fields”“id”34“价值”“我需要帮助!”

防止票证更新冲突

与任何数据库应用程序一样,防止记录更新冲突是一种很好的实践。如果对同一票据的多个更新几乎同时执行,更新可能会发生冲突并导致数据丢失。例如,拿一张有两个标签的票,“红色”和“蓝色”。一个更新尝试将“green”附加到标签列表中。一个单独的更新尝试添加“yellow”。如果两个更新几乎同时进行,则可能会出现以下顺序:

  1. 更新A为["红","蓝"]
  2. 更新B为[“红”,“蓝”]
  3. 更新A为["红","蓝","绿"]
  4. 更新B写入["红","蓝","黄"]

数据“绿色”丢失,因为更新B被允许继续处理过期的数组。

你可以做出安全更新以防止更新B之类的更新继续进行。在安全更新中,您在请求中包含了最新的已知票据更新,以检查最近的更新。如果系统检测到一个比上一次已知更新更近的票据更新,它会阻止您继续更新,并发送一个响应,让您知道票据没有更新。作为开发人员,您应该考虑这个结果,并获得票据数据的新副本,并再次尝试更新。看到检查票据是否没有更新在下面。

要启用安全更新,请包含safe_update而且updated_stamp中的ticket对象中的属性PUT请求查看最新的更新。例子:

             
“票”“主题”“更新主题”“updated_stamp”“2021 - 08 - 24 - t16:53:51z”“safe_update”真正的...

的价值updated_stamp是在您提出更新请求时更新票据的最后已知时间。最后已知的时间是票证当前指定的时间updated_at财产。提出初步请求演出门票得到这个值。对于webhook工作流中的占位符,已知的最后更新时间为ticket.updated_at_with_timestamp

一次更新许多票,也可以指定safe_update而且updated_stamp每个票据对象的属性。但是,这些更新是自动安全的,并且当作业开始后对同一票据进行另一次更新时,票据更新将被取消。

检查票据是否没有更新

当进行安全更新时,请求返回409状态代码或“UpdateConflict”作业状态,以让您知道由于最近的更新而没有更新票据。这是获取最新票据数据并重试更新的信号。

当更新单个票据时,让您的代码在响应中查找409状态代码并相应地处理它。例409响应:

             
状态409冲突“描述”安全更新由于过期的票据数据,阻止了更新获取最新的票据数据和试一试再一次“错误”“UpdateConflict”

在批量或批处理更新票据时,将您的代码用于监视工作的状态UpdateConflict错误,并相应地处理它。例如作业状态:

             
“job_status”“结果”“指数”0“错误”“UpdateConflict”“id”9999“细节”“安全更新由于票务数据过期而阻止了更新。请获取最新的票务数据,然后重试。”...