增加门票
增加门票
您的组织与客户的对话显示为入场券亚博Zendesk支持.Support SDK允许客户使用您的应用程序创建门票,更新现有门票,或者查看客户服务团队何时更新了他们的门票。
所有四个支持SDK控制器,包括帮助中心控制器,让用户创建票据。以下控制器还可以让用户查看和更新一个或多个门票,并让你在应用程序中对门票有更多的控制权:
- RequestController
- RequestListController
请注意:在Zendesk中,票也亚博被称为支持请求,或简单地称为请求。
的RequestController让你:
- 显示并配置一个票务屏幕,用户可以使用该屏幕向客户服务团队提交票务
- 创建一个
ui
稍后显示票务屏幕 - 显示用户的一张票
- 配置其他SDK控制器的票据界面
的RequestListController让您显示用户的门票列表。用户可以查看和更新他们的票证。
如果你需要构建自己的票务ui, SDK也有一个API提供者,可以让你在Zendesk Support中访问票务。亚博看到要求供应商在API提供者引用中。
本节涵盖的主题:
先决条件
允许用户创建票据没有先决条件。
要让用户查看和更新票证,必须满足以下前提条件:
- Ze亚博ndesk管理员已启用对话为您的应用程序在Zendesk支亚博持。看到在Zendesk Support中配置SDK亚博在支持帮助中心
用户界面概述
的默认票据形式RequestController如下所示:
的默认票据列表RequestListController如下所示:
当代理更新了票据时,票据旁边会出现一个项目符号提醒用户。
点击列表中的一个票证将显示票证对话。用户可以在对话中添加评论。
您可以更改ui的外观和感觉。看到自定义外观.
显示票务屏幕
使用buildRequestUi(配置:[ZDKConfiguration])
方法RequestUi.例子:
斯威夫特
let requestScreen = RequestUi。buildRequestUi (: [])
self.navigationController ?。pushViewController(requestScreen, animated: true)
objective - c
ui*requestScreen=[ZDKRequestUi buildRequestUiWith:@[]];
[自我.导航控制器pushViewController:requestScreen动画:是的];
如果您愿意,您可以使用票务屏幕请求列表界面,帮助中心界面,或文章的屏幕.每个控制器的UI都有一个按钮,允许用户打开票据表单。
配置票务屏幕
使用RequestUiConfiguration
类来配置屏幕和从中创建的票据。
例子:
斯威夫特
let customFieldOne = CustomField(fieldId: 1234567, value: "some_value")
let config = RequestUiConfiguration()
配置。主题=“iOS票”
配置。标签=[“苹果”,“移动”]
配置。customFields = [customFieldOne]
let requestController = RequestUi。buildRequestUi((配置):)
self.navigationController ?。pushViewController(requestController, animated: true)
objective - c
ZDKCustomField*customFieldOne=[[ZDKCustomField alloc]initWithFieldId:@1234567价值:@“some_value”];
ZDKRequestUiConfiguration*配置=[ZDKRequestUiConfiguration新];
配置.主题=“iOS票”
配置.标签=[“苹果”,“移动”]
配置.customFields=[customFieldOne]
ui*requestController=[ZDKRequestUi buildRequestUiWith:@[配置]];
[自我.导航控制器pushViewController:requestController动画:是的];
请注意:有关自定义字段的更多信息,请查看我们的供应商.
配置其他SDK控制器的票据界面
使用RequestUiConfiguration.例子:
斯威夫特
let config = RequestUiConfiguration()
配置。主题=“iOS票”
配置。标签=[“苹果”,“移动”]
let requestListController = RequestUi。buildRequestList((配置):)
self.navigationController ?。pushViewController(requestListController, animated: true)
objective - c
ZDKRequestUiConfiguration*配置=[ZDKRequestUiConfiguration新];
配置.主题=@“iOS票”;
配置.标签=@[@“ios”,@“移动”];
ui*requestController=[ZDKRequestUi buildRequestListWith:@[配置]];
[自我.导航控制器pushViewController:requestController动画:是的];
显示用户的票
使用buildRequestList ()
方法RequestUi.例子:
斯威夫特
let requestListController = RequestUi.buildRequestList()
self.navigationController ?。pushViewController(requestListController, animated: true)
objective - c
ui*requestListController=[ZDKRequestUi buildRequestList];
[自我.导航控制器pushViewController:requestListController动画:是的];
出示现有车票
使用buildRequestUi (requestId:字符串?)
方法RequestUi.例子:
斯威夫特
let requestController = RequestUi。buildRequestUi (requestId:“< id >”)
self.navigationController ?。pushViewController(requestController, animated: true)
objective - c
ui*requestController=[ZDKRequestUi buildRequestUiWithRequestId:@ id > <”];
[自我.导航控制器pushViewController:requestController动画:是的];
查看机票更新
的请求列表界面在票旁边显示一个项目符号,以提醒用户票已更新。然而,如果你不使用请求列表界面或者如果用户不经常检查他们的票务列表,用户就不会意识到更新。
如果使用JWT身份验证,用户从其他渠道提交的票据将出现在他们的请求列表中。当用户第一次查看请求列表时,它们显示为未读,因为已读/未读状态存储在设备上。查看每个请求会将其重置为已读状态,在此之后的任何新更新都会导致票据再次显示为未读状态。
请注意:当用户的票更新时,已识别的用户会收到Zendesk Support的电子邮件通知。亚博
您可以使用API提供程序来检查用户的票据是否已经更新,然后根据响应提醒用户。的ZDKRequestProvider有一个getUpdatesForDevice ()
方法检查票据更新。如果发现任何错误,你可以在应用程序的其他地方提醒用户,或者使用RequestController来出示每张票.
例子:
斯威夫特
让ZDKRequestProvider()
requestProvider ?。getUpdatesForDevice(回调:{(requestUpdates) in
如果让requestUpdates = requestUpdates,
requestUpdates.hasUpdatedRequests () {
_ = requestUpdates.requestUpdates.flatMap {print("Request \($0.key) has \($0.value) updates")}
}其他{
//处理错误/没有更新
}
})
objective - c
ZDKRequestProvider*提供者=[ZDKRequestProvider新];
[提供者getUpdatesForDeviceWithCallback:^(ZDKRequestUpdates*_Nullable requestUpdates){
如果(requestUpdates.hasUpdatedRequests){
为(NSString*关键在requestUpdates.requestUpdates){
NSLog(@"请求%@有%@更新",关键,requestUpdates.requestUpdates[关键]);
}
}其他的{
//处理错误/没有更新
}
}];
这个方法缓存requestUpdates
长达一小时。在该时间范围内的任何后续API调用都返回缓存的对象,而不是进行API调用。
查看票据将从缓存中删除它requestUpdates.requestsWithUpdates
对象。该事件发生在加载票据注释时RequestController.
如果你实现了一个自定义的UI,你可以通过调用下面的方法来标记一张票证,其中包含票证的ID和已读评论的数量(通常是评论的总数):
如果你实现了任何自定义UI,你可以通过调用下面的方法标记一个请求:
斯威夫特
ZDKRequestProvider()。markRequestAsRead("123", withCommentCount: 11)
objective - c
ZDKRequestProvider*提供者=[ZDKRequestProvider init];
[提供者markRequestAsRead:@“123”withCommentCount:11];
如果你已经为请求更新集成了推送通知,但已经实现了自定义请求UI,那么当收到推送更新时,你可以将票据标记为未读:
ZDKRequestProvider () .markRequestAsUnRead(“123”)
objective - c
ZDKRequestProvider*提供者=[ZDKRequestProvider init];
[提供者markRequestAsUnread:@“123”];