美文网首页
集成Zendesk收集用户feedback

集成Zendesk收集用户feedback

作者: 追风筝的荧火虫 | 来源:发表于2020-02-26 13:31 被阅读0次

    Zendesk 概述

    项目集成Zendesk 可以让应用管理者更加轻松地管理终端客户的服务和支持需求,本文主要是针对iOS 项目集成 Zendesk SDK,收集用户feedback, 并集合到slack channel 实现实时接收用户反馈信息 展开的。

    1. 集成Zendesk SDK

    和大部分第三方SDK集成方法一样,集成Zendesk 同样有多种方法,包括常用的 CocoaPodsCarthage 以及 在Xcode里手动导入到项目 等方法,具体请参考:iOS 项目集成Zendesk SDK

    创建APP

    在正式使用sdk 之前,我们还需要到zendesk官方申请注册并创建我们自己的app, 因为这里是想实现收集用户Feedback,对应Zendesk的产品为support, 可以到这里创建我们的app: https://www.zendesk.com/support/

    一旦创建完成app, Zendesk 并会为这个app生成 init SDK 需要用到 appId, clientId 以及 appUrl, 具体可在创建完app后到
    https://yourApp.zendesk.com/agent/admin/mobile_sdk 里查看,如下图所示:

    appId/clientId/appUrl

    init SDK

    以上工作完成后 可以在项目初始化 sdk了,参考: init zendesk support sdk

    在AppDelegate 导入Zendesk并使用上一步获取到的必要参数进行初始化:

    import SupportProvidersSDK
    import ZendeskCoreSDK
    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:   [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        Zendesk.initialize(appId: "appId", clientId: "clientId",    zendeskUrl: "url")
        Support.initialize(withZendesk: Zendesk.instance)
    }
    

    创建一个身份

    Zendesk需要一个用户身份,以便该应用可以作为Zendesk支持用户进行身份验证,然后将其设置为Zendesk单例:

    let identity = Identity.createAnonymous(name: "\(userName)", email: "\(userEmail)")
    Zendesk.instance?.setIdentity(identity)
    

    Zendesk有两种 identity: anonymous 和 JWT. 更多细节参考 identity.

    设置身份时注意

    1. 必须在Zendesk.initialize之后且在使用Zendesk API 请求之前设置一个身份。也可以在Support.initialize之前或之后进行设置,如果使用Support SDK而不设置身份将会导致所有网络请求失败,即发送feedback时无法发送成功。

    2. 如果设置身份时没有传入用户名等参数,则在Zendesk后台将会以 Mobile App User 名字显示该用户。

    3. 如果用户第一次发送feedback时没有设置名字或者发送完第一次后更改过名字,则往后发送的所有feedback 在zendesk后台用户名都显示为第一次时的那个(Zendesk后台是用email标记是否同一个用户的)。

    4. 多次设置同一个用户identity 是无效的,即多次调用 setIdentity ()无效,但只要identity不一样了,Zendesk则会认为这是一个新的用户。

    2. 使用SDK发送feedback

    这里使用自定义UI界面,因此在需要发送时直接调用Zendesk提供的api, 详细文档参考:
    Working with API providers

    UI
    let provider = ZDKRequestProvider()
    let request = ZDKCreateRequest()
    request.subject = "subject string"
    request.requestDescription = "detail string"
    request.tags = ["iOS"]   // 作为zendesk 后台分类使用
    

    zendesk支持 自定义字段,创建自定义字段,首先需要在后台添加自己想要的字段,并获取它的 FieldID

    Custom Fields

    然后 在代码上 进行配置

     let customFieldForAppVersion = CustomField(fieldId: 360028685191, value: "\(versionString)")
    request.customFields = [ customFieldForAppVersion]
    

    最后发送请求

    provider.createRequest(request) { result, error in
    
    }
    

    发完之后则可以到zendesk后台管理平台查看该条feedback:

    后台

    如果需要发送附件,则需要在创建request时加入 UploadResponse类型的附件文件

    request.attachments = UploadResponse
    

    上传到到zendesk的附件不会被压缩,但有大小限制,根据收费不同可支持不同大小的附件体积上传。如果需要压缩建议在上传关本地压缩文件后再上传。

    3. 集成到slack channel

    参考文章:
    https://support.zendesk.com

    1. 在Slack上创建一个新的app

    需要在Slack上创建一个新的app, 并拿到一个webhook url

    2. 在Zendesk 的extension 中添加一个target:

    image.png

    3. 在Zendesk 添加一个trigger 触发这个extension.

    相关文章

      网友评论

          本文标题:集成Zendesk收集用户feedback

          本文链接:https://www.haomeiwen.com/subject/dxlmchtx.html